OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
-
- Beiträge: 64
- Registriert: 1. Feb 2023 19:50
OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
Hallo Zusammen,
nachdem ich einen Update on 4.1.1 auf 4.3.3 gemacht habe funktioniert eine Rule nicht mehr.
Ich habe darin eine If Abfrage mit dem Wert von "NOW" und einer Zeitangabe. Die scheint nicht mehr zu funktionieren.
Ich habe mal nur eine If Abfrage von "NOW" großer gleich mit dem Wert "NOW -5 Sec" eingetragen und damit sollte doch die Anweisung immer ausgeführt werden. Oder?
Funktioniert bei euch alle Rules mit den Zeitwerten?
Ich hoffe, ihr könnt mir helfen
Grüße aus München
Hors
nachdem ich einen Update on 4.1.1 auf 4.3.3 gemacht habe funktioniert eine Rule nicht mehr.
Ich habe darin eine If Abfrage mit dem Wert von "NOW" und einer Zeitangabe. Die scheint nicht mehr zu funktionieren.
Ich habe mal nur eine If Abfrage von "NOW" großer gleich mit dem Wert "NOW -5 Sec" eingetragen und damit sollte doch die Anweisung immer ausgeführt werden. Oder?
Funktioniert bei euch alle Rules mit den Zeitwerten?
Ich hoffe, ihr könnt mir helfen
Grüße aus München
Hors
Moin,
wie machst Du den Vergleich? Für Zeit gibt es einen Extra-Block https://www.openhab.org/docs/configurat ... comparison und der funktioniert hier ohne rumzuzicken.
Gehe zur vollständigen Antwortwie machst Du den Vergleich? Für Zeit gibt es einen Extra-Block https://www.openhab.org/docs/configurat ... comparison und der funktioniert hier ohne rumzuzicken.
-
- Beiträge: 487
- Registriert: 30. Apr 2021 13:13
Re: OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
Moin,
wie machst Du den Vergleich? Für Zeit gibt es einen Extra-Block https://www.openhab.org/docs/configurat ... comparison und der funktioniert hier ohne rumzuzicken.
wie machst Du den Vergleich? Für Zeit gibt es einen Extra-Block https://www.openhab.org/docs/configurat ... comparison und der funktioniert hier ohne rumzuzicken.
- udo1toni
- Beiträge: 15240
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
Poste doch bitte mal den Inhalt der Code Ansicht (als Text, hier im Forum als Code markieren)
NOW gibt es in openHAB nicht. Eventuell meinst Du now (Groß/Kleinschreibung hat in openHAB eine Bedeutung)
Und ja, grundsätzlich funktionieren alle Rules, die unter openHAB 4.1 funktioniert haben auch unverändert unter openHAB 4.3.3 (ganz unabhängig von Zeit)
NOW gibt es in openHAB nicht. Eventuell meinst Du now (Groß/Kleinschreibung hat in openHAB eine Bedeutung)
Und ja, grundsätzlich funktionieren alle Rules, die unter openHAB 4.1 funktioniert haben auch unverändert unter openHAB 4.3.3 (ganz unabhängig von Zeit)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 64
- Registriert: 1. Feb 2023 19:50
Re: OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
Hallo udo1toni,
ich habe now nur deshalb groß geschrieben um es hervorzuheben. Im Blockly Mode ist es ja vorgeschrieben.
Hier der Code:
Ist ganz einfach, aber er funktioniert einfach nicht.
Gruß
Horst
ich habe now nur deshalb groß geschrieben um es hervorzuheben. Im Blockly Mode ist es ja vorgeschrieben.
Hier der Code:
Code: Alles auswählen
if ((time.ZonedDateTime.now()) >= time.ZonedDateTime.now().minusSeconds(5)) {
items.getItem('shellypro334987aa8afc4__192168178112_Betrieb_1').sendCommand('ON');
}
Gruß
Horst
-
- Beiträge: 64
- Registriert: 1. Feb 2023 19:50
Re: OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
Hallo Harka,
soll das heißen, dass der Vergleich mit einer IF Anweisung nicht geht?
In der OH 4.1.1 hat es funktioniert.
Hier der alte Code:
Gruß
Horst
soll das heißen, dass der Vergleich mit einer IF Anweisung nicht geht?
In der OH 4.1.1 hat es funktioniert.
Hier der alte Code:
Code: Alles auswählen
var TitleK_C3_BCche, NextTimeK_C3_BCche, NextSollK_C3_BCche, TargetK_C3_BCche;
TitleK_C3_BCche = '';
NextTimeK_C3_BCche = items.getItem('Terminfilter_Kueche_Start').state;
TitleK_C3_BCche += String(items.getItem('Terminfilter_Kueche_Titel').state);
NextSollK_C3_BCche = TitleK_C3_BCche.slice(14, 18);
if ((time.ZonedDateTime.now()) >= NextTimeK_C3_BCche) {
TargetK_C3_BCche = NextSollK_C3_BCche;
items.getItem('TargetSetpointKueche').sendCommand(TargetK_C3_BCche);
NextTimeK_C3_BCche = items.getItem('Terminfilter_Kueche_Start').state;
if (items.getItem('TargetSetpointKueche').state >= items.getItem('ESP8266151Temp').state) {
items.getItem('shellypro334987aa8afc4__192168178112_Betrieb_1').sendCommand('ON');
} else {
items.getItem('shellypro334987aa8afc4__192168178112_Betrieb_1').sendCommand('OFF');
}
}
Horst
-
- Beiträge: 487
- Registriert: 30. Apr 2021 13:13
Re: OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
Moin,
das gibt hier jeweils eine Fehlermeldung im Log. item.state gibt einen Wert vom Typ String zurück. Dies mit Typ DateTime zu vergleichen habe ich bisher nie versucht. Nimm den oben genannten Block und für die Variable "NextTimeK_C3_BCche" Datetime_from_item
das gibt hier jeweils eine Fehlermeldung im Log. item.state gibt einen Wert vom Typ String zurück. Dies mit Typ DateTime zu vergleichen habe ich bisher nie versucht. Nimm den oben genannten Block und für die Variable "NextTimeK_C3_BCche" Datetime_from_item
-
- Beiträge: 64
- Registriert: 1. Feb 2023 19:50
Re: OH 4.3.3 Blockly Mode Pobleme mit Now vergleich
Hallo zusammen,
erst mal Danke an Harka für die Info.
Es gibt wahrschein eine Änderung bzgl. der IF Abfrage aus OH 4.1.1 und 4.3.3
Wie bereits (siehe oben) hatte ich eine If-Abfrage mit "now" größer-gleich einer Variablen mit einem Datum/Zeit Wert.
Die funktioniert nicht mehr in OH 4.3.3
Deshalb habe ich die IF-Abfrage, wie von Harka geschrieben geändert.
Hier das geändert Blockly:
und hier der Code:
Vielen Dank für eure Hilfe
Horst
erst mal Danke an Harka für die Info.
Es gibt wahrschein eine Änderung bzgl. der IF Abfrage aus OH 4.1.1 und 4.3.3
Wie bereits (siehe oben) hatte ich eine If-Abfrage mit "now" größer-gleich einer Variablen mit einem Datum/Zeit Wert.
Die funktioniert nicht mehr in OH 4.3.3
Deshalb habe ich die IF-Abfrage, wie von Harka geschrieben geändert.
Hier das geändert Blockly:
und hier der Code:
Code: Alles auswählen
var TitleK_C3_BCche, NextSollK_C3_BCche, TargetK_C3_BCche;
// graalVM
function zdtCompare(zdt1, zdt2, compareOp, precision, compDate) {
switch (precision) {
case 'years':
zdt2 = zdt2.withMonth(zdt1.monthValue());
case 'months':
zdt2 = zdt2.withDayOfMonth(zdt1.dayOfMonth());
case 'days':
zdt2 = zdt2.withHour(zdt1.hour());
case 'hours':
zdt2 = zdt2.withMinute(zdt1.minute());
case 'minutes':
zdt2 = zdt2.withSecond(zdt1.second());
case 'seconds':
zdt2 = zdt2.withNano(zdt1.nano());
}
if (compDate === 'date') {
zdt1 = zdt1.toLocalDate();
zdt2 = zdt2.toLocalDate();
} else if (compDate === 'time') {
zdt1 = zdt1.toLocalTime();
zdt2 = zdt2.toLocalTime();
}
switch (compareOp) {
case 'before':
return zdt1.isBefore(zdt2);
case 'equal':
return zdt1.equals(zdt2);
case 'after':
return zdt1.isAfter(zdt2);
case 'beforeEqual':
return zdt1.isBefore(zdt2) || zdt1.equals(zdt2);
case 'afterEqual':
return zdt1.isAfter(zdt2) || zdt1.equals(zdt2);
}
}
TitleK_C3_BCche = '';
TitleK_C3_BCche += String(items.getItem('Terminfilter_Kueche_Titel').state);
NextSollK_C3_BCche = TitleK_C3_BCche.slice(14, 18);
if (zdtCompare((time.ZonedDateTime.now()), (time.toZDT(items.getItem('Terminfilter_Kueche_Start'))), 'afterEqual', 'seconds', 'dateandtime')) {
TargetK_C3_BCche = NextSollK_C3_BCche;
items.getItem('TargetSetpointKueche').sendCommand(TargetK_C3_BCche);
}
if (items.getItem('TargetSetpointKueche').state >= items.getItem('ESP8266151Temp').state) {
items.getItem('shellypro334987aa8afc4__192168178112_Betrieb_1').sendCommand('ON');
} else {
items.getItem('shellypro334987aa8afc4__192168178112_Betrieb_1').sendCommand('OFF');
}
Horst
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.