Rechnen mit Variablen in rule
Verfasst: 25. Okt 2024 08:34
Irgendwie sehe ich momentan scheinbar den Wald vor alter Bäumen nicht.
Alles läuft unter OpenHAB 3 auf Raspi. Die Regel wird mit Notepad manuell erstellt.
Über http Binding beziehe ich eine Zeitangabe und muss die Differenz in Stunden zur aktuellen Zeit ausrechnen.
Das Aktuelle Datum wird in die Variablen jahr_akt, monat_akt usw. zerlegt und gespeichert.
Das über http gelieferte Datum wird entsprechend in Jahr, monat … gespeichert.
Senden an das Item ist erfolgt nur zu Testzwecken. Später soll hiermit die Heizung gesteuert werden.
Diese Aufteilung der Daten wurde mehrfach durch Senden eines Strings an das item kdbINFOxx erfolgreich getestet.
Sobald auch nur der erste Versuch , der jetzt auskommentierten Befehle versucht wird, funktioniert nichts.
PS. Meldungen aus log file werden nachgereicht.
Alles läuft unter OpenHAB 3 auf Raspi. Die Regel wird mit Notepad manuell erstellt.
Über http Binding beziehe ich eine Zeitangabe und muss die Differenz in Stunden zur aktuellen Zeit ausrechnen.
Das Aktuelle Datum wird in die Variablen jahr_akt, monat_akt usw. zerlegt und gespeichert.
Das über http gelieferte Datum wird entsprechend in Jahr, monat … gespeichert.
Senden an das Item ist erfolgt nur zu Testzwecken. Später soll hiermit die Heizung gesteuert werden.
Code: Alles auswählen
val datum = httpBUSHzgSet_Datum.state.toString.split(' ').get(0)
val zeit = httpBUSHzgSet_Datum.state.toString.split(' ').get(1)
var int jahr = datum.toString.split('/').get(0)
var int monat = datum.toString.split('/').get(1)
var int tag = datum.toString.split('/').get(2)
var int stunde = zeit.toString.split(':').get(0)
var int minute = zeit.toString.split(':').get(1)
var int jahr_akt = now.getYear()
var int monat_akt = now.getMonth.getValue()
var int tag_akt = now.getDayOfMonth()
var int stunde_akt = now.getHour()
var int minute_akt = now.getMinute()
Sobald auch nur der erste Versuch , der jetzt auskommentierten Befehle versucht wird, funktioniert nichts.
Code: Alles auswählen
//var int delta_stunde = (jahr_akt - jahr) * 365 * 24
// var int delta_stunde = ( jahr_akt - jahr ) * 365 * 24
// var int delta_stunde1 = delta_stunde + ( monat_akt - monat ) * 30 * 24
// delta_stunde = delta_stunde + ( tag_akt - tag ) * 24
// delta_stunde = delta_stunde + ( stunde_akt - stunde )
// var curr = "kdbINFO " + jahr + " / monat " + monat + " / tag " + tag + " stunde " + stunde + " : " + minute + " NOW " + jahr_akt + " " + monat_akt + " " + tag_akt
var curr = "kdbINFOxx " + datum + "( " + jahr + "_" + monat +"_" + tag +" ) " + " // " + zeit + " ( " + stunde + "_" + minute + " ) NOW " + jahr_akt + " " + monat_akt + " " + tag_akt + " " + stunde_akt + " " + minute_akt
// var curr = "kdbINFOaa " + datum + " " + jahr + " " + delta_stunde.toString
kdbINFOxx.sendCommand(curr)
// var int delta_stunde = ( jahr_akt - jahr ) * 365 * 24
// var int delta_stunde1 = delta_stunde + ( monat_akt - monat ) * 30 * 24
// delta_stunde = delta_stunde + ( tag_akt - tag ) * 24
// delta_stunde = delta_stunde + ( stunde_akt - stunde
var curr = "kdbINFOxx " + datum + "( " + jahr + "_" + monat +"_" + tag +" ) " + " // " + zeit + " ( " + stunde + "_" + minute + " ) NOW " + jahr_akt + " " + monat_akt + " " + tag_akt + " " + stunde_akt + " " + minute_akt
// var curr = "kdbINFOaa " + datum + " " + jahr + " " + delta_stunde.toString
kdbINFOxx.sendCommand(curr)