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
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, im Tab "Anleitungen".

Hinweise zum Betrieb mit FHEM

Die JSON-API erlaubt maximal eine Abfrage pro Minute. Darüberhinausgehende Versuche werden mit der Meldung TOO_MANY_REQUESTS beantwortet.
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
BL-NET A3 No

Welches Gerät erkannt wurde, wird in FHEM außerdem im Internal CAN_DEVICE angezeigt.

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.

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 rechts dargestellt angezeigt.







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.

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.