Zum Hauptinhalt springen

ISY / IoX (Universal Devices) Smart-Home-Integration, kostenlos und Open Source

ISY / IoX (Universal Devices)-Integration für Gladys Assistant

Universal Devices ISY994, eisy and Polisy controllers: nodes, variables and programs.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

This integration connects Gladys to a Universal Devices controller on your local network: an ISY994, or IoX on an eisy or a Polisy. It reads the Insteon and Z-Wave nodes of the controller, its variables and some of its programs, follows their changes live, and drives the Insteon lights and switches you declare safe.

Unofficial integration, not affiliated with Universal Devices.

Never tested with a real device: it was written from the PyISY library (the one of Home Assistant) and tested against a simulated controller only. Feedback welcome.

What you get​

Node on the controllerIn Gladys
Insteon dimmer declared safea light: on/off and brightness
Insteon switch (relay) declared safea switch (or a light)
Insteon dimmer or switch not declared safeits state (and level), read only, and "Turn on" / "Turn off" buttons, disabled by default
Lock (Insteon, Z-Wave)"Locked", read only, and its battery
Thermostat (Insteon, Z-Wave)its temperature and humidity, read only
Any other node (sensors, keypad buttons, Z-Wave devices, I/O Linc)its state (or level), read only, and what it measures: temperature, humidity, light, power, voltage, current, battery
Integer and state variablestheir value, read only
Programs of a folder named Gladysa "Run" button, disabled by default, and the result of their last condition
Paddles, keypad buttons, remotes pressedthe scene trigger "ISY control event"

Not supported yet: HTTPS, commands of Z-Wave dimmers and switches, locks, thermostats and garage doors (I/O Linc), the scenes (groups) of the controller, writing variables, node servers' commands, energy totals (kWh).

Setting it up​

  1. Give the controller a fixed IP address in your router.
  2. In Gladys, open the integration and enter:
    • the address of the controller (its IP address) and its HTTP port: 8080 on an eisy or a Polisy, 80 on an ISY994;
    • the user name and password of the ISY Admin Console. The password is kept by Gladys in its database, never shown again, sent only to the controller, never written in the logs. HTTP only for now: anyone who can read your local network can read it;
    • optionally the identifier of the controller (its UUID, in the ISY Admin Console under Help > About). Left empty, the controller found at the first connection is remembered.
  3. Save, then click Test the connection.
  4. Add the devices from the Discovery tab.

Lights and switches: declare them safe​

A light or a switch in Gladys obeys Google Home, Alexa, the MCP ("turn everything off") and every scene. An Insteon switch or dimmer may drive anything: a lamp, but also a pump, a heater, a freezer, a garage door. So a dimmer or a switch is a light or a switch only if you list its address in "Nodes declared safe", as the ISY Admin Console shows it, for example:

1A 2B 3C 1, 4D 5E 6F 1: light

A dimmer is always a light; a switch is a switch, or a light when followed by : light. The other ones show their state, and two buttons "Turn on" and "Turn off" that only work once "Allow the Turn on / Turn off buttons" is ticked. When you declare a node safe later, its new features appear in the Discovery; delete the old ones you no longer want (their history goes with them).

Programs​

Put the programs Gladys may run in a folder named Gladys of the ISY Admin Console (directly in it, not in a sub-folder). Each one gets a Run button (the controller evaluates its If, then runs its Then or its Else) and the result of its last condition. The buttons only work once "Allow running the programs of the Gladys folder" is ticked: a program may do anything, unlock a door or open a garage. Right before each run, the programs are read again: a program no longer directly in the "Gladys" folder (moved, deleted, folder renamed, or its number reused by another program) is not run, and disappears from Gladys at the next reading.

Commands​

A command leaves within 3.5 seconds or not at all ("nothing was sent"). It is confirmed only when the controller reports the level asked; otherwise Gladys shows "sent, without confirmation" and the node is read again 2 seconds later. A program run is confirmed by the answer of the controller, which runs it itself. Every command is written in the integration logs.

Scene trigger "ISY control event"​

Each control event of a node (a paddle, a keypad button or a remote pressed) fires the trigger with:

  • address: the address of the node, as the ISY Admin Console shows it (1A 2B 3C 1): it is compared as written;
  • control: DON (on), DOF (off), DFON / DFOF (double press), FDUP / FDDOWN (held), FDSTOP (released), BRT, DIM;
  • name: the name of the node.

The replay of every status when the event stream opens never fires it. 120 events per minute at most.

Readings and limits​

  • The controller sends every change as it happens. Every status reading interval (10 minutes by default) every status is read again. A restart of the integration never reads sooner.
  • The list of nodes, variables and programs is read at the first connection, then again on Scan in the Discovery or when the controller says its nodes changed, at most every 10 minutes.
  • After the stream is lost, no command is sent before the identifier of the controller is read again.
  • Another controller answering at the same IP address (after a router change): no node is read and no command is sent until you enter its identifier. Its identifier alone is read again every 5 minutes, and at each click on "Test the connection": this sends the user name and password to the device that answers at that address.
  • Password refused: the integration stops and never tries again by itself. Correct the password, or click "Test the connection" once the controller accepts it.
  • Controller unreachable: new tries after 10 s, 30 s, 1, 2, then every 5 minutes; the pause is kept across a restart.
  • Units: those of the controller, fixed when the feature is created (a temperature in °F stays in °F).

Credits​

The REST API and the event stream of the controller come from PyISY (Apache 2.0, Automicus), see THIRD_PARTY_NOTICES.md.

Konfigurationseinstellungen​

Diese Einstellungen fragt ISY / IoX (Universal Devices) in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Your controllersectionNeinFor a Universal Devices controller on your local network: ISY994, or IoX on an eisy or a Polisy. The integration reads its Insteon and Z-Wave nodes (states, temperature, humidity, battery, power...), its variables, and the programs of a folder named "Gladys"; the control events (a paddle or a keypad button pressed) become scene triggers. Locks, thermostats and I/O Linc are read only. HTTP only for now: the password travels in clear on your network. Never tested with a real device. Unofficial, not affiliated with Universal Devices.
Address of the controllerstringJaThe IP address (or name) of the eisy, Polisy or ISY994; give it a fixed address in your router.
HTTP portnumberNein8080 on an eisy or a Polisy, 80 on an ISY994.
User namestringJaThe one of the ISY Admin Console ("admin" unless you changed it).
PasswordsecretJaThe one of the ISY Admin Console. Kept by Gladys in its database, never shown again, sent only to the controller, never written in the logs. HTTP only for now: anyone who can read your local network can read it.
Identifier of the controllerstringNeinOptional: its UUID, shown in the ISY Admin Console (Help > About), e.g. 00:21:b9:02:12:34. Empty: the controller found at the first connection is remembered. If another controller ever answers at the same address, no node is read and no command is sent; its identifier alone is read again every 5 minutes (this sends the user name and password to the device that answers), until you enter the new identifier here.
Nodes declared safe (Insteon lights and switches)stringNeinAddresses of the Insteon dimmers and switches that may be driven as a light or a switch, as the ISY Admin Console shows them, e.g. "1A 2B 3C 1, 4D 5E 6F 1: light" (a dimmer is always a light; a switch is a switch, or a light with ": light"). A light or a switch obeys Google, Alexa, the MCP ("turn everything off") and the scenes: list only the nodes that drive lamps or harmless loads, never a pump, a heater, a freezer, a garage door. The other ones show their state, with "Turn on" / "Turn off" buttons (option below).
Status reading (minutes)numberNeinThe controller also sends every change as it happens; this reading catches what was missed. 2 to 60 minutes.
Commands (off by default)sectionNeinThe "Turn on" and "Turn off" buttons of the Insteon dimmers and switches not declared safe are off by default: the load behind them is unknown. The "Run" buttons of the programs of the "Gladys" folder are off by default too: a program may do anything (unlock a door, open a garage). Once allowed, every Gladys user, every scene and the Gladys app can press them. Every command is written in the integration logs.
Allow the "Turn on" / "Turn off" buttonsbooleanNein
Allow running the programs of the "Gladys" folderbooleanNein
Language of the namesselectNeinUsed for the names of the features added from now on.

So installierst du ISY / IoX (Universal Devices) in Gladys​

  1. Öffne in Gladys Integrationen: ISY / IoX (Universal Devices) erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/lm1lc3n7/gladys-isy:0.1.2) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-isy.

ISY / IoX (Universal Devices) benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

ISY / IoX (Universal Devices) ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von LM1LC3N7 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂