Introducing RoboDomo

DNS and networking is another topic I'd like to offer some suggestions about.

I have a $50 ubiquiti EdgeRouter X (ERX) as my router. I run dnsmasq on it to do DHCP (assign IP addresses) and DNS name lookups. The DHCP is configured to assign the ERX as the DNS server to everything that asks for an IP using DHCP.

A trivial trick that I use is to use a net mask of 255.255.0.0. Normally, the net mask is 255.255.255.0.

Without my trick, you are limited to 254 IP addresses for all your networked devices, and that pool of addresses includes dynamic IP allocation when some device joins your network that you don't have a DHCP entry configured (like a visitor's phone).

With the trick, you get all of 192.168.whatever.whatever, which is a LOT of IP addresses. I use 192.168.0.whatever for computers. I use 192.168.1.whatever for the router(s) and switches. I use 192.168.2.whatever for mobile devices (phones, tablets, watches, whatever), 192.168.3.whatever for home automation (Alexa devices, Smartthings hub, Hubitat hub, the pool control, the nest protects, and the iComfort router. I assign 192.168.4.whatever for home entertainment devices (TiVos, Apple TVs, Harmony Hubs, Denon AVRs,e tc. I assign 192.168.5.whatever for scanners and printers.

My HOA fees include a subscription for Spectrum internet and TV. But we have fiber optic here, too, and gigabit ethernet for a good price from Frontier Communications. So my home is dual homed. I configured the router to route all traffic originating from 192.168.100.whatever to the Spectrum router/internet. Everything else uses the gigabit line. The Spectrum TV app on Roku devices (and others) give you all your subscribed channels if you are using their Internet/routers. Putting the Rokus on the 192.168.100.whatever network achieves this (uses Spectrum routers). The Spectrum TV app otherwise gives you a limited number of channels.

DHCP in dnsmasq is done in a config file on the router. You add a line like:

dhcp-host=70:hidden:81:ed:85:hidden,192.168.100.16 # appletv-mbr

And whenever the Apple TV in the master bedroom requests an IP via DHCP, it is ALWAYS assigned 192.68.100.16. The DHCP protocol involves sending the requesting system's MAC address. The line above causes dnsmasq to match the 70:hidden:81:ed:85:hidden MAC address for the IP assignment.

DNS lookup is handled by dnsmasq, too. This is really simple to set up, as it just reads the /etc/hosts file (on the router). So I edited the /etc/hosts to include a line:

192.168.100.16 appletv-mbr

Now I can address/ping/connect to that Apple TV using the name "appletv-mbr".

I took the time to add almost every device in my home to the DHCP configuration file. I can ping a phone by name because the DNS lookup always returns the same IP, the IP that is always assigned to the phone. I can control the TVs by name for the same reasons. And so on.

The DHCP configuration and netmask can be set up in most consumer routers. I see \oth the Spectrum and FiOS (gigabit) routers have WWW pages to configure these.

If you don't set up DHCP like I did, most devices advertise a name and get assigned a random/dynamic IP. You can address those devices by name as if you did my DHCP kind of configuration. The issue is not all devices will advertise a name like this. It's going to be hit or miss. The Apple TVs definitely do this, for example.

2 Likes

13 posts were split to a new topic: A random argument

A post was merged into an existing topic: A random argument

As far as the local control of the hub, RoboDomo's macros would run slower if they had to control each device (thing, switch, etc.) via an HTTP request to the cloud.

Plus, the more cloud activity you do, the more at risk you are to hackers, no matter what the cloud providers say. Hey, the government just got hacked, and they literally have $trillions to spend to avoid these things.

RoboDomo started out as a simple thing. I wanted to turn on and adjust both the A/C and the ceiling fan from the couch. Manually, I'd have to get up and go into the hallway to adjust the A/C and that's also where the fan control is.

Once I got a GE Fan control installed (and a ST hub), I found myself switching between three apps on my phone: ST, Nest, and Logitech.

To date, none of these hubs is one hub to rule them all, to control all the things. RoboDomo is one app that I don't need to switch between any of the others to do what I want.

Google's services were down early in the AM here in the US. People were saying their lights don't work because the Google Home wasn't able to connect to the cloud. I wonder what kind of switches they use that they can't use the physical switch on the wall to manually turn on the lights.

Another reason to not want to rely on cloud APIs.

3 Likes

A post was merged into an existing topic: A random argument

It's surprising but there are some people that replace the wall switches with inline modules. No physical switch anymore. It's kinda crazy to me. I've seen this in commercial or larger installs with panel controlled lighting but they are NOT cloud dependent and there's still a switch at the panel to use.

It's just a bad idea to depend on any technology for any critical functionality. There must always be a manual override or backup. Depending on "cloud" is a major mistake by anyone.

2 Likes

Many inline modules permit external control with a physical switch. I used to have Aeotec's that permitted it. Now I'm all Caseta.

1 Like

Yes. My Point was that "some" people install just the inline without any switch. Which I think is a really bad idea.

1 Like

I'm interested in playing with RoboDomo but....,

I'm not programming savvy and don't see a clear why to get started. Always hated GitHub documentation as to me it seems to make simple things incredibly complex by it's very nature of organizing/displaying of information.

Wish there was a clear "How to document" to help more simple minded people (like me) to get their feet wet with cool things like this. But maybe it's intended more for the adventurous programmers out there, and not ordinary folks. Kinda of members only club for Mensa groupies?

I have an older Asus Chromebox that's itching for a Linux install. Maybe it could serve as a RoboDomo server, but it may all be over my head.

I have 4 ceiling fans with RF remotes and I hardwired load to line and put Eria Dimmers in the gangbox. HOWEVER, I still have the native remotes in drawers in case something goes wrong. I had to hide them because when I had some issues with Picos & Bond when 1st doing this, the "better half" kept reaching for the native one. To your point, I have backup. :slightly_smiling_face:

2 Likes

Your stock just keeps going up.
:+1:

1 Like

Wow, this topic is really off topic!

RoboDomo is definitely an engineer's thing. It's custom to MY preferences and needs. It's open source and freely available to anyone who wants to hack on it to suit their needs. It's not mean to be a consumer thing.

I'll post about inquiries I've had about it in a separate post.

I recently had to replace the A/C unit on my home. The old one was almost 20 years old. As I was getting bids, I showed RoboDomo to the sales guys and they loved it.

I spoke with the owner of one of the local A/C companies and he wanted to invest in it, sell it, and have his installers install it in homes.

Having been involved in IoT for a few years now, my assessment is that it's really a hacker's thing still. ST and Hubitat and the others make it easier, but if you can't edit YAML files or grok Groovy, Python, JavaScript, and know your way around GitHub and IDEs and package installations, it's going to be rough.

How custom is RoboDomo for my needs? At night, we watch an hour of TV in bed, then go to sleep while leaving the TV on. When the hour is up, I was using the universal remote (or the Theater screen on RoboDomo) to bump up the center volume on the Denon AVR and lower the regular volume. I have to hit the "volume up" button like 24 times to get it to max. I added a button to the UI to do it all with a tap on the screen. Do YOU need it? Probably not.

But the client is pretty simple React JS code. If you don't like how a tile on the screen works, it's not very much work (or hard) to alter the behavior. Like...

I had my wife and my presence on the Clock tile, and then created a dedicated presence tile to show this information. Maybe you don't want a presence tile at all - you can decide not to have one on your dashboard(s) at all.

As far as dashboards go, the Hubitat one (in the browser, app) is good, but not something I want to use 24/7. No offense to the Hubitat guys, but they have a lot of more important things to focus on, IMO, like adding more device support, fixing bugs, and updating features/apps.

The best dashboard (other than RoboDomo) that I have used is the HomeKit one in the Apple Home app for desktop and mobile devices. They don't let you have tiles in multiple rooms (like presence sensor in every room, they only allow in one). But they do allow you to drag and drop the tiles into the order and rooms as you want.

Compare that to RoboDomo, you have to edit a JavaScript (JSON like) Object to order your tiles. Hubitat, you have to bring up a joy stick looking UI to move the tile left, right, up and down (rows, columns) until it's to your liking. Drag and drop is something web apps have been doing for years...

RoboDomo doesn't compete with Hubitat, as I've said before. I'm not here to leach Hubitat customers, only to make their homes using Hubitat "better" (in the eye of the beholder). If I ever did a deal with an A/C company, we'd be buying at least one Hubitat hub per home we sell to.