Richtige Reaktion auf state-Änderung durch curl

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Richtige Reaktion auf state-Änderung durch curl

Beitrag von kaloschke »

Hallo mal wieder,
Der Pegelstand meiner Regentonne wird über einen Ultraschallsensor gemessen und über einen ESP8266 wird per Curl und POST der Status eines Items geändert.

Code: Alles auswählen

String WaterLevelWest                   "Wasserstand Westen" 
Das funktioniert auch soweit. Im Api-Explorer kann ich sehen, das der Status des Items geändert wird.
Aber wie bekomme ich eine Anzeige auf der Sitemap (bzw. in Habpanel) hin? Dort wird nichts angezeigt.
Eine Rule wie

Code: Alles auswählen

rule "Wasserstand Westen"
    when Item WaterLevelWest received update
    then {
        WaterLevelWest.postUpdate(WaterLevelWest.state)
    }
end 
führt offensichtlich zu einer Art Endlosschleife. Auch bei Übertragung nur eines Wertes werden sehr viele Ereignisse pro Sekunde ausgelöst.

Viele Grüße

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

Re: Richtige Reaktion auf state-Änderung durch curl

Beitrag von udo1toni »

Wenn Du den Wert über curl ins Item überträgst, dann ist es schon geändert. Wenn Du schreibst, dass in der Sitemap "nichts" angezeigt wird, dann hast Du vermutlich ein Label gesetzt, dort aber keinen Status Platzhalten eingebaut. label="Statischer Teil [%s]"

Nur am Rande: Du könntest die Rule mit einem anderen Trigger versehen:

Code: Alles auswählen

rule "Wasserstand Westen"
when 
    Item WaterLevelWest changed
then
    WaterLevelWest.postUpdate(WaterLevelWest.state)
end
Der Unterschied: die Rule triggert nur bei einer Änderung des Status. Da die Rule den Status nicht ändert, wird die Rule sich nicht selbst triggern. Aber wie gesagt bringt das genau gar nichts, Du kannst diese Rule also getrost löschen. Schau nach dem Label.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: Richtige Reaktion auf state-Änderung durch curl

Beitrag von kaloschke »

Danke für die schnelle Antwort.
In meiner Sitemap stand lediglich

Code: Alles auswählen

Text   item=WaterLevelWest
Aber mit dem Parameter klappt es jedenfalls.
Supi. Vielen Dank mal wieder.

Was das "change" anbelangt, mein Arduino-Sketch sorgt schon dafür, dass nur geänderte Werte geschickt werden.

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

Re: Richtige Reaktion auf state-Änderung durch curl

Beitrag von udo1toni »

Das liegt ein Denkfehler Deinerseits vor :) Du hast ja gesehen, dass der Trigger received update bei dieser Rule quasi tödlich ist. changed hingegen funktioniert in dem Kontext vollkommen korrekt.
Es ist nicht interessant, was die Quelle der Daten macht, es ist nur interessant, wie die Rule getriggert werden muss.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

kaloschke
Beiträge: 193
Registriert: 29. Jan 2019 07:20
Answers: 0

Re: Richtige Reaktion auf state-Änderung durch curl

Beitrag von kaloschke »

Ups. Alles klar :-)
Dank Dir.
Aber eigentlich meinte ich, dass ich ja jetzt auf die Regel ganz verzichten kann ...

Antworten