diff --git a/FHEM/98_DOIF.pm b/FHEM/98_DOIF.pm index 1dad38dfc..3ba1a9f48 100644 --- a/FHEM/98_DOIF.pm +++ b/FHEM/98_DOIF.pm @@ -4200,7 +4200,7 @@ alternativ mit Buchstaben-Kürzeln:

[<time>|So Mo Di Mi Do Fr Sa WE AT] WE entspricht der Ziffer 7 und AT der Ziffer 8

- +
  • Mit Hilfe des Attributes weekdays können beliebige Wochentagbezeichnungen definiert werden. Die Syntax lautet:

    @@ -4237,7 +4237,7 @@ attr di_radio weekdays sunday,monday,thuesday,wednesday,thursday,friday,saturday {[07:30|[myweekday]];fhem_set"radio off"}

    attr di_radio weekdays sunday,monday,thuesday,wednesday,thursday,friday,saturday,weekend,workdays

    - +
  • Zeitsteuerung mit Zeitintervallen   back

    Zeitintervalle werden im Format angegeben: [<begin>-<end>], @@ -4486,7 +4486,7 @@ Innerhalb der Perlberechnung können Readings, Status oder Internals wie gewohnt define di_average DOIF ([08:00]) (set TH_Modul desired {([default:temperature]+[outdoor:temperature])/2})
    attr di_average do always


    - +
  • Ersatzwert für nicht existierende Readings oder Status   back

    @@ -4513,7 +4513,7 @@ so lässt sich das über das Attribut notexist bewerkstelligen. Ein
    Syntax: attr <DOIF-module> notexist "<default value>"

    - +
  • Verzögerungen   back

    @@ -4552,8 +4552,7 @@ Beispiel:

    attr my_doif wait 1:[mydummy:state]*3:rand(600)+100,Attr("mydevice","myattr","")

    - -
    +
  • Verzögerungen von Timern   back

    @@ -4599,7 +4598,7 @@ DOELSEIF ([light] eq "off" and [sensor:humidity]<60)

      attr di_fan wait 120:0:180

      - +
    1. Zurücksetzen des Waittimers für das gleiche Kommando   back

      Im Gegensatz zu do always wird ein Waittimer mit dem Attribut do resetwait auch dann zurückgesetzt, wenn die gleiche Bedingung wiederholt wahr wird.
      @@ -4612,7 +4611,7 @@ Das Attribut do resetwait impliziert eine beliebige Wiederholung wi attr di_push wait 1800
      attr di_push do resetwait

      - +
    2. Wiederholung von Befehlsausführung   back

      @@ -4657,7 +4656,7 @@ Zwischen 5:00 und 22:00 Uhr läuft die Zirkulationspumpe alle 60 Minuten jeweils attr di_presence_simulation repeatcmd rand(3600)+2200


      - +
    3. Zwangspause für das Ausführen eines Kommandos seit der letzten Zustandsänderung   back

      @@ -4670,7 +4669,7 @@ In der angegebenen Zeitspanne wird ein Kommando nicht ausgeführt, auch wenn die attr di_frost cmdpause 3600
      attr di_frost do always

      - +
    4. Begrenzung von Wiederholungen eines Kommandos   back

      @@ -4691,7 +4690,7 @@ in Kombination mit do always bzw. do resetwait gilt f attr di_repeat repeatsame 0:2
      attr di_repeat do always


      - +
    5. Ausführung eines Kommandos nach einer Wiederholung einer Bedingung   back

      @@ -4704,7 +4703,7 @@ Für Kommandos, für die waitsame nicht gelten soll, werden die ent attr di_shuttersup waitsame 2
      attr di_shuttersup do always

      - +
    6. Löschen des Waittimers nach einer Wiederholung einer Bedingung   back

      @@ -4726,8 +4725,7 @@ Die Attribute wait und waitdel lassen sich für versch
      attr di_cmd wait 2:0
      attr di_cmd waitdel 0:2

      - -
      +
    7. Readingauswertung bei jedem Event des Devices   back

      @@ -4736,7 +4734,7 @@ Bei Angaben der Art [<Device>:<Reading>] wird das Modul Bemerkung: In früheren Versionen des Moduls war checkReadingEvent 0 die Voreinstellung des Moduls. Da die aktuelle Voreinstellung des Moduls checkReadingEvent 1 ist, hat das Setzen von checkReadingEvent 1 keine weitere Funktion mehr.

      - +
    8. Eindeutige Statuserkennung   back

      @@ -4750,7 +4748,7 @@ Bei Statusänderungen eines Devices wird bei der Angabe des Attributes add attr di_lamp do always
      attr di_lamp addStateEvent


      - +
    9. Triggerung durch selbst ausgelöste Events   back

      @@ -4763,13 +4761,13 @@ Die Auswertung des eigenen Zustands z. B. über [$SELF:cmd] funktioniert dagegen Bei der Verwendung des Attributes selftrigger all sollte beachtet werden, dass bereits in der zweiten Rekursion, wenn ein Befehl nicht durch wait verzögert wird, FHEM eine weitere Triggerung unterbindet, um Endlosschleifen zu verhindern.

      - +
    10. Setzen der Timer mit Event   back

      Wenn das Attribut timerevent ungleich Null gesetzt ist, wird beim Setzen der Timer im DOIF-Modul ein Event erzeugt. Das kann z. B. bei FHEM2FHEM nützlich sein, um die Timer-Readings zeitnah zu aktualisieren.

      - +
    11. Zeitspanne eines Readings seit der letzten Änderung   back

      Bei Readingangaben kann die Zeitspanne mit [<Device>:<Reading>:sec] in Sekunden seit der letzten Änderung bestimmt werden.
      @@ -4782,7 +4780,7 @@ attr di_lamp do always
      Bei HM-Bewegungsmelder werden periodisch Readings aktualisiert, dadurch wird das Modul getrigger, auch wenn keine Bewegung stattgefunden hat. Der Status bleibt dabei auf "motion". Mit der obigen Abfrage lässt sich feststellen, ob der Status aufgrund einer Bewegung tatsächlich upgedatet wurde.

      - +
    12. Alle Bedingungen prüfen   back

      @@ -4798,7 +4796,7 @@ Folgende Parameter können angegeben werden:
      Zu beachten ist, dass bei einer wahren Bedingung die dazugehörigen Befehle ausgeführt werden und die Abarbeitung immer beendet wird - es wird also grundsätzlich immer nur ein Befehlszweig ausgeführt und niemals mehrere.

      - +
    13. Darstellungselement mit Eingabemöglichkeit im Frontend und Schaltfunktion   back

      @@ -4834,7 +4832,7 @@ attr di_web setList myInput:first,second
      benutzerdefinierte Readings
      Bedingungsloses Ausführen von Befehlen

      - +
    14. uiTable, das User Interface   back

      @@ -5089,7 +5087,7 @@ DEF TPL_temp(STY($1.$TPL{unit},FUNC_temp($1)))
      Links
      FHEMWEB-Widgets

      - +
    15. Status des Moduls   back

      @@ -5118,7 +5116,7 @@ Der Ausführungsteil kann jeweils ausgelassen werden.
      define di_hum DOIF ([outdoor:humidity]>70) DOELSEIF ([outdoor:humidity]>50) DOELSE
      attr di_hum cmdState wet|normal|dry


      - +
    16. Anpassung des Status mit Hilfe des Attributes state   back

      @@ -5141,7 +5139,7 @@ Da man beliebige Perl-Ausdrücke verwenden kann, lässt sich z. B. der Mittelwer
      attr di_average state Average of the two rooms is {(sprintf("%.1f",([room1:temperature]+[room2:temperature])/2))}

      - +
    17. Erzeugen berechneter Readings   back

      @@ -5171,7 +5169,7 @@ attr di_temp DOIF_Readings temperature:[#average:d2:":temperature":temperature]<
      Hierbei wird der aufwändig berechnete Durchschnittswert nur einmal berechnet, statt zwei mal, wenn man die Aggregationsfunktion direkt in der Bedingung und im Ausführungsteil angeben würde.

      - +
    18. Vorbelegung des Status mit Initialisierung nach dem Neustart   back

      @@ -5183,7 +5181,7 @@ Mit dem Attribut initialize Wird der Status vorbelegt, mit Initiali
      Das ist insb. dann sinnvoll, wenn das System ohne Sicherung der Konfiguration (unvorhergesehen) beendet wurde und nach dem Neustart die zuletzt gespeicherten Zustände des Moduls nicht mit den tatsächlichen übereinstimmen.

      - +
    19. Ausführen von Befehlsketten beim Starten von FHEM   back

      @@ -5203,7 +5201,7 @@ Beispiele:
      attr di_test startup sleep 60;set lamp1 off;set lamp2 off
      attr di_test startup {myfunction()},set lamp1 on,set lamp2 on

      - +
    20. Deaktivieren des Moduls   back

      @@ -5211,10 +5209,10 @@ Ein DOIF-Modul kann mit Hilfe des Attributes disable, deaktiviert werden. Dabei Soll das Modul nur vorübergehend deaktiviert werden, so kann das durch set <DOIF-modul> disable geschehen.

      - +
    21. Set-Befehle

      - +
    22. Überprüfung aller DOIF-Bedingungen mit Ausführung eines DOIF-Zweiges   back

      @@ -5226,7 +5224,7 @@ Beispiel:

      attr di_test startup set $SELF checkall

      - +
    23. Inaktivieren des Moduls   back

      @@ -5234,7 +5232,7 @@ Mit dem set-Befehl disable wird ein DOIF-Modul inaktiviert. Hierbei Das Modul braucht mehr Rechenzeit, als wenn es komplett über das Attribut disable deaktiviert wird. Ein inaktiver Zustand bleibt nach dem Neustart erhalten. Ein inaktives Modul kann über set-Befehle enable bzw. initialize wieder aktiviert werden.

      - +
    24. Aktivieren des Moduls   back

      @@ -5247,7 +5245,7 @@ mit dem set-Befehl initialize wird ein DOIF-Modul initialisiert. Ei Im Gegensatz zum set-Befehl enable wird der letzte Zustand des Moduls gelöscht, damit wird ein Zustandswechsel herbeigeführt, der nächste Trigger führt zur Ausführung eines wahren DOIF-Zweiges. Diese Eigenschaft kann auch dazu genutzt werden, ein bereits aktives Modul zu initialisieren.

      - +
    25. Auführen von Befehlszweigen ohne Auswertung der Bedingung   back

      @@ -5281,7 +5279,7 @@ attr di_lamp setList on off
      Zusätzlich führt die Definition von setList zur Ausführung von set di_lamp on/off durch das Anlicken des Lampensymbols wie im vorherigen Beispiel.


      - +
    26. Weitere Anwendungsbeispiele   back

      Zweipunktregler a la THRESHOLD
      @@ -5570,12 +5568,12 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
      Verzögerung von Timern attr <name> timerWithWait
      erweitert wait auf Zeitangaben

      - +
    27. attr <name> do <always|resetwait>
      always wiederholt den Ausführungsteil, wenn die selbe Bedingung wiederholt wahr wird.
      resetwait setzt den Waittimer zurück, wenn die selbe Bedingung wiederholt wahr wird.
      - +

    28. Befehle wiederholen attr <name> repeatcmd <timer Bedingungszweig 1>:<timer Bedingungszweig 2>:...
      Zeit in Sekunden als direkte Angabe oder Berechnung, nach der Befehle wiederholt werden.
      @@ -5632,13 +5630,13 @@ Hier passiert das nicht mehr, da die ursprünglichen Zustände cmd_1 und cmd_2 j
      Eindeutige Statuserkennung attr <name> addStateEvent <0|ungleich Null>
      fügt einem Gerätestatus-Event "state:" hinzu. ungleich Null aktiviert, 0 deaktiviert, siehe auch addStateEvent

      - +
    29. attr <name> readingList <Reading1> <Reading2> ...
      fügt zum set-Befehl direkt setzbare, durch Leerzeichen getrennte Readings hinzu.

      attr <name> setList <Reading1>:⟨<Modifier1>,⟩<Value1>,<Value2>,<...> <Reading2>:⟨<Modifier2>,⟩<Value1>,<Value2>,<...> ...
      fügt einem Reading einen optionalen Widgetmodifier und eine Werteliste (, getrennt) hinzu. setList, widgetOverride, und webCmd
      -
      +

    30. User Interface für DOIF attr <name> uiTable{<perl code (format specification, template specification, function definition, control variable, ...)>}\n⟩<template file import, method definition, table definition>
      format specification:
      $TABLE = "<CSS-Attribute>" ergänzt das table-Elemente um CSS-Attribute.