Seite 4 von 4

Re: http post von OH2 auf OH3

Verfasst: 18. Apr 2023 18:15
von Homer-S
Ich hab gerade in der Beschreibung von ESPEasy gelesen, dass die Generik so aussieht:

topic: <MQTT subscribe template>/cmd LongPulse,13,1,2
im Wemos steht das: Controller Subscribe:

Code: Alles auswählen

%sysname%/#
Also hab ich im MQTT.fx bei Publish das mal eingegeben:

Code: Alles auswählen

GARAGE/cmd LongPulse,13,1,2
Ich sehe im MQTT-Server auch genau das ankommen, aber im Log vom Wemos taucht nichts auf ....

Code: Alles auswählen

GARAGE/cmd LongPulse,13,1,2
Wenn der Wemos die Werte der Endanschläge schickt wird das angezeigt im MQTT.fx:

Code: Alles auswählen

GARAGE/O2D2G4TorEndlageUnten/State
1
Jetzt bin ich bissl ratlos, vor allem weil alles was ich bisher ergoogelt habe so gar nichts ergeben hat ...

Re: http post von OH2 auf OH3

Verfasst: 18. Apr 2023 20:36
von udo1toni
Also, wichtig ist halt, der erste Teil ist das Topic, der zweite Teil ist die Payload. Die Payload gehört in ein anderes Feld als das Topic.
Das Topic kommt oben in das kleine Feld, die Payload in den großen Kasten :)

Re: http post von OH2 auf OH3

Verfasst: 19. Apr 2023 15:27
von Homer-S
BAMM, wenn man weiß, wie man mit MQTT.fx umzugehen hat, geht es auch.

GARAGE/cmd

LongPulse,13,1,2

klappt.

Wie mach ich das nun im OH3?
Ein Thing MQTT hab ich mal angelegt.
Welche Art von Channel ist? Ein Trigger? Wo trag ich da den Payload ein?
Herzlichen Dank

Re: http post von OH2 auf OH3

Verfasst: 19. Apr 2023 18:47
von Quautiputzli
Es muss ein on/off switch channel sein.

Entweder so:
Bild_2023-04-19_184305540.png
Wobei ich mir nicht ganz sicher bin ob diese "custom ON/OFF value" nur fürs empfangen oder auch für das senden gilt.

oder so wie udo1toni schon mal geschrieben hat:
Bild_2023-04-19_184643617.png
Ich würd ausprobieren.

Re: http post von OH2 auf OH3

Verfasst: 20. Apr 2023 00:59
von udo1toni
onValue und offValue werden sowohl beim Empfang als auch beim Senden verwendet. Statt die URL zu beeinflussen, musst Du bei mqtt lediglich die Payload manipulieren, das geschieht gewöhnlich über formatBeforePublish. Funktioniert meines Wissens ähnlich wie bei der http URL, nur ist es bei mqtt %s als Platzhalter innerhalb der Payload.
Mit dem MQTT Explorer (oder MQTT.fx) kannst Du ja direkt sehen, was tatsächlich gesendet wird.

Da Du ein Topic zum Senden brauchst ist es - wie oben schon erwähnt - eine Überlegung wert, das indirekt zu erledigen. Du legst ein Number Item an, welches Du verwendest, um die Zahlen 12 - 15 zu senden, in der UI kannst Du einfach vier Schaltflächen anlegen, die jeweils exakt diesen Wert senden. Für das Licht könntest Du auch ein extra Item definieren, welches dann per Rule an das Sendeitem weitergeleitet wird. Das Number Item zum Senden wird in den Metadatan auf autoupdate="false" konfiguriert. Deine Rückmelderule sendet den Status des Tors (geschlossen, geöffnet oder teilweise geöffnet) als postUpdate an das Item mit den Zahlen 12 - 14, dann werden die entsprechenden Tasten sogar direkt als aktiv angezeigt.
Letztlich brauchst Du also über mqtt vielleicht nur zwei oder drei Channel (je nachdem, wie der Zustand des Tors und der Leuchte gemeldet werden) und eine oder zwei Rules, um da Ganze in openHAB komfortabel abzubilden.