Seite 1 von 1

Wert eines Items mittels MQTT senden

Verfasst: 3. Okt 2020 11:59
von sadbi
Liebe NGler!

System: openhab 2
Broker: MQTT2

Ich habe einen Broker eingerichtet und kann in einer Rule auch einen Wert senden

Code: Alles auswählen

actions.publishMQTT("meinTopic/photocell", "33.1")
Setze ich statt dem fixen Wert ein Item ein, funzt es nicht.
Habe den Wert des Item vorher als Variable vom Typ Dezimal definiert und diese eingesetzt, ebenfalls nichts.
Ich vermute, dass in der Syntax der Fehler liegt. Um es vorwegzunehmen, ich habe gegoogelt.

Danke im Voraus
Sebastian

Re: Wert eines Items mittels MQTT senden

Verfasst: 3. Okt 2020 12:03
von peter-pan
Hast du schon mal

Code: Alles auswählen

actions.publishMQTT("meinTopic/photocell", meinItm.state)
probiert

Edit:

Evtl. auch

Code: Alles auswählen

actions.publishMQTT("meinTopic/photocell", meinItm.state.toString)

Re: Wert eines Items mittels MQTT senden

Verfasst: 3. Okt 2020 12:22
von sadbi
Code sieht derzeit so aus:

Code: Alles auswählen

actions.publishMQTT("meinTopic/photocell", aussentemp.state)
Fehlermeldung:
{
"resource": "/x:/rules/klima.rules",
"owner": "_generated_diagnostic_collection_name_#0",
"code": "org.eclipse.xtext.xbase.validation.IssueCodes.incompatible_types",
"severity": 8,
"message": "Type mismatch: cannot convert from State to String",
"startLineNumber": 26,
"startColumn": 48,
"endLineNumber": 26,
"endColumn": 64
}

Re: Wert eines Items mittels MQTT senden

Verfasst: 3. Okt 2020 13:00
von sadbi
Hallo peter-pan

Die Variante mit .toString hat zum Ziel geführt.
Danke

Re: Wert eines Items mittels MQTT senden

Verfasst: 3. Okt 2020 13:41
von peter-pan
..gerne.
Wenn du mit internen Variablen arbeitest, dann musst du die also solche deklarieren, z.B.:

var String vAriable = "abc"
var vAriable = "12.2"

dann sollte auch diese Version klappen.