HomeMatic Peering Beispiele: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{Baustelle}}
Dieser Artikel beschreibt wie mit FHEM Homematic Sensoren und Aktoren gepeert werden können. Peering ist nicht mit Pairing zu verwechseln - das wäre das Verknüpfen von Homematic Geräten mit einer Zentrale (wie beispielsweise FHEM über die IOs CUL oder HMLAN). Details zum Pairing findet man [[HomeMatic_Devices_pairen|'''hier''']].
Dieser Artikel beschreibt Beispiele, wie mit FHEM Homematic Sensoren und Aktoren gepeert werden können. Peering ist nicht mit Pairing zu verwechseln - das wäre das Verknüpfen von Homematic Geräten mit einer Zentrale (wie beispielsweise FHEM mit CUL oder mit HMLAN). Details zum Pairing findet man z.B. [[HomeMatic_Devices_pairen|hier]].


== Peering der Kanäle einer Fernbedienung mit Jalousieaktoren ==
= Grundlagen =
Beschrieben wird hier das Peering-Vorgehen einer HM-Fernbedienung mit 19 Tasten ([[HM-RC-19|HM-RC-19]]) mit mehreren HM Jalousieaktoren ([[HM-LC-Bl1-SM_Funk-Jalousieaktor|HM-LC-Bl1-SM]]).
Peeren ist das Verknüpfen von Kanälen um diese auch ohne Zentrale kommunizieren zu lassen. Mittels peering sendet ein Sensor-kanal (remote, push-button, Bewegungsmelder,...) trigger an einen Aktor-Kanal.
* peeren kann man nur Channels, nicht Devices
* gepeert wird immer ein Sensor mit einem Aktor
* Ein Sensor kann mit mehreren Aktor-kanälen gepeert sein
* Ein Aktor-channel kann mit mehreren Sensor-kanälen gepeert sein.
* der Sensor sendet eine Trigger, evtl mit einem Zusatz-wert. Es ist '''immer''' der Aktor-Kanal, der festlegt, welche Aktion ergriffen wird. Ein Button weiß also nicht, ob er ein Ein- oder Ausschalter ist, das weiss nur der Aktor! Ein Button kann demnach gleichzeitig ein Einschalter in einem Aktor und ein Ausschalter in einem anderen Aktor sein.
 
==Sensoren ==
Ist ein Sensor mit einem Aktor gepeert gibt es meist nur wenig mögliche Einstellungen. Man kann meist einstellen, dass der Peer mit burst aufgeweckt werden muss (Register peerNeedsBurst). Auch ob man mit AES rechnen muss ist einstellbar (Register expectAES).
===LEDs===
Ein ungepeerter Sensor Kanal signalisiert einen Tastendruck meist mit gelber LED. Ist der Kanal gepeert wird mit einer grünen LED signalisiert, dass ALLE peers den Empfang des Triggers bestätigt (ACK gesendet) haben. Sollten nicht alle peers ein ACK senden wird mit rot quittiert.  


Zunächst müssen die Aktoren und die Fernbedienung mit FHEM gepaired werden. Details sind unter [[HomeMatic_Devices_pairen|HomeMatic Devices pairen]] zu finden, daher ist dieser Schritt hier nur kurz angerissen.
==Aktoren==
Ist ein Sensor an den Aktor gepeert muss im Aktor eingestellt werden, welche Trigger gültig sind und welche Aktionen ergriffen werden sollen. Im Channel wird ein Satz Register angelegt, die als Reading mit '''R-<peername>...''' zusammengefasst sind. Meist sind 2 Gruppen je peer vorhanden, eine für langen '''lg''' und eine für kurzen '''sh''' Tastendruck. Die Register für long und short sind deckungsgleich, bis auf das multiExec in der Gruppe long.
===Condition table===
Mit den Register der Condition Table '''CT''' kann man Trigger filtern. so sendet beispielsweise ein Fensterkontant einen Trigger mit einem Zusatzwert open=200 oder closed=0. Die CT hat 2 Vergleichswerte, '''Hi''' und '''Lo'''. Der Zusatzwert des Triggers wird entsprechend des Einträgen in der CT-tabelle verglichen. Ist der Schalter z.B. an, dann wird auf den Eintrag in '''CTon''' genutzt. Steht dort '''geLo''' wird gprüft, ob der Zusatzwert des triggers grösser ode rgleich dem Lo-Wert ist. Ist dies nicht der Fall wird keine Aktion ausgeführt.
Register zur Conditiontable sind:
  CtDlyOff |  literal | Jmp on condition from delayOff options:geLo,between,outside,ltLo,geHi,ltHi
  CtDlyOn  |  literal | Jmp on condition from delayOn options:geLo,between,outside,ltLo,geHi,ltHi
  CtOff    |  literal | Jmp on condition from off options:geLo,between,outside,ltLo,geHi,ltHi
  CtOn    |  literal | Jmp on condition from on options:geLo,between,outside,ltLo,geHi,ltHi
  CtValHi  |0 to 255  | Condition value high for CT table
  CtValLo  |0 to 255  | Condition value low for CT table
Remotes liefern keinen zZusatzwert. Die Conditontable wird als nicht genutzt.
===jump table===
In der Jumptable wird festgelegt, zusammen mit ActionType, welche Aktion ein gültiger Trigger ausführen soll. Die Aktion ist vom Gerät abhängig


Für jedes Gerät im FHEM das Kommando "set HMLAN hmPairForSec 600" eingeben - das gibt einem 10 Minuten Zeit um den zu pairenden HM-LC-Bl1-SM Aktor aufzusuchen und dort (falls man es vorher vergessen hat) auch noch den Deckel abzuschrauben und eine der beiden Taster für mehrere Sekunden (bis die LED blinkt) zu drücken.
===internal peers===
Aktoren können eingebaute oder direkt angeschlossene Taster oder Taster-eingänge haben. Faktisch sind diese auch peers. Per Default sind diese nicht sichtbar. Man muss mit
  set <device> regSet intKeysVisib visib
um diese sichtbar und einstellbar zu machen.


Die Fernbedienung paired man ebenfalls mit "set HMLAN hmPairForSec nn" - hier reichen vielleicht auch nur 30 Sekunden, sofern man die Fernbedienung schon in der Hand hat - und einem kurzen Druck z.B. mit einem Zahnstocher auf die Pairing-Taste, die auf der Rückseite der Fernbedienung über eine kleine Öffnung oberhalb des Batteriefachs erreichbar ist.  Die Fernbedienung blinkt eine Weile und zeigt während des Vorgangs "CONFIG" an.
= Beispiele=
== Allgemein ==
Man kann Kanäle ohne Zentrale miteinander peeren. Das funktioniert nur, wenn keines der Devices gepairt ist. Dieser Fall wird hier nicht betrachtet.
Hier wird nur die Möglichkeit der peerens mit [[HomeMatic_Devices_pairen|'''gepairt''']] sind.
  set <sensChan> peerChan 0 <actChan>
betrachtet.  
Es wird davon ausgegangen, das beide Devices mit FHEM.
=== Ausführung ===
Es ist zu beachten, dass durch das Kommando die entsprechenden Nachrichten zur Verarbeitung in den Stack geschrieben werden. Je nach Gerät ist sicher zustellen, dass die Kommandos auch abgearbeitet werden. Je nach Gerät könnte es notwendig sein, Anlernen/Konfig zu drücken
=== Auswirkung===
Das Peeren sollte immer in beiden Devices ausgeführt werden, dem Sensor und dem Aktor. Per Default ist das bei peerChan auch so.
== Peering der Kanäle einer Fernbedienung mit Jalousieaktoren ==
Beschrieben wird hier das Peering-Vorgehen einer HM-Fernbedienung mit 19 Tasten ([[HM-RC-19|HM-RC-19]]) mit mehreren HM Jalousieaktoren ([[HM-LC-Bl1-SM_Funk-Jalousieaktor|HM-LC-Bl1-SM]]).


Nach diesen Aktionen sind die gepairten Geräte im FHEM zu finden.
  set fb_Btn03 peerChan 0 blind
peert die Kanäle 03 und 04 mit dem Rollo. Dabei wird ein Button für hoch und einer für runter festgelegt.
  set fb_Btn07 peerChan 0 blind single
peert nur den Button 07. Hier wird per Default ein toggle realisiert.


  set fb_Btn07 peerChan 0 blind single unset
löscht den Peer wieder.





Version vom 29. März 2014, 18:01 Uhr

Dieser Artikel beschreibt wie mit FHEM Homematic Sensoren und Aktoren gepeert werden können. Peering ist nicht mit Pairing zu verwechseln - das wäre das Verknüpfen von Homematic Geräten mit einer Zentrale (wie beispielsweise FHEM über die IOs CUL oder HMLAN). Details zum Pairing findet man hier.

Grundlagen

Peeren ist das Verknüpfen von Kanälen um diese auch ohne Zentrale kommunizieren zu lassen. Mittels peering sendet ein Sensor-kanal (remote, push-button, Bewegungsmelder,...) trigger an einen Aktor-Kanal.

  • peeren kann man nur Channels, nicht Devices
  • gepeert wird immer ein Sensor mit einem Aktor
  • Ein Sensor kann mit mehreren Aktor-kanälen gepeert sein
  • Ein Aktor-channel kann mit mehreren Sensor-kanälen gepeert sein.
  • der Sensor sendet eine Trigger, evtl mit einem Zusatz-wert. Es ist immer der Aktor-Kanal, der festlegt, welche Aktion ergriffen wird. Ein Button weiß also nicht, ob er ein Ein- oder Ausschalter ist, das weiss nur der Aktor! Ein Button kann demnach gleichzeitig ein Einschalter in einem Aktor und ein Ausschalter in einem anderen Aktor sein.

Sensoren

Ist ein Sensor mit einem Aktor gepeert gibt es meist nur wenig mögliche Einstellungen. Man kann meist einstellen, dass der Peer mit burst aufgeweckt werden muss (Register peerNeedsBurst). Auch ob man mit AES rechnen muss ist einstellbar (Register expectAES).

LEDs

Ein ungepeerter Sensor Kanal signalisiert einen Tastendruck meist mit gelber LED. Ist der Kanal gepeert wird mit einer grünen LED signalisiert, dass ALLE peers den Empfang des Triggers bestätigt (ACK gesendet) haben. Sollten nicht alle peers ein ACK senden wird mit rot quittiert.

Aktoren

Ist ein Sensor an den Aktor gepeert muss im Aktor eingestellt werden, welche Trigger gültig sind und welche Aktionen ergriffen werden sollen. Im Channel wird ein Satz Register angelegt, die als Reading mit R-<peername>... zusammengefasst sind. Meist sind 2 Gruppen je peer vorhanden, eine für langen lg und eine für kurzen sh Tastendruck. Die Register für long und short sind deckungsgleich, bis auf das multiExec in der Gruppe long.

Condition table

Mit den Register der Condition Table CT kann man Trigger filtern. so sendet beispielsweise ein Fensterkontant einen Trigger mit einem Zusatzwert open=200 oder closed=0. Die CT hat 2 Vergleichswerte, Hi und Lo. Der Zusatzwert des Triggers wird entsprechend des Einträgen in der CT-tabelle verglichen. Ist der Schalter z.B. an, dann wird auf den Eintrag in CTon genutzt. Steht dort geLo wird gprüft, ob der Zusatzwert des triggers grösser ode rgleich dem Lo-Wert ist. Ist dies nicht der Fall wird keine Aktion ausgeführt. Register zur Conditiontable sind:

  CtDlyOff |  literal | Jmp on condition from delayOff options:geLo,between,outside,ltLo,geHi,ltHi
  CtDlyOn  |  literal | Jmp on condition from delayOn options:geLo,between,outside,ltLo,geHi,ltHi
  CtOff    |  literal | Jmp on condition from off options:geLo,between,outside,ltLo,geHi,ltHi
  CtOn     |  literal | Jmp on condition from on options:geLo,between,outside,ltLo,geHi,ltHi
  CtValHi  |0 to 255  | Condition value high for CT table
  CtValLo  |0 to 255  | Condition value low for CT table

Remotes liefern keinen zZusatzwert. Die Conditontable wird als nicht genutzt.

jump table

In der Jumptable wird festgelegt, zusammen mit ActionType, welche Aktion ein gültiger Trigger ausführen soll. Die Aktion ist vom Gerät abhängig

internal peers

Aktoren können eingebaute oder direkt angeschlossene Taster oder Taster-eingänge haben. Faktisch sind diese auch peers. Per Default sind diese nicht sichtbar. Man muss mit

 set <device> regSet intKeysVisib visib

um diese sichtbar und einstellbar zu machen.

Beispiele

Allgemein

Man kann Kanäle ohne Zentrale miteinander peeren. Das funktioniert nur, wenn keines der Devices gepairt ist. Dieser Fall wird hier nicht betrachtet. Hier wird nur die Möglichkeit der peerens mit gepairt sind.

 set <sensChan> peerChan 0 <actChan> 

betrachtet. Es wird davon ausgegangen, das beide Devices mit FHEM.

Ausführung

Es ist zu beachten, dass durch das Kommando die entsprechenden Nachrichten zur Verarbeitung in den Stack geschrieben werden. Je nach Gerät ist sicher zustellen, dass die Kommandos auch abgearbeitet werden. Je nach Gerät könnte es notwendig sein, Anlernen/Konfig zu drücken

Auswirkung

Das Peeren sollte immer in beiden Devices ausgeführt werden, dem Sensor und dem Aktor. Per Default ist das bei peerChan auch so.

Peering der Kanäle einer Fernbedienung mit Jalousieaktoren

Beschrieben wird hier das Peering-Vorgehen einer HM-Fernbedienung mit 19 Tasten (HM-RC-19) mit mehreren HM Jalousieaktoren (HM-LC-Bl1-SM).

 set fb_Btn03 peerChan 0 blind

peert die Kanäle 03 und 04 mit dem Rollo. Dabei wird ein Button für hoch und einer für runter festgelegt.

 set fb_Btn07 peerChan 0 blind single

peert nur den Button 07. Hier wird per Default ein toggle realisiert.

 set fb_Btn07 peerChan 0 blind single unset

löscht den Peer wieder.