Ich habe im Haus viele Doppelfenster und möchte deren Zustand (open(ed)/closed) gerne in EINEM Symbol darstellen. Bisher habe ich für jedes der Fenster ein eigenes Symbol:
<div data-type="symbol"
data-device="FensterWZlinks"
data-states='["closed","open","opened","???"]'
data-icons='["oa-fts_window_1w","oa-fts_window_1w_tilt","oa-fts_window_1w_tilt","fa-question"]'
data-background-icons='["","","",""]'
data-colors='["Linen","Yellow","Yellow","Red"]'
data-background-colors='["Transparent","Transparent","Transparent","Transparent"]'>
</div>
<div data-type="symbol"
data-device="FensterWZrechts"
data-states='["closed","open","opened","???"]'
data-icons='["oa-fts_window_1w","oa-fts_window_1w_tilt","oa-fts_window_1w_tilt","fa-question"]'
data-background-icons='["","","",""]'
data-colors='["Linen","Yellow","Yellow","Red"]'
data-background-colors='["Transparent","Transparent","Transparent","Transparent"]'>
</div>
Aus Platzgründen möchte ich den Status gerne mit Doppelfenstern (oa-fts_window_2w, oa-fts_window_2w_open_l, oa-fts_window_2w_open_r, oa-fts_window_2w_open_lr) anzeigen.
Ein Variante wäre ein Dummy je Doppelfenster und über stateformat den status "oo", "cc", "oc" oder "co" je nach Einzelstatus der Fenster (c für closed und o für open(ed)) einzustellen.
Geht es auch einfacher ?
Du müsstest die einzelnen Fenster irgendwie im Backend zusammenfassen. Du könntest dafür FHEM structure verwenden. Ich nutze für mein AlleFenster die Logikfunktion eine KNX Gerätes
Wenn tatsächlich rechts und links unterschieden werden soll bleibt wohl nur eine dummy/notify Lösung. Ich würde aber auch eine structure nehmen.
Aktuell löse ich es mit dummy/notify, was soweit funktioniert. Den dummy setze ich bei Änderung über ein stateFormat
In STATE steht dann "cc","co","oc" oder "oo". Würde das auch bei einer structure funktionieren ? Damit könnte ich mir das notify sparen (setzt den dummy und damit state immer auf "on"), da die structure automatisch aktualisiert würde ...
Internals:
NAME Wohnzimmerfenster
STATE cc
TYPE dummy
READINGS:
2019-03-27 14:46:08 state on
Attributes:
stateFormat {substr(ReadingsVal('MAX_17fe6e','state',''),0,1).substr(ReadingsVal('MAX_18012b','state',''),0,1)}
scheint zu funktionieren
Internals:
ATTR MultiWindow
CHANGEDCNT 30
DEF MultiWindow MAX_17fe6e MAX_18012b
NAME WohnzimmerfensterStruct
NTFY_ORDER 50-WohnzimmerfensterStruct
STATE cc
TYPE structure
OLDREADINGS:
READINGS:
2019-03-27 15:02:37 LastDevice MAX_17fe6e
2019-03-27 15:02:37 LastDevice_Abs MAX_17fe6e
2019-03-27 15:02:37 state closed
Attributes:
group Doppelfenster
stateFormat {substr(ReadingsVal('MAX_17fe6e','state',''),0,1).substr(ReadingsVal('MAX_18012b','state',''),0,1)}
Wenn ich jetzt noch eine Möglichkeit finde den niedrigsten Batteriewert (userReading batteryPercent im jeweiligen Device) zu ermitteln ist mein Doppelfenster-Problem gelöst !