Hauptmenü

[gelöst] Verstehe das nicht?

Begonnen von maci, 05 September 2025, 19:18:25

Vorheriges Thema - Nächstes Thema

maci

Habe mir ein DOIF gebastelt, das auf den ReadingsWatcher zugreift,
Das DOIF soll mit fhem neu starten, wenn beim ReadingsWatcher das reading timeoutDevs ne "none" ist. Da ich auch Readings überwache, auf die das nicht zutrifft, habe ich diese ausgenommen.
Doch das DOIF will auch fhem neustarten, wenn das Reading timeoutDevs none ist.
Was habe ich falsch gemacht?
aktuell habe ich das DOIF deaktiviert.

Internals:
   CFGFN     
   DEF        ([Readings_Ueberwachung:timeoutDevs] ne "none" and [Readings_Ueberwachung:timeoutDevs] ne "Pooltemperatur_Temperatur" or
  [Readings_Ueberwachung:timeoutDevs] ne "Wasserstand_Zisterne_Analog")
  (setreading Readings_Ueberwachung timeouts 0) (sthutdown restart)
   FUUID      68bb1805-f33f-3e5d-e95d-870e877bef5137ec
   MODEL      FHEM
   NAME       d_restartTimeOut
   NOTIFYDEV  global,Readings_Ueberwachung
   NR         688
   NTFY_ORDER 50-d_restartTimeOut
   STATE      disabled
   TYPE       DOIF
   VERSION    29460 2024-12-29 20:25:48
   eventCount 6
   Helper:
     DBLOG:
       cmd:
         DBLogging:
           TIME       1757091845.12258
           VALUE      0
       mode:
         DBLogging:
           TIME       1757091845.12258
           VALUE      enabled
       state:
         DBLogging:
           TIME       1757091845.12258
           VALUE      initialized
   READINGS:
     2025-09-05 19:08:20   Device          Readings_Ueberwachung
     2025-09-05 19:08:25   cmd             1.1
     2025-09-05 19:08:25   cmd_event       Readings_Ueberwachung
     2025-09-05 19:08:25   cmd_nr          1
     2025-09-05 19:08:25   cmd_seqnr       1
     2025-09-05 19:08:20   e_Readings_Ueberwachung_timeoutDevs none
     2025-09-05 19:11:26   last_cmd        cmd_1_1
     2025-09-05 19:11:26   mode            disabled
     2025-09-05 19:11:26   state           disabled
     2025-09-05 19:08:25   wait_timer      05.09.2025 19:18:25 cmd_1_2 Readings_Ueberwachung
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       Readings_Ueberwachung:
         0:
           timeoutDevs ^Readings_Ueberwachung$:^timeoutDevs:
   attr:
     cmdState:
     wait:
       0:
         5
          600
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'Readings_Ueberwachung','timeoutDevs') ne "none" and ::ReadingValDoIf($hash,'Readings_Ueberwachung','timeoutDevs') ne "Pooltemperatur_Temperatur" or    ::ReadingValDoIf($hash,'Readings_Ueberwachung','timeoutDevs') ne "Wasserstand_Zisterne_Analog"
   do:
     0:
       0          setreading Readings_Ueberwachung timeouts 0
       1          sthutdown restart
     1:
   helper:
     NOTIFYDEV  global,Readings_Ueberwachung
     event      AMIS_Lesekopf_1.8.0: ok,AMIS_Lesekopf_2.8.0: ok,Pooltemperatur_Temperatur: ok,Wasserstand_Zisterne_Analog: ok,netatmo_Aussenstation_temp_trend: ok,netatmo_Innenstation_temp_trend: ok,readings: 6,devices: 5,alive: 5,dead: 0,skipped: 0,timeouts: 0,ok,timeoutDevs: none,deadDevs: none,skippedDevs: none
     globalinit 1
     last_timer 0
     sleepdevice Readings_Ueberwachung
     sleepsubtimer 1
     sleeptimer 0
     timerdev   Readings_Ueberwachung
     timerevent AMIS_Lesekopf_1.8.0: ok,AMIS_Lesekopf_2.8.0: ok,Pooltemperatur_Temperatur: ok,Wasserstand_Zisterne_Analog: ok,netatmo_Aussenstation_temp_trend: ok,netatmo_Innenstation_temp_trend: ok,readings: 6,devices: 5,alive: 5,dead: 0,skipped: 0,timeouts: 0,ok,timeoutDevs: none,deadDevs: none,skippedDevs: none
     triggerDev Readings_Ueberwachung
     DOIF_eventa:
       cmd_nr: 1
       cmd_seqnr: 1
       cmd_event: Readings_Ueberwachung
       cmd_1_1
     DOIF_eventas:
       cmd_nr: 1
       cmd_seqnr: 1
       cmd_event: Readings_Ueberwachung
       state: cmd_1_1
     timerevents:
       AMIS_Lesekopf_1.8.0: ok
       AMIS_Lesekopf_2.8.0: ok
       Pooltemperatur_Temperatur: ok
       Wasserstand_Zisterne_Analog: ok
       netatmo_Aussenstation_temp_trend: ok
       netatmo_Innenstation_temp_trend: ok
       readings: 6
       devices: 5
       alive: 5
       dead: 0
       skipped: 0
       timeouts: 0
       ok
       timeoutDevs: none
       deadDevs: none
       skippedDevs: none
     timereventsState:
       AMIS_Lesekopf_1.8.0: ok
       AMIS_Lesekopf_2.8.0: ok
       Pooltemperatur_Temperatur: ok
       Wasserstand_Zisterne_Analog: ok
       netatmo_Aussenstation_temp_trend: ok
       netatmo_Innenstation_temp_trend: ok
       readings: 6
       devices: 5
       alive: 5
       dead: 0
       skipped: 0
       timeouts: 0
       state: ok
       timeoutDevs: none
       deadDevs: none
       skippedDevs: none
     triggerEvents:
       AMIS_Lesekopf_1.8.0: ok
       AMIS_Lesekopf_2.8.0: ok
       Pooltemperatur_Temperatur: ok
       Wasserstand_Zisterne_Analog: ok
       netatmo_Aussenstation_temp_trend: ok
       netatmo_Innenstation_temp_trend: ok
       readings: 6
       devices: 5
       alive: 5
       dead: 0
       skipped: 0
       timeouts: 0
       ok
       timeoutDevs: none
       deadDevs: none
       skippedDevs: none
     triggerEventsState:
       AMIS_Lesekopf_1.8.0: ok
       AMIS_Lesekopf_2.8.0: ok
       Pooltemperatur_Temperatur: ok
       Wasserstand_Zisterne_Analog: ok
       netatmo_Aussenstation_temp_trend: ok
       netatmo_Innenstation_temp_trend: ok
       readings: 6
       devices: 5
       alive: 5
       dead: 0
       skipped: 0
       timeouts: 0
       state: ok
       timeoutDevs: none
       deadDevs: none
       skippedDevs: none
   internals:
   readings:
     all         Readings_Ueberwachung:timeoutDevs
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   group      Readingswatcher
   icon       audio_shuffle
   room       System
   wait       5, 600

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

swsmily

Zitat von: maci am 05 September 2025, 19:18:25([Readings_Ueberwachung:timeoutDevs] ne "none" and [Readings_Ueberwachung:timeoutDevs] ne "Pooltemperatur_Temperatur" or
  [Readings_Ueberwachung:timeoutDevs] ne "Wasserstand_Zisterne_Analog")

Ich vermute, dass es daran liegt, dass du beim letzten statt "and" ein "or" stehen hast. Dadurch wird [Readings_Ueberwachung:timeoutDevs] ne "Wasserstand_Zisterne_Analog" wahr, wenn das Reading unter anderem auf none steht.

betateilchen

Vermutlich hast Du ein Problem mit den Prioritäten der logischen Vergleiche und musst vielleicht noch eine Klammer setzen, um den logischen Vergleich so zu formulieren, wie Du ihn Dir vorstellst.

Zwischen logischen "und" und logischem "oder" gibt es Rangfolgen, ähnlich wie "punkt vor strich" beim Rechnen.



Steht da eigentlich tatsächlich

(sthutdown restart)

oder ist das die von Dir erwähnte "Deaktivierung"?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maci

Danke für die Hilfe, das war es.

Habe die beiden Bedingungen mit und in Klammer gesetzt, dann passt es.

Das beim shutdown restart war ein Schreibfehler, ebenfalls ausgebessert

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan