cron Ausdruck und Visual Studio Code

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: cron Ausdruck und Visual Studio Code

Beitrag von udo1toni »

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

hardl
Beiträge: 347
Registriert: 10. Mai 2018 09:46
Answers: 1

Re: cron Ausdruck und Visual Studio Code

Beitrag von hardl »

Hallo udo1toni,

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.

Sollte ich da lieber ein neues Thema öffnen?

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: cron Ausdruck und Visual Studio Code

Beitrag von udo1toni »

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

hardl
Beiträge: 347
Registriert: 10. Mai 2018 09:46
Answers: 1

Re: cron Ausdruck und Visual Studio Code

Beitrag von hardl »

Hallo udo1toni,

ich bräuchte nochmal Deine Hilfe:
Folgendes habe ich geändert und eine manuelle rule zugefügt:

Code: Alles auswählen

var Number BZ_soll = null .  						//globale Variable
WZ_soll = if(WZ_Item.name.contains("Ein")) 1 else 11                 // Sollzustand nach WZ_Timer

Code: Alles auswählen

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?

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: cron Ausdruck und Visual Studio Code

Beitrag von udo1toni »

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

hardl
Beiträge: 347
Registriert: 10. Mai 2018 09:46
Answers: 1

Re: cron Ausdruck und Visual Studio Code

Beitrag von hardl »

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?

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: cron Ausdruck und Visual Studio Code

Beitrag von udo1toni »

Ah, jetzt verstehe ich.

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

hardl
Beiträge: 347
Registriert: 10. Mai 2018 09:46
Answers: 1

Re: cron Ausdruck und Visual Studio Code

Beitrag von hardl »

Ja, erst die Variable, dann die manuellen rules und dann die von Dir vorgeschlagenen rules.

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: cron Ausdruck und Visual Studio Code

Beitrag von udo1toni »

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

hardl
Beiträge: 347
Registriert: 10. Mai 2018 09:46
Answers: 1

Re: cron Ausdruck und Visual Studio Code

Beitrag von hardl »

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.

Antworten