CanOverEthernet: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
Zeile 93: Zeile 93:
Das macht man über das Attribut <code>readingsConfig</code>.
Das macht man über das Attribut <code>readingsConfig</code>.
Beispiel:<br>
Beispiel:<br>
<code>attr cmi_node_2 readingsConfig 1=T.Kollektor 2=T.Solar_VL 3=T.Aussen</code><br/>
<code>attr COE_Node_2 readingsConfig 1=T.Kollektor 2=T.Solar_VL 3=T.Aussen</code><br/>
Das Format ist immer <code>Index=Readingname</code>. Mehrere Readings werden durch Leerzeichen getrennt. Wenn etwas schiefgeht, prüfen, ob nicht eventuell ein Leerzeichen im Namen des Readings vorkommt.
Das Format ist immer <code>Index=Readingname</code>. Mehrere Readings werden durch Leerzeichen getrennt. Wenn etwas schiefgeht, prüfen, ob nicht eventuell ein Leerzeichen im Namen des Readings vorkommt.



Version vom 24. September 2019, 07:19 Uhr

CanOverEthernet
Zweck / Funktion
Empfangen von Daten über Push-Nachricht über das CMI der Firma Technische Alternative
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Thema
Modulname 70_CanOverEthernet.pm, 71_COE_Node.pm
Ersteller DelMar
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Info blue.png
Das Modul befindet sich derzeit noch in der Entwicklung; der jeweils aktuelle Stand ist diesem "Thread im Forum" zu entnehmen.


Für den Betrieb sind zwei Module nötig:

Dieses FHEM-Modul horcht auf Port 5441 nach UDP-Nachrichten, die dem Can-Over-Ethernet Protokoll folgen. Maßgebend für die Entwicklung des Moduls war die Einbindung in Steuerungen der Firma Technische Alternative.

Konfigurieren der Steuerung (am Beispiel UVR16x2)

Steuerungen, wie die UVR16x2 oder die UVR1611 haben selber keine Ethernet Anbindung, sondern können nur über CAN-Bus Daten austauschen. Das CMI stellt das fehlende Bindeglied zwischen einer Steuerung und FHEM dar, da es CAN-Bus und Ethernet unter einen Hut bringt.

Die erstmalige Konfiguration, um Werte per CAN-Bus zu exportieren, kann sehr verwirrend sein. Grundsätzlich geht ein Wert aus dem Sensor folgenden Weg:
Sensor -> CAN-Bus -> CanOverEthernet -> Empfänger (zB FHEM)
Speziell die Unterscheidung zwischen CAN-Bus und CAN-Over-Ethernet ist sehr wichtig, um alles zu verstehen.

Um diesen Weg abzubilden, sind folgende Schritte nötig:

  1. Echter Sensor: an der Steuerung wird der Wert eines echten Sensors einem CAN-Analogausgang zugewiesen.
  2. CAN-Analogwert: Am CMI wird der CAN-Analogeingang konfiguriert, damit das CMI weiß, um welchen Wert es sich hier handelt.
  3. CanOverEthernet: Am CMI wird der CanOverEthernet-Ausgang so konfiguriert, dass er den Wert aus dem CAN-Eingang ins Ethernet pusht.

Die folgenden Screenshots zeigen diese drei Schritte im Detail:
Als erstes muss man sich unter "Benutzer" entweder als Fachmann oder Experte anmelden. Das Passwort für den Experten sollte man von grundsätzlich bei der Einrichtung der Heizung erhalten haben. Sonst dort nachfragen, wo man die Steuerung gekauft hat.

CMI Menü 1.jpg

Dann muss CAN-Bus ausgewählt werden. In diesem Menü sind zwei Punkte wichtig:

  • CAN-Einstellungen
  • CAN-Analogausgänge

In CAN-Einstellungen notieren wir uns den Wert, der unter "Knoten" dargestellt wird. Bei mir ist das zB 1.

Danach gehen wir ins Menü CAN-Analogausgänge (es gibt auch CAN-Digitalausgänge, die werden zumindest von diesem FHEM-Modul aber noch nicht ausgelesen)

CMI Menü 2.1.jpg

Auf diesem Bildschirm wählt man einen unbenutzten Ausgang. Wenn man als Experte angemeldet ist, kommt man zum folgenden Bildschirm.

CMI Menü 2.2.jpg.jpg

Die erste Auswahl bezeichnet, woher der "echte" Sensorwert kommt. In diesem Beispiel ist es ein herkömmlicher "Eingang" der Steuerung.
In der zweiten Auswahl wählt man den Eingang, dessen Wert man verwenden möchte.
In der dritten Auswahl legt man fest, um welche Art von Wert es sich hierbei handelt. Die Bezeichnungen sollten eigentlich Sprechend sein.
In der vierten Auswahl legt man fest, welcher Messwert das ist. Wofür diese Information verwendet wird, weiß ich auch nicht.
Die fünfte Auswahl bietet vordefinierte Bezeichnungen an, unter welcher dieser Wert dann in der Liste "CAN-Analogausgang" geführt wird.

Die darunter liegenden Sendebedingungen erlauben noch, festzulegen, wie oft eine Aktualisierung gesendet werden soll. Ja, jeder möchte hier natürlich Echtzeit-Werte haben, es lohnt aber trotzdem, sich sinnvolle Werte zu überlegen.

Was haben wir bis hier erreicht? Der Wert aus einem analogen Sensor wird in den konfigurierten Intervallen in den CAN-Bus geschrieben. Der CAN-Bus ist noch nicht Ethernet, und für dieses FHEM-Modul noch nicht verwendbar. Nun kommt das CMI ins Spiel.

Konfigurieren des CMI

CMI Menü Eingänge.jpg

Das CMI ist mit der Steuerung per CAN-Bus verbunden. Seine Aufgabe ist, den Wert vom CAN-Bus zu lesen. Da das CAN-Bus Protokoll ausschließlich Werte und Datentypen überträgt, müssen wir im CMI erst konfigurieren, welcher Wert das denn überhaupt ist, der über den CAN-Bus hereinkommt.

Dazu wechseln wir ins Web-Interface des CMI und klicken in der Navigation oben auf "Einstellungen" und dann links auf "Eingänge", wie im Screenshot zu sehen. Hier wählen wir "CAN-Bus" und "Analog" aus, da wir ja im Interface der Steuerung einen CAN-Analogausgang konfiguriert haben.

Folgende Parameter sind nötig:

  1. Knotennummer: diese haben wir zu Beginn im Menü CAN-Einstellungen rausgefunden.
  2. Netzwerkausgang: das ist die Nummer in der Liste, unter welcher wir den CAN-Analogausgang konfiguriert haben.

Die restlichen Werte sind für die Einrichtung an dieser Stelle nicht relevant und können in der Doku nachgelesen werden.

Was haben wir bis hier erreicht? Das CMI liest die hier konfigurierten Werte vom CAN-Bus und sie stehen damit für weitere Zwecke zur Verfügung. Wie zum Beispiel in unserem Fall, den Wert per CanOverEthernet ins LAN zu senden. Wir sind beinahe am Ziel, nur ein Schritt ist noch nötig.

CMI Menü Ausgänge.jpg

Ebenfalls im Menü "Einstellungen" klicken wir nun links auf "Ausgänge" und daraufhin findet sich endlich der Begriff "CoE" in der Liste. Wir wählen hier wiederum "Analog" aus und klicken den ersten leeren Eintrag. Es folgt eine kurze Beschreibung der Parameter:

  1. Beschreibung: hier können wir eine Freitext Beschreibung angeben, wie auch zuvor dem Wert am analogen CAN-Eingang.
  2. Eingang: CAN-Bus
  3. darunter: hier muss sich nun der Wert finden, den wir im vorigen Schritt als analogen CAN-Bus Eingang konfiguriert haben.
  4. darunter: in diesem Beispiel steht hier "Messwert" und es gibt auch keine Alternativen. Der Wert wird wohl von der Konfiguration in der Steuerung übernommen.
  5. IP: an diese IP-Adresse werden die CanOverEthernet UDP-Datenpakete gesendet. Kurz: die IP von FHEM
  6. Knoten: FHEM legt für jeden Knoten ein COE_Node Device an. Egal, welcher Wert hier verwendet wird, es macht Sinn, zusammengehörige Werte an die selbe Knotennummer zu schicken.
  7. Netzwerkausgang: sozusagen der Index des Wertes. Er wird im FHEM-Modul verwendet, um den Wert einem Reading zuzuweisen.

Die Sendebedingung ist vergleichbar mit dem vorigen Schirm. Genauere Infos dazu finden sich wiederum in der Dokumentation des CMI.
Aktueller Wert zeigt an, was es verspricht. Das ist der finale Beweis, ob man bis hierher alles richtig gemacht hat.

Soweit, so gut. Die Konfiguration der Steuerung und des CMI ist soweit abgeschlossen. Nun fehlt nur noch, die Werte in FHEM als Readings zu hinterlegen.

Konfigurieren von FHEM

Das hier beschriebene FHEM-Modul macht es FHEM möglich, die CanOverEthernet UDP-Datenpakete auszulesen und in Readings zu schreiben.
Die Definition ist so einfach, wie nur irgendwie möglich:
defmod cmi CanOverEthernet Daraufhin horcht FHEM auf dem UDP-Port 5441. Sobald Werte ankommen, wird pro vorher definiertem Knoten ein eigenes Device von Typ COE_Node angelegt und im Raum "COE_Node" abgelegt.

Sobald dieses Device existiert, müssen nun dort ein letztes Mal die Werte konfiguriert werden, damit sie richtig zu Readings zugeordnet werden können.
Das macht man über das Attribut readingsConfig. Beispiel:
attr COE_Node_2 readingsConfig 1=T.Kollektor 2=T.Solar_VL 3=T.Aussen
Das Format ist immer Index=Readingname. Mehrere Readings werden durch Leerzeichen getrennt. Wenn etwas schiefgeht, prüfen, ob nicht eventuell ein Leerzeichen im Namen des Readings vorkommt.

Wenn alles gut gegangen ist, sollte man automatisch Readings in der folgenden Form vorfinden:

Readings.jpg

Alternative zu diesem Modul

Das CMI bietet auch eine API, mit der viele Werte abgerufen werden können. Im Vergleich zu diesem Modul ist die Konfiguration zwar einfacher, die Auswahl an Werten aber beschränkter. Informationen dazu gibt es hier TA_CMI_UVR16x2_UVR1611