FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wthiess am 04 Oktober 2017, 15:24:29

Titel: Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 15:24:29
Hallo Leute!

Ich habe mit at eine Aktion festgelegt. Und zwar am Freitag soll um 10h ein Gerät einschalten und am Sonntag um 20h wieder aus. Funktioniert einwandfrei.
define Boiler_ein at *10:00:00 { fhem("set Boiler on") if ($wday == 5) }
define Boiler_aus at *20:00:00 { fhem("set Boiler off") if ($wday == 0) }

Als reading bekomme ich nur state Next: 10:00:00. Aber ich würde auch gerne den Tag anzeigen lassen. Wie könnte ich ein Reading bauen das mir den Tag anzeigt. Oder Tag und Uhrzeit.
Bitte um Hilfe

lg
Wolfgang

Titel: Antw:Reading Wochentag anzeigen
Beitrag von: viegener am 04 Oktober 2017, 15:38:01
Sicher könntest Du ein user reading basteln, dass den nächsten passenden Ausführungstag zeigt, allerdings wäre das nicht an die at-Logik gebunden, denn im Prinzip wird Dein at ja jeden Tag ausgeführt und dann wird während der Ausführung überprüft, ob der passenden Werktag ist, Das at-Modul selbst kennt diese Logik ja nicht, denn es führt das ja täglich aus und weiss nicht ob der set ausgeführt wird oder nicht.

Eine Alternative wäre ein DOIF, das eine Zeitsteuerung auch mit Wochentagen erlaubt und dort wären dann wohl entsprechende Readings, die auch an die Logik von DOIF gebunden wäre:
https://fhem.de/commandref_DE.html#DOIF_Wochentagsteuerung (https://fhem.de/commandref_DE.html#DOIF_Wochentagsteuerung)
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 15:46:50
Das Reading sieht so aus
state
Next: 10:00:00 2017-10-04 10:00:00

Ich möchte nur im Web nicht nur die Uhrzeit sondern das Datum mit der Uhrzeit angezeigt bekommen.
das sollte doch mit webcmd ... oder so gehen. Die Info ist ja da.
Im Internal steht das unter
TRIGGERTIME_FMT 2017-10-05 10:00:00

lg
wolfgang
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: viegener am 04 Oktober 2017, 16:57:29
OK, dann habe ich Dich missverstanden, wenn Du dieselbe Information haben willst, kannst Du das über ein user reading lösen, aber es wird halt immer morgen zeigen. Die Beziehung zu webcmd sehe ich nicht?

Titel: Antw:Reading Wochentag anzeigen
Beitrag von: viegener am 04 Oktober 2017, 16:59:35
Korrektur - nicht immer morgen sondern von 0 bis 10 Uhr wird er das heutige Datum zeigen und danach bis Mitternacht das morgige Datum

Ich verstehe zwar nicht wie das helfen soll, aber ich denke ein intern sollte sich auch in einem user reading anzeigen lassen und der state ändert sich ja nach der Ausführung
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 18:13:19
Nein. Im reading steht alles richtig drinnen. Hab ich eh geschrieben. Nur im web will ich es sehen.

state   Next: 10:00:00 2017-10-04 10:00:00

Lg Wolfgang
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: viegener am 04 Oktober 2017, 19:29:29
Also bei mir ist der 4.10. weder ein Freitag noch ein Sonntag also wurde es genau wie ich gesagt habe täglich ausgeführt...
und wenn im Reading alles richtig drin steht, verstehe ich die Frage schon gar nicht mehr.

Aber ich bin raus hier - wenn der Text nicht gelesen wird und Fragen nicht beantwortet kann ich wohl nicht helfen - viel Spass noch

Titel: Antw:Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 19:34:45
Danke für deine Mühe meinen Plödsinn zu lesen.
Entschuldige ich habe das Datum falsch gelesen. Ich war auf dem Holzweg. Werde mal das Doif anschauen.

lg
Wolfgang
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 20:02:51
Hallo!

Ich habe es nun mit Doif gemacht. Ergebnis nicht anders als mit at.


([10:00|5]) (set Boiler on) DOELSEIF ([22:00|0]) (set Boiler off)

Readings:
state Next: 10:00:00 2017-10-04 19:43:40
timer_01_c01 05.10.2017 10:00:00|5 2017-10-04 19:54:10
timer_02_c02 04.10.2017 22:00:00|0 2017-10-04 19:54:10


lg
Wolfgang
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 20:29:20
Hab's jetzt für mich einfach gelöst. Da in diesem Fall die Ein und Ausschalt Tage fix sind habe ich es mit webCmd Freitag oder Sonntag fix reingeschrieben.
Es sollte ja nur zur Erinnerung sein. Ich wollte aber eine generelle Lösung.

Dachte zu einfach
lg
Wolfgang
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: rudolfkoenig am 04 Oktober 2017, 20:52:54
Nix fuer schwache Nerven:

define Boiler_ein at *10:00:00 { fhem("set Boiler on") if ($wday == 5) }
attr Boiler_ein userattr stateFormat
attr Boiler_ein stateFormat { substr(FmtDateTime(time()+AnalyzePerlCommand(undef,'"$wday:$hms" le "5:10" ? 5-$wday : 12-$wday')*86400),0,10)." 10:00"  }
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 21:17:20
Danke Rudolf!

Ich verstehe das natürlich nicht. Deshalb kann ich das auch nicht umsetzen.

Welcher Wert ist dann für den Sonntag auszubessern. Uhrzeit ist logisch.

lg
Wolfgang
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: rudolfkoenig am 04 Oktober 2017, 21:48:18
ZitatWelcher Wert ist dann für den Sonntag auszubessern.
Keine Lust auf Hausaufgaben spaet am Abend? :)
attr Boiler_aus stateFormat { substr(FmtDateTime(time()+AnalyzePerlCommand(undef,'7-$wday')*86400),0,10)." 20:00"  }

Der Haken an dieser Methode ist, dass stateFormat beim Einlesen von fhem.cfg nicht aktiv ist, und at die abgespeicherten Werte beim Start ueberschreibt. Damit die Werte auch nach einem Neustart aktiv sind, muss man sowas machen:
define activateAtStateFormat notify global:INITIALIZED modify Boiler_aus *20:00;; modify Boiler_ein *10:00
Aber auch damit bleibt es ein Hack.
Titel: Antw:Reading Wochentag anzeigen
Beitrag von: wthiess am 04 Oktober 2017, 21:52:29
Danke Rudolf!
aber das ist nicht Sinnvoll, da schreib ich es gleich direkt rein. Ich dachte es gibt eine Universalformel.
Weil wenn ich was ändere muss ich die Formel auch ändern. Ich denke wir lassens gut ein. Ich hab mich da in einem Gedanken verrannt.

Gute Nacht
lg
Wolfgang