Jump to content

Programming automations IoX vs. HA


Recommended Posts

I keep hearing different opinions which is the best. How IoX is so superior and easier compared to HA. From what I am seeing, I do not really believe this so far and probably is just people talking that are used to IoX. Maybe I am wrong though, so I wonder if someone can show me a practical automation example done in IoX which is difficult to do in HA, and the other way around... better in HA and difficult in IoX, or cannot be done at all respectively. Nothing hardware specific, eg. IoX will beat it of course in Insteon support, likewise HA probably bests IoX in other Hardware support (ie. Zigbee).

I am fairly new at Home Assistant, but I was able to some things on it far easier than how was done in IoX... in particular notifications and GeoLocation.

Right now I am using HA mainly to make Apple HomeKit work but want to do a bit more.

Therefore, my experiment moving forward is to attempt at replicating many of my programs in IoX to HA, and temporarily disable them in IoX as I go... just to see how HA is and test it more. Maybe after a while I could find a deal-breaker to change my mind but kinda doubt it since my programs are pretty basic, just timers, triggers etc. nothing over-complex.

Reliability and bugs is one issue that I am uncertain of... so far IoX/ISY has been very reliable once setup and I understand for most part how programs should work and how to write them, however it can be real confusing to do seemingly otherwise easy tasks because of the way programs are executed, which seem like one of the biggest support topics on these forums. HA has superior abilities in this regard https://www.home-assistant.io/docs/automation/modes/) and there are possibilities and logic that can be done in HA that are very difficult in IoX, having to use workarounds such as disabling programs, using variables etc.

I am not really interested in using HA at this time for making fancy interfaces or cards, I am more interested in back-end logic/automation to see how it handles everything that IoX currently does.

 

 

 

  • Like 1
Link to comment
10 hours ago, brians said:

I do not really believe this so far and probably is just people talking that are used to IoX.

Nail on the head for me. It is very much what you are used to, and how well you understand the logic.

Keep in mind, Home Assistant has the built-in automation engine which some people have a sour taste from when it was all YAML written. It has improved with the UI quite a bit, but there are also several other engines that may suit your skill level: NodeRED (visual/JS), AppDaemon (python), Pyscript (python), NetDaemon (C#), and a Rust option too.

My personal setup uses IoX programs only for Insteon state synchronization (keeping secondary buttons synced when the load is adjusted by something else), everything else is a combo of HA Native, NodeRed, and Pyscript/AppDaemon.

Edited by shbatm
  • Like 1
Link to comment
8 hours ago, shbatm said:

Nail on the head for me. It is very much what you are used to, and how well you understand the logic.

Keep in mind, Home Assistant has the built-in automation engine which some people have a sour taste from when it was all YAML written. It has improved with the UI quite a bit, but there are also several other engines that may suit your skill level: NodeRED (visual/JS), AppDaemon (python), Pyscript (python), NetDaemon (C#), and a Rust option too.

My personal setup uses IoX programs only for Insteon state synchronization (keeping secondary buttons synced when the load is adjusted by something else), everything else is a combo of HA Native, NodeRed, and Pyscript/AppDaemon.

Yes that is what I would be thinking of doing also, leaving Insteon to IoX because I somehow think that HA Insteon support with PLM may not be as good.

The ISY Integration for HA does not seem to be complete at bringing across node servers (I don't really expect it to) so I would have to redo these which I see are supported integrations in HA.. DSC Alarm and Opensprinkler (which is not that big of a deal really). Some of my current automations use DSC Alarm so currently I could not replicate them in HA for testing at this time, unless you are aware of a way to present DSC Nodeserver as an alarm in HA via your integration?

Link to comment

I've put some of my thoughts about support for Node Servers here: https://github.com/shbatm/pyisyox/discussions/9

In short, if you're using Home Assistant, my personal recommendation is to use the native integration in HA over trying to port in the Node Server through the IoX integration. You are probably going to be hard-pressed to find a Node Server that doesn't have a HA integration. And for the record, my DSC alarm works very well with the HA integration and opensprinkler even has a custom card for the dashboards: https://github.com/rianadon/opensprinkler-card

  • Like 2
  • Thanks 2
Link to comment
On 4/6/2023 at 3:14 PM, shbatm said:

In short, if you're using Home Assistant, my personal recommendation is to use the native integration in HA over trying to port in the Node Server through the IoX integration.

That's exactly where I'm at today. In fact, I just received my ameriDROID N2+ with the HA bundle and it took about 15 minutes to get it up, running and HA restored from a backup. Really sweet piece of hardware. I also just finished setting up my z-wave devices using the ZooZ usb plugin instead of using Polisy for z-wave. So Polisy only has Insteon. The node servers I was running are now installed in HA directly where they do seem to play better. Should have the USB PLM modem soon and I'll try that for Insteon in HA and put Polisy on sabbatical. I can always go back if a PLM integration in HA isn't fun enough.

Link to comment
1 hour ago, shbatm said:

From my experience, Polisy is still going to be a better experience than using the PLM in HA. It's still much easier to configure the scenes and links in the Admin Console.

I've only read about the HA Insteon Panel for setting scenes and links, is that what your experience is with?

Link to comment
25 minutes ago, vbPhil said:
2 hours ago, shbatm said:

 

I've only read about the HA Insteon Panel for setting scenes and links, is that what your experience is with?

Yep, I played with it a little bit as a backup option, and if you're coming from manual linking or the Hub, its definitely a step up. But if you're used to ISY, you may start to miss the AC pretty quick.

Link to comment
12 hours ago, shbatm said:

Yep, I played with it a little bit as a backup option, and if you're coming from manual linking or the Hub, its definitely a step up. But if you're used to ISY, you may start to miss the AC pretty quick.

Is there anything the HA integration can't do that the AC can? From a functional standpoint.

Edited by PatPend
Link to comment
On 4/6/2023 at 6:42 AM, shbatm said:

Nail on the head for me. It is very much what you are used to, and how well you understand the logic.

Keep in mind, Home Assistant has the built-in automation engine which some people have a sour taste from when it was all YAML written. It has improved with the UI quite a bit, but there are also several other engines that may suit your skill level: NodeRED (visual/JS), AppDaemon (python), Pyscript (python), NetDaemon (C#), and a Rust option too.

My personal setup uses IoX programs only for Insteon state synchronization (keeping secondary buttons synced when the load is adjusted by something else), everything else is a combo of HA Native, NodeRed, and Pyscript/AppDaemon.

I am trying hard to get a better understanding of HA programing, by watching YouTube videos and other online HA tutorials, but I still find it very complicated. Also, in IoX I can group programs in different folders and I have not found a way to do that with HA Automations. HA's Blueprints are in theory a genius idea, but to find what I look for is not easy and, with my limited understanding of HA's logic, applying  a Blueprint using my own Entities has been a challenge. Furthermore, the HA forum, as well as Discord,  has been for me far less responsive and helpful than this UD forum.  Here when I ask a question, I have a 99% chance that someone will guide me to what I want, but with HA that has hardly been the case. 

Right now, I am very comfortable having IoX as my core and HA as a complement, but also as a front UI on my computers, thanks to @shbatm 's UD Integration, but for sure I'd like to be more proficient with HA.

  • Like 3
Link to comment
12 hours ago, PatPend said:

Is there anything the HA integration can't do that the AC can? From a functional standpoint.

I don't have a good answer for that. Your best bet is to try it out. From my experience, HA Insteon requires putting much more thought into the actual links for scenes than AC. YMMV though, I am very biased towards using ISY for Insteon.

 

1 hour ago, asbril said:

Also, in IoX I can group programs in different folders and I have not found a way to do that with HA Automations.

Go vote for this on the HA community forums... It has been a long requested "Why the hell?" feature.

 

  • Like 2
Link to comment
11 hours ago, shbatm said:

Go vote for this on the HA community forums... It has been a long requested "Why the hell?" feature.

I voted on that long ago...  with 1150 votes I'm supersized it hasn't been implemented... or at least tags.

13 hours ago, asbril said:

Also, in IoX I can group programs in different folders and I have not found a way to do that with HA Automations.

Currently I sort my list by using a keyword as the first word of the name, then careful naming after the keyword.

Link to comment
2 minutes ago, MrBill said:

I voted on that long ago...  with 1150 votes I'm supersized it hasn't been implemented... or at least tags.

Currently I sort my list by using a keyword as the first word of the name, then careful naming after the keyword.

Yes, I do the same, but the IoX folder system is way more practical.  I mostly order my IoX programs by room.

  • Like 2
Link to comment

I agree that the Automations in HA should have some sort of better organization, tags and being able to filter would solve this issue I bet. Folders in IoX could be confusing since sometimes a program may be for multiple devices in different folders in IoX and have to make a decision where to place.

Tonight I plugged in a Zooz Z-Wave dongle that I had used with my Polisy. I was surprised how easy it is to setup, and even does OTW firmware updats, and OTA firmware updates are supported for many devices. I added a couple Z-Wave devices to test and seems to work good so far. It also appears that entities created are referenced by name instead of the node number (which still exists deep down), so supposedly no more issues with underlying node number changes if have to remove-re-add a device and changing all automations etc., but I am not certain how this works in reality and have to experiment. The Z-Wave implementation seems superior to what IoX offers - just the information and way it is displayed makes much more sense. Not sure why one would use IoX for ZWave if also running HA?!? In my case I am, but I am just testing now... eventually I would like to run Insteon off Polisy and move all ZWave to HA.

Like I said, currently still have all of my devices in IoX, including all Z-Wave. Still working towards recreating programs but I have been busy doing other things so just got back into it a bit today... I was able to recreate my programs in HA that detects user number which unlocks front door using Yale Assure lock, and sends notification, which was far simpler to do than on IoX and notification nodeserver. The other thing my IoX program that I based this on does is disarms the DSC alarm depending on user unlock, so the next step is to disable this DSC node server in PG3 IoX and install the DSX integration in HA so I can replicate this feature (apparently can only login one at a time to DSC interface), I am not sure the simplest way to do this, since I want ability to revert back for now.. maybe simply changing password, or IP address of device in node server would work. I am just gradually taking small steps to test this out but so far looks promising. Anyways, the programming abilities seem much more capable in HA than IoX and I am sure I will not run into a case where I can't do something I have done in IoX with HA.

As far as support, the only support I have ever needed from UD is when something got broken and they needed to fix. I never in the past 15 years or so have needed to ask them via a ticket how to do something, and I instead stick more to community type support and lots of reading/research for this. It seems that there is magnitudes more community support with HA, but is a challenge to filter out old info because has gone through so many updates.... for example I was looking where to find menu item in ZWave how to re-interview or remove a failed node, and finally figured out have to press the three dots next to the configure text, and has a menu pops up, where previous versions show the names on main screen, which many online docs seem to refer to.

I ordered a Sonoff Zigbee USB Dongle plus, the P version which I heard is more reliable at this time than the E version especially with zigbee wireless devices (although the E may be upgradeable to Matter since uses same chipset as Skyconnect, but depends if a similar firmware as sky connect will be developed to do the multiprotocol). Maybe I am reading old info and this is all fixed now but not sure. I also got a couple zigbee devices to test - Aquara P1 motion, and a couple Sonoff outlets... which are far cheaper than Z-Wave alternatives. My HA SkyConnect order seems to have been one of those that didn't get fulfilled for last batch, so will be in May probably. I don't see Zigbee being enabled in IoX anytime soon, and if it was probably would be very limited support for devices. Matter who knows... and who really cares at this point?!?

Edited by brians
  • Thanks 1
Link to comment

Neat, I just replaced function of my half dozen or so Door Unlock programs, Nodeserver, and a bunch of custom notification and some variables in IoX, with one automation in HA!

This sends me a message with lock status, user number, and name of person assigned to the user number.

Next step is to setup my DSC and try to make it disarm for certain users. I may need a separate automation for that one.

Code looks bit of a mess because I pasted the entire template on the one message line in visual editor... follows is a better format of it I created in template editor. 

alias: Front Door Lock Status Notify
description: ""
trigger:
  - platform: state
    entity_id:
      - lock.front_door_lock
    from: locked
    to: unlocked
  - platform: state
    entity_id:
      - lock.front_door_lock
    from: unlocked
    to: locked
condition: []
action:
  - device_id: 38efc7cf615139e393abad1b4e90d2d1
    domain: mobile_app
    type: notify
    message: >-
      {% set lock_status = states('lock.front_door_lock','status') | capitalize
      %} {% set access_control =
      state_attr('sensor.front_door_acc_cont_alarm','alarm') | int%} {% set
      access_method = 'Unknown' %} {% if access_control | int == 1 %} {% set
      access_method = 'Manual Lock' %} {% elif access_control | int == 2 %} {%
      set access_method = 'Manual Unlock' %} {% elif access_control | int == 3
      %} {% set access_method = 'RF Lock' %} {% elif access_control | int == 4
      %} {% set access_method = 'RF Unlock' %} {% elif access_control | int == 5
      %} {% set access_method = 'Keypad Lock' %} {% elif access_control | int ==
      6 %} {% set access_method = 'Keypad Unlock' %} {% endif %} {% set
      user_number = state_attr('sensor.front_door_acc_cont_alarm','user_number')
      | int%} {% if user_number | int == 0 %} {% set user_name = 'System' %} {%
      elif user_number | int == 1 %} {% set user_name = 'Brian' %} {% elif
      user_number | int == 2 %} {% set user_name = 'Lisa' %} {% elif user_number
      | int == 3 %} {% set user_name = 'Zachary' %} {% elif user_number | int ==
      4 %} {% set user_name = 'Brittany' %} {% elif user_number | int == 5 %} {%
      set user_name = 'Home Care' %} {% elif user_number | int > 5 %} {% set
      user_name = 'Unknown User' %} {%endif%} Front Door {{access_method}} User:
      {{user_number}} ({{user_name}})
mode: single

 

{% set lock_status = states('lock.front_door_lock','status') | capitalize %}
{% set access_control = state_attr('sensor.front_door_acc_cont_alarm','alarm') | int%}
{% set access_method = 'Unknown' %}
{% if access_control | int == 1 %}
{% set access_method = 'Manual Lock' %}
{% elif access_control | int == 2 %}
{% set access_method = 'Manual Unlock' %}
{% elif access_control | int == 3 %}
{% set access_method = 'RF Lock' %}
{% elif access_control | int == 4 %}
{% set access_method = 'RF Unlock' %}
{% elif access_control | int == 5 %}
{% set access_method = 'Keypad Lock' %}
{% elif access_control | int == 6 %}
{% set access_method = 'Keypad Unlock' %}
{% endif %}
{% set user_number = state_attr('sensor.front_door_acc_cont_alarm','user_number') | int%}
{% if user_number | int == 0 %}
{% set user_name = 'System' %}
{% elif user_number | int == 1 %}
{% set user_name = 'Brian' %}
{% elif user_number | int == 2 %}
{% set user_name = 'Lisa' %}
{% elif user_number | int == 3 %}
{% set user_name = 'Zachary' %}
{% elif user_number | int == 4 %}
{% set user_name = 'Brittany' %}
{% elif user_number | int == 5 %}
{% set user_name = 'Home Care' %}
{% elif user_number | int > 5 %}
{% set user_name = 'Unknown User' %}
{%endif%}
Front Door {{access_method}} User: {{user_number}} ({{user_name}})

 

Edited by brians
  • Like 2
Link to comment

I disabled my DSC alarm in ISY just by changing the password in nodeserver to something incorrect, then I moved to a folder with exclusion text so does not show in HA.

I installed the envisalink integration (had to manually edit configuration.yaml).

Now bunch of entities show up.

image.png.81f59e19c97957a349fef5b11ac6a038.png

 

I was able to make an additional automation that disarms with code, based on the door unlock user.

 

 

 

Edited by brians
Link to comment

Moved over some basic programs to automations... things like light timers, motion based auto-off light timers etc. So far all is OK. I was actually able to make one automation that turns groups of lights off at different times, which had same functionality as several separate IoX programs, but with HA automation using multiple triggers, and different actions based on what triggered the automation.

One thing I miss is IoX has a summary of all programs and their current status - eg. next scheduled run, last run etc. but I really only used that for troubleshooting. But in HA I can use the TRACES in Automations on an individual basis, which seems much good for troubleshooting a program. The main issue with IoX programs was getting my head around that each time they were triggered, it would stop the current program and re-execute. With HA the automations, by default do not do this, however they can by to change modes to "restart" which is same as what IoX does... I currently use this in my motion sensor light timers (probably different ways to do this in HA, but I was trying to replicate IoX methods).

Link to comment

If you have sensors, have a look at the Statistics platform - HA Statistics

I use this for averaging of my Zwave power plugs.  I have these  on 3 TV's.  Two of the TV's have spurious current draws when OFF.  I average the current over a 30 minute period to determine if the TV is actually OFF before shutting down the plug.  Saves power and excessive communication.

 

  • Like 1
Link to comment

Yesterday I excluded my Yale Assure SL ZWave lock from IoX and included in HA. To make a long story short, keymaster did not work for me, but I am able to do everything as before with just ZWave_js - add/remove/clear codes, detect who opened door based on code, and lock type eg. RF, Manual, Keypad... redid all automations to have same functionality as before.

I did one more ZWave device today... is a Bird Lamp for my Cockatiel that turns on/off UV Lamp on schedule. It is a Leviton plug which did not report instant status and needed Hail workarounds for ISY (not supported now in ZMatter). But guess what... including into HA this all works and instant status etc. no issue. This particular switch I had linked to an Insteon KeypadLinc and using a program that sync the LEDs on it using scene. I was able to write an automation in HA that turns on that scene if Bird Lamp comes on, and it is near instantaneous where my IoX sync LED program seemed to take about 1-2 seconds to update keypadlinc after detected bird lamp turned on or off. Not sure why but maybe due to way IoX polls... it's not due to ZWave at all because I have similar programs on ISY that sync only Insteon switches to keep LED in sync and are just as slow. @shbatm you mentioned earlier that you use IoX to do this LED sync, you should give a try and do with HA automation and see if you have same results. Here is program that sync both ways, sets KLB button if light is turned on/off by other means, and also turns on/off via keypad... seems as fast as native Insteon links - it was so fast first time I ran it, sorta shocked me cuz wasn't expecting that, and way faster than IoX ZWave/Insteon scenes.

alias: KPL Sync Bird Lamp
description: Sync KPL Button for Bird Lamp
trigger:
  - platform: device
    type: turned_on
    device_id: 3eaafc89bb20731bbxxx
    entity_id: switch.bird_lamp
    domain: switch
    id: Bird Lamp On
  - platform: device
    type: turned_off
    device_id: 3eaafc89bb20731bbxxx
    entity_id: switch.bird_lamp
    domain: switch
    id: Bird Lamp Off
  - platform: state
    entity_id:
      - switch.fr_family_room_bird_lamp_klb
    to: "on"
    id: Keypad On
  - platform: state
    entity_id:
      - switch.fr_family_room_bird_lamp_klb
    to: "off"
    id: Keypad Off
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: Bird Lamp On
        sequence:
          - service: homeassistant.turn_on
            data: {}
            target:
              entity_id: switch.fr_family_room_bird_lamp_klb
      - conditions:
          - condition: trigger
            id: Bird Lamp Off
        sequence:
          - service: homeassistant.turn_off
            data: {}
            target:
              entity_id: switch.fr_family_room_bird_lamp_klb
      - conditions:
          - condition: trigger
            id: Keypad On
        sequence:
          - service: switch.turn_on
            data: {}
            target:
              entity_id: switch.bird_lamp
      - conditions:
          - condition: trigger
            id: Keypad Off
        sequence:
          - service: switch.turn_off
            data: {}
            target:
              entity_id: switch.bird_lamp
mode: single

 

Edited by brians
Link to comment
1 hour ago, brians said:

you use IoX to do this LED sync, you should give a try and do with HA automation and see if you have same results.

My IoX Keypadlinc sync programs are only for Insteon keeping buttons/slave devices in sync with dimming loads (inspired by this), everything else is either in HA Native (blueprint) or AppDaemon (see shared app here).

Edited by shbatm
Link to comment
1 hour ago, shbatm said:

My IoX Keypadlinc sync programs are only for Insteon keeping buttons/slave devices in sync with dimming loads (inspired by this), everything else is either in HA Native (blueprint) or AppDaemon (see shared app here).

Ok, I haven't look at blueprints yet, from my understanding it is a quick way to make similar automations but just being able to change parameters. I am just making automations to do the few that are zwave controlled loads by keypadlinc buttons - I have only three or four so of course those won't work from the ISY sync programs I already have since I removed the ZWave device from it. I was just noticing how much faster HA seems to process the automations vs. ISY programs.  I just changed another one and is almost instant, and happens to use one of those older Leviton wall switches which needed Hail before, but seems to not have this issue in HA with instant status. I will look into your apps though, maybe is better way than how I am doing.

Just so I understand, are you still running ISY programs to keep insteon LED in sync? Reading that first post in thread, to keep dimmers in sync, I use a variable in ISY program that stores the dimmer state.

Edited by brians
Link to comment
12 hours ago, brians said:

Ok, I haven't look at blueprints yet, from my understanding it is a quick way to make similar automations but just being able to change parameters.

Yep. That's all they are. They make repeating similar automations easy by just giving you some dropdown options.

 

So to clarify my set up (now that I'm not on a phone):

1) Insteon devices: since most of my lights are on dimmers, I only control the devices with the loads from Home Assistant or Alexa, that way I can set the brightness. Several of these have a 3-way follower or can be controlled by a KPL Button/Remote. The IoX Programs just sync these "secondary" device states to the load. The programs all have a built-in delay of 2s to avoid Insteon traffic loops, so I don't really notice any delays. By traffic loop, I mean the 2s delay essentially allows the program to abort if one of the secondary devices is the thing actually doing the controlling (versus HA, Alexa, or the load), since it will be synchronized by the Insteon scene.

2) The AppDaemon and Blueprint apps I linked above are used to control non-Insteon loads like Zigbee lamps or Z-Wave switches from a KPL or RemoteLinc. In the case of the AppDaemon script--it will do the same thing as #1 and sync back the status if the lamp is controlled by another means. This could be done with a crafted HA native automation, but AD was easier for me.

3) I have a mix of Insteon "alternative function" programs -- like using a Fast-Off on a switch to turn something else on/off. Those are still mixed between IoX and HA (really depending on how old they are).

In general though, yes--if you have adequate hardware on the HA side and don't use HTTPS to connect to the ISY/IoX from HA, I find HA actually faster to process the automations than my ISY. When I switched to the Polisy, the delay was less noticeable, but HA is still quicker (subjectively).

Finally, when possible it is always faster to use native groups rather than controlling a bunch of single lights from HA. Native groups = Insteon Scenes, Zigbee Groups, Z-Wave Mutlicast. These use a single command on the related protocol to control mulitple lights, vs. one command per device. Because of this, I have some HA groups like "All Lights Off" that include an Insteon All off scene switch, a zigbee all light group, etc. For tying these to a KPL button to control in HA, I have a second group which excludes the Insteon All off switch (it will control it's devices natively) and an HA Automation that listens for the isy994_control "DOF" or "DFOF" events from the button and turns off the non-Insteon devices from HA. Example below.

# Notes about All Off Groups:
# Groups without _hass include ISY Scenes.
# These allow control repsonse from an ISY All Off without duplicating
# the Insteon traffic

group:
  all_off_exit:  # Use this group to control all lights from HA/Alexa
    name: All Off Exit
    entities:
      - switch.all_off_exit # ISY All Off Scene
      - group.all_off_exit_hass

  all_off_exit_hass:  # Link this group to ISY "All Off" Button
    name: All Off Exit Hass
    entities:
      - light.zb_all_off_exit # Zigbee all lights
      - light.living_room_lamps
      - more wifi/Z-Wave

 

Edited by shbatm
Link to comment
On 4/7/2023 at 7:27 PM, shbatm said:

But if you're used to ISY, you may start to miss the AC pretty quick.

Very, very true. I was getting bored with the AC over the years, it never gets UI improvements just a functional, boring JAVA program. But now that I've experienced HA with an Insteon PLM connected, the AC is my number one choice. Especially since just witnessing HA creating Insteon Scenes. HA does not write the scene links to devices, and you can only turn a scene on or off. There's no capability to adjust individual ramp and brightness levels on the devices when creating the scene. My Insteon migration to HA has been suspended until further Insteon capabilities have been added to HA, if ever. 

Link to comment
Guest
This topic is now closed to further replies.

×
×
  • Create New...