TA CMI UVR16x2 UVR1611
TA CMI UVR16x2 UVR1611 | |
---|---|
Zweck / Funktion | |
Auslesen von Ein- und Ausgabestati über das CMI der Firma Technische Alternative | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | CMI UVR16x2 UVR1611 EN / CMI UVR16x2 UVR1611 DE Thema |
Modulname | 72_TA_CMI_JSON.pm |
Ersteller | DelMar (Forum /Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Das C.M.I. ist ein Zusatzmodul für mehrere "frei programmierbare Universalregler" der Firma Technische Alternative. Damit können die Steuerungen UVR1611, UVR16x2, RSM610, CAN-I/O45, CAN-EZ2, CAN-MTx2 und CAN-BC2 ins lokale Netzwerk eingebunden werden.
Das C.M.I. bietet eine JSON-Schnittstelle an, über die Input, Output und DL-Bus Werte der angeschlossenen Steuerungen abgefragt werden können.
Die Dokumentation zur hier verwendeten JSON-API des C.M.I. befindet sich hier: https://www.ta.co.at/download/dokumente/ unter "Regelgeräte & Erweiterungen"
Hinweise zum Betrieb mit FHEM
Die JSON-API erlaubt maximal eine Abfrage pro Minute. Darüber hinausgehende Versuche werden mit der Meldung TOO_MANY_REQUESTS
abgewiesen.
Wird ein Gerät nicht unterstützt, beantwortet das CMI die Anfrage mit dem Status DEVICE NOT SUPPORTED
.
Die folgenden Geräte werden laut API Dokumentation Version 3 unterstützt (Quelle siehe oben).
Device | ID (HEX) | Supported |
---|---|---|
CoE | 7F | No |
UVR1611 | 80 | Yes |
CAN-MT | 81 | No |
CAN-I/O44 | 82 | No |
CAN-I/O35 | 83 | No |
CAN-BC | 84 | No |
CAN-EZ | 85 | No |
CAN-TOUCH | 86 | No |
UVR16x2 | 87 | Yes |
RSM610 | 88 | Yes |
CAN-I/O45 | 89 | Yes |
CMI | 8A | No |
CAN-EZ2 | 8B | Yes |
CAN-MTx2 | 8C | Yes |
CAN-BC2 | 8D | Yes |
CUVR65 | 8E | Yes |
CAN-EZ3 | 8F | Yes |
UVR610 | 91 | Yes |
UVR67 | 92 | Yes |
BL-NET | A3 | No |
Welches Gerät erkannt wurde, wird in FHEM außerdem im Internal CAN_DEVICE
angezeigt.
Zusätzlich zur Anbindung an die offizielle API kann dieses Modul auch den Status der Ausgänge zeigen, so wie das CMI Webinterface das auch macht. Die Abfrage davon ist nicht an das 60 Sekunden Limit gebunden. Auch das CMI Webinterface fragt diese URL zB alle 5 Sekunden ab.
Einbindung in FHEM
defmod <name> TA_CMI_JSON <ip> <nodeId> [<queryParams>]
Konkretes Beispiel:
defmod cmi TA_CMI_JSON 192.168.4.250 1 I,O,D
Die nodeId
verweißt auf die UVR16x2. Im CMI Web-Interface im Punkt CAN Bus wird ein Bild der UVR gezeigt. Daneben findet sich auch die Information, welcher Node das ist. Bei mir ist es die 1
.
queryParams
kann entweder I
, O
oder D
für Input, Output oder DL-Bus sein.
Damit wird angegeben, welche Informationen vom CMI abgefragt werden sollen.
Diese Abfrage kann, durch Komma getrennt, auch kombiniert erfolgen: I,O,D
. Achtung: keine Leerzeichen verwenden.
Falls nur der Status der Ausgänge (Hand-Ein, Hand-Aus, Auto-Ein, Auto-Aus) abgefragt werden soll, können die queryParams weggelassen werden.
Die Gerätedefinition ist komplett, die Konfiguration aber noch nicht vollständig.
Um Werte tatsächlich als Readings in FHEM zu speichern, müssen noch Namen für eben jene Readings vergeben werden.
Dies erfolgt mit Hilfe der Attribute readingNamesInputs
, readingNamesOutputs
und readingNamesDL-Bus
.
So wird mittels Index ein Name für jeden Wert definiert.
Beispiel:
attr cmi readingNamesDL-Bus 1:Durchfluss_Solar 2:T.Solar_RL
Die Reihenfolge der Werte ist im UI der UVR16x2 sichtbar. Bitte beachten: bei dem hier verlangten Index handelt es sich nicht um die Absolute Nummer des Wertes, sondern nur um seine Reihenfolge:
Im hier gezeigten Beispiel muss Ladepumpe-Warmwasser
als Index 3
angegeben werden, da es der dritte Wert ist - nicht als 6
, was der Nummer des Ausgangs entsprechen würde.
Das konkrete Beispiel für die Outputs sieht so aus:
attr cmi readingNamesOutputs 1:UWP_FBH 2:UWP_Sonde 3:UWP_WW 4:UWP_Solar
Mit richtig konfigurierten Attributen werden die Readings wie im Screenshot angezeigt.
Anzeige des Status der Ausgänge
Das CMI Webinterface zeigt am oberen Bildschirmrand eine Statusübersicht über alle Ausgänge in beinahe Echtzeit.
Dafür müssen die Attribute outputStatesInterval
und readingNamesOutputs
gesetzt sein.
Zur Einmaligen Abfrage kann außerdem get readOutputStates
aufgerufen werden.
Damit werden dann zu den normalen Readings auch welche angelegt, die mit _State
enden. Diese können die Werte 0, 1, 3, 5 und 7 annehmen.
Wer es gern etwas sprechender hat, kann außerdem das Attribut prettyOutputStates
auf 1 setzen, dann werden auch _State_Pretty
Readings angelegt, die sprechende Werte, wie zB Auto-On
, enthalten.
01_Pumpe_FBH_State | 1 | 2021-02-20 18:10:47 |
01_Pumpe_FBH_State_Pretty | Auto-Off | 2021-02-20 18:10:47 |
Authentifizierung
Dieses Modul verwendet die Default-Zugangsdaten, um auf die CMI zuzugreifen.
Sollen andere verwendet werden, kann das über die Attribute username
und / oder password
konfiguriert werden.
Bitte beachten, dass zur Abfrage der JSON-API entweder ein admin oder user account verwendet werden muss. gast accounts dürfen keine Daten abfragen.
Ab Version 5 der API muss laut Doku ein admin Account zum Aufrufen der API verwendet werden.
Installation des Moduls
Das Modul ist seit 2.11.2018 Teil der FHEM Distribution.
Unterstützte Geräte
Obwohl das CMI mehrere Geräte am CAN-Bus unterstützt, wurde nur das UVR 16x2 vom Autor getestet, weil auch nur dieses zur Verfügung steht. Das UVR1611 wurde von Benutzern erfolgreich getestet. Berichte über weitere erfolgreiche Integrationen sind herzlich willkommen. Bei Interesse weiterer Integrationen ist eine Anfrage im Forum oder auch ein Pull-Request auf GitHub herzlich willkommen.
Alternative zu diesem Modul
Dieses Modul ist zwar sehr einfach zu konfigurieren, allerdings kann man damit unter Umständen nicht alle Werte auslesen, die man möchte. Es gibt nun ein zweites Modul, welches per Can-Over-Ethernet Werte empfangen kann; die Konfiguration gestaltet sich allerdings etwas aufwändiger. Weitere Informationen dazu gibt es hier: CanOverEthernet