FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: blasterx am 18 November 2016, 11:58:15

Titel: Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 11:58:15
Hallo ,
ich hätte eine Bitte für ein Feature-Request. Wäre es möglich ein Reading "nextUpdate" zu integrieren. Ich habe in mehreren DOIF´s Zeitangaben, die dadurch entstandenen Readings wie zb. timer_1_c1,timer_2_c1,usw möchte ich nun weiterverwenden bzw auswerten um zb die nächste Schaltzeit zu bestimmen. Das geht auch wunderbar solange man keine Wochentage ins Spiel bringt.
Ein Beispiel


timer_1_c1                                19.11.2016 05:14:00
timer_2_c1                                18.11.2016 16:46:04|7


Wenn man sich den Code ansieht fällt auf damit timer_2_c1 ja nicht am dargestellten Datum schalten dürfte da die 7 ja das Wochenende darstellt aber der 18.11.2016 ein Freitag ist. Geschaltet wird natürlich nur am Wochenende. Aber das Reading zeigt den 18.11.2016 (Freitag) an, damit kann ich das Reading nicht verwenden. Wenn es so wie  beim WeekdayTimer ist (da gibt es das Reading nextUpdate was immer den nächsten schaltzeitpunkt darstellt) wäre es genau das was ich als reading bräuchte.
Ich hoffe ich konnte mich verständlich ausdrücken.

Gruß BlasterX
Titel: Antw:Feature-Request nextUpdate
Beitrag von: Per am 18 November 2016, 12:30:13
Ob der Timer zu seinem Zeitpunkt auch wirklich schaltet, kannst du aber mit "nextUpdate" aber nicht erkennen. Es wäre halt nur der nächste Timer.
Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 12:32:43
richtig, genau das reicht mir ja

Gruß BlasterX
Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 18 November 2016, 14:02:26
Die Bezeichnung der Timer-Readings ändert sich mit dem nächsten Update. https://forum.fhem.de/index.php/topic,58556.msg522313.html#msg522313

Du könntest Dir ein userReading erstellen, das nextUpdate berechnet., Wenn die Bedingung nicht interessiert, dann kannst Du |x vom Timerwert abtrennen, denn [16:46:04|7] ist ja nur eine kurze Schreibweise für [16:46:04] and $we.
Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 14:43:21
Danke für die Antwort.  Damit es mit userReading gehen könnte dachte ich auch, doch leider fehlt mir der Ansatz zum userReading. Ich habe vier Timer timer_1_c1,timer_2_c1,timer_3_c2,timer_4_c2 von denen der nächste Schaltzeitpunkt ermittelt werden muss.
Gruß BlasterX

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 18 November 2016, 16:10:51
ZitatDas geht auch wunderbar solange man keine Wochentage ins Spiel bringt.

Wie machst Du das hier?
Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 16:39:47
Ich wandle das Datum in einem timestamp um und lasse es der Größe nach sortieren und in ein Dummy schreiben. 

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 16:54:08
Da das Datum ja folgendes Format hat 18.11.2016 16:46:04|7 kann es nicht in einen timestamp konvertiert werden.

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 18 November 2016, 17:17:14
Dann kannst Du den timer aus dem String herausnehmen mit

$timer=substr($timer,0,19)

falls ich mich nicht verzählt habe.
Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 17:34:35
Danke ich werde es heute Abend testen.

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 18:33:19
Ich bin auf Arbeit und konnte es noch nicht testen, aber das was du mir geschrieben hast extrahiert mir doch das Datum ohne |7 Das habe ich schon gemacht. Doch das Datum stimmt ja nicht, da der 18.11.2016 ja nicht am Wochenende ist. Der eigentliche Schaltzeitpunkt ist ja bei |7 19.11.2016 und 20.11.2016. Sollte ich falsch liegen berichtige mich bitte.

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 18 November 2016, 18:42:28
Ich hatte Dich so verstanden, dass Dir egal ist, ob die Bedingung schaltet. Und |7 gehört zur Bedingung, da es die Kurzform für "and $we" ist.

Wenn Du in die 98_WeekdayTimer.pm schaust, dann findest Du eine Funktion "WeekdayTimer_searchAktNext($$)", vielleicht kannst Du dort finden, wie nextUpdate ($nextTime) ermittelt wird und es für Dich anpassen.
Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 19:08:44
Ja Missverständnis ich habe mich vielleicht nicht genau ausgedrückt. Hast du trotzdem eine Idee wie ich das hin bekomme?

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 18 November 2016, 22:45:30
Ok ich habe mir das mit der 98_WeekdayTimer.pm mal angesehen, aber leider kann ich mir daraus nichts nehmen bzw. für mein Problem etwas daraus basteln. Wenn noch jemand einen Tipp hat wie ich die Sache lösen kann dann wäre ich sehr dankbar.

Gruß BlasterX
Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 20 November 2016, 06:40:00
Was wird in nextUpdate berücksichtigt?

1. Nehmen wir an es ist 13 Uhr am 1.10.2016 und Du hast einen Timer [12:00|8].
2. Du hast eine Zeitspanne [10:00-18:00] und es ist 13 Uhr.
Welche Zeit und Datum sollte nextUpdate beinhalten?

3. Sollte immer von allen Timern eines DOIF der nächste Schalttermin gebildet werden oder nur von selbstbestimmten Timer?


Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 20 November 2016, 09:02:58
zu 1. nextUpdate sollte  sollte das tatsächliche Datum un die Uhrzeit beinhalten . In Deinem Beispiel 01.10.2016 13:00 und der Timer ist [12:00|8], so müsste eigentlich bei nextUpdate 03.10.2016 12:00 stehen da |8 ja Werktags beschreibt.

zu 2. da wird es schwierig da ja beim DOIF die Timer Readings timer_1_c1 und timer_2_c1 erst aktualisiert werden wenn timer_2_c1 vorbei ist.  Bei Deinem Beispiel ist ja die eigentliche Startzeit überschritten, und der Timer ja nur zwischen [10:00-18:00] aktiv ist sollte das nextUpdate ja am Folgetag sein wenn es eine DOELSE Anweisung gibt.
Schalte zwischen [10:00-18:00] auf on sonst schalte auf off.

zu 3. schwer zu sagen mir würde es zur Zeit reichen die selbstbestimmten Timer anzuzeigen.

Danke das Du die Sache mit dem nextUpdate ins DOIF einbinden willst.
Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 20 November 2016, 11:56:58
Der 3.10. ist ein Feiertag, müsste das nicht auch berücksichtigt werden, wenn es ein holiday2we gibt, wie ist das beim Weekdaytimer?
Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 20 November 2016, 12:26:14
Oh mein Fehler habe ich nicht dran gedacht, dann muss es der 04.11.2016 weil ja Feiertage wie Wochenenden behandelt werden. Beim Weekdaytimer muss ich schauen.

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 23 November 2016, 07:31:00
Vielleicht hilft das weiter https://forum.fhem.de/index.php/topic,61024.msg526298.html#msg526298
Titel: Antw:Feature-Request nextUpdate
Beitrag von: blasterx am 23 November 2016, 07:34:59
Habe es gerade getestet, funktioniert super. Ich Danke Dir für die schnelle Unterstützung bei meinem Problem.

Gesendet von meinem SM-G935F mit Tapatalk

Titel: Antw:Feature-Request nextUpdate
Beitrag von: Ellert am 23 November 2016, 07:39:46
Ja, danke ich hatte zu spät gesehen, dass Du in dem anderen Thred schon geantwortet hast.