carealtor Posted March 23, 2019 Share Posted March 23, 2019 I've been playing around with HA for about a week now. One thing I just can't seem to figure out, or find an example, is the "ignore_string" configuration variable for the ISY. I want to ignore the nodes from my RainMachine and if I could just ignore nodes with "drip" and "lawn", that would pretty much take care of it. The HA documentation for the ISY indicates that this configuration variable would do this for me, but I just cant get it to work. Link to comment
simplextech Posted March 23, 2019 Share Posted March 23, 2019 I ran a few tests and the ignore_string parameter only accepts 1 (one) string value. The work around that others have done (posted on the HA community) is to prefix devices they want to ignore with something unique. In my view this is not the ideal way to do it but currently it's the only way to ignore multiple string values. Link to comment
carealtor Posted March 23, 2019 Author Share Posted March 23, 2019 Thanks for that. On a whim, I tried using the name of the folder, which is "Irrigation"... and that worked! I will need to learn to better utilize the HA forum. Just not in that habit yet. Link to comment
simplextech Posted March 24, 2019 Share Posted March 24, 2019 3 hours ago, carealtor said: Thanks for that. On a whim, I tried using the name of the folder, which is "Irrigation"... and that worked! I will need to learn to better utilize the HA forum. Just not in that habit yet. They have a lot of info but also too much and it's hard to find somethings. I just started trying different combinations on my HASS box. I didn't try the folder but good catch on that. Link to comment
rccoleman Posted March 25, 2019 Share Posted March 25, 2019 (edited) I've built an extensive Home Assistant system over the past few weeks that controls nearly everything in my house, with the ISY acting as a conduit to my Insteon SwitchLincs and KeypadLincs. I've learned a lot and feel like I have a pretty good handle on how it works (both Python & YAML), so feel free to ask if you have questions, here or via PM. I also have an outstanding pull request for PyISY that retries REST commands that the ISY rejects, making communication from Home Assistant to the ISY much more reliable, especially if you're controlling several devices at once. That pull request seems to have stalled and modifying dependencies in Hass.io is a pain, so I also built equivalent functionality into the ISY994 component that I'm using as a custom component. The pull request for PyISY is here: https://github.com/automicus/PyISY/pull/46. If anyone is interested in the ISY994 component changes, just let me know. Overall, I'm loving Home Assistant. It's super-powerful, development moves really quickly, and it's all open-source, so anyone can debug and fix anything. It's right up my alley. It's also super-fast, partly because it's running on a 3.6GHz I5 in a Lenovo m92p "tiny PC". Edited March 25, 2019 by rccoleman 1 Link to comment
The_Penguin Posted April 26, 2019 Share Posted April 26, 2019 I just started playing with Home Assistant yesterday. Pretty impressive. I started with an install in a VM on my Hyper-V server, then decided to load it on a pi for bluetooth presence, and was thinking of linking some unused alarm sensors via the GPIO. I'm wondering, is there's a way to set an ISY variable when HA receives a sensor input? 'course I managed to do something to the config on the pi that put it in a boot loop, and now I can't get to it. Don't have physical access to it until I get home from work Guess I'll find out when I get home. Link to comment
simplextech Posted April 26, 2019 Share Posted April 26, 2019 1 minute ago, The_Penguin said: I'm wondering, is there's a way to set an ISY variable when HA receives a sensor input? There are a couple HA ways either with a script command or the external sensor component. Probably other ways also... but when an HA sensor changes it can make a HTTP call to the ISY to set a variable. I do this between HomeSeer and ISY as well. 1 Link to comment
rccoleman Posted April 26, 2019 Share Posted April 26, 2019 Home Assistant is awesome. Setting a variable is easiest done with a REST call, and there’s a great example of a guy doing it from Hass here on the UDI forum (with video!). I can’t find it from my phone, but a Google search should do it. 1 Link to comment
The_Penguin Posted April 26, 2019 Share Posted April 26, 2019 6 minutes ago, rccoleman said: Home Assistant is awesome. Setting a variable is easiest done with a REST call, and there’s a great example of a guy doing it from Hass here on the UDI forum (with video!). I can’t find it from my phone, but a Google search should do it. Thanks! I found it, I think it's this one: Link to comment
rccoleman Posted April 26, 2019 Share Posted April 26, 2019 Yep, that’s it! Hass is addictive. There’s literally new stuff every week or two and it really scratches my developer itch. Link to comment
blueman2 Posted June 23, 2019 Share Posted June 23, 2019 I too am now addicted to Home Assistant. I started using it for my Roborock S50 vacuum to create room specific clean up commands linked to Alexa. Up until now, I have not done any integration with ISY, mostly out of concern that having my roughly 150 Insteon and z-wave devices linked to HA would simply kill performance on both devices due to constant updating of status. I am running HA on Rpi3. Is this a valid concern? I was thinking of using the ignore_string setting, but since that only allows one string, it is not very useful. I guess I could put all the devices I do not want linked to HA in a folder with a random name, but that seems a bit of a kludge. Link to comment
rccoleman Posted June 23, 2019 Share Posted June 23, 2019 I pretty quickly got tired of the super-long startup time of the RPI, and it was terrible as I was building my system. It might be better once you’re up and running, but I definitely don’t regret the $250 I spent for the tiny, powerful I5-based machine I use for HA (+Plex+UniFi+other stuff). It’s worth considering for the size system you have, and the fact that several new integrations don’t work on the Pi (VSCode, TensorFlow, maybe others) Regardless of the number of devices you have, they’re not all updating status at the same time. You’ll really only tax the system at startup when it does query all devices, so you have to decide how often you expect to do that. I don’t think you’ll have any problem once you’re up and running, even with a Pi. I have ~70-80 Insteon devices and 20-30 Z-Wave devices and it takes about 4 minutes to query everything at startup on my machine, most of it Z-Wave. Someone just found a significant bottleneck in the OZW python wrapper and he’s getting some substantial perf improvement with preliminary changes that push blocking tasks into threads. You can also ignore entire device domains in the ISY integration if you like, but there’s really no downside to just pulling in your whole ISY config via the integration and seeing how it works. You can always just delete the integration if it causes problems. Or you can get yourself a Z-Stick and migrate your Z-wave devices to HA at your own pace and leave the Insteon devices on ISY to eliminate the middleman. Just make sure that you’re using a self-powered hub if you go that way. Link to comment
carealtor Posted June 23, 2019 Author Share Posted June 23, 2019 You may or may not like this idea, but you can have several folders with the same name (such as "Hidden") that will then not import to Home Assistant. Link to comment
blueman2 Posted June 23, 2019 Share Posted June 23, 2019 Thanks, guys! I went ahead an just added my entire ISY for now, and will monitor impact on performance. Might need to go to a beefier machine down the road, though. The reboot time on the Pi is just terrible. Sometimes several minutes before it comes back up. And since I have to reboot with every configuration.yaml change, it really is painful. One thing I notice is that all my sensor devices such as z-wave temperature, z-wave electricity monitors, etc all show up as binary sensors with no values. Is there something I need to do to get the values of these devices to show up? Link to comment
rccoleman Posted June 23, 2019 Share Posted June 23, 2019 (edited) 33 minutes ago, blueman2 said: Thanks, guys! I went ahead an just added my entire ISY for now, and will monitor impact on performance. Might need to go to a beefier machine down the road, though. The reboot time on the Pi is just terrible. Sometimes several minutes before it comes back up. And since I have to reboot with every configuration.yaml change, it really is painful. Yep, it’s really annoying, but it does get better as you asymptotically approach nirvana and don’t need to restart as much. Also, take advantage of the ability to runtime reload what you can (automations, scripts, customizations, themes). Quote One thing I notice is that all my sensor devices such as z-wave temperature, z-wave electricity monitors, etc all show up as binary sensors with no values. Is there something I need to do to get the values of these devices to show up? Hard to say. I’d like to say that the few Z-wave sensors that I have reported correctly as sensors, but I pretty quickly moved all Z-Wave to HA. Unpredictable Z-Wave support on the ISY was one of the main reasons that I investigated HA, and I’ve been quite happy with OZW in HA. It gets a lot of grief (and the author Fishwaldo, specifically), but it works quite well for me. I recommend turning on debug in the isy994 component to see if you can find out what’s wrong. It rediscovers all devices at boot each time. I can copy/paste the lines to enable logging you need them. Are you using 5.0.x on your ISY? It looks like 5.0.x provides more information on node type: def _check_for_node_def(hass: HomeAssistant, node, single_domain: str = None) -> bool: """Check if the node matches the node_def_id for any domains. This is only present on the 5.0 ISY firmware, and is the most reliable way to determine a device's type. """ if not hasattr(node, 'node_def_id') or node.node_def_id is None: # Node doesn't have a node_def (pre 5.0 firmware most likely) return False node_def_id = node.node_def_id domains = SUPPORTED_DOMAINS if not single_domain else [single_domain] for domain in domains: if node_def_id in NODE_FILTERS[domain]['node_def_id']: hass.data[ISY994_NODES][domain].append(node) return True return False Edited June 23, 2019 by rccoleman Link to comment
blueman2 Posted June 23, 2019 Share Posted June 23, 2019 35 minutes ago, rccoleman said: I recommend turning on debug in the isy994 component to see if you can find out what’s wrong. It rediscovers all devices at boot each time. I can copy/paste the lines to enable logging you need them. Are you using 5.0.x on your ISY? It looks like 5.0.x provides more information on node type: Yes, please let me know how to enable debugging for ISY component. And yes, I am running 5.014. I am not seeing any errors in the main log file, except for a few z-wave nodes that are not being used. Link to comment
rccoleman Posted June 23, 2019 Share Posted June 23, 2019 (edited) 16 minutes ago, blueman2 said: Yes, please let me know how to enable debugging for ISY component. And yes, I am running 5.014. I am not seeing any errors in the main log file, except for a few z-wave nodes that are not being used. Either add this whole thing as-is to configuration.yaml, or add the last line to an existing logger: section: logger: default: info logs: homeassistant.components.isy994: debug But I suspect that the problem is in the device type detection in __init__.py in the isy994 component. There's a lot of code devoted to trying to figure out what each device is. If you want to try to figure it out, you can find the node definition from http://<isyaddress>/rest/nodes and walk through the code in __init__.py to see where it goes wrong. It might be as simple as adding a type, and the first step for that would be to make a copy of the isy994 component directory in config/custom_components and modify as needed. If you do that, you'll need to change the logging line to custom_components.isy994: debug Or you can post the node def here and I can try to help figure it out. Edited June 23, 2019 by rccoleman 1 Link to comment
blueman2 Posted June 23, 2019 Share Posted June 23, 2019 (edited) Thanks. That worked in giving me a good detailed log. I am seeing that all the data is going to HA, but I am not seeing any way to see the data reported by HA. Here are a couple lines from the log showing my ZW044 device giving my hot tub temperature: <?xml version="1.0"?><Event seqnum="548" sid="uuid:32"><control>CLITEMP</control><action uom="17" prec="0">98</action><node>ZW044_019_1</node><eventInfo></eventInfo><fmtAct>98°F</fmtAct></Event> 2019-06-23 21:57:30 INFO (Thread-2) [homeassistant.components.isy994] ISY Node Control Event: ZW044_019_1 CLITEMP The correct temperature of 98 is being reported, but I do not see anything but on/off showing in the HA console. I will dig around some more. I am noticing that this device shows up as binary_sensor in HA: binary_sensor.zw_044_19_water_temperature. Perhaps that is the problem. It should just be sensor, right? Thanks for the help! Edited June 23, 2019 by blueman2 Link to comment
rccoleman Posted June 23, 2019 Share Posted June 23, 2019 It looks like it should pick that up properly based on uom="17", which translates into TEMP_FAHRENHEIT, but it may get tripped up somewhere along the way. I had a similar problem with Agave for a long time with a Z-Wave temp sensor, where it showed up as a switch. James fixed it when I gave him a copy of the node definition from the ISY. 1 Link to comment
blueman2 Posted June 23, 2019 Share Posted June 23, 2019 I just added to my note as you posted. I think you are correct. The device is showing up as binary_sensor, which is wrong. binary_sensor.zw_044_19_water_temperature Perhaps there is a way to override this by customization. More to come... Link to comment
spaterson76 Posted October 8, 2020 Share Posted October 8, 2020 @blueman2 I just got polyglot running with a raspberry pi and am now looking at integrating my roborock vacuum. seeing that you already have this working with home assistant, i'm just curious as i currently know nothing about home assistant. i know you aren't doing this as of the post above, but would it be possible to sync events from isy to trigger home assistant to vacuum a certain area? I'm loosely considering looking into mi home polyglot, but this is probably optimistic as i'm on work leave only for a short time and will soon be consumed again daily. Link to comment
blueman2 Posted October 9, 2020 Share Posted October 9, 2020 (edited) @spaterson76, the post above was ever so long ago! Yes, I am now fully integrated between Home Assistant and ISY, and use HA as my user interface exclusively. Wonderful for phone and PC. The level of integration across the ISY and Home Assistant is pretty much totally there now. Just read the HA site to see. And yes, I have my Roborock S50 integrated so that I can give my Alexa voice commands to clean specific rooms. Such as "Alexa, Tell Vacuum to Clean Kitchen". Works brilliantly. My S50 is integrated with HA, not directly with ISY. Not sure if there are any plans for people to integrate with ISY. But HA works great with it. It is a rather complex process to get everything up and running, but you can google Home Assistant Xiaomi Vacuum and that should give you a direction. One of the more complex issues is getting your Token extracted from your Vacuum so that you can control it. It was so long ago now, I cannot recall how I did it, but I think it involved loading an old version of the Xiaomi app on my Android phone and exporting a log file that included the Token. There are other methods as well. Once you have that, you can follow the directions over at Home Assistant to add the Vacuum. https://www.home-assistant.io/integrations/xiaomi_miio/#xiaomi-mi-robot-vacuum The voice control involves a process described here: https://www.home-assistant.io/integrations/alexa.intent/ Edited October 9, 2020 by blueman2 1 Link to comment
blueman2 Posted October 28, 2020 Share Posted October 28, 2020 Another shout out for @shbatm for another great update to Home Assistant. 0.117 now has support for decimal precision for ISY variables. Also a few other tweaks. ISY + HA just keeps getting better! Link to comment
spaterson76 Posted January 2, 2021 Share Posted January 2, 2021 @blueman2, I just wanted to thank you for getting me going on home assistant. I noticed after setting up HA on docker on a raspberry pi (with a small cheap usb SSD hopefully for some dependability) that HA can just run on many synology NAS systems. Unfortunately my 418play isn’t on one of them so I’m sticking with the Pi. You are right that token extraction is the most annoying part for setting up a Roborock. I went through and elaborate process of backing up an iPad without encryption and later saw a script is available for this for xiaomi devices like the Roborock which gets the token in seconds. I now happily have HA going with several things including the ISY. It’s great to say “Alexa, vacuum the kitchen” or “Alexa, pause the vacuum” etc and have that integrated and running with HA. Thanks, Steve 1 Link to comment
Recommended Posts