"Mache Wenn" ist die freie Übersetzung des Begriffs "Doif"!

Genau dieses macht das "Doif" Modul auf dem FHEM Server. Hierbei stellt euch das Modul eine Oberfläche bereit aus der ihr einen Befehl (set) bei einem Ereignis oder zu einer bestimmten Zeit durch FHEM ausführen lassen könnt.

Ich beschreibe hier meine Vorgehensweise, da ich damit gleich eine gewisse Übersichtlichkeit des Befehls erreiche. Standardmäßig gibt man die ganze Definition, mit allen Parametern, in die Eingabeleiste von FHEM ein und erhält eine Befehlsanzeige mit willkürlichem Umbruch! Ziemlich unübersichtlich!
Hier beschreibe ich euch jetzt einmal wie ich meine Rauchmelder Sonoff Minis (guggst du unten) dazu bringe mich bei Rauchentwicklung anzurufen!

Ich lege mir mit der Eingabe von:

define Alarmanruf DOIF none

ein Doif an (Groß-, Kleinschreibung!).



Mit der Eingabe von "none" schaffe ich mir einen Platzhalter den ich später ersetzen kann!
Kommen wir zum erstellen der Befehlszeilen! Diese setzen sich eigentlich immer, wenn nicht gerade perl Code verwendet wird (wollen wir ja jetzt nicht), gleich zusammen.
Jede Zeile wird in ( ) gesetzt - Jedes Argument, Zeit oder Status eines Geräts, in [ ]! Den Status eines Geräts seht ihr wenn ihr seine Oberfläche öffnet und euch die "Readings" anseht. Die Geräte senden bei Änderung eines Readings oder in, meistens, regelmäßigen Abständen ihren Status an FHEM. Für uns ist das Reading "state" jetzt maßgebend. Andere Geräte geben aber auch z.B. die Temperatur an FHEM weiter.



Um die Befehlezeilen zu schreiben nutze ich eine stinknormalen Texteditor! Hier kann ich meine Zeilenumbrüche gleich setzen und den Platzhalter "none" dann mit Copy und Paste ersetzen.
Im Textedotor gebe ich ein:


([~Name des Geräts das schaltet - kurz AKTOR~:~Reading das den Staus angibt - also state~] eq '~Statuszustand auf den geachtet werden soll - also on~')

Puuuh! Schwere Kost!?! NÖÖ! Real sieht es so aus:



In normalem deutsch ausgedrückt: Wenn Feuer_Diele den Status on hat soll -- was passieren!? Das gebe ich jetzt ein
Befehl an mein SIP Modul "set Alarmsip" - was soll es tun "call" - meine Rufnummer für 30 Sekunden anrufen "01xxxxxxxxx 30" - und mir mitteilen "!Rauchentwicklung im Wohnbereich ich wiederhole Rauchentwicklung im Wohnbereich"
Sieht dann so aus:



Ihr seht es steht jetzt schon übersichtlich, schön nach Textreihe getrennt, untereinander!
Als nächsten Schritt sage ich noch was es tun soll wenn der Status nicht "on" ist.
Dafür gibt es die Befehlszeile "Sonst machen" oder auf gut englisch "DOELSE"! Das also als nächstes in die nächste Zeile und zur besseren Übersicht etwas eingerückt!
Und da ja nichts gemacht werden soll brauche ich auch nichts anzugeben!
Zur Veranschaulichung wie es aussieht wenn ich alles in die FHEM Eingabeleiste eingebe:



Wo fängt was an und wo hört was auf? Hier meine Variante:



Jeder Befehl hat das Recht auf seine eigene Zeile!! Es mag bei diesem Beispiel noch nicht so die Rolle spielen, aber wenn es irgendwann mehr Befehle gibt - dann schon!

Wie bekommt ihr jetzt das im Texteditor geschrieben in euer DOIF Modul?
Markiert alles im Editor und kopiert es. Auf der DOIF Oberfläche klickt ihr jetzt "DEF" an



Es öffnet sich ein neues Fenster in dem ihr "none" markiert und euren Text hineinkopiert.



Ein beherzter Klick auf "modify" übernimmt das ganze und es kann mit "Save config" in die FHEM Konfiguration geschrieben werden!

Ich für meinen Teil habe mir dieses DOIF noch in einen neu angelegten Raum mit Namen "DOIFS" gelegt! Wie das geht wisst ihr ja schon!