Ich gehe davon aus, dass zisternenstand2_avg ebenfalls ein Item ist. Ein Item ist eine Item, keine Variable. Du kannste einem Item nicht einfach per = einen Wert zuweisen. Du musst stattdessen die Methode postUpdate() verwenden, um den Status des Items zu beeinflussen. also so:
rule "Zisternenstand geglättet"
when
Item zisternenstand2 received update
then
zisternenstand2_avg.postUpdate(zisternenstand2.averageSince(now.minusMinutes(3)))
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
rule "Zisternenstand geglättet"
when
Item zisternenstand2 received update
then
zisternenstand2_avg.postUpdate((zisternenstand2.averageSince(now.minusMinutes(3)) + 0.5).intValue)
end
Die Werte werden mathematisch gerundet. Möchtest Du immer abrunden, so entfernst Du einfach das + 0.5.
Außerdem könnte dann ein Klammerpaar entfallen...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
Hallo zusammen. Habe nun seit Ende April den Ultraschallsensor im Einsatz. Bisher funktionierte alles problemlos bis auf einzelne Fehlmessungen. Seit Tagen liefert der Ultraschallsensor aber keine richtigen Werte. Diese pendeln meist zwischen 30 und 200 cm. Tatsächlicher Abstand in der Zisterne aktuell ca. 160 cm. Kann es sein dass der Sensor schon defekt ist? Habe extra den wasserdichten JSN-SR04T genommen.
Nun ist mir aufgefallen, dass die minimal gemessenen Werte in etwa den Füllstand widerspiegeln. Diese Werte will ich mit einer Regel "rausfiltern". Leider funktioniert diese Regel nicht.
rule "Zisternenstand Min."
when
Item zisternenstand2 received update
then
zisternenstand2_min.postUpdate(zisternenstand2.minimumSince(now.minusMinutes(15)))
end
Denke es liegt an der Zeitangabe die sich nicht mit "minimum" verträgt. Bei "average" funktioniert es ja. In Google konnte ich dazu nichts finden.
Nein, Du wirst da noch ein .state ergänzen müssen. .minimumSince liefert ein HistoricItem zurück. Dieses hat .state und .getTimestamp als Methoden. Denn Du kannst auf diesem Weg auch erfragen, wann das Minimum aufgetreten ist.
rule "Zisternenstand Min."
when
Item zisternenstand2 received update
then
zisternenstand2_min.postUpdate(zisternenstand2.minimumSince(now.minusMinutes(15)).state)
end
Eventuell mag er auch .state nicht verarbeiten, dann sollte es reichen, an das .state noch ein .toString anzuhängen. Eigentlich sollte es aber ohne diesen Kniff funktionieren.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
Definitiv Da kann ich allerdings nichts weiter beisteuern, höchstens raten, dass evtl. die serielle Kommunikation gestört ist. Hast Du mal alle Steckkontakte gezogen und wieder gesteckt? Ist der Sender im Trockenen untergebracht?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet