Seite 1 von 1

Sitemap Text formatieren

Verfasst: 15. Okt 2021 14:57
von TiToMoskito
Hallo zusammen,

ich möchte gerne zwei Sensoren auslesen und in einem string ausgeben.
Ich schreibe mal auf, wie ich das meine.

Item 1: 40%
Item 2: 300°C

Die Text Ausgabe soll dann so aussehen: 40% von 300°C

Wie realisiere ich sowas? Oder muss ich dafür ein custom Item mit einem String Channel erstellen und dann mittels Rule den String auf meine Bedürfnisse anpassen?

Re: Sitemap Text formatieren

Verfasst: 15. Okt 2021 15:46
von udo1toni
Du brauchst dazu tatsächlich ein String Item. Weiterhin brauchst Du eine Rule. Sonst nichts. :)

Nehmen wir an die Items heißen InProzent, InTemperatur und OutText, dann reicht folgende Rule (DSL):

Code: Alles auswählen

rule "OutText Status setzen"
when
    Item InProzent changed or
    Item InTemperatur changed
then
    val Number nProzent = if(InProzent.state instanceof Number) (InProzent.state as Number).intValue else 0
    val Number nTemp = if(InTemperatur.state instanceof Number) (InTemperatur.state as Number).intValue else 0
    OutText.postUpdate(nProzent.toString + "% von " + nTemp.toString + " °C")
end
Jedes Mal, wenn sich eines der Eingangs-Items ändert, wird die Rule getriggert. Die Items werden eingelesen, wobei im Falle, dass kein gültiger Wert empfangen wurde, der Wert 0 gesetzt wird. Anschließend wird der Wert des Items OutText auf den gewünschten String gesetzt.

Das Item benötigt keinen Link auf irgendeinen Channel (es sei denn, Du willst den String an ein anderes externes Gerät liefern, dann müsste das postUpdate() gegen sendCommand() ersetzt werden, damit das Update als Befehl an angebundene Channel geschickt wird.

Re: Sitemap Text formatieren

Verfasst: 16. Okt 2021 07:36
von TiToMoskito
Okay super, vielen Dank für die ausführliche und nette Hilfe. Dann weiß ich was ich zu tun habe :D