Neues Modul N4HBUS und N4HMODULE

Begonnen von oliverk, 23 Oktober 2016, 12:51:26

Vorheriges Thema - Nächstes Thema

oliverk

Auf mehrfachen Kundenwunsch gibt es nun das N4HBUS und N4HMODULE Modul in der offiziellen fhem-Distribution und steht mit einem Update zur Verfügung. Es dient der Anbindung des kabelgebundenen Systems von net4home an den Rest der Welt. Ich habe die Module inzwischen 1,5 Jahre im Einsatz und somit einem Dauertest in verschiedenen Umgebungen unterzogen. Bei uns im Büro ist es kein Problem ein Bus mit mehr als 150 Modulen über einen RasPi zu überwachen.

Ziel des Moduls war es am Anfang eine Möglichkeit zu schaffen fehlende Module zu emulieren. Bei mir war es konkret ein Bewegungsmelder im Treppenhaus zum Keller. Ein Buskabel an die beste Position anzubringen war fast unmöglich und ein Kanal auf der Wand ein absolutes NoGo. Also musste ein Homematic-Bewegungsmelder an die Wand. Aus vielen Kundenprojekten kamen auch immer wieder Wüsche Steckdosen im Haus nachträglich schaltbar zu machen.

Die Module sind seit 23.10.2016 offiziell über das FHEM Update zu beziehen.

Voraussetzungen

  • Damit der fhem-Server auf den net4home Bus zugreifen kann, muss eine Busconnector im Netzwerk erreichbar sein. Derzeit habe ich nur IPv4 im Einsatz. IPv6 habe ich in dieser Konstellation noch nicht probiert, steht aber auf der ToDo.
  • Es wird in der Regel ein HS-Gateway (Raspi3) genutzt. Dort ist die notwendige Anbindung an den Bus entsprechend über eine Zusatzplatine vorhanden. Alternativ kann man aber auch ein Busconnector auf einem Windows-PC genutzt werden. Dazu braucht man ein UP-PC-Connect und den Busconnector-Service. Dieser Busconnector muss als Server konfiguriert sein.

Zunächst wird über das Modul N4HBUS eine neues Device angelegt. Dies kümmert sich um die Kommunikation zwischen fhem und dem Busconnector. Über dieses Device werden die fhem-Befehle in das net4home Busprotokoll und umgekehrt übersetzt. Grundsätzlich wird die komplette Buskommunikation dem fhem signalisiert. Werden Module über N4HMODULE definiert, werden entsprechende Befehle an die entsprechenden Objekte weitergegeben.

Die Definition erfolgt mit Angabe von IP-Adresse und Port:

define n4h N4HBUS 192.168.1.69:3478

Die IP-Adresse ist die Adresse des net4home Busconnectors. Dabei kann der Connector auch auf dem gleichen System installiert sein. Der Standardport ist die 3478.
Hat man die Verbindung erfolgreich definiert, so werden dem Device noch zwei weitere Werte in Form eines Attributes zugewiesen. Die MI (default:65281) und die OBJADR (default:32700) werden als Attribute automatisch angelegt und können nach Bedarf geändert werden. Sie dienen dazu das fhem-Modul auf dem Bus eindeutig identifizieren zu können. Innerhalb der net4home-Welt können Befehle ja abhängig vom Sender interpretiert werden.

Es können auch mehrere Bus-Devices angelegt werden, wenn man z.B. verschiedene Gebäude oder Gebäudeteile getrennt busseitig hat, aber per LAN erreichen kann.

Nun kann man verschiedenste Objekte definieren und Informationen auf den Bus schicken oder empfangen. Dabei muss dem Objekt immer der Typ mitgegeben werden, damit auch im Busprotokoll entsprechende Parameter mitgegeben werden können. Leider kann dies nicht automatisch erfolgen und muss jedem Objekt bereits bei der Definition mitgeteilt werden.

Derzeit werden folgende Typen unterstützt:

Messwerte

  • 24 - Messwert,Temperatur
  • 25 - Messwert,Helligkeit
  • 26 - Messwert,Feuchte
  • 240 - Messwert,Wind
  • 242 - Messwert,Luftdruck
  • 245 - Messwert,Regenmenge

Möchte man nun die Temperatur von einer Wetterstation (z.B. netatmo) auf den Bus senden, so definiert man ein Objekt mit der Angabe Messwert, Temperatur und der entsprechenden Objektadresse im net4home-Bus.

define n4h_28204 N4HMODULE n4h 24 28204

Damit wird das Objekt mit dem Namen n4h_28204 und der Objektadresse 28204 definiert. Der Typ 24 gibt an, dass die Daten in Form einer Temperatur auf den Bus gesendet werden. Handelt es sich um einen der oben angegebenen Messwerte, so wird zusätzlich das Attribut Interval mit dem Standardwert 300 Sekunden angelegt. Damit wird angegeben, in welchem Abstand die Werte auf den Bus gesendet werden sollen. Über einen set Befehl kann man nun den Wert (hier Temperatur) setzen. Das Intervall kann jederzeit angepasst werden. In den meisten Fällen reicht eine Aktualisierung von 5 Minute aber aus.

Beispiel:
set n4h_28204 20

Macht ja noch nicht so richtig Spaß! Deshalb sollte die Temperatur ja von einer anderen Quelle ganz automatisch kommen. So kann man zum Beispiel die Außentemperatur einer netatmo-Wetterstation auf den Bus senden. Dazu wird ein notify der netatmo Station definiert, die den entsprechenden Befehl an das Temperatur-Objekt sendet.

Beispiel:
define netatmo_Tempn4h notify netatmo_M02_00_22_00_4a_56:temperature:.* {{fhem("set n4h_28204 $EVTPART1")} }

Bekommt die Temperatur der netatmo-Station einen neuen Wert zugewiesen, so wird das sofort auch dem Objekt n4h_2804 zugewiesen und auf den Bus weitergeleitet. Gibt es keine Änderung der Temperatur in Form eines notify, so wird trotzdem im angegebenen Intervall der letzte Wert auf den Bus gesendet.




28.10.2016

  • (N4HMODULE) - Abfrage, ob es sich beim Paket um ein "IP"-Paket handelt
  • (N4HMODULE) - Update nur, wenn auch ein $value vorhanden ist
  • (N4HMODULE) - RemoveInternalTimer beim UnDef hinzugefügt
  • (N4HMODULE) - OT: aus der Attr-Liste entfernt
  • (N4HBUS)    - Commandref erweitert
  • (N4HMODULE) - automatisch den Raum "net4home" vorbelegt
  • (N4HMODULE) - stateformat wird beim Erstellen direkt angelegt
  • (N4HMODULE) - Status bei Aktoren wird nun bei on/off/toggle richtig gesetzt

Das war erst einmal Teil I der Beschreibung. Ich werde das die Tage (soweit es die Zeit zulässt) weiter ergänzen. Wichtig sind ja auch die verschiedenen Aktoren, welche man Schalten möchte. Gleichzeitig werde ich es auch in der commandref erweitern.

Oliver
Fhem: 5.7 auf RaspPi / Fhem: 5.7 auf Cubie
ca. 80 net4home Buskomponenten
zum Spielen diverse FS20, HomeMatic, EnOcean, hue Geräte, Fritz!Box 7490, Fritz!Dect 200, netatmo, eve

DLD

#1
Hallo,

ich habe eine Frage.

Ich habe den HS-Gateway im Einsatz und dazu einen zweiten Rasberry, auf dem mein fhem läuft.

Wenn ich in meiner fhem.cfg folgende Zeile eingebe:

define n4h N4HBUS 192.168.1.20:3478 (das ist die IP meines HS-Gateway)

Bekomme ich eine Fehlermeldung beim Speichern:

ERROR:
Unknown command ., try help. Unknown command ..define, try help.

Was könnte die Ursache sein?

oliverk


Kannst Du vielleicht einmal das Protokoll mit ein paar mehr Zeilen zeigen ?

Hast Du das define in der Eingabezeile eingegeben oder direkt in die cfg geschrieben ?

Oliver

Fhem: 5.7 auf RaspPi / Fhem: 5.7 auf Cubie
ca. 80 net4home Buskomponenten
zum Spielen diverse FS20, HomeMatic, EnOcean, hue Geräte, Fritz!Box 7490, Fritz!Dect 200, netatmo, eve

DLD

Hallo,

mir wurde bereits geholfen. Ein Punkt an der falschen Stelle veursachte den Fehler. Vielen Dank für Ihre Mühe.

clever-e-home

Hallo Zusammen,
ich benötige Hilfe zu Garagensteuerung mittels Homekit, in Verbindung mit einem AR6-Modul des Bussystems von Net4home. Ich kann diesen Relaiskontakt als Licht schalten, als genericdevicetype "garage" funktioniert es leider nicht. Ich vermute es liegt am falschen homebridgeMapping. Der Garagentorantrieb ist als potentialfreier Kontakt am Zusatztastereingang angeschlossen und schließt als Timer konfiguriert für eine Sekunde. Habt vielen Dank.
Gruß
Andreas
FHEM: 5.8 Bus: Net4home - 91 Module, CUL-V3 868MHz an Windows Mini PC

Schafy

Hallo,

hat jemand vielleicht eine Beispielkonfig für Schalter und Aktoren? Letztere sind vmtl. vom Typ 95, aber wie lege ich die Schalter an? Vielen Dank schon mal im Vorraus.

P.S.: Was ist aktuell eigentlich mit net4home los? Die deutsche Seite ist offline
FHEM Docker auf QNAP NAS, DBLog, Max Cube als CUL, Max TH und FK, N4H-AJ3 & N4H-AR6