@sparli
So, ich habe jetzt alles noch mal als Testumgebung aufgebaut und diesmal Mosquitto als Broker genutzt.
Und siehe da, jetzt verhält sich das ganze auch wie gedacht.
Noch einmal vielen Dank für die Hilfe und die Rückmeldungen
@sparli
So, ich habe jetzt alles noch mal als Testumgebung aufgebaut und diesmal Mosquitto als Broker genutzt.
Und siehe da, jetzt verhält sich das ganze auch wie gedacht.
Noch einmal vielen Dank für die Hilfe und die Rückmeldungen
@sparli
So, ich habe jetzt alles noch mal als Testumgebung aufgebaut und diesmal Mosquitto als Broker genutzt.
Und siehe da, jetzt verhält sich das ganze auch wie gedacht.
Noch einmal vielen Dank für die Hilfe und die Rückmeldungen
Ja, das habe ich verstanden.
Ich habe eine komplett neue Umgebung aufgesetzt (inkl. neuem Netzwerk) und habe das noch einmal ausprobiert.
Dabei hatte ich wirklich nur die beiden Steckdosen (ohne eine Änderung vom MQTT, nur die Netzwerkeinstellungen sind geändert).
Es existiert genau ein Skript mit der Zeile von @mickym.
Ich habe mir ebenfalls angeschaut, was bei den einzelnen Steckdosen in der Konsole ankommt und es wurde genau das empfangen, was ich bei einem direkten "Befehl" erwartet hätte.
also cmnd/Staubsauger/POWER
und cmnd/Luftentfeuchter/POWER
. Warum aber durch das sendTo beide angesprochen wurden, bleibt mir ein Rätsel.
Ich habe auch zusätzlich noch verschiedene Varianten der Kommandos ausprobiert
Es lief immer auf das selbe Ergebnis hinaus. Es wurde alles ein und ausgeschaltet.
Zusätzlich habe ich im Anschluss die Steckdosen noch einmal komplett zurück gesetzt und das ganze mit den tollen Topics TollesTopic1
und TollesTopic2
getestet. Auch da habe ich das selbe Ergebnis erhalten
Bei den ganzen Tests habe ich das Retain-Flag nicht mehr gesetzt und auch vorher durch leere Nachrichten zurück gesetzt.
Da @mickym meinte, dass der Adapter als Broker sich etwas seltsam verhält, habe ich das jetzt auf dieses Verhalten geschoben.
Gerne kann ich noch andere Sachen testen, wenn euch noch etwas einfällt
Auch dir vielen Dank.
Ich habe zwar mein Problem mit dem sendTo nicht gelöst, aber ein workaround gefunden.
Hintergrund: Ich habe auf einem anderen Rechner iobroker komplett neu aufgesetzt und nur zwei Steckdosen mit rein genommen. Anschließend habe ich ein Skript geschrieben, was nichts anderes macht, als sendTo
zu nutzen. Es ist das selbe Verhalten. Alles geht an oder aus. Dabei ist es egal, welches Topic ich verwende.
Durch die Erklärung von @BananaJoe habe ich jetzt das mit den cmnd/stat/tele verstanden und ganz doof probiert unter cmnd das Power auf 1 zu setzen. über diesen Weg klappt die Kommunikation einwandfrei.
Ich weiß zwar nicht, warum es einen Unterschied macht, aber ich stecke auch nicht so tief in dem Adapter drin.
@mickym: Ich habe den Adapter als Broker laufen und stimme dir zu, dass er sich irgendwie komisch verhält. Ich kann aber noch nicht genau mit dem Finger drauf zeigen. Rein aus Interresse. Nutzt du auch diesen Adapter oder lässt du parallel einen Broker laufen und subscribest dich mit iobroker auf diesen?
Noch mal vielen Dank euch
Vielen Dank für die Antwort.
Ich habe das jetzt einmal probiert, jedoch ändert sich am verhalten nichts.
Ich muss in den nächsten Tagen Mal eine erneute Testumgebung für den iobroker aufsetzen und nur das dort noch mal testen.
Gibt es noch einen weiteren Ort, wo ich nachschauen könnte?
Viele Grüße
Stefan
So heute noch mal ein paar Ergänzungen:
Ich habe beim MQTT Adapter einmal das Logging mit angemacht und haben folgendes gesehen
mqtt.0 2024-08-11 07:50:02.549 info Client [Staubsauger] publishOnSubscribe send all known states
mqtt.0 2024-08-11 07:50:02.547 info Client [Staubsauger] publishOnSubscribe send all known states
mqtt.0 2024-08-11 07:50:02.546 info Client [Staubsauger] publishOnSubscribe send all known states
mqtt.0 2024-08-11 07:50:02.347 info Client [Staubsauger] subscribes on "cmnd/Staubsauger_fb/#" with regex /^mqtt\.0\.cmnd\.Staubsauger_fb\..*/
mqtt.0 2024-08-11 07:50:02.347 info Client [Staubsauger] subscribes on "cmnd/Staubsauger_fb/#" with regex /^cmnd\.Staubsauger_fb\..*/
mqtt.0 2024-08-11 07:50:02.346 info Client [Staubsauger] subscribes on "cmnd/tasmotas/#" with regex /^mqtt\.0\.cmnd\.tasmotas\..*/
mqtt.0 2024-08-11 07:50:02.346 info Client [Staubsauger] subscribes on "cmnd/tasmotas/#" with regex /^cmnd\.tasmotas\..*/
mqtt.0 2024-08-11 07:50:02.345 info Client [Staubsauger] subscribes on "cmnd/Staubsauger/#" with regex /^mqtt\.0\.cmnd\.Staubsauger\..*/
mqtt.0 2024-08-11 07:50:02.345 info Client [Staubsauger] subscribes on "cmnd/Staubsauger/#" with regex /^cmnd\.Staubsauger\..*/
Das sieht Ähnlich bei den anderen Klienten aus. Ich bin mir aber nicht sicher, ob das so richtig ist.
Zusätzlich sehen die Einstellung der Klienten für MQTT wie folgt aus:
Die Einstellungen für den MQTT Adapter sind folgende:
Was mache ich falsch?
Hallo,
ich probiere gerade einen Wechsel vom Sonoff Adapter zum MQTT Adapter.
Ich bekomme alle Stati der einzelnen Teilnehmer (Ich habe mehrere Steckdosen mit Tasmota geflashed).
Wenn ich jetzt folgende Nachricht sende:
sendTo("mqtt.0",'sendMessage2Client',{ topic: "Staubsauger/POWER", message: true , retain: true });
Reagieren alle anderen Steckdosen auch.
Ich habe bei den Steckdosen als Topic folgendes eingestellt:
Ich habe tatsächlich keinen Ansatz, warum auf einmal alle reagieren. Ich dachte durch das Setzen des Topics Staubsauger/POWER
würde nur der Staubsauger reagieren.
Hat jemand von euch eine Idee, welchen Ansatz ich versuchen könnte?
Vielen Dank
Stefan