[gelöst] Zustände von 6 Devices auswerten und Dummy nach Priorität setzten, wie

Begonnen von rhoffm34, 13 September 2025, 01:49:35

Vorheriges Thema - Nächstes Thema

rhoffm34

Hallo zusammen.

Ich möchte in FHEM die Zustände von 6 Devices (z. B. dev1 ... dev6) beobachten, und in einem Dummy (prioDummy) immer den Wert a–f setzen, abhängig vom ersten Device, das aktiv ist – mit Priorität:

dev1 = on → a (höchste Priorität)

dev2 = on → b

dev3 = on → c

dev4 = on → d

dev5 = on → e

dev6 = on → f

Also das device welches auf on steht und die höchste prio hat setzt den prioDummy. Wnn also alle ausser dev4 auf off sind dann soll prioDummy = d gesetzt werden. Ändert sich zusätzlich dev5 auf on passiert nichts, ändert sich dev3 auf on soll prioDummy = c gesetzt werden.

Hat jemand eine Idee wie das umzusetzen ist?

Gruß,

rhoffm34

rhoffm34

ausprobiert habe ich folgendes DOIF:


(
    [dev1] eq "1" ? { fhem("set prioDummy a") }
  : [dev2] eq "2" ? { fhem("set prioDummy b") }
  : [dev3] eq "3" ? { fhem("set prioDummy c") }
  : [dev4] eq "4" ? { fhem("set prioDummy d") }
  : [dev5] eq "5" ? { fhem("set prioDummy e") }
  : [dev6] eq "6" ? { fhem("set prioDummy f") }
  : { fhem("set prioDummy unbestimmt") }
)

es scheint soweit zu funktionieren aber es kommt eine Warnmeldung:

warning
condition c01: Use of uninitialized value in anonymous hash ({})


rhoffm34

Hab den Fehler gefunden...

So ist richtig:

(
    [dev1] eq "1" ?  fhem("set prioDummy a")
  : [dev2] eq "2" ?  fhem("set prioDummy b")
  : [dev3] eq "3" ?  fhem("set prioDummy c")
  : [dev4] eq "4" ?  fhem("set prioDummy d")
  : [dev5] eq "5" ?  fhem("set prioDummy e")
  : [dev6] eq "6" ?  fhem("set prioDummy f")
  : { fhem("set prioDummy unbestimmt") }
)