Z-Wave: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Forenbeitrag verlinkt)
Zeile 234: Zeile 234:
Auf dem Markt sind mehrere Varianten des Thermostates LC-13 erhältlich. Darum beim Kauf unbedingt auf die genaue Bezeichnung LC-13 (014G0013) achten ({{Link2Forum|Topic=38041|Message=303146}}).  
Auf dem Markt sind mehrere Varianten des Thermostates LC-13 erhältlich. Darum beim Kauf unbedingt auf die genaue Bezeichnung LC-13 (014G0013) achten ({{Link2Forum|Topic=38041|Message=303146}}).  


=== DüWI/Popp ===
=== DüWI ===
Geräte von DÜWI liefern bei örtlicher Betätigung kein automatisches Funk-Signal über die Statusänderung. Das liese sich nur durch eine regelmäßige Statusabfrage durch Fhem (beispielsweise <code>define Status_Abfrage at +*00:03:00 get <name> swmStatus</code>) beheben.
Geräte von DÜWI liefern bei örtlicher Betätigung kein automatisches Funk-Signal über die Statusänderung. Das liese sich nur durch eine regelmäßige Statusabfrage durch Fhem (beispielsweise <code>define Status_Abfrage at +*00:03:00 get <name> swmStatus</code>) beheben.
Einige Produkte von [http://zwave.me Z-Wave.Me] basieren auf DÜWI-Geräten. Diese Z-Wave.Me Produkte haben jedoch eine erweiterte Firmware, welche die genannte und weitere Firmware-Schwächen der Original-Produkte von DÜWI behebt.
Einige Produkte von [http://zwave.me Z-Wave.Me] basieren auf DÜWI-Geräten. Diese Z-Wave.Me Produkte haben jedoch eine erweiterte Firmware, welche die genannte und weitere Firmware-Schwächen der Original-Produkte von DÜWI behebt.
Zeile 265: Zeile 265:
==== PHI_PAN04 Relais Unterputzeinsatz 2 Schalter a 1.5kW mit Messfunktion ====
==== PHI_PAN04 Relais Unterputzeinsatz 2 Schalter a 1.5kW mit Messfunktion ====
siehe {{Link2Forum|Topic=28046}}
siehe {{Link2Forum|Topic=28046}}
=== Popp ===
==== POPE004001 Z-Wave Rauchmelder mit Innensirene ====
siehe {{Link2Forum|Topic=39856}}


=== Z-Wave.Me ===
=== Z-Wave.Me ===

Version vom 13. August 2015, 08:37 Uhr

ZWDongle
Zweck / Funktion
Einbindung Z-Wave-Gateways
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) ZWave
Modulname 00_ZWDongle.pm
Ersteller Rudolf König (Forum)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


ZWave
Zweck / Funktion
Ansteuerung Z-Wave-Geräte über ZWDongle
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) ZWave
Modulname 10_ZWave.pm
Ersteller Rudolf König (Forum)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Z-Wave ist ein drahtloser Kommunikations-Standard im 868 Mhz-Band (Europa), der von der Firma Sigma Designs und der Z-Wave Alliance, einen Zusammenschluss von mehreren Hundert Herstellern, für die Heimautomatisierung entwickelt wurde. Es existieren mehr als 1000 zertifizierte Produkte verschiedenster Hersteller, die innerhalb eines gemeinsamen Z-Wave-Netzes einsetzbar sind. (Quelle: Wikipedia)

Auf dieser Seite werden Grundlagen eines Z-Wave Systems und dessen Einrichtung in Fhem beschrieben.

Z-Wave

Nodes - Controller und Slaves

Ein Z-Wave-Netz besteht aus mindestens 2 Geräten, den sogenannten Nodes (Knoten). Es setzt sich zusammen aus dem steuernden Controller (Zentrale) und min. 1 bis max. 231 gesteuerten Slaves (Geräten).

Home-Id und Node-ID

Innerhalb eines Z-Wave-Netzes gibt es zu 2 Identifikationsnummern zur Kennzeichnung der Netzstruktur:

  1. Home-ID: Gemeinsame Identifikationsnummer aller Nodes in einem Netz zur Abgrenzung gegenüber anderen Netzen. Nur Nodes mit der gleichen Home-ID können miteinander kommunizieren.
  2. Node-ID: Identifikationsnummer zur eindeutigen Kennzeichnung von jedem Node im Netz.

Die Home-ID ist im Controller (fest) hinterlegt und seine Node-ID ist typischerweise 1. Die Slaves haben zunächst keine Home-ID und Node-ID. Bei der Inklusion (Aufnahme) der Slaves in das Z-Wave-Netz überträgt der Controller seine Home-ID auf die Slaves und weist den Slaves eine eindeutige Node-ID im Netz zu, mit der Sie direkt angesprochen werden.

Besondere Node-ID ist die 255. Eine Nachricht an die Node-ID 255 kann von allen Z-Wave-Nodes ausgewertet werden (Broadcast)

Primär- und Sekundärcontroller

Der Controller, der durch Zuteilung seiner Home-ID auf die Slaves, das Netz aufbaut, ist der Primärcontroller. Grundsätzlich können in einem Netz mehrere Controller existieren, aber immer nur ein Primärcontroller. Weitere in das Netz eingebundene Controller werden zum Sekundärcontroller. Nur der Primärcontroller kann die Inklusion (Einbindung) der Nodes in das Netz durchführen. Hingegen können sowohl Primär- als auch Sekundärcontroller die Exklusion (Ausschluss) eines Nodes aus dem Netz vornehmen.

Acknowledge

Im Z-Wave-Netz werden Nachrichten vom Empänger-Node an den Sender-Node rückbestätigt (Acknowledge). Bei ausbleibendem Acknowledge wiederholt der Sender-Node die Nachricht bis zu 2 mal. Hierdurch wird eine höhere Betriebssicherheit des Z-Wave-Netzes erreicht. Bei Broadcast-Nachrichten an die Node-ID 255 findet keine Rückbestätigung statt.

Vermaschtes Netzwerk mit Routing

Z-Wave nutzt als Netzwerktopologie ein mesh network (vermaschtes Netzwerk), d. h. jeder Node ist mit einem oder mehreren anderen Nodes verbunden. Das hat den Vorteil, dass eine Nachricht zwischen zwei Nodes übermittelt werden kann, selbst wenn diese nicht direkt miteinander kommunizieren können, z. B. weil sie zu weit voneinander entfernt sind. In diesem Fall wird die Funk-Nachricht über einen oder mehrere „Zwischen-Nodes“ übertragen; dieser Vorgang wird Routing genannt. (Quelle: Wikipedia)

Informationen über das optimale Routing werden bei der Inklusion der Nodes in einer Routing-Tabelle des Primärcontrollers gespeichert. Dies geschieht durch Abfrage des Nodes, welche weiteren Nodes er erreichen kann. Durch örtliche Änderung oder Defekte von Nodes können die in der Routing-Tabelle gespeicherten Informationen fehlerhaft bzw. suboptimal werden. Dies kann sich in Funkkommunikationsproblemen im Netzwerk äußern. Hier kann ein per Software manuell angeforderter Neuaufbau der Routing-Tabelle gegebenenfalls Abhilfe schaffen. Bei Geräten und Controllern mit aktuellen Firmware-Versionen (SDK 4.5x und SDK 6.xx oder größer) und Unterstützung von Explorer Frames kann sich die Routing-Tabelle unter bestimmten Bedingungen auch automatisch aktualisieren ("Selbstheilung")[1].

Command Classes

Die Steuerung und Kommunikation der Nodes erfolgt über Command Classes (Kommandoklassen). Die Command Classes sind nach Gerätefunktionen unterteilt.

Alle Z-Wave-Geräte haben als gemeinsame kleinste Übereinstimmung die Class Basic.

Z-Wave-Geräte haben im Originalzustand eine bestimmte arbeitsfähige Grund-Konfiguration. Anpassbar an individuelle Bedürfnisse ist die Konfiguration über die Class Configuration.

Durch eine Assoziation wird definiert, welche Geräte miteinander direkt -ohne Umweg über den Controller- kommunizieren können. Auch bei Ausfall des Controllers können diese Geräte ihre gemeinsame Funkton ausüben. Zudem dienen Assoziationen der Geschwindigkeitssteigerung und Funklastreduzierung innerhalb des Netzes. Angelegt werden Assoziationen über die Class Association.

Dies sind nur die allerwichtigsten Command Classes. Weitere Command Classes sind den Handbüchern zu entnehmen.

Z-Wave in Fhem

Allgemein

Fhem wird fortwährend weiterentwickelt und verbessert. Daher ist es zwingend notwendig, dass Fhem auf dem aktuellsten Stand ist. Dazu nach der Fhem-Installation den Befehl update ausführen und anschließend shutdown restart durchführen. Genauso auch vor Anfragen im Forum die Aktualität von Fhem überprüfen.

Die Nutzung von Z-Wave in Fhem ist für den Anfänger nur mit der standardmäßig eingeschalteten autocreate-Funktion einfach umsetzbar. Die Kenntnis der Fhem-Grundlagen und Durcharbeitung der Anfänger-Lektüren wird im Folgenden vorausgesetzt. Insbesondere ist Heimautomatisierung mit Fhem Pflicht, auch wenn es nicht speziell Z-Wave behandelt, so werden doch wesentliche Punkte für ein Verständnis von Fhem vermittelt.

Im Folgendem und auf den Wiki-Seiten der Einzelgeräte werden immer wieder Auszüge aus der Konfiguration dargestellt. Diese dienen zur Erläuterung und Veranschaulichung. Die Bearbeitung der Konfiguration sollte -zur Verhinderung von Fehlern- nach Möglichkeit immer über das "Befehl-Eingabefeld" und die "Objektdetails" erfolgen.

Vorbereitung

Die Bedienungsanleitungen (Handbücher) sind zwingende Voraussetzung zur korrekten Einbindung und Konfiguration von Z-Wave-Geräten in Fhem. Sie müssen daher vorliegen. Die Handbücher und technischen Informationen vieler Z-Wave-Geräte sind -trotz verschiedener Hersteller- zentral unter http://www.zwave.de/handbuecher/ in Deutsch abrufbar. Der Aufbau aller dort veröffentlichten Handbücher ist gleichartig, so dass man einen schnellen Einstieg in die Produkte und deren technischen Eigenschaften von verschiedenen Herstellern findet. Manche Hersteller (z.B. Fibaro) bieten zusätzlich auf Ihren Internetseiten noch separate, eigene Handbücher an. Bei ZWave-Plus-zertifizierten Geräten sind die Handbücher zudem unter http://products.z-wavealliance.org suf der gerätespezifischen Seite zu finden.

Definition des Gateways / Controllers

Autocreate des Gateways

Fhem kann mit einem Funkgateway Z-Wave-Funk empfangen und senden. Z-Wave-Gateways existieren von verschiedenen Herstellern.

Das Z-Wave-Gateway wird unter Linux nach Anschluss an den Fhem-Rechner beim nächsten Fhem-Start oder ohne Fhem-Neustart durch Aufruf des Befehls usb scan zumeist automatisch erkannt und grundlegend durch entsprechende Einträge in der Konfiguration definiert. Ein manuelles Anlegen des ZWDongle-Moduls oder Eingriffe in die Konfiguration sind normalerweise nicht notwendig und auch nicht ratsam. Unter Windows ist ein manuelles Anlegen der Definition des ZWave-Gateways wegen fehlender Unterstützung des Befehls usb scan notwendig. Das Fhem-Gateway-Device ist nach der Definition in Fhem im Raum "Everything" zu finden.

Beispiele der automatisch erzeugten define-Zeile in der Konfiguration:

Aeon Labs Z-Stick an der Fritzbox:

define ZWDongle_1 ZWDongle /dev/ttyUSB0@115200

Vision Z-Wave USB Stick ZU 1401 EU am Raspberry Pi:

define ZWDongle_1 ZWDongle /dev/ttyACM0@115200

Folgende Gateways wurden bereits erfolgreich mit Fhem eingesetzt:

  • AEON Labs Z-Stick S2 (SDK 5.x; aktuellste Firmware 3.07 ist von 6/2010)
  • Goodway WD6001 (SDK ??)
  • Razberry in Verbindung mit Raspberry Pi (neue Gen5 Razberry: Z-Wave Plus[2]) (Notwendige Vorarbeiten: Beitrag)
  • Vision Z-Wave USB Stick ZU 1401 EU (VIS_ZU1401; SDK 6.x)
  • Z-Wave.Me Z-StickC (Beitrag)
  • Z-Wave USB Stick (ZME_UZB1; Z-Wave Plus) (Thema)

Folgende Gateways sind nicht mit Fhem einsetzbar:

  • Merten Funk-USB-Datenschnittstelle CONNECT

Sollte das eigene Gateway hier nicht aufgeführt sein, ist aufgrund der Standardisierung dennoch die Chance für eine erfolgreiche Einbindung des Gateways in Fhem vorhanden. Bitte dies hier oder im Forum entsprechend vermerken.

Bei der Auswahl des Gateways (und auch der Sensoren/Aktoren) empfiehlt es sich, auf das unterstützte SDK zu achten. Gateways mit Unterstützung von SDK 4.5x und 6.x oder neuer bieten mehr Funktionen, insbesondere auch hinsichtlich der Netzwerkstabilität (Explorer Frames), als Gateways mit ältere SDK-Versionen. Aber ACHTUNG: das SDK 5.x ist älter als SDK 4.5x. Details hierzu enthält das wiki.zwaveeurope.com. Einen Hinweis auf ein derzeit aktuelles SDK bietet auch die Z-Wave Plus-Zertifizierung.

homeId und nodeList des Gateways

Zur manuellen Definition von Z-Wave Aktoren und Sensoren ist die homeId notwendig. Bei der hier bevorzugten Definition der Geräte durch autocreate ist die Kenntnis der homeId nicht zwingend. Jedoch kann durch Abfrage der homeId direkt nach Einbindung des Zwave-Gateways dessen Funktionsfähigkeit getestet werden.

Die homeId und CtrlNodeId des Gateways wird mit folgendem Befehl ausgelesen (ZWDongle_1 ist im folgenden durch den eigenen Gatewaynamen zu ersetzen):

get ZWDongle_1 homeId

ergibt beispielsweise:

ZWDongle_1 homeId => HomeId:e345c456 CtrlNodeId:01 

Die aktuelle Liste der Z-Wave Nodes, die bereits am Gateway registriert/inkludiert sind, wird mit dem folgendem Befehl ausgelesen:

get ZWDongle_1 nodeList

ergibt beispielsweise:

ZWDongle_1 nodeList => 1,2,3,4,5 

Definition von Geräten / Slaves

Hinzufügen eines neuen Z-Wave Geräts / Inklusion

Zuerst wird das Z-Wave Gateway in den Standard-Modus zur Inklusion (zum Aufnehmen) neuer Geräte gesetzt:

set ZWDongle_1 addNode on

Bei der Standard-Inklusion muss direkter Funkkontakt zwischen Gateway und zu inkludierendem Z-Wave Gerät bestehen.

Sofern Z-Wave Gateway und Z-Wave Geräte Explorer Frames unterstützen, sollte statt dem obigen Befehl besser der Network-Wide-Modus für die Inklusion genutzt werden:

set ZWDongle_1 addNode nwOn

Bei der Network-Wide-Inklusion muss kein direkter Funkkontakt zwischen Gateway und zu inkludierendem Z-Wave Gerät bestehen. Es reicht, wenn das zu inkludierende Gerät über andere bereits inkludierte Geräte mit Explorer Frames-Unterstützung erreicht werden kann. Die Network-Wide-Inklusion ist zu bevorzugen, da die Z-Wave-Geräte regelmäßig an Ihren örtlichen Endpositionen inkludiert werden können. Dadurch werden bei der Inklusion direkt die korrekten Routen gespeichert.

Nachdem das Gateway in den Inklusionmodus geschaltet wurde, muss das Gerät in den Inklusionsmodus (Aufnahmemodus) versetzt werden. Wie dies zu erfolgen hat, ist im Handbuch des Geräte nachzulesen. Typisch sind ein- oder dreimaliges Drücken einer Taste am Gerät oder beim Anlegen der Versorgungsspannung. Durch die Inklusion werden Home-ID und Node-ID im Gerät gespeichert. Zudem teilt das Gerät über ein spezielle Funknachricht (NIF=Node Information Frame) dem Controller seinen Gerätetyp und seine Geräteeigenschaften mit. Hierbei werden dem Controller auch die vom Gerät unterstützten Command Classes mitgeteilt. Aus diesen Informationen erzeugt Fhem automatisch durch autocreate das Fhem-Geräte-Device. Die vom Geräte unterstützen Command Classes werden automatisch im Attribut classes des Fhem-Geräte-Device gespeichert. Das Gerät ist damit grundlegend in Fhem definiert.

Abschließend wird der Inklusionsmodus am Z-Wave Gateway wieder ausgeschaltet:

set ZWDongle_1 addNode off

HINWEISE:

  • Nach Verständnis des Wikiseiten-Bearbeiters sollte die Network-Wide-Inklusion auch bei Gateways und Geräten ohne Explorer Frames Unterstützung genutzt werden können, da bei diesen Geräten automatisch auf die Standard-Inklusion umgestellt wird. Eine Prüfung ist mangels entsprechender Testgeräte bisher nicht möglich gewesen.
  • Bei der Standard-Inklusion ist unter Umständen nur ein geringer Abstand zwischen Gateway und Gerät möglich. Sollte die Inklusion daher nicht durchführbar sein, wenn Gateway und Gerät an ihren örtlichen Endpositionen sind (bevorzugte Variante), dann ist der Abstand zwischen diesen versuchsweise zu verringern. Bitte anschließend bei örtlicher Veränderung die Routen mit set <ZWDongle> neigbourUpdate <nodeID> neu ermitteln lassen.
  • Der NIF enthält bei manchen Geräten nicht alle unterstützten Command Classes. Fhem identifiziert während der Inklusion das Gerät und ergänzt die fehlenden Command Classes aufgrund manuell gepflegter, gerätespezifischer XML-Config-Dateien. Weiterhin fehlende Command Classes können im Attribut classes manuell entsprechend ergänzt werden. Informationen liefern die unter Links aufgeführten Datenbanken. Häufig fehlt die Pflicht-Class BASIC.

Nächster Schritt ist die Assoziation des Gerätes mit dem Gateway.

Assoziation

Geräte können über Assoziationen direkt mit anderen Geräten kommunizieren. Dies können zum einen Meldungen über den Status und Zustand der Geräte, als auch direkte Befehle sein. Zum Beispiel kann damit ein Bewegungsmelder eine entdeckte Bewegung an den Controller senden und/oder bei entdeckter Bewegung direkt eine Lampe ein- oder ausschalten.

Geräte können mehrere Assoziationsgruppen (Association Groups) haben, die für vom Hersteller vorgesehene unterschiedliche Aktionen definiert sind. Welche das sind, geht aus der jeweiligen Bedienungsanleitung hervor.

Damit Fhem Statusmeldungen von Sensoren/Aktoren anzeigen und auch darauf reagieren kann, muss der Controller (ZWDongle_1, CtrlNodeId = typischerweise 1) mit der/den passenden Assoziationsgruppe(n) des jeweiligen Gerätes <name> assoziiert werden:

set <name> associationAdd <associationGroup> <CtrlNodeId>

Typischerweise ist die Assoziationsgruppe 1 der Geräte für die Statusmeldungen an den Controller vorgesehen (Ausnahme: Fibaro). Daher legt Fhem die Assoziation von Controller mit der Assoziationsgruppe 1 des Gerätes bei der Inklusion immer automatisch an. Zudem identifiziert Fhem während der Inklusion das Gerät und setzt weitere Assoziationen mit dem Controller für von 1 abweichende Assoziationsgruppen aufgrund manuell gepflegter, gerätespezifischer XML-Config-Dateien. Ist keine XML-Config-Datei für das Gerät vorhanden, sind Assozationen des Controllers mit von 1 abweichenden Assoziationsgruppen oder weiteren Assoziationsgruppen mit dem zuvor genannten Befehl grundsätzlich manuell anzulegen.

Die richtige Anlage der Assoziation(en) des Controllers mit dem Gerät immer prüfen, da dies eine Hauptfehlerquelle bei Funktionsproblemen mit Fhem ist:

get <name> association <associationGroup>

Nahezu alle in Europa erhältlichen aktuellen Geräte unterstützen die Rückmeldung des Status via Association. Ausnahmen gibt es in Nordamerika, wo aufgrund von Patentansprüchen einige Hersteller auf die Statusrückmeldungen verzichten. Diese Geräte unterstützen in der Regel die Command Class ASSOCIATION nicht.

Nächster Schritt ist die Konfiguration des Gerätes.

Konfiguration

Die Standard-Konfiguration eines Gerätes entspricht oftmals nicht den eigenen Wünschen und Anforderungen (Einheiten usw.). Mit der Class CONFIGURATION lässt sich die Konfiguration ändern. Die Konfiguration beispielsweise bei Parametergröße 1 lässt sich mit diesem Befehl anpassen:

set <name> configByte <Parameternummer> <Parameterwert>

Die Angaben zu den Parameternummern, -größen und -werten sind im jeweiligen Geräte-Handbuch enthalten.

Zudem bietet Fhem basierend auf den XML-Config-Dateien die Möglichkeit die speziellen Parameternummern, -größen und -werten des Gerätes mit Hilfsinformationen einzubinden (Beitrag). Ein manuelles Suchen im Geräte-Handbuch ist dadurch in vielen Fällen unnötig. Für diese Funktion muss das Gerät von Fhem einmalig durch folgenden Befehl, der bei der Inklusion automatisch ausgeführt wird, identifiziert werden:

get <name> model

Die Readings model, modelID und modelConfig werden dadurch erzeugt. In model sollte der Klartextname des Gerätes stehen. Zudem sind dann spezielle set/get-Kommandos configXYZ für das Geräte im Auswahldialog der Detailansicht mit Hilfsinformationen verfügbar.

Der Aufruf von get <name> model ist auch für die Nutzung der Class MANUFACTURER_PROPRIETARY zwingende Einsatzvoraussetzung.

Entfernen eines Z-Wave-Geräts / Exklusion

Durch die Exklusion wird die Home-ID und Node-ID aus dem Gerät und das Gerät selbst aus der Node-List des Controllers gelöscht. Erst nach einer Exklusion kann das Gerät in ein anderes Z-Wave-Netz aufgenommen werden.

Zuerst wird der Z-Wave Gateway in den Standard-Modus zur Exklusion (Ausschluss) von Geräten gesetzt:

set ZWDongle_1 removeNode on

Sofern Z-Wave Gateway und Z-Wave Geräte Explorer Frames unterstützen, sollte statt dem obigen Befehl besser der Network-Wide-Modus für die Exklusion genutzt werden (siehe auch Erläuterungen zu Standard- versus Network-Wide-Inklusion unter Inklusion):

set ZWDongle_1 removeNode nwOn

Danach muss das Gerät in den Exklusionsmodus (Ausschlussmodus) versetzt werden. Wie dies zu erfolgen hat, ist im Handbuch des Geräte nachzulesen.

Abschließend wird der Exklusionsmodus am Z-Wave Gateway wieder ausgeschaltet:

set ZWDongle_1 removeNode off

Das Fhem-Device muss nach der Exklusion manuell durch delete <name> gelöscht werden.

Erneutes Hinzufügen eines bereits registrierten Z-Wave Geräts

Die an einem Z-Wave-Gateway bereits registrierten/inkludierten Geräte sind im Gateway selbst abgespeichert und können durch Fhem jederzeit wieder abgerufen werden. Dies kann man in folgenden Fällen sinnvoll nutzen:

  • Inklusion mit einem batteriegespeisten ZWave-Gateway (bspw. Aeon Labs Z-Stick) ohne Fhem-Server-Anschluss während der Inklusion
  • Umstieg eines ZWave-Netzwerkes von Fremdsoftware auf Fhem
  • Vollständiger oder teilweiser Verlust der Fhem-Konfiguration

Eine Node-Liste aller inkludierten Geräte des Gateways wird abgerufen durch:

get ZWDongle_1 nodeList

Es werden die verschiedenen IDs der inkludierten Geräte zurückgeliefert, wobei 1 regelmäßig der Z-Wave Stick selbst ist.

Mit dem folgenden Befehl wird beispielsweise das bereits im Gateway inkludierte Gerät mit der ID 2 in Fhem durch autocreate definiert:

set ZWDongle_1 createNode 2

Batteriebetriebene Geräte müssen bei Absetzen des createNode-Befehls wach sein, damit der Befehl verarbeitet werden kann. Dies erreicht man, indem man das Gerät auf "permanent wach" stellt. Falls das Gerät diese Funktion nicht anbietet, muss man es manuell aufwecken und max. 5-10 Sekunden später den createNode-Befehl absetzen. Alternativ kann das batteriebetriebene Gerät durch Versand des NIF vom Gerät aus automatisch in Fhem erzeugt werden: Hierzu am Gerät die Taste zum Versand des NIF drücken und autocreate legt das Fhem-Device an; der Aufruf von createNode entfällt dann.

Geräte-Besonderheiten

batteriebetriebene Geräte

Batteriebetriebenen Geräten können hinsichtlich ihrer Empfangsbereitschaft unterschieden werden in [3]

  • Wakeup-Geräte
  • FLIRS-Geräte

Wakeup-Geräte

Wakeup-Geräte, die die Command Class WAKE_UP unterstützen, sind momentan die häufigste Art von batteriebetriebenen Z-Wave Geräten. Zur Verlängerung der Batterielaufzeit legen sich batteriebetriebene Wakeup-Geräte „schlafen“ und wachen (Wakeup) nur in konfigurierbaren Intervallen auf, um Befehle zu verarbeiten. Das Aufwachen signalisieren die Geräte durch den Versand einer Nachricht "wakeup notification". Daraufhin senden Fhem und andere assozierte Geräte ihre bis dahin gesammelten Befehle, die dann verarbeitet bzw. beantwortet werden. Anschließend gehen die batteriebetriebenen Geräte wieder in den Schlafmodus.

Fhem teilt bei set/get-Befehlen an batteriebetriebene Geräte über einen Hinweis der Form

Scheduled for sending after WAKEUP

mit, dass der Befehl im Send-Stack abgespeichert und bei der nächsten "wakeup notification" an das Gerät versendet wird.

Das Wakeup-Interval wird wie folgt konfiguriert:

set <name> wakeupInterval <time> <NodeId>

Ein Aufwachen und Versand der "wakeup notification" von batteriebetriebenen Geräten kann für die Assoziation und Konfiguration manuell erzwungen werden. Hierzu bringt man das Gerät normalerweise in den Inklusionsmodus oder findet in der Bedienungsanleitung gegebenenfalls andere Informationen. Alternativ kann für die Dauer der Assoziation und Konfiguration das Wakeup-Interval verkürzt werden (beispielsweise auf 60 Sekunden); um es anschließend wieder auf eine batterieschonenende Dauer einzustellen.

Bei Konfigurationsänderungen an batteriebetriebenen Geräten mit set <name> config... sollte die korrekte Verarbeitung der Befehle immer mit dem entsprechenden get <name> config... überprüft werden, um eventuelle Funk-Telegrammverluste sofort festzustellen.

FLIRS-Geräte

Besonderer Behandlung bedürfen batteriebetriebene FLIRS (frequently listening routing slave) Geräte. Diese warten alle 1-1,5 Sek auf einen "beam". Näher beschrieben unter anderem hier. Zu FLIRS-Geräten liegen derzeit keine bekannten Erfahrungen mit Fhem vor.

Aeon Labs

Multi Sensor

  • aktuellste Firmware installieren
  • Attribut classes um BASIC ergänzen (ab Modulversion 8824/25.6.2015 wird das automatisch bei der Inklusion durchgeführt)
  • bei USB-Anschluss aus Attribut classes WAKE_UP entfernen
  • Parameter 101 auf 225 (oder 224 bei USB-Anschluss) setzen mit set <name> configGroup1Reports 225 oder set <name> configLong 101 225, um Batteriezustand (nicht bei 224), Temperatur, Feuchte und Helligkeit regelmäßig zu erhalten. Das Sende-Intervall wird duch set <name> configGroup1Interval <time/s> festgelegt (Standard 720 Sek).
  • Paramterübersicht pepper-Datenbank

siehe Beitrag

Danfoss

DAN_LC-13 Heizungsthermostat LC-13 (014G0013)

Das Danfoss Heizungsthermostat LC-13 muss derzeit zur korrekten Funktion mit Fhem regelmäßig mit folgendem at abgefragt werden (Beitrag):

define Atdanfoss at +*00:30 get <name> battery

Auf dem Markt sind mehrere Varianten des Thermostates LC-13 erhältlich. Darum beim Kauf unbedingt auf die genaue Bezeichnung LC-13 (014G0013) achten (Beitrag).

DüWI

Geräte von DÜWI liefern bei örtlicher Betätigung kein automatisches Funk-Signal über die Statusänderung. Das liese sich nur durch eine regelmäßige Statusabfrage durch Fhem (beispielsweise define Status_Abfrage at +*00:03:00 get <name> swmStatus) beheben. Einige Produkte von Z-Wave.Me basieren auf DÜWI-Geräten. Diese Z-Wave.Me Produkte haben jedoch eine erweiterte Firmware, welche die genannte und weitere Firmware-Schwächen der Original-Produkte von DÜWI behebt.

Fibaro

Bei vielen bisher erschienenen Devices wird die Association Group 3 für die Übermittlung von Sensor Werten verwendet.

set <name> associationAdd 3 <CtrlNodeId>

FGSS-001 Rauchmelder

Dieser Rauchmelder scheint einen falschen Batterie-Level (0%) zu senden, wenn er außerhalb des wakeup intervals abgefragt wird.

Workaround: Den Batterie-Level nicht direkt via get anfordern, sondern per notify auf den wakeup Report reagieren.

(Dieser Workaround sollte in aktuellen Fhem-Versionen durch eine Änderung in der Behandlung von Wakeup-Geräten nicht mehr notwendig sein. Mangels Rückmeldung von Besitzern des FGSS-001 ist dies aber noch nicht bestätigt.)

FGK-101 Tür/Fensterkontakt

  • Attribut classes um BASIC ergänzen (ab Modulversion 8824/25.6.2015 wird das automatisch bei der Inklusion durchgeführt)
  • Der Tür/Fensterkontakt sendet Zustandsänderungen als Report der Class BASIC (ff oder 00). Anpassung auf open/closed ist mit dem Attribut stateFormat möglich.
  • Der Status (open / closed) über die Class SENSOR_BINARY wird nur nach explizitem get gemeldet.
  • Besonderheiten bei Anschluss eines Temperatursensors: Thema

GE

GE (Model t.b.d)

Dieser Schalter unterstützt keine Statusrückmeldungen.

Merten

Laut Thema müssen bei einigen Merten-Geräten, die mit Fremdsoftware inkludiert wurden, gegebenenfalls die Geräte wieder exkludiert und dann erneut mit Fhem inkludiert werden, damit Assoziationen mit Fhem gesetzt werden können.

Philio

PHI_PAN04 Relais Unterputzeinsatz 2 Schalter a 1.5kW mit Messfunktion

siehe Thema

Popp

POPE004001 Z-Wave Rauchmelder mit Innensirene

siehe Thema

Z-Wave.Me

ZME_RC2 Fernbedienung

siehe Thema
Das Forenthema enthält eine detaillierte Beschreibung der Nutzung der Class MULTI_CHANNEL_ASSOCIATION.

Links

FAQ

Welche Schritte sind für die Einbindung von ZWave-Geräten in Fhem mindestens durchzuführen?

Voraussetzung: ZWave-Gateway ist erfolgreich eingebunden!

  1. Inklusion des Gerätes
  2. Assoziation der Assoziationsgruppe(n) des Gerätes mit dem Gateway
  3. Konfiguration des Gerätes

Wie können bei mehrkanaligen Aktoren die zusätzlichen Kanäle (>1) angesprochen werden?

  • Bei der Inklusion des Gerätes wird nur der 1. Kanal angelegt
  • zusätzliche Kanäle werden mit Hilfe der Befehle get <device> mcEndpoints und get <device> mcCapability <chid> aus der Class MULTI_CHANNEL ermittelt/angelegt (Details und Beispiel siehe commandref)

Wie kann man ohne Exklusion Nodes des Controllers löschen?

HINWEIS: Geräte sollten grundsätzlich immer über eine Exklusion aus der Nodelist des Controllers gelöscht werden.

In Sonderfällen (Gerätedefekt, gebrauchtes Gateway) können Nodes mit folgendem Vorgehen manuell gelöscht werden: Beitrag

Welche Funktion haben die XML-Config-Dateien in Fhem?

In den XML-Config-Dateien sind Informationen zu einzelnen ZWave-Geräten enthalten, die der Erleichterung der Gerätenutzung und -einbindung in Fhem dienen. Dies sind unter anderem Erläuterungen zu den Parameternummer/-werten, Assoziationsgruppen und Besonderheiten eines Gerätes. Ob eine zum Zwave-Gerät passende XML-Config Datei existiert, wird im Rahmen der Inklusion oder durch manuellen Aufruf des Befehls get <name> model ermittelt. Wird eine passende XML-Config-Datei gefunden, wird sie automatisch in Fhem eingebunden. Das Reading modelConfig enthält dann den zugehörigen XML-Config-Dateinamen. Stehen keine XML-Config-Informationen bereit, enthält das Reading modelConfig den Wert "unknown". Die Funktionsfähigkeit von Fhem mit ZWave-Geräten ist auch bei fehlender XML-Config-Datei gegeben. Es gibt dadurch keine funktionalen Einschränkungen in Fhem; es entfallen "nur" Erleichterungen und es sind unter Umständen mehr manuelle Schritte bei der Gerätenutzung/-einbindung notwendig.

Erleichterungen bei vorhandener XML-Config für ein ZWave-Gerät:

  • Bei der Inklusion:
    • Assoziationen mit dem Controller bei von Gruppe 1 abweichenender Assoziationsgruppe werden automatisch gesetzt
    • vom NIF nicht gemeldete, aber vom Gerät unterstützte Classes, werden im Attribut classes ergänzt
  • Bei der Konfiguration:
    • die Parameternummern stehen als configXY-Befehle zur Verfügung und werden mit Hilfetexten -auch zu den Parmaeterwerten- in der Detailansicht des Fhem-Device erläutert.

HINWEIS: Bitte auch bei vorhandener XML-Config-Datei nach der Inklusion und bei der Konfiguration die Assoziationen und Parameter prüfen. Von den eigenen Vorstellungen abweichende Vorgaben oder gar Fehler in der Config-Datei können nie ausgeschlossen werden. Fehler bitte im Forum (ZWave) melden.

Wie können fehlende XML-Config-Informationen für mein ZWave-Gerät in Fhem eingebunden werden?

Die XML-Config-Informationen von Fhem sind in folgenden 2 Dateien im Ordner fhem/FHEM/lib gespeichert:

  • openzwave_manufacturer_specific.xml
  • openzwave_deviceconfig.xml.gz

Die in den Dateien enthaltenen Informationen beruhen in großen Teilen auf Daten von openzwave und übernehmen daher das openzwave-Datenformat, das unter https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices näher beschrieben wird.

Die Datei "openzwave_manufacturer_specific.xml" enthält die eindeutige Kennung des ZWave-Gerätes, die in Fhem nach Aufruf des Befehls get <name> model im Reading modelId des Fhem-ZWave-Devices steht. Weiterhin wird der Klartextname dieses Gerätes, der im Reading model angezeigt werden soll, festgelegt. Zudem wird der Dateiname der eigentlichen XML-Config-Datei für das ZWave-Gerät angegeben, der später informativ im Reading modelConfig steht.

Die Datei "openzwave_deviceconfig.xml.gz" enthält in komprimierter Form die eigentlichen XML-Config-Dateien für die ZWave-Geräte. Aufbau und Struktur einer einzelnen XML-Config-Datei ist der oben verlinkten Seite bei openzwave zu entnehmen.

Prüfschritte und Vorgehensweise:

Welche Infos sollten Anfragen im ZWave-Forum enthalten?

  • Anfragen bitte nur zur aktuellsten Fhem-Version: Befehl update ergibt Ausgabe "nothing to do..."
  • detaillierte Beschreibung des Problems
  • beteiligte Komponenten (genaue Bezeichnung und evtl. Link auf Hersteller-Dokumentation)
  • list des jeweiligen devices (list <device>) oder zumindest Auszug aus der Konfiguration
  • logs mit gesetzten Attribut verbose 5 beim Gateway/Dongle (attr <device> verbose 5)

Wie kann ich zur Fortentwicklung der ZWave-Module beitragen?

  • Erfolgreichen Einsatz von neuen/bisher nicht gemeldeten ZWave-Geräten im Forum mitteilen
  • Codeschnipsel und Ideen im Forum posten
  • Fehler und Probleme im Forum melden
  • Patches für 00_ZWDongle.pm und 10_ZWave.pm erstellen
  • Wiki: Ergänzungen und Korrekturen vornehmen; neue Geräte ins Wiki aufnehmen; Codeschnipsel und Beispiele einpflegen

Wie wird ein fehlendes Kernelmodul (Fritzbox) eingebunden?

Auf der Fritzbox (und evtl. auch anderen Systemen) muss sichergestellt werden, dass das Kernelmodul für das Gateway geladen wird. Ansonsten scheitert die Einbindung des Gateways in Fhem.

Für den Aeon Labs Z-Stick muss beispielsweise auf der Fritzbox das Kernelmodul cp2101.ko geladen werden. Diese Datei ist bei einer FHEM und FritzBox 7390 Installation über das Image von fhem.de bereits enthalten. Um den Aeon Labs Z-Stick zu verwenden, muss dieses Kernelmodul vor oder beim Starten des Fhem-Servers geladen sein. Dies erreicht man durch einen Eintrag in der Datei startfhem.

Die entsprechende Zeile kann direkt unterhalb der modprobe Anweisungen eingefügt werden.

insmod $home/lib/cp2101.ko

Nach einem Fhem-Neustart sollte das Gateway (der USB Stick) nun erkannt werden.