Zeitpunkt anhand verbleibender Sekunden berechnen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Zeitpunkt anhand verbleibender Sekunden berechnen

Beitrag von OliverCJ »

Guten Morgen zusammen,

ich habe über Home Connect unsere Siemens Spülmaschine angebunden. Diese liefert über einen channel die "Remaining Program Time", also die verbleibende Programmzeit in Sekunden. Daraus würde ich gerne die Uhrzeit berechnen, zu der das laufende Programm voraussichtlich fertig ist.

Unter OH 2.5 hatte ich dazu auch mal ein rule, die aber natürlich aufgrund der Umstellung auf Java Time nicht mehr funktioniert. Habe zwar ein paar Links und Beiträge gefunden, es bisher aber trotzdem nicht geschafft, diese rule so umzuschreiben, dass sie funktioniert :-(.

Gibt es irgendwo eine Übersicht, die "alte" und "neue" Befehle gegenüberstellt?

Hier mal die rule:

Code: Alles auswählen

rule "Geschirrspueler Endzeit"
when
    Item Kueche_Geschirrspueler_RemainingProgramTimeState changed
then
    var remainSeconds = (Kueche_Geschirrspueler_RemainingProgramTimeState.state as Number).intValue 
    var vEndTime = now.plusSeconds(remainSeconds).toString("HH:mm:ss")
    var vRemainingTime = new DateTime(now.withTimeAtStartOfDay.plusSeconds(remainSeconds)).toString("HH:mm:ss") 
    logInfo ("vRemainingTime", "vRemainingTime in Std:Min:Sek ist {} *** vEndTime {}", vRemainingTime, vEndTime)
    Kueche_Geschirrspueler_EndTime.postUpdate(vEndTime)
end
Danke!
Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
peter-pan
Beiträge: 2769
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Zeitpunkt anhand verbleibender Sekunden berechnen

Beitrag von peter-pan »

...wie wär's damit ?

Code: Alles auswählen

rule "Spuelmaschine Laufzeit"
 when
  Item Kueche_FamilieSeptGeschirrspueler_einaus changed to ON  or
  Item Kueche_FamilieSeptGeschirrspuler_verbleibendeZeit changed or 
  Item Dummy_4 changed to ON 
 then
  var remainSeconds = 400 // als Ersatz für Kueche_FamilieSeptGeschirrspuler_verbleibendeZeit
//  var remainSeconds = (Kueche_FamilieSeptGeschirrspuler_verbleibendeZeit.state as Number).intValue
  var vEndTime = String::format("%1$tH.%1$tM.%1$tS",ZonedDateTime.now.plusSeconds(remainSeconds))  //Endzeit
  logInfo("test vEndTime", " Sülmaschine ist fertig um {}",  vEndTime)

  var vRemainingTime = String::format("%1$tH.%1$tM.%1$tS",ZonedDateTime.now.with(LocalTime.MIDNIGHT).plusSeconds(remainSeconds))     // verbleibende Zeit
  logInfo("test vRemainingTime", "Restlaufzeit in Std:Min:Sek ist {} ", vRemainingTime)

  EndTime.postUpdate(vEndTime)
  RemainingTime.postUpdate(vRemainingTime)
end
Die hab ich noch auf meinem Rechner gefunden ;) .
Du musst halt noch deine Items anpassen. Aber grundsätzlich sollte es so, oder so ähnlich, funktionieren. :lol:

Code: Alles auswählen

2021-11-03 12:23:10.961 [INFO ] [nhab.core.model.script.test vEndTime] -  Sülmaschine ist fertig um 12.29.50
2021-11-03 12:23:10.972 [INFO ] [ore.model.script.test vRemainingTime] - Restlaufzeit in Std:Min:Sek ist 00.06.40 
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: Zeitpunkt anhand verbleibender Sekunden berechnen

Beitrag von OliverCJ »

Super, Danke!
Probiere ich nachher direkt mal aus.. im Grunde sieht die ja genauso aus wie meine, bis auf die Änderungen bezüglich JavaTime.
Da muss ich mich echt noch mal ein bisschen besser einlesen...
Hast Du da noch einen Tipp für mich?

VG, Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
peter-pan
Beiträge: 2769
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Zeitpunkt anhand verbleibender Sekunden berechnen

Beitrag von peter-pan »

Eigentlich hatte das Rule-Beispiel von mir schon alle nötigen Zeitparameter an Bord. Aber hier noch mal in deine Rule eingebaut:

Code: Alles auswählen

rule "Geschirrspueler Endzeit"
when
    Item Kueche_Geschirrspueler_RemainingProgramTimeState changed
then
    var remainSeconds = (Kueche_Geschirrspueler_RemainingProgramTimeState.state as Number).intValue 
    var vEndTime = String::format("%1$tH.%1$tM.%1$tS",ZonedDateTime.now.plusSeconds(remainSeconds))  //Endzeit
    var vRemainingTime = String::format("%1$tH.%1$tM.%1$tS",ZonedDateTime.now.with(LocalTime.MIDNIGHT).plusSeconds(remainSeconds))     // verbleibende Zeit
    logInfo ("vRemainingTime", "vRemainingTime in Std:Min:Sek ist {} *** vEndTime {}", vRemainingTime, vEndTime)
    Kueche_Geschirrspueler_EndTime.postUpdate(vEndTime)
end
So sollte es eigentlich klappen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: Zeitpunkt anhand verbleibender Sekunden berechnen

Beitrag von OliverCJ »

Hi Peter, da hast Du mich wahrscheinlich missverstanden... das klappte schon ganz hervorragend. Danke!

Was ich sagen wollte: Deine rule sieht meiner ursprünglichen aus OH2.5 sehr ähnlich, sogar die Variablennamen waren exakt die gleichen... gleicher Urheber der rule? :-)
Einziger Unterschied war tatsächlich die "Umformatierung" bei dir bezüglich JavaTime. Und da suche ich halt Seiten, wo ich mich etwas besser einlesen kann... will ja nicht jedes Mal hier fragen...

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
peter-pan
Beiträge: 2769
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Zeitpunkt anhand verbleibender Sekunden berechnen

Beitrag von peter-pan »

OliverCJ hat geschrieben: 4. Nov 2021 10:55 gleicher Urheber der rule?
...aaah, das meintest du.

Ich sag's mal so. Ich hab zwar eine Spülmaschine (bzw. meine Frau hat eine :lol: ). Aber die ist nicht mit OH vernetzt.

Die Rule hab ich auch auf meinen OH2.5-Rechner(Produktion). Ich hab da extra eine "test.rules"-Datei, da gibt's die auch schon.

Die OH3-Version hab ich aber auch schon gehabt. Entweder weil ich beim Migrieren einen Fehler angezeigt bekommen habe, oder aber jemand "Hilfe" geschrien hat :o

Ich denke mal, dass ich da schon mal jemandem geholfen habe, das Ding (Rule und Spülmaschine) zum Laufen zu bringen. ;) ;)
OliverCJ hat geschrieben: 4. Nov 2021 10:55 will ja nicht jedes Mal hier fragen...
Wieso nicht ? Dafür ist das Forum ja da. Ich helf' immer gerne, wenn ich kann.

Edit: Schau mal hier (ab Seite 3) ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten