Seite 1 von 1

Richtige Reaktion auf state-Änderung durch curl

Verfasst: 1. Mai 2022 21:07
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

Re: Richtige Reaktion auf state-Änderung durch curl

Verfasst: 1. Mai 2022 21:18
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.

Re: Richtige Reaktion auf state-Änderung durch curl

Verfasst: 1. Mai 2022 21:39
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.

Re: Richtige Reaktion auf state-Änderung durch curl

Verfasst: 1. Mai 2022 23:13
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.

Re: Richtige Reaktion auf state-Änderung durch curl

Verfasst: 2. Mai 2022 10:38
von kaloschke
Ups. Alles klar :-)
Dank Dir.
Aber eigentlich meinte ich, dass ich ja jetzt auf die Regel ganz verzichten kann ...