Das Item Oeltank_Full_Status ist korrekt verbunden und zeigt auch in der sitemap den korrekten Wert vom Sensor an. (in cm).
das Item OelFull habe ich in einer .items Datei angelegt als Number Item. Dieses soll nachher den fertig berechneten Wert bekommen um diesen ebenfalls auszugeben.
Berechnung Füllstand Heizöltank
-
- Beiträge: 74
- Registriert: 19. Jan 2020 10:39
Re: Berechnung Füllstand Heizöltank
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
---------------------------------
OpenHAB 3 auf Dell ThinClient unter Debian Bullseye und ConBee II
RaspberryPi 4b 2GB in Din Rail Gehäuse mit PiVCCU3
Allerlei Sonoff, Shelly, NodeMCU, Sensoren, Aqara Krams und und und.
OpenHAB 3 auf Dell ThinClient unter Debian Bullseye und ConBee II
RaspberryPi 4b 2GB in Din Rail Gehäuse mit PiVCCU3
Allerlei Sonoff, Shelly, NodeMCU, Sensoren, Aqara Krams und und und.
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Berechnung Füllstand Heizöltank
Bist Du sicher, dass die Rule geladen wird? Zum Test kannst Du zusätzlich(!) ein Switch Item als Trigger einbauen.
Sicherheitshalber kannst Du auch noch die Konstanten fest definieren (das sollte eigentlich nicht notwendig sein):
Ich hab die Formel noch leicht abgewandelt, sowie noch ein paar Logzeilen dazu gepackt. Wenn man nun das Item mySwitch über die UI schaltet, wird die Rule ausgelöst. Entweder gibt es eine Warnmeldung über den fehlenden (oder außerhalb des erlaubten Bereichs liegenden) Wert, oder es gibt eine hübsche Zusammenfassung aller relevanten Werte. Eins von beiden muss im openhab.log auftauchen.
Sicherheitshalber kannst Du auch noch die Konstanten fest definieren (das sollte eigentlich nicht notwendig sein):
Code: Alles auswählen
// globale Variablen und Konstanten Zu beginn der Datei definieren
val Number aMin = 10 // [cm Abstand zu Sensor wenn Tank voll]
val Number aMax = 175 // [cm Abstand zu Sensor wenn Tank leer]
val Number vMax = 10000 // [Fassungsvermögen in Liter]
rule "Berechnung Öl"
when
mySwitch received command or
Oeltank_Full_Status changed
then
if(!(Oeltank_Full_Status.state instanceof Number)) { // falls Status keine gültige Zahl
logWarn("oelstand","Öltanksensor liefert keinen Messwert! ({})",Oeltank_Full_Status.state)
OelFull.postUpdate(NULL)
return;
}
if((Oeltank_Full_Status.state as Number) < aMin) { // falls Status kleiner aMin
logWarn("oelstand","Öltanksensor liefert zu kleinen Messwert! ({} cm)",Oeltank_Full_Status.state)
OelFull.postUpdate(NULL)
return;
}
if((Oeltank_Full_Status.state as Number) > aMax) { // falls Status größer aMax
logWarn("oelstand","Öltanksensor liefert zu großen Messwert! ({} cm)",Oeltank_Full_Status.state)
OelFull.postUpdate(NULL)
return;
}
val Number aIst = Oeltank_Full_Status.state as Number
val Number vIst = vMax * (1 - (aIst - aMin) / (aMax - aMin))
logInfo("oelstand","Abstand Minimum: {} cm; Maximum {} cm; Ist {} cm",aMin,aMax,aIst)
logInfo("oelstand","Abstand Strecke gesamt: {} cm; Ist {} cm",aMax-aMin,aIst-aMin)
logInfo("oelstand","Volumen gesamt: {} dm³; Ist {} dm³",vMax,vIst)
OelFull.postUpdate(vIst)
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 74
- Registriert: 19. Jan 2020 10:39
Re: Berechnung Füllstand Heizöltank
mit dem mySqitch funktioniert es:
habe die rule noch geänert im when bereich zu (also Item dazu geschrieben):
dannach war auch der Fehler im Log weg und Zack wird es angezeigt.
GANZ GANZ lieben Dank für die Hilfe. Vielleicht hilft es ja dem ein oder anderen auch so etwas umzusetzen!
Code: Alles auswählen
2020-05-15 15:32:45.103 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'oeltank.rules' has errors, therefore ignoring it: [8,5]: no viable alternative at input 'mySwitch'
[9,5]: no viable alternative at input 'Oeltank_Full_Status'
2020-05-15 15:34:35.189 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'oeltank.rules'
2020-05-15 15:34:49.884 [INFO ] [ipse.smarthome.model.script.oelstand] - Abstand Minimum: 10 cm; Maximum 175 cm; Ist 20.456 cm
2020-05-15 15:34:49.888 [INFO ] [ipse.smarthome.model.script.oelstand] - Abstand Strecke gesamt: 165 cm; Ist 10.456 cm
2020-05-15 15:34:49.891 [INFO ] [ipse.smarthome.model.script.oelstand] - Volumen gesamt: 10000 dm³; Ist 9366.30303030303030303030303030303030000 dm³
2020-05-15 15:35:11.035 [INFO ] [ipse.smarthome.model.script.oelstand] - Abstand Minimum: 10 cm; Maximum 175 cm; Ist 20.456 cm
2020-05-15 15:35:11.038 [INFO ] [ipse.smarthome.model.script.oelstand] - Abstand Strecke gesamt: 165 cm; Ist 10.456 cm
2020-05-15 15:35:11.040 [INFO ] [ipse.smarthome.model.script.oelstand] - Volumen gesamt: 10000 dm³; Ist 9366.30303030303030303030303030303030000 dm³
Code: Alles auswählen
when
Item mySwitch received command or
Item Oeltank_Full_Status changed
GANZ GANZ lieben Dank für die Hilfe. Vielleicht hilft es ja dem ein oder anderen auch so etwas umzusetzen!
---------------------------------
OpenHAB 3 auf Dell ThinClient unter Debian Bullseye und ConBee II
RaspberryPi 4b 2GB in Din Rail Gehäuse mit PiVCCU3
Allerlei Sonoff, Shelly, NodeMCU, Sensoren, Aqara Krams und und und.
OpenHAB 3 auf Dell ThinClient unter Debian Bullseye und ConBee II
RaspberryPi 4b 2GB in Din Rail Gehäuse mit PiVCCU3
Allerlei Sonoff, Shelly, NodeMCU, Sensoren, Aqara Krams und und und.
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Berechnung Füllstand Heizöltank
Autsch... wie peinlich... [emoji33]sonic hat geschrieben:Habe die rule noch geänert im when bereich zu (also Item dazu geschrieben):dannach war auch der Fehler im Log weg und Zack wird es angezeigt.Code: Alles auswählen
when Item mySwitch received command or Item Oeltank_Full_Status changed
Gesendet von meinem SM-G973F mit Tapatalk
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet