Autor Thema: [GELÖST]Zeitkonstanten wie $month ohne Trigger  (Gelesen 594 mal)

Offline dennisk

  • New Member
  • *
  • Beiträge: 44
[GELÖST]Zeitkonstanten wie $month ohne Trigger
« am: 10 September 2022, 10:21:10 »
Hallo,

ich habe folgende DOIF-Bedingung (beispielhaft, in den genauso aufgebauten DOELSEIF kommen die anderen Monate vor):
([Fensterkontakt] eq "open" and ($month == 1 || $month == 2 || $month == 12)) {}

Dies funktioniert auch soweit wie gewünscht, aber triggert leider auch zu viel: eigentlich soll das ganze nur auf den Fensterkontakt reagieren und dann geprüft werden, welcher Monat aktuell ist. Mir ist jetzt aber aufgefallen, dass beim Monatswechsel auch getriggert wird. Mein naiver Versuch, ?$month für die ausschließliche Prüfung ohne Event-Trigger zu verwenden, hat leider nicht geklappt. Gibt es einen Weg, das mit DOIF zu erreichen, kann DOIF das überhaupt? Wenn weitere Infos benötigt werden, liefere ich die gerne.
Meine Google- und Foren-Suche war leider erfolglos, zumindest mit den mir einfallenden Suchbegriffen.
Vielen Dank schon mal.
« Letzte Änderung: 02 Oktober 2022, 17:03:36 von dennisk »

Offline Gisbert

  • Hero Member
  • *****
  • Beiträge: 2806
  • Das Ziel ist das Ziel !
Antw:Zeitkonstanten wie $month ohne Trigger
« Antwort #1 am: 10 September 2022, 13:20:42 »
Hallo dennisk,

ich würde versuchen, die Monate in den Ausführungsteil zu schieben und dort wie folgt abfragen:
{IF ($month == (1|2|12)) ()}
Es ist nicht geprüft, sollte aber funktionieren. Keine Garantie, dass es nicht eine viel bessere oder elegantere Lösung gibt.

Viele Grüße Gisbert
Aktuelles FHEM | HP ThinClient T610 | Debian11 | UniFi-Controller, AP, USG-3 | Homematic, VCCU, HMUART | ESP8266, Eigenbau | Gas-, Wasser-, Stromzähler | Sonoff | 1-Wire-Temperatursensoren | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF |  Heizungssteuerung komplett in FHEM

Offline DetlefR

  • Full Member
  • ***
  • Beiträge: 297
Antw:Zeitkonstanten wie $month ohne Trigger
« Antwort #2 am: 10 September 2022, 14:13:10 »
Benutze mal logische Verknüpfungen aus dem gleichen Level.
Also entweder && || oder and orIch vergesse das auch immer wieder was zuerst kommt && oder and Aber so kann man sich wenigstens sicher sein, dass nicht einer der beiden unerwartet Vorrang hat.

Offline Per

  • Hero Member
  • *****
  • Beiträge: 1733
Antw:Zeitkonstanten wie $month ohne Trigger
« Antwort #3 am: 10 September 2022, 14:31:24 »
Ich kann mir nicht vorstellen, dass da die Monate triggern. Da verheimlichst du uns was vom Quellcode.
Ansonsten würde ich mit =~ arbeiten, das dürfte besser zu pflegen sein.

Evtl gibt es auch eine ganz andere Lösung, aber auch da bräuchte man das gesamte List.

Online Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9971
Antw:Zeitkonstanten wie $month ohne Trigger
« Antwort #4 am: 10 September 2022, 14:45:28 »
1. $month triggert nicht - es ist eine Perlvariable
2.  $month == (1|2|12) geht nicht, wenn schon, dann $month =~ "(1|2|12)"
3. Operatorenreihenfolge siehe: http://perl-seiten.privat.t-online.de/html/perl_op.html
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline dennisk

  • New Member
  • *
  • Beiträge: 44
[GELÖST]Antw:Zeitkonstanten wie $month ohne Trigger
« Antwort #5 am: 02 Oktober 2022, 17:03:14 »
Hallo zusammen,

vielen vielen Dank für eure Antworten erstmal! Und ich muss mich entschuldigen, dass ich erst jetzt dazu komme, mich wieder zu melden.
Es ist mir peinlich, aber das Fehlverhalten rührt wohl daher, dass ich beim DOIF versehentlch do always gesetzt hatte. Beim nächsten Mal denke ich direkt dran, ein list einzustellen, dann wäre sicherlich aufgefallen.

Danke in die Runde, den Thread schließe ich direkt.

 

decade-submarginal