DOIF - Anzeige der nächsten Schaltzeitpunkt im STATE

Begonnen von fast-eddy, 10 Januar 2016, 20:25:34

Vorheriges Thema - Nächstes Thema

fast-eddy

Hallo zusammen,

habe die Feiertrage genutzt meine  FHEM Installation auzuräumen und soweit möglich und sinnvoll alle "notifies" und "at" durch DOIF zu ersetzen.
Echt Wahnsinn wie übersichtlich jetzt plötzlich alles ist - besonderen Dank hierfür an die Entwickler!!!

Trotz ausführlicher Lektüre von Forum, Wiki und Commandref ist es mit bisher aber nicht gelungen in einem DOIF Timer Modul mit zwei Zeiten den nächsten Schaltzeitpunkt im State anzuzeigen.

Über das Attribut cmdState bekomme ich zwar sauber den Schaltzustand angezeigt, Ziel ist aber zu sehen, wann Befehl1 und Befehl2 das nächste Mal ausgelöst werden.

Die Attribute "state" und "stateFormat" habe ich bereits ausprobiert leider ohne Erfolg: 
Hier die Definition des DOIF:

define doif_timer_LICHTERKETTE DOIF ([{sunset("REAL",0,"16:00","19:00")}]) (set LICHTERKETTE on) DOELSEIF ([{sunrise("REAL",0,"05:00","08:00")}]) (set LICHTERKETTE off)
attr doif_timer_LICHTERKETTE group Timer
attr doif_timer_LICHTERKETTE room Steuerung
attr doif_timer_LICHTERKETTE cmdState ON|OFF
attr doif_timer_LICHTERKETTE state Next ON [doif_timer_LICHTERKETTE:timer_1_c1] - Next OFF [doif_timer_LICHTERKETTE:timer_2_c2] Akuell [doif_timer_LICHTERKETTE]
 

Angezeigt bekomme ich als  State aber nur "initialize"

Wie bereits beschrieben habe ich es auch mit stateFormat versucht:

attr doif_timer_LICHTERKETTE stateFormat Next ON: timer_1_c1 - Next OFF: timer_2_c2

Damit verschwindet das Reading aber komplett aus der Übersicht , statt dessen wird ein (Pfeil-) Icon angezeigt ?!

Hat vielleicht jemand einen Tipp für mich?

Grüße,
Ralf
Raspberry Pi | HMUART | HMLAN | JeeLink | HUE | Z-WAVE.ME | HM-LC-Bl1PBU-FM | HM-PB-2-WM55 HM-CC-RT-DN | HM-LC-SW4-SM | HM-WDS10-TH-O HM-WDS30-T-O | HM-LC-SW4-DR | HM-Sen-MDIR-O-2 | HM-SEC-SCo |  Technoline TX 29 DT-HT|

Ellert

Mit cmdState und Attribut state ist state überdefiniert.

Mit readingsGroup könntest Du es lösen: http://fhem.de/commandref.html#readingsGroup und der WIKI Beitrag ist auch sehr hilfreich: http://www.fhemwiki.de/wiki/ReadingsGroup

fast-eddy

Hallo Ellert,

danke für den Tipp mit den readingGroups - werde ich mir bei Gelegenheit mal näher anschauen.
Doch Deine Aussage bzgl. "überdefiniert" verstehe ich nicht ganz. In der Commandref ist doch
genau dieses Vorgehen beschrieben. Oder habe ich das was fehlinterperetiert?

Zitat
Anpassung des Status mit Hilfe des Attributes state

Es können beliebige Reading und Stati oder Internals angegeben werden.

Anwendungsbeispiel: Aktuelle Außenfeuchtigkeit inkl. Klimazustand (Status des Moduls wurde mit cmdState definiert s. o.)

attr di_hum state The current humidity is [outdoor:humidity], it is [di_hum]
Raspberry Pi | HMUART | HMLAN | JeeLink | HUE | Z-WAVE.ME | HM-LC-Bl1PBU-FM | HM-PB-2-WM55 HM-CC-RT-DN | HM-LC-SW4-SM | HM-WDS10-TH-O HM-WDS30-T-O | HM-LC-SW4-DR | HM-Sen-MDIR-O-2 | HM-SEC-SCo |  Technoline TX 29 DT-HT|

Damian

Zitat von: fast-eddy am 10 Januar 2016, 21:28:16
Hallo Ellert,

danke für den Tipp mit den readingGroups - werde ich mir bei Gelegenheit mal näher anschauen.
Doch Deine Aussage bzgl. "überdefiniert" verstehe ich nicht ganz. In der Commandref ist doch
genau dieses Vorgehen beschrieben. Oder habe ich das was fehlinterperetiert?


Man kann im state schon den cmd-Status verwenden - das ist auch explizit ausprogrammiert. Man kann auch die Readings des eigenen Moduls verwenden, allerdings werden die nächsten Timer nach dem Setzen des Status gesetzt, damit wirst du, wenn der Timer zuschlägt nicht die nächste Zeit sehen, sondern die letzte. Ich befürchte, wenn ich die Programmlogik ändere, wird der nächste User im Status die zuletzt verwende Zeit haben wollen. Man kann es leider nicht allen recht macht.

Gruß

Damian




Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

fast-eddy

Hallo Damian,

ZitatIch befürchte, wenn ich die Programmlogik ändere, wird der nächste User im Status die zuletzt verwende Zeit haben wollen. Man kann es leider nicht allen recht macht.

... nein schon klar. Ich find´s klasse so wie es ist, wollte nur die "Boardmittel" verstehen und ausreizen.   ;)

Allerdings tut die Variante mit stateFormat genau das was sie soll. In Übersichten wird statt dem State halt nur
das Icon angezeigt. Die korrekten Werte sieht man leider nur als Tooltip bei MouseOver auf das Icon.  ???

attr doif_timer_LICHTERKETTE stateFormat Next ON: timer_1_c 1 - Next OFF: timer_2_c2

Grüße,
Ralf
Raspberry Pi | HMUART | HMLAN | JeeLink | HUE | Z-WAVE.ME | HM-LC-Bl1PBU-FM | HM-PB-2-WM55 HM-CC-RT-DN | HM-LC-SW4-SM | HM-WDS10-TH-O HM-WDS30-T-O | HM-LC-SW4-DR | HM-Sen-MDIR-O-2 | HM-SEC-SCo |  Technoline TX 29 DT-HT|

Damian

Zitat von: fast-eddy am 10 Januar 2016, 22:07:39
Hallo Damian,

... nein schon klar. Ich find´s klasse so wie es ist, wollte nur die "Boardmittel" verstehen und ausreizen.   ;)

Allerdings tut die Variante mit stateFormat genau das was sie soll. In Übersichten wird statt dem State halt nur
das Icon angezeigt. Die korrekten Werte sieht man leider nur als Tooltip bei MouseOver auf das Icon.  ???

attr doif_timer_LICHTERKETTE stateFormat Next ON: timer_1_c 1 - Next OFF: timer_2_c2

Grüße,
Ralf

Dann schreib doch einfach Next_ON hin, damit das ON nicht so alleine steht :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

fast-eddy

 :)

...sehr geil! Manchmal liegt die Lösung direkt vor den Augen und ma sieht sie nicht.
Genau das wollte ich haben:
ZitatSTATE    AN: 11.01.2016 16:45:25 | AUS: 11.01.2016 08:00:00

Vielen Dank!

Grüße,
Ralf
Raspberry Pi | HMUART | HMLAN | JeeLink | HUE | Z-WAVE.ME | HM-LC-Bl1PBU-FM | HM-PB-2-WM55 HM-CC-RT-DN | HM-LC-SW4-SM | HM-WDS10-TH-O HM-WDS30-T-O | HM-LC-SW4-DR | HM-Sen-MDIR-O-2 | HM-SEC-SCo |  Technoline TX 29 DT-HT|