MSwitch Konfigurationsbeispiele

Aus FHEMWiki
Wechseln zu: Navigation, Suche

MSwitch IT_to_Sonoff

Ohne Togglefunktion / mehrere ITs und Devices in einem MSwitch

MSwitch IT.png


X mark.svg Die Konfiguration mit dem Trigger Device -> GLOBAL ist nur dann nötig, wenn mehrere IT-Devices in einem MSwitch bedient werden sollen. Andernfalls kann des IT Device direkt aus der Liste gewählt werden

Bei diesem Konfigurationsbeispiel handelt es sich um ein einfachen Beispiel, um mit einer IT Fernbedienung beliebige Geräte zu schalten (in diesem Beispiel eine Sonoff).
Ausgangssituation:

IT - Devices

- eine beliebige IT Fernbedienung, in diesem Fall 4 Kanal Baumarktfernbedienung. Die Fernbedienung ist in Fhem bereits angelernt und somit ergeben sich 4 eigenständige Devices in folgender Form (im Beispiel habe ich nur 2 Kanäle angelernt) wobei jedem Kanal ein eigenes Device zugeordnet ist

- ein bereits angelernter Sonoff als eigenständiges Device, der in diesem Fall die Schaltzustände 'ON' und 'OFF' hat.

Bei Schaltvorgängen an der Fernbedienung werden nun folgende Events im Eventmonitor generiert :

2018-05-10 06:55:39 IT IT_000FF0FFFF on
2018-05-10 06:55:39 IT IT_000FF0FFFF off
2018-05-10 06:55:39 IT IT_000FFF0FFF on
2018-05-10 06:55:39 IT IT_000FFF0FFF off

Wichtig: Die Eventverarbeitung im MSwitch Modul unterscheidet sich von der Eventdarstellung im Eventmonitor. Wird in MSwitch nur auf ein Device getriggert, muss der Name nicht angegeben werden, wird auf mehrere Device getriggert, muss der Name mit angegeben werden. Da in diesem Beispiel auf mehrere Geräte getriggert werden soll, haben die Events die in MSwitch ankommen folgendes Format:

IT_000FF0FFFF:state:on
IT_000FF0FFFF:state:off
IT_000FFF0FFF:state:on
IT_000FFF0FFF:state:off

Standardmäßig kann ich mit dem Modul MSwitch nur auf 1 Device Triggern. Um zu erreichen, dass auf mehrere Geräte getriggert werden kann muss das Attribut 'MSwitch_Expert' auf 1 gesetzt werden.
Damit erhält man in der Auswahl-Liste 'Trigger device/time:' den Eintrag 'GLOBAL'.

Dieser ist zu wählen. Somit reagiert das Modul auf ALLE Events. Um das zu verhindern müssen in dem Feld 'Trigger Device Global Whitelist:' die Geräte eingetragen werden, auf die getriggert werden soll.
Somit ist hier folgender Eintag zu machen:
IT_000FF0FFFF,IT_000FFF0FFF

Diese Einstellung ist durch den Button 'modify Trigger Device' zu speichern.

Jetzt reagiert das Modul nur nach auf Events, die von diesen beiden Geräte erzeugt werden und ab diesem Zeitpunkt werden ankommende Events von diesen Geräten in dem Reading 'last_event' angezeigt

Um nun auf ankommende Events zu reagieren, sind in dem Abschnitt 'trigger details' folgende Einstellungen vorzunehmen:

Da erst mal auf alle Events reagiert werden soll und eine Überprüfung WAS bei WELCHEM Event passieren soll später stattfindet, muss dem Modul mitgeteilt werden, das bei jedem ankommenden Event der Zweig "execute 'on' commands only"und "execute 'off' commands only" ausgeführt werden soll.
Hierzu wird ein reines Wildcard hinzugefügt (es wird jedes Event verarbeitet), indem in dem Feld "add Event" ein "*" eingegeben, und durch den Button "add Event" gespeichert wird. Nun ist dieses Wildcard in den Auswahllisten für die Zweige "execute 'on' commands only" und "execute 'off' commands only" vorhanden und sollte hier ausgewählt werden.
Diese Einstellungen sind durch "modify Trigger" zu bestätigen.

In der Auswahlliste 'affected Devises' können nun ein oder mehrere Geräte gewählt werden, die bei Eintreffen eines Events in irgend einer Form reagieren sollen (im Beispielfall ist hier nur ein Sonoff gewählt).
Auch diese Einstellung ist durch 'modify Devices' zu speichern und ab diesem Zeitpunkt sind weitere Einstellungen für die gewählten Geräte verfügbar.

In diesen Einstellungen muss nun konfiguriert werden, was, welches Gerät tun soll, bei Eintreffen welchen Events.

Wie bereits geschrieben könne folgende Events eintreffen:

IT_000FF0FFFF:state:on - Anschaltevent Kanal1
IT_000FF0FFFF:state:off - Ausschaltevent Kanal1
IT_000FFF0FFF:state:on - Anschaltevent Kanal2
IT_000FFF0FFF:state:off - Ausschaltevent Kanal2

Der in dem Beispiel geschaltete Sonoff soll nun bei drücken von "on" auf Kanal 1 und drücken von "off" auf Kanal1 entsprechend "an" und "aus" geschaltet werden.
Entsprechende Befehle müssen in den Dropdownlisten für 'MSwitch on cmd' und 'MSwitch off cmd' gewählt werden.
Nun muss das Modul noch wissen, was denn die eigentliche Condition für "on" und "off" ist. Dieses wird (in diesem Fall) in den Feldern 'on condition:' und 'off condition:' konfiguriert.

Die Bedingung für "on" soll das eintreffen des Events "IT_000FF0FFFF:state:on" sein, somit ergiebt sich in dem Feld 'on condition:' folgender Eintrag:

[$EVENT] eq "IT_000FF0FFFF:state:on"

der Eintag für 'off condition' entsprechend:

[$EVENT] eq "IT_000FF0FFFF:state:off"

Abschließend ist diese Einstellung durch 'modify Actions' zu speichern und zur Sicherheit ein 'set backup MSwitch All_Devices' durchzuführen.




Dashbuttons

MSwitch Dash.png


Hier ist es möglich, alle Dashbuttons über ein MSwitch Device zu steuern.

  • Trigger Device: Das Eventauslösende Device, in diesem Fall "dash_dhcp"
  • Trigger condition: [Dash_Ctrl:state] eq "off" sorgt dafür, das der Trigger nur dann auslöst, wenn Dash_Ctrl "aus" ist. Dieses hat den Hintergrund, dass ein Event eines Buttons nur einmal abgearbeitet wird, da Dash_Ctrl dazu neigt das Event mehrfach zu liefern. Mit Auslösen des Events wird Dash_Ctrl angeschaltet und schaltet sich nach 2 Sekunden wieder ab und kann somit nach diesen 2 Sekunden neue Events bearbeiten
  • trigger details: switch Dash_Ctrl on + execute 'on' commands wird mit "*" belegt. Damit wird jedes Event vom auslösenden Device bearbeitet und Dash_Ctrl wird auf "on" gesetzt
  • affected devices: hier ist das zu schaltenden Geräte angewählt, zusätzlich das eigene MSwitchdevice (um es nach 2 Sekunden wieder auszuschalten)
  • device_actions: "CUL_HM_HM_LC_Dim1TPBU_FM_3387C3" der Eintrag [04:00-08:00] AND [$EVENT] eq "ac-63-be-8c-d2-8b:short" in den Conditions bewirkt, das in diesem Fall das Gerät "CUL_HM_HM_LC_Dim1TPBU_FM_3387C3" getoggelt wird, wenn es zwischen 04:00-08:00 Uhr ist UND das eintreffende Event "ac-63-be-8c-d2-8b:short" ist
  • device_actions: "Dash_Ctrl" dieser Eintrag bewirkt, das Dash_Ctrl 2 Sekunden (on delay: +00:00:02) nach eintreffen des "on" - Events wieder auf off gesetzt wird und neue Events abarbeiten kann.

Es könne beliebig weitere Geräte hinzugefügt werden, die auf entsprechende Events reagieren. Ich habe hier z.B einigen Dashbuttons zu verschiedenen Zeiten verschiedene Funktionen zugewiesen.









MSwitch conf2

MSwitch conf3

Zurück zum Hauptartikel

- MSwitch.pm