Moin Zusammen,
ich habe mir eine Numberitem erstellt um anschließend per Regel eine Zahl hineinzuschreiben.
Nun musste ich folgenden umweg gehen: Ich musst erst eine 0 reinschreiben bevor ich meine Errechnete Zahl der erste mal rein schreibe. Kann mir das jemand erklären?
Number Item NULL
-
- Beiträge: 68
- Registriert: 3. Jan 2021 11:06
- Wohnort: Wörlitz / Obertshausen
Number Item NULL
Openhab 4.0.0 RPi SSD
Homematic CCU3
Phoscon
Shelly
FRITZ!Box
Alexa
Homematic CCU3
Phoscon
Shelly
FRITZ!Box
Alexa
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Number Item NULL
Die Frage ist, wie Du die Werte reinschreibst. Grundsätzlich ist es nicht notwendig, ein Item zu initialisieren, um mit einer Rule Werte schreiben zu können.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 68
- Registriert: 3. Jan 2021 11:06
- Wohnort: Wörlitz / Obertshausen
Re: Number Item NULL
Code: Alles auswählen
if (itemRegistry.getItem('Heizung__Buero_Betrieb').getState() == 'OFF') {
Heizdauer = (chronoUnit.SECONDS.between((((persistence.previousState(itemRegistry.getItem('Heizung__Buero_Betrieb'),true)) ? persistence.previousState(itemRegistry.getItem('Heizung__Buero_Betrieb'),true).getTimestamp() : 'undefined')),(zdt.now())));
logger.warn(Heizdauer);
Verbrauch = (Heizdauer * Leistung) / 3600000;
logger.error(Heizdauer);
logger.error(Verbrauch);
Alter_Verbrauch = itemRegistry.getItem('Heizdauer_Buero').getState();
berechnung = Alter_Verbrauch + Verbrauch;
events.sendCommand('Heizdauer_Buero', berechnung);
}
Openhab 4.0.0 RPi SSD
Homematic CCU3
Phoscon
Shelly
FRITZ!Box
Alexa
Homematic CCU3
Phoscon
Shelly
FRITZ!Box
Alexa
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Number Item NULL
Der Punkt ist vermutlich: Du nutzt sendCommand(). sendCommand() sendet einen Befehl (vor allem in Richtung verlinkte Channel, aber auch, um andere Rules zu triggern, die auf received command reagieren).
Eigentlich möchtest Du aber nur den Status des Items setzen. Das passiert zwar (Default Verhalten) auch bei sendCommand, aber halt nur, weil openHAB der Meinung ist, wenn ein Befehl an das Item gesendet wird, muss der Status ja auf jeden Fall den gleichen Wert bekommen (oder einen anderen, der auf dem Befehl beruht, z.B. Befehl OFF führt bei einem Dimmer Item zu einem Status 0)
Es kann durchaus sein, dass das zu ienem Holpern in der Datenverarbeitung führt.
Korrekt (im Sinne von: Staus direkt setzen) ist der Befehl postUpdate().
Außerdem benutzt Du Variablen, z.B. berechnung, die sind aber gar nicht initialisiert. Ich bin mir nicht sicher, ob das in Javascript keine Rolle spielt (scheint ja erst mal egal zu sein).
Eigentlich möchtest Du aber nur den Status des Items setzen. Das passiert zwar (Default Verhalten) auch bei sendCommand, aber halt nur, weil openHAB der Meinung ist, wenn ein Befehl an das Item gesendet wird, muss der Status ja auf jeden Fall den gleichen Wert bekommen (oder einen anderen, der auf dem Befehl beruht, z.B. Befehl OFF führt bei einem Dimmer Item zu einem Status 0)
Es kann durchaus sein, dass das zu ienem Holpern in der Datenverarbeitung führt.
Korrekt (im Sinne von: Staus direkt setzen) ist der Befehl postUpdate().
Außerdem benutzt Du Variablen, z.B. berechnung, die sind aber gar nicht initialisiert. Ich bin mir nicht sicher, ob das in Javascript keine Rolle spielt (scheint ja erst mal egal zu sein).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 68
- Registriert: 3. Jan 2021 11:06
- Wohnort: Wörlitz / Obertshausen
Re: Number Item NULL
Danke Udo für den Hinweis. Den Teil mit dem initialisieren der variablen habe ich nicht kopiert. Ich versuche es mal mit Update.
Openhab 4.0.0 RPi SSD
Homematic CCU3
Phoscon
Shelly
FRITZ!Box
Alexa
Homematic CCU3
Phoscon
Shelly
FRITZ!Box
Alexa