Hauptmenü

httpmod und doif die 2.

Begonnen von sash.sc, 01 Februar 2026, 10:28:07

Vorheriges Thema - Nächstes Thema

sash.sc

Hallo zusammen.

Ich frage per httpmod die Spritpreise ab. Klappt auch.
Habe mir über den Eventmonitor das doif erzeugen lassen, um mir die Spritpreise per Push aus Handy zu schicken.


DEF        ([":^SuperE10"] <= 1.70)
(
{my $SE10A=ReadingsVal("AVIA","SuperE10","0");
  my $SE10RE=ReadingsVal("Raiffeisen","SuperE10","0");
  my $SE10PM=ReadingsVal("PM_Raesfeld","SuperE10","0");
  my $SE10WE=ReadingsVal("Westfalen","SuperE10","0");
  fhem ("set pushmsg msg <b>Spritpreise</b> <br> <br>AVIA  E10: $SE10A € <br>PM $SE10PM €<br> Raiff.: E10: $SE10RE €<br>West_Lemb E10 $SE10WE € ''  '' ");;}
)
DOELSE (set pushmsg msg Pech gehabt)
   FUUID      69512c38-f33f-852e-3143-7d2cd979361dc381
   FVERSION   98_DOIF.pm:0.306590/2025-12-25
   MODEL      FHEM
   NAME       Sprit_push
   NOTIFYDEV  global,.*().*
   NR         720
   NTFY_ORDER 50-Sprit_push
   STATE      cmd_1
   TYPE       DOIF
   VERSION    30659 2025-12-25 12:37:16
   eventCount 67
   READINGS:
     2026-02-01 10:14:59   Device          Raiffeisen
     2026-02-01 09:59:03   cmd             1
     2026-02-01 09:59:03   cmd_event       Sprit_push
     2026-02-01 09:59:03   cmd_nr          1
     2026-02-01 09:58:57   mode            enabled
     2026-02-01 09:59:03   state           cmd_1
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       :
         0:
           ":^SuperE10" :^SuperE10
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('',$hash,'^SuperE10',0) <= 1.70
   do:
     0:
       0           {my $SE10A=ReadingsVal("AVIA","SuperE10","0");   my $SE10RE=ReadingsVal("Raiffeisen","SuperE10","0");   my $SE10PM=ReadingsVal("PM_Raesfeld","SuperE10","0");   my $SE10WE=ReadingsVal("Westfalen","SuperE10","0");   fhem ("set pushmsg msg <b>Spritpreise</b> <br> <br>AVIA  E10: $SE10A € <br>PM $SE10PM €<br> Raiff.: E10: $SE10RE €<br>West_Lemb E10 $SE10WE € ''  '' ");;}
     1:
       0          set pushmsg msg Pech gehabt
   helper:
     NOTIFYDEV  global,.*().*
     event      SuperE10: 1.749
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Raiffeisen
     timerevent SuperE10: 1.749
     triggerDev Raiffeisen
     timerevents:
       Diesel: 1.709
       SuperE10: 1.749
       SuperE5: 1.779
     timereventsState:
       Diesel: 1.709
       SuperE10: 1.749
       SuperE5: 1.779
     triggerEvents:
       Diesel: 1.709
       SuperE10: 1.749
       SuperE5: 1.779
     triggerEventsState:
       Diesel: 1.709
       SuperE10: 1.749
       SuperE5: 1.779
   internals:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   checkReadingEvent 1
   checkall   all
   room       Spritpreise


Wenn ich das doif auch Check all setze bekomme ich die Nachrichten. Auch bei cmd1 manuell ausführen klappt es.

Nur im Automatik Modus nicht.
Warum löst das doif nicht aus. Wenn eines der Super E10 readings unter 1,70 € fällt?

Gruß und danke
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Per

Du fragst ein Event ab, das gibt true oder false zurück. Du kannst aber eine Vorgabe als weiteren Parameter angeben, dann bekommst du den Wert zurück.