Meldung Waschmaschine wenn fertig

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Lux73
Beiträge: 61
Registriert: 26. Dez 2019 12:32
Answers: 0
Wohnort: Bielefeld

Re: Meldung Waschmaschine wenn fertig

Beitrag von Lux73 »

udo1toni hat geschrieben: 11. Aug 2023 17:20 ja, da fehlt ein val...
Die Anführungszeichen hingegen sind Quatsch.
strName+" fertig!!!" ist das Gleiche wie ""+strName+" fertig!!!", denn "" ist ein leerer String, an den ein anderer String angehängt wird (mittels +). Somit ist der zweite String das Ergebnis dieser Verkettung, denn der erste String ist ja nun mal leer.

Irgendwie ist aber das val vor der Zuweisung der lokalen Konstante mailAction flöten gegangen, es muss

Code: Alles auswählen

val mailAction = getActions("mail","mail:smtp:mailprovider")
heißen.
Guten Morgen,

ja das mit den Anführungszeichen hatte ich mir schon gedacht - hatte ja auch nicht funktioniert :mrgreen:

Das fehlende 'val' hätte ich wohl nie gesehen :oops:

Vielen Dank für deine kompetente Hilfe :!:

Wenn ich nochmal Fragen darf - wieso muss im vorletzten Codeblock 'strName' nochmals definiert werden? das wurde doch zuvor schon erledigt...? Wo ist da mein Denkfehler?

Code: Alles auswählen

var strName = "Waschmaschine"																			// Default Werte Waschmaschine setzen
	var iHigh   = 14
	var iLow    = 4
	var iTime   = 5
	if(iTuyaWaschkeller > 1) {																				// bDry ist true -> 
		strName = "Trockner"																				// Default Werte Trockner setzen
		iHigh   = 500
		iLow    = 450
		iTime   = 10
	}
	if(nWatt < iLow && tTuyaWaschkeller === null) {															// Gerät ist vielleicht fertig
		logDebug("washDry", "Tuya {} < {} W - Timer ein!",strName,iLow)
		tTuyaWaschkeller = createTimer(now.plusMinutes(iTime), [|
			val mailAction = getActions("mail","mail:smtp:hosteurope")
			var strName = "Waschmaschine"
			if(iTuyaWaschkeller > 1)
				strName = "Trockner"
			mailAction.sendHtmlMail("lux@djabber.de", "OpenHAB: "+strName+" fertig", +strName+" fertig!!!")
			logInfo("washDry", "{} fertig!",strName)
			tTuyaWaschkeller = null
			iTuyaWaschkeller = 0
		])
Grüße
Michael
APU2c4|Debian11.8|OpenHAB4.1.1@Zulu17|mosquitto|hostapd|dnsmasq|influxdb|grafana|zigbee2mqtt / Huawei MediaPad T5|FullyKioskBrowser
Zigbee: CC2652RB|7x Hue|3xIlluminize 5110.40|1xFLS-PP|4xDanfoss Ally|Aqara 5xMCCGQ11LM/6xWSDCGQ11LM/6xGZCGQ01LM/4xRTCGQ11LM/2xRTCGQ13LM/1xDJT11LM/1xRTCZCGQ11LM|TuYa 2xTS011F/3xTS0601|1xCC2530.ROUTER
MQTT: Tasmota11.1.0|8xDelock 11826|3xShelly1|3xBlitzwolf SHP8|1xGosund SP112

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

Re: Meldung Waschmaschine wenn fertig

Beitrag von udo1toni »

strName ist eine lokale Variable. (die heißt dann non final)
Die von Dir vermutlich gemeinte Stelle im Code befindet sich innerhalb eines Lambdas.
Gewöhnlich ist es nicht möglich, innerhalb eines Lambdas auf non-finale Variablen von außerhalb des Lambdas zuzugreifen.
Es gibt Ausnahmen von dieser Regel, ich bin mir aber an dieser Stelle nicht sicher, wie sich openHAB hier verhält. Letztlich sind es drei Zeilen Code die nicht weh tun, aber sicherstellen, dass die Rule sich wie gewünscht verhält (hoffentlich...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Lux73
Beiträge: 61
Registriert: 26. Dez 2019 12:32
Answers: 0
Wohnort: Bielefeld

Re: Meldung Waschmaschine wenn fertig

Beitrag von Lux73 »

Hallo udo1toni,

ich wollte nur nochmal eine kurze Rückmeldung geben das deine Rule perfekt funktioniert :)

Vielen Dank nochmal dafür!
APU2c4|Debian11.8|OpenHAB4.1.1@Zulu17|mosquitto|hostapd|dnsmasq|influxdb|grafana|zigbee2mqtt / Huawei MediaPad T5|FullyKioskBrowser
Zigbee: CC2652RB|7x Hue|3xIlluminize 5110.40|1xFLS-PP|4xDanfoss Ally|Aqara 5xMCCGQ11LM/6xWSDCGQ11LM/6xGZCGQ01LM/4xRTCGQ11LM/2xRTCGQ13LM/1xDJT11LM/1xRTCZCGQ11LM|TuYa 2xTS011F/3xTS0601|1xCC2530.ROUTER
MQTT: Tasmota11.1.0|8xDelock 11826|3xShelly1|3xBlitzwolf SHP8|1xGosund SP112

Antworten