ich habe in der commandref darüber nichts gefunden und deshalb meine Frage.
Beispiel:
Ich möchte vom 1. November die Tage herunter zählen bis z.B. zum 31. Januar. mit der Anzeige eben "Es sind noch 90 Tage", "Es sind noch 89 Tage","Es sind noch 88 Tage" usw. also ein "tägliches" runter zählen.
Wobei man sicher den Text gestalten kann wie man möchte, aber eben die Zahl der Tage ist ja wichtig.
Ja, benutze ein einmaliges Tagesereigniss (z.B. einen Zeitpunkt) als trigger und ziehe im set-Befehl bei jedem Trigger 1 vom aktuellen Wert ab.
was wäre denn in dem Fall der "aktuelle Wert"..?
die Tage die erst einmal gezählt werden müssen bis zum Ereignis Datum.
Ja, dafür könntest Du einen Dummy nehmen oder ein Reading in einem dazu gehörenden Gerät, nicht im DOIF, das ist nicht neustartfest.
Zitat von: Ellert am 01 November 2016, 19:03:30
Ja, dafür könntest Du einen Dummy nehmen oder ein Reading in einem dazu gehörenden Gerät, nicht im DOIF, das ist nicht neustartfest.
Neustartfest schon, aber es überlebt kein modify, daher ist ein eigener Dummy schon ok. Bei dieser Lösung darf das Runterzählen an keinem Tag ausfallen, sonst passt es nicht.
Gruß
Damian
Zitat von: Damian am 01 November 2016, 19:27:32
Bei dieser Lösung darf das Runterzählen an keinem Tag ausfallen, sonst passt es nicht.
deshalb dachte ich das ich dieses per Beginn Datum erreichen kann. Wenn es doch mal passiert müßte ich also die Tagesbeginn Zahl (ich nenne sie mal so) anpassen
Das wäre z.B. heute bis zum 28. Februar 119, das heißt es passiert irgend wann mal ein Neustart, dann wäre diese Zahl hinfällig..?
gehört hier jetzt nicht her...
So z.B. habe ich heute einen Neustart von Fhem gemacht und alle meine Dummys zeigen ??? versteh ich grad nicht weil ich es so noch nicht hatte. Meine ganzen Dummy zeiten auch alle ???
Zitat von: moonsorrox am 01 November 2016, 19:48:36
deshalb dachte ich das ich dieses per Beginn Datum erreichen kann. Wenn es doch mal passiert müßte ich also die Tagesbeginn Zahl (ich nenne sie mal so) anpassen
Das wäre z.B. heute bis zum 28. Februar 119, das heißt es passiert irgend wann mal ein Neustart, dann wäre diese Zahl hinfällig..?
gehört hier jetzt nicht her...
So z.B. habe ich heute einen Neustart von Fhem gemacht und alle meine Dummys zeigen ??? versteh ich grad nicht weil ich es so noch nicht hatte. Meine ganzen Dummy zeiten auch alle ???
Das mit dem Neustart war ein Irrtum meinerseits. Wenn Du neu startest und das DOIF verpasst dann gerade den Zeitpunkt zum abziehen, dann stimmen die Resttage nicht mehr.
Fall Du das Risiko nicht eingehen willst, müsstest Du die täglich Differenz zwischen dem aktuellen Datum und dem 31.01. bilden. Das stimmt jeden Tag, auch, wenn mal an einem Tag die Berechnung ausfällt.
ZitatSo z.B. habe ich heute einen Neustart von Fhem gemacht und alle meine Dummys zeigen ??? versteh ich grad nicht weil ich es so noch nicht hatte. Meine ganzen Dummy zeiten auch alle ???
Ja, das ist bekannt, da war das save-File geleert. Das aktuelle update-Komando sichert auch das save-File.
Bevor wir hier noch weiter philosophieren, hier etwas Konkretes ohne extra Dummy und immer aktuell ;) :
define di DOIF ([00:00])
attr di state {(int((time_str2num("2017-01-31")-time())/86400))}
attr di do always
EDITH:// habe wohl zu spät geschrieben, ich werde mir das von Damian mal anschauen...! ;)
puh, nu sehe ich überhaupt nicht mehr durch...
Also ich habe jetzt ein DOIF nach folgendem Beispiel mit der Berechnung aus der commandref genommen
define di_average DOIF ([08:00]) (set TH_Modul desired {([default:temperature]+[outdoor:temperature])/2})
d.h. für mich ich berechne hier erst einmal die eingestellten Tage meines dummy - 1,
dass sieht so aus Uhrzeit ist erstmal zum probieren
define di_countdown ([20:03]) (set di_countdown state {[du_countdown]-[1]})
du_countdown steht auf 119 (für den 28. Februar)
aber ich bekomme irgendwie nirgends die Zahl 118 nachdem er getriggert hat
Das mit der Datumberechnung schaue ich mir später an, muss erst mal obigen Teil verstehen
Zitat von: Damian am 01 November 2016, 20:18:23
Bevor wir hier noch weiter philosophieren, hier etwas Konkretes ohne extra Dummy und immer aktuell ;) :
define di DOIF ([00:00])
attr di state {(int((time_str2num("2017-01-31")-time())/86400))}
attr di do always
das wäre doch ein weitere gutes Beispiel für die Commandref..! ;)
Zitat von: moonsorrox am 01 November 2016, 20:42:11
das wäre doch ein weitere gutes Beispiel für die Commandref..! ;)
ja, allerdings ist es recht spezifisch und hat wenig mit DOIF zutun.