hardl hat geschrieben: ↑3. Nov 2018 16:24
Der Block mit den contains wird aber sehr umfangreich wenn ich am Sa oder So je nach SW_2 den 1_Aus oder 2_Aus verhindern will.
Ah, jetzt verstehe ich. Die zusätzliche Ausschaltzeit soll die Ausschaltzeit 1 bzw. 2 ersetzen, falls sie aktiv ist.
hardl hat geschrieben: ↑3. Nov 2018 16:24
Die ")" nach xx_SW_So.state == ON scheint verrutscht.
Jepp, stimmt. Das ist mir bei meinen Tests nicht aufgefallen, weil kein Wochenende war...
Ich hab das im Posting korrigiert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
die sitemap habe ich noch angepasst und alles scheint bestens zu funktionieren.
Ich habe jetzt noch 1 Fehler, den mit [ERROR] [io.openhabcloud.internal.CloudClient] - Socket.IO error: {}, den ich weiter oben schon mal gepostet habe und eine Warnung
2018-11-05 17:39:12.107 [WARN ] [ndclass.ZWaveAlarmSensorCommandClass] - NODE 14: Detected Fibaro FGK - 101 Door / Window sensor, only requesting alarm type Smoke, den gleichen auch für meinen zweiten Türsensor.
Ja, dazu kann ich aber nichts sagen, ich nutze kein zwave. Wäre besser, wenn Du dazu ein eigenes Thema aufmachst, nicht jeder schaut in alle neuen Beiträge rein
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
rule "Heizung BZ manu"
when
Item BZ_Wahl_manu changed or
Item BZ_Auto changed
then
var Number manuwahl
if(BZ_Auto.state == OFF) {
manuwahl = BZ_Wahl_manu.state as Number
logInfo("timer","WahlBZ=OFF: {}",manuwahl)
BZ_Thermostat.sendCommand(manuwahl)
}else {
logInfo("timer","WahlBZ=ON: {}",BZ_soll)
BZ_Thermostat.sendCommand(BZ_soll)
}
end
Die manuelle Wahl klappt einwandfrei, wenn ich aber auf Auto zurückgehe ist die BZ_soll immer leer?
Ich verstehe nicht so ganz, was Du meinst. Wenn Du BZ_soll auf null setzt (Du hast da übrigens einen einzelnen Punkt stehen, der totsicher nicht dort hingehört) ist es anschließend null bzw. leer.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Der Punkt ist hier im Forum reingerutscht, in der rule gibt es den nicht.
Ich möchte z.B. im Urlaub eine manuelle Temperatur einstellen und am Tag vor der Rückkehr wieder hochstellen. Das funktioniert auch gut.
Jetzt habe ich BZ_soll von val local auf auf var global geändert und mit null belegt.
Dann sollte bei der ersten timer-Initialisierung die BZ_soll mit 1 oder 11 belegt werden.
Wenn ich aber in der rule Heizung BZ manu die Variable BZ_soll anspreche ist die immer leer.
Das Anlegen der Variable BZ_soll mit "null" erfolgt doch nur bei Neustart?
Die globale Variable hast Du vor den Rules definiert?
Der Unterschied val <-> var ist, dass man mit var eine Variable definiert, mit val eine Konstante.
Konstanten können nur einmalig definiert, aber nicht geändert werden.
Global wird eine Variable bzw. Konstante durch Voranstellen vor die erste Rule in der Datei.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Die Variable sollte nur dann mit null geladen werden, wenn die Rules-Datei neu geladen wird. Das scheint bei Dir nun aus unerfindlichen Gründen nicht der Fall zu sein. Möglichkeit eins wäre, dass Du irgendwo eine Rule hast, die schreibend auf die Variable zugreift und dabei null schreibt. Möglichkeit zwei wäre eine Annomalie in openHAB das ist aber eher unwahrscheinlich.
Du kannst als Alternative zur Variablen auch ein Item zum Zwischenspeichern nehmen, dann kannst Du jederzeit über die UI den aktuellen Wert anzeigen.
Du musst dann halt jeweils die Methoden (.postUpdate() und (.state as Number)) zum Zuweisen und Auslesen verwenden.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Heute funktioniert es und jetzt weiß ich auch warum.
Die Variable wird erst im Lambda des Timers mit 1 oder 11 geladen.
Wenn ich noch was an der rule ändere, wird die Rules-Datei neu geladen und die Variable entsprechend mit null. Bis zur nächsten Ausführung des Lambdas ist die Variable dann null.