Hauptmenü

Frage zu stateFormat

Begonnen von Ralf9, 23 März 2026, 14:54:17

Vorheriges Thema - Nächstes Thema

Ralf9

Hallo,

ich bin gerade am basteln.
Ich möchte, dass wenn ich das Licht mit ontime einschalte, in der DeviceOverview und room Ansicht hinter dem Lampen Icon das reading time angezeigt wird.

Mit "stateFormat [$name:state] t:[$name:time]" wird nur das Lampenicon angezeigt.
Mit "stateFormat s:[$name:state] t:[$name:time]" wird "s:on_time t:s7" angezeigt.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Guybrush

das t: ist doch ein suffix?! das muss doch hinten dran in der eckigen klammer stehen?

Ralf9

Ich hab mal einiges getestet:
mit "stateFormat on 12" wird nur das Lampen Icon angezeigt, wenn das vordere als Icon angezeigt wird, dann wird das hintere ignoriert.
Ist demnach das was ich möchte mit stateFormat nicht machbar?
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

TomLee

Mit einer mit Geduld gewienerten Glaskugel:

Evtl. mit einem Zeilenumbruch zw. den zwei Set Magic Angaben?

attr bla stateFormat [$name:state]\
[$name:time:t]

Guybrush

machs doch sonst einfach mit perlcode in stateformat?

stateFormat { "s: ".ReadingsVal($name, 'state', '')." t: ".ReadingsVal($name, 'time', '') }

TomLee

Wenn das die Aufgabe war:

attr bla stateFormat s:\
state\
t:\
time

Ralf9

Habs hinbekommen, damit funktionierts
stateFormat {ReadingsVal($name,'state','')."\n".ReadingsVal($name,'time','')}
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

TomLee

Hi,

warum in Perl, das versteh ich bis jetzt noch nicht?

attr bla stateFormat state\
time

Ralf9

Dass der 2.Wert (time) hinter dem icon (state) angezeigt wird, funktioniert nur wenn ich beide mit "\n" trenne.
Mir ist nicht klar wie ich ohne Perl zwischen state und time ein "\n" eingeben kann
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

TomLee

Mir ist nicht klar wie ich ohne Perl zwischen state und time ein "\n" eingeben kann
Im Attribut stateFormat ist textField-long default aktiviert. Nach Klick in das Textfeld bei attr devicename stateFomat öffnet sich ein "Editorfeld", dort nach state einfach einen Zeilenumbruch machen und in die zweite Zeile time schreiben.

Oder einfach "bla" durch deinen Devicenamen ersetzen:

attr bla stateFormat state\
time

und über das Plus oben links neben der Kommandozeile (nur im f18-Style) das Attribut ergänzen.

Oder "bla" ersetzen, in irgendeinem Device in Fhem unten den Raw-Editor öffnen, alles markieren und durch den Code ersetzen, Execute command klicken.

Ralf9

Ich habe den f18-Style, nach Klick in das Textfeld bei attr stateFomat öffnet sich bei mir kein "Editorfeld".
Ich habs mal bei ein paar anderen devices getestet, da hat sich überall beim attr stateFormat das Editorfeld geöffnet.
Nur bei Homematic wired devices öffnet sich beim attr stateFormat kein Editorfeld.

Damit hats funktioniert
Zitatüber das Plus oben links neben der Kommandozeile (nur im f18-Style) das Attribut ergänzen.

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

TomLee

Nur mal kurz geschaut macht es mir den Eindruck das man textField-long in stateFormat als Modulautor aktivieren muss, evtl. teilst Du das dem mit, das wäre nur eine kleine Änderung im Code.