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
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 ({})
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") }
)
Das könnte man auch in einem structure-device abbilden, das die Auswertung automatisch macht und genau dafür gedacht ist.
Wie würde das dannaussehen und wäre das vorteilhafter?
Siehe
https://commandref.fhem.de/commandref.html#structure
oder
https://commandref.fhem.de/commandref_DE.html#structure