Tasmota/MQTT - Node-RED

Ich benötige mal Unterstützung bei der Einbindung von Sonoff/Tasmota Geräten über Node-Red nach hih. Das ganze Thema ist komplett neu für mich…
Wahrscheinlich reicht ein kleiner Schubs in die richtige Richtung.

Was habe ich gemacht:

  • mir einen Pi 4 zum Geburtstag schenken lassen :heavy_check_mark:
  • ganz alleine Raspbian, ioBroker und NR installiert :heavy_check_mark:
  • gemäß Micha’s Video einen virtuellen Plug angelegt und via hih eingebunden :heavy_check_mark:
  • aus den contrib-homee-flows den homeesystemstatus angelegt und via hih eingebunden :heavy_check_mark:
  • alte Sonoff-Geräte aus dem Keller geholt, entstaubt und Updates auf die letzte Tasmota 8.3.1 gemacht, MQTT aktiviert :heavy_check_mark:
  • in ioB den Sonoff Adapter installiert :heavy_check_mark:
  • in NR die node-red-contrib-sonoff-tasmota installiert :heavy_check_mark:

In ioB wird der Sonoff gefunden.
Nun wollte ich in NR den Flow „Sonoff Plug ohne Verbrauchsmessung“ nachbauen und scheitere offenbar an den MQTT Einstellungen…



Der Sonoff wird zwar als verbunden angezeigt, ich kann ihn via hih einbinden - aber beim Schalten rührt sich das Relais von „Regal-Leuchte“ nicht. Der Schaltzustand vom „Sonoff Basic“ ändert sich aber beim Schalten im homee.

Wo liegt der Fehler?

Ich gehe davon aus, das du einen Mosquito Server installiert hast und dieser unter Port 1884 läuft…

Bei client einfach nix eintragen, einfach auf Standard lassen.

Bei tasmota hast du state und command topics:
state_topic: „stat/sonoff/POWER“
command_topic: „cmnd/sonoff/POWER“

Kannst mal mit einem MQTT-Listener (z.B. MQTT.FX) drauf hören und testen.

Was noch sein könnte:

  • Template für Gerät passt nicht… das erkennt man daran, dass das Gerät sich auch nicht über die Tasmota-Weboberfläche (on/off) schalten lässt.

- Nimm unbedingt in NR anstatt dem sonoff-node, den sonoff-tasmota-node

Unter ioB läuft ein MQTT Adapter auf Port 1883 und ein Sonoff Adapter auf Port 1884.
Brauche ich hier sonst noch etwas?

Ich habe es mit dem node-red-contrib-sonoff-tasmota und dem node-red-contrib-sonoff-tasmota-enhanced probiert.

Doch, das klappt einwandfrei, ist ja auch nur ein Sonoff Basic.

Da dürfte das Problem liegen… du musst den mqtt ip/port eintragen: IP:1883

Kollidieren die beiden Adapter dann nicht?

Nein… du sagst dem Gerät über die Konfig ja nur, wo die Nachrichten hin müssen, um per mqtt gepublished zu werden.

Im Log gibt es dann einen Fehler:
uncaught exception: listen EADDRINUSE: address already in use 192.168.x.xxx:1883

So wie ich das verstanden habe, bringt der Sonoff Adapter seinen eigenen MQTT Server mit.

Ok, ich kenne mich mit iobroker nicht so aus… Kann sein, dass du dann den mqtt-adapter nicht zusätzlich brauchst…
Entscheidend ist, dass du mal testest, ob überhaupt Nachrichten gepublished werden. Ich würde das mit einem Listener mal testen.

Du brauchst doch auch gar keinen sonoff Adapter wenn du die mit mqtt einbindest. Dann brauchst du nur den mqtt Adapter und node Red mit dem mqtt node.

Und in den Objekten vom mqtt Adapter in iobroker sieht man auch unter welchen topics was gesendet wird.

1 „Gefällt mir“

Ich hatte den Beispiel-Flow genommen, der setzt auf dem Sonoff Adapter auf.
Da ich außer den Sonoffs (noch) keine MQTT Geräte habe, habe ich jetzt mal den MQTT Adapter deaktiviert, aber ich denke, das ist aufgrund der unterschiedlichen Ports eh irrelevant.

Wie mache ich das mit einem Listener? :see_no_evil:

Warum über mqtt? Ich habe meine shellys mit Tasmota-Software dirket über iobroker / node-red / homee eingebunden. Kann Dir gern einen Flow heute Abend schicken.
Hat der Weg über mqtt irgendwelche Vorteile?

Sehr gerne!

Öhm, keine Ahnung. Ich beschäftige mich erst seit 3 Tagen mit dem Pi 4, ioB und NR… :grimacing:

1 „Gefällt mir“

Viele Wege führen nach Rom! :wink:

Ich will (gerade) nicht nach Rom, ich will nur meinen Sonoff schalten… :smile:

@pino73 Schau mal ob du damit etwas anfangen kannst. Einfach als neuen Flow im node red importieren, deinen vhih auswählen und das Gerät im iobroker node auswählen.

Plug.pdf (133,3 KB)

1 „Gefällt mir“

Danke für Deinen Flow!
Hat soweit funktioniert. Aber ich bekomme dadurch keinen Rückkanal für den echten Schaltzustand, wenn man am Gerät selber umschaltet.
Müsste man dann die ioBroker in und out durch ioBroker get tauschen und miteinander verbinden?

So, Fehler gefunden!
Das Topic vom ioBroker in und out musste bei mir nicht heißen
„sonoff.0.[…].POWER“ sondern „sonoff.0.[…].POWER1
Jetzt läuft’s wie es soll!

2 „Gefällt mir“

Super, wenn es geklappt hat. Ich konnte leider jetzt erst wieder rein schaun. Wir sind letzte Wochenende beim Unwetter etwas abgesoffen. Da hatte der Keller erstmal Vorrang. Wenn Du noch mehr einbinden möchtest sind auf github auch super Beispielflows: