TA CMI UVR16x2 UVR1611

Aus FHEMWiki
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
UVR 16x2 Ausgänge.png

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