Hauptmenü

Feature-Request nextUpdate

Begonnen von blasterx, 18 November 2016, 11:58:15

Vorheriges Thema - Nächstes Thema

blasterx

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
Gruß-BlasterX

Per

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.

blasterx

richtig, genau das reicht mir ja

Gruß BlasterX
Gruß-BlasterX

Ellert

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.

blasterx

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

Gruß-BlasterX

Ellert

ZitatDas geht auch wunderbar solange man keine Wochentage ins Spiel bringt.

Wie machst Du das hier?

blasterx

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

Gruß-BlasterX

blasterx

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

Gruß-BlasterX

Ellert

Dann kannst Du den timer aus dem String herausnehmen mit

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

falls ich mich nicht verzählt habe.

blasterx

Danke ich werde es heute Abend testen.

Gesendet von meinem SM-G935F mit Tapatalk

Gruß-BlasterX

blasterx

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

Gruß-BlasterX

Ellert

#11
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.

blasterx

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

Gruß-BlasterX

blasterx

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
Gruß-BlasterX

Ellert

#14
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?