DOIF/Labor - ausführbare, praxisnahe Beispiele als Problemlösung zum Experimentieren: Unterschied zwischen den Versionen
Trelle (Diskussion | Beiträge) |
Trelle (Diskussion | Beiträge) |
||
Zeile 20: | Zeile 20: | ||
===Operatorenrangfolge=== | ===Operatorenrangfolge=== | ||
[[DOIF/Operatorenrangfolge]] | [[DOIF/Operatorenrangfolge]] | ||
===Mehrfachnutzung eines Tasters=== | |||
===[[DOIF/ | [[DOIF/Mehrfachnutzung eines Tasters]] | ||
===Zeitsteuerung mit manuell Ein/Aus=== | |||
===[[DOIF/Ein- und Ausgabe in FHEMWEB und Tablet-UI am Beispiel einer Schaltuhr | [[DOIF/Ein- und Ausgabe in FHEMWEB und Tablet-UI am Beispiel einer Schaltuhr]] | ||
==Das komplette Labor zum Importieren== | ==Das komplette Labor zum Importieren== |
Version vom 14. November 2016, 18:00 Uhr
Zusammenfassung
Das DOIF-Labor fasst praxisnahe Beispiele in dem FHEM-Raum DOIF_Labor zusammen. Alle Beispiele sind so aufbereitet, dass sie über Raw definition ausführbar importiert werden können. Jedes Beispiel einschliesslich der dazugehörenden Geräte wird einer FHEM-Gruppe zugeordnet, der Laborgruppe. Das DOIF-Labor kann komplett und die Laborgruppen können einzeln importiert werden. Die Beispiele können die Grundlage für eigene Problemlösungen sein. Experimente mit den Beispielen und Übungen sollen helfen DOIF mit seinen Möglichkeiten besser kennenzulernen.
Nutzungshinweise
Das Labor kann komplett oder gruppenweise importiert werden, siehe DOIF/Import von Code Snippets. Die Namen definierter Geräte enden auf _Labor, ggf. mit einer nachfolgenden Nummer, damit sollen Namenskonflikte mit bestehenden Geräten reduziert werden. Durch Umbenennen betroffener Gerät im Import-Code, können Namenskonflikte beseitigt werden. Das Labor befindet sich im Raum "DOIF_Labor" und kann komplett oder gruppenweise gelöscht werden.
- Gruppe löschen mit
delete group=<Gruppenname>
- Komplette Löschung mit
delete room=DOIF_Labor
In der im Browser geöffneten Raumansicht des DOIF_Labor können die Beispiele bedient werden.
In einem zweiten Browserfenster könnte die Geräteansicht des DOIF geöffnet werden, dann ist das Verhalten des DOIF als Reaktion auf die Bedienung gleichzeitig zu beobachten, falls die Browserfenster nebeneinander liegen.
Links zu den Laborgruppen
Operatorenrangfolge
Mehrfachnutzung eines Tasters
DOIF/Mehrfachnutzung eines Tasters
Zeitsteuerung mit manuell Ein/Aus
DOIF/Ein- und Ausgabe in FHEMWEB und Tablet-UI am Beispiel einer Schaltuhr
Das komplette Labor zum Importieren
Die Definitionen sind zum den direkten Import über Raw definition vorbereitet. Zum Update muss ein vorhandenes Labor gelöscht werden.
define schrittSchalter_Labor001 DOIF ## 1 \ (["button_Labor000:short"] and $cmd=~"0|4") \ (set lamp1_Labor000 on)\ ## 2\ DOELSEIF (["button_Labor000:short"] and $cmd==1) \ (set lamp2_Labor000 on, set lamp1_Labor000 off)\ ## 3\ DOELSEIF (["button_Labor000:short"] and $cmd==2) \ (set lamp(1|2)_Labor000 on)\ ## 4\ DOELSEIF (["button_Labor000:short"] and $cmd==3) \ (set lamp(1|2)_Labor000 off) attr schrittSchalter_Labor001 alias Schrittschalter attr schrittSchalter_Labor001 cmdState Schritt 1|Schritt 2|Schritt 3|Schritt 4 attr schrittSchalter_Labor001 group Mehrfachnutzung eines Tasters attr schrittSchalter_Labor001 room DOIF_Labor define button_Labor000 dummy attr button_Labor000 alias Taster attr button_Labor000 group Mehrfachnutzung eines Tasters attr button_Labor000 room DOIF_Labor attr button_Labor000 setList short long attr button_Labor000 webCmd short:long define lamp1_Labor000 dummy attr lamp1_Labor000 alias Lampe1 attr lamp1_Labor000 group Mehrfachnutzung eines Tasters attr lamp1_Labor000 room DOIF_Labor define lamp2_Labor000 dummy attr lamp2_Labor000 alias Lampe2 attr lamp2_Labor000 group Mehrfachnutzung eines Tasters attr lamp2_Labor000 room DOIF_Labor define operatorenRang_Labor1 DOIF (([$SELF1:A] or [$SELF1:B]) and [$SELF1:C]) ## operatorenRang_Labor2 operatorenRang_Labor11 attr operatorenRang_Labor1 alias c) (A or B) and C attr operatorenRang_Labor1 cmdState Bedingung wahr|Bedingung falsch attr operatorenRang_Labor1 group Operatorenrangfolge attr operatorenRang_Labor1 room DOIF_Labor define operatorenRang_Labor11 DOIF ([$SELF:A,0] or [$SELF:B,0] and [$SELF:C,0]) ## operatorenRang_Labor1 operatorenRang_Labor2 attr operatorenRang_Labor11 alias a) A or B and C attr operatorenRang_Labor11 cmdState Bedingung wahr|Bedingung falsch attr operatorenRang_Labor11 group Operatorenrangfolge attr operatorenRang_Labor11 readingList A B C attr operatorenRang_Labor11 room DOIF_Labor attr operatorenRang_Labor11 setList A:0,#,null,1,-1,eins B:0,#,null,1,-1,eins C:0,#,null,1,-1,eins attr operatorenRang_Labor11 webCmd A:B:C define operatorenRang_Labor2 DOIF ([operatorenRang_Labor11:A] || [operatorenRang_Labor11:B] and [operatorenRang_Labor11:C]) ## operatorenRang_Labor1 operatorenRang_Labor3 operatorenRang_Labor11 attr operatorenRang_Labor2 alias b) A || B and C attr operatorenRang_Labor2 cmdState Bedingung wahr|Bedingung falsch attr operatorenRang_Labor2 group Operatorenrangfolge attr operatorenRang_Labor2 room DOIF_Labor define operatorenRang_Labor3 DOIF ([operatorenRang_Labor11:A] =~ "ein|1") ## operatorenRang_Labor1 operatorenRang_Labor2 operatorenRang_Labor11 attr operatorenRang_Labor3 alias d) A =~ "ein|1" attr operatorenRang_Labor3 cmdState Bedingung wahr|Bedingung falsch attr operatorenRang_Labor3 group Operatorenrangfolge attr operatorenRang_Labor3 room DOIF_Labor define time_switch_Labor DOIF (["$SELF:mybutton: on"] or [[$SELF:mybegin,"00:00"]])\ (set lamp_Labor000 on)\ DOELSEIF (["$SELF:mybutton: off"] or [[$SELF:myend,"00:01"]])\ (set lamp_Labor000 off) attr time_switch_Labor alias Schaltuhr attr time_switch_Labor cmdState on|off attr time_switch_Labor group Zeitsteuerung mit manuell Ein/Aus attr time_switch_Labor readingList mybutton mybegin myend attr time_switch_Labor room DOIF_Labor attr time_switch_Labor setList mybutton:on,off mybegin:time myend:time attr time_switch_Labor webCmd mybutton:mybegin:myend define lamp_Labor000 dummy attr lamp_Labor000 alias Lampe attr lamp_Labor000 group Zeitsteuerung mit manuell Ein/Aus attr lamp_Labor000 room DOIF_Labor save
weitere Links
- DOIF
- DOIF/Tools und Fehlersuche
- DOIF/Tipps zur leichteren Bedienung Erstellung, Bearbeitung, Syntaxhervorhebung, Klammerprüfung, Suchen&Ersetzen, uvm. (nicht nur) von DOIF