NEWS
MQTT Befehl nach Alexa Sprachkommando senden
-
@bananajoe Bei normalen Geräten würde ich dir recht geben, aber das ist eine Selbstbauplatine mit einem eigenen Programm das scheinbar seinen Status nicht meldet (oder ich habe noch nicht rausgefunden wie)
Mir reicht es aber völlig wenn ich Befehle senden kann und das Teil dann was tut, für mehr ist es auch nicht gedacht.@MCU Ich werde deine Option probieren. Kannst du mir sagen warum mein Ansatz über den sendTo Block falsch ist? Ich hab gedacht genau dafür ist das Teil da? Könnte ich das auch damit realisieren und wie würde das dann aussehen müssen?
Danke übrigens generell für die Hilfe hier. Ich lerne täglich dazu.
-
@jolu1705
Hier kannst du nachlesen, wie man es über den Sendto Befehl machen kann:
https://github.com/ioBroker/ioBroker.mqttZeig doch mal Dein eigenes Programm hier.
(Ab der 2. Zeile -> Spoiler (Auge), direkt danach CodeTags (</>) und dann das Programm mit STRG+V einfügen).Danke.
-
@mcu Der Quellcode für den Adapter ist hier: https://github.com/ct-Open-Source/wake-on-esp
-
@mcu said in MQTT Befehl nach Alexa Sprachkommando senden:
@jolu1705 Du musst doch jetzt nur noch den Wert in dem Objekt ändern:
oder reset oder force_off anstelle von on in dem Block setzen.
Wer füllt die Datenpunkte:? Adpater? ESP?
Das habe ich gerade bei mir gemacht.
Ein Cron der um 15:40 Uhr den Befehl ausführen sollte.
Es ist genau - gar nichts - passiert.Das bringt mich noch zur Verzweiflung haha
Ich vermute mittlerweile das sich der Adapter nicht korrekt am MQTT anmeldet und deshalb sich da auch nicht steuern lässt. Trage ich nämlich den Status manuell um, passiert auch nichts, und spätestens dann müsste es gehen.
Sende ich via SSH den Publish Befehl über Mosquitto funktioniert es sofort.
Also ist der Fehler weiter eingekreist. -
@jolu1705 Klicke ich im mqtt.0 Adapter (der als Client läuft) auf "Teste Verbindung zum Server" kommt da nur "error".
Name und Passwort sind aber 100% korrekt. Wo kann ich nachsehen was da für ein Problem besteht.
"error" ist ein wenig dürftig -
@jolu1705 Er scheint sich zu verbinden, aber nur der Test klappt scheinbar nicht.
mqtt.0 2021-03-23 16:25:39.880 warn (4493) Error on mqtt test: Error: Connection refused: Not authorized mqtt.0 2021-03-23 16:25:28.699 info (4493) All states published mqtt.0 2021-03-23 16:25:28.626 info (4493) Subscribe on: "mqtt.0/#" mqtt.0 2021-03-23 16:25:28.625 info (4493) Subscribe on: "ESP-996412/#" mqtt.0 2021-03-23 16:25:28.621 info (4493) Subscribe on: "#" mqtt.0 2021-03-23 16:25:28.618 info (4493) Connected to localhost mqtt.0 2021-03-23 16:25:28.520 info (4493) Try to connect to mqtt://iobroker:*******************@localhost:1883?clientId=iobroker_mqtt_client mqtt.0 2021-03-23 16:25:28.183 info (4493) starting. Version 2.3.5 in /opt/iobroker/node_modules/iobroker.mqtt, node: v12.21.0, js-controller: 3.2.16
-
@jolu1705 Update 2342
Wenn ich das Topic für den mqtt.0 Client ändere, sehe ich das auf dem Server d.h. er hat eine Verbindung.
Warum dann das "Teste Verbindung zum Server" nur "error" zeigt, bleibt ein Geheimnis. -
@jolu1705 oha ich werde besser........zumindest kann ich nun Anleitungen lesen
Gebe ich - wie in der Dokumentation - in der URL broker.mqttdashboard.com ein, steht da "verbunden".
Der Verbindungstest funktioniert d.h. es gibt ein Problem den mqtt.0 mit mosquitto zu verbinden.
Ich muss da wohl mal den mosquitto neu installieren oder mal da nach einen Fehler suchen.
Seltsam ist aber das per SSH ein Befehl direkt funktioniert, allerdings melde ich mich da auch nicht mit Username und Passwort an.Es bleibt spannend
-
ok ich habe nun mit
sudo lsof -i -P -n | grep 1883
mal nachgesehen was auf Port 1883 horcht.
mosquitto 17004 mosquitto 5u IPv4 4737237 0t0 TCP *:1883 (LISTEN) mosquitto 17004 mosquitto 6u IPv6 4737238 0t0 TCP *:1883 (LISTEN)
Soweit so gut,.
Starte ich den mqtt.0 Adapter kommt das:
mosquitto 17004 mosquitto 5u IPv4 4737237 0t0 TCP *:1883 (LISTEN) mosquitto 17004 mosquitto 6u IPv6 4737238 0t0 TCP *:1883 (LISTEN) mosquitto 17004 mosquitto 8u IPv4 4777854 0t0 TCP 127.0.0.1:1883->127.0.0.1:36750 (ESTABLISHED) node 21952 iobroker 27u IPv4 4776682 0t0 TCP 127.0.0.1:36750->127.0.0.1:1883 (ESTABLISHED)
Da werde ich nun nicht mehr schlau draus und weiß nicht ob das so korrekt ist.
Mit der Windows Software MQTT Explorer kann ich mich zum Mosquitto Server verbinden, nur mit dem mqtt.0 Adapter auf dem iobroker nicht.
Jemand noch eine Idee?
-
@jolu1705 Ok, ich habe die Authentication vom mosquitto mal abgeschaltet und es funktioniert.
Also habe ich die User neu angelegt und die Authentication wieder aktiviert.
Im Windows MQTT Explorer kann ich mich mit einem Benutzer anmelden, der mqtt.0 Adapter vom iobroker verbindet sich allerdings nicht. -
@jolu1705
Mosquitto Server neu installiert und Benutzer eingerichtet
MQTT.0 Adapter neu installiert und Benutzer eingetragenüber tail -f /var/log/mosquitto/mosquitto.log sehe ich nun wie der iobroker Adapter sich verbindet.
1616521874: New connection from 127.0.0.1 on port 1883. 1616521874: New client connected from 127.0.0.1 as iobroker_mqtt_client (c1, k1000, u'mqttadapter').
Ich kann mich auch über die Windows Software MQTT Explorer zum Mosquitto verbinden.
Der Knopf "Teste Verbindung zum Server" funktioniert aber immer noch nicht und quittiert mit "error".
Ich glaube mittlerweile das die Testfunktion nicht mit Usernamen und Passwörtern umgehen kann und es sich hier schlichtweg um einen Adapterbug handelt.Sobald ich die Testfunktion benutzte kommt im Logfile
1616521981: Socket error on client <unknown>, disconnecting.
-
Bei mir sagt er auch error, es funktioniert aber alles,
wird ein Fehler im Adapter sein:Also einrichten und unter den Datenpunkten schauen ob das was ist bzw. ob neue Dinge dort erscheinen, z.B. ein Testwert mit dem MQTT-Explorer
-
Nachtrag:
steht im log, ich vermute beim Testen übernimmt der die Anmeldung nicht richtig.
früher ging das mal / Hat schon mal funktioniert. Im Moment aber nicht. Der Rest geht aber bei mir (und ich mache alles per MQTT) -
@bananajoe said in MQTT Befehl nach Alexa Sprachkommando senden:
Nachtrag:
steht im log, ich vermute beim Testen übernimmt der die Anmeldung nicht richtig.
früher ging das mal / Hat schon mal funktioniert. Im Moment aber nicht. Der Rest geht aber bei mir (und ich mache alles per MQTT)Ich habe auf Github einen Report dazu erstellt:
https://github.com/ioBroker/ioBroker.mqtt/issues/147 -
@jolu1705 Warum nutzt du nicht den MQTT-Adapter als Server? Ich habe bei mir kein Mosquito und nutze nur MQTT-Adapter als Server.
-
@mcu said in MQTT Befehl nach Alexa Sprachkommando senden:
@jolu1705 Warum nutzt du nicht den MQTT-Adapter als Server? Ich habe bei mir kein Mosquito und nutze nur MQTT-Adapter als Server.
Ich kann bei Mosquitto mehrere Nutzer anlegen, das geht - soweit ich das bisher gesehen habe - beim MQTT Adapter als Server nicht.
Muss ich dann mqtt.0 als server und mqtt.1 als client installieren?
-
@jolu1705 Keine Ahnung. Wie gesagt ich habe nur den Mqtt.0 als Server laufen.
-
@mcu sagte in MQTT Befehl nach Alexa Sprachkommando senden:
@jolu1705 Warum nutzt du nicht den MQTT-Adapter als Server? Ich habe bei mir kein Mosquito und nutze nur MQTT-Adapter als Server.
Öhm, kommt darauf an wie viele Geräte / Nachrichten du da drauf packst.
ich habe mit Mosquitto angefangen und neulich auf den internen MQTT mal testweise umgestellt.
Ich habe alleine 59 aktive Tasmota-Geräte + diverses andere Zeug was auch per MQTT was meldet.Die 59 hatte ich auf den internen MQTT umgestellt und das ging auch gut - bis ich den MQTT-Adapter bzw. den ioBroker-Server neu gestartet habe. Dann haben nämlich 59 Geräte versucht sich relativ zeitnah anzumelden. Das hat den Adapter so überfordert das die MQTT Clients die Verbindung verloren haben worauf die sich sofort wieder neu anmelden wollten worauf der Adapter die Anfragen nicht schnell genug beantworten konnte woraufhin die Clients die Verbindung verloren ...
Also, der interne ist total ok, aber nur bis zu einer gewissen Anzahl von Geräten. Der Mosquitto schluckt das locker weg (läuft ja aber auch nicht in JavaScript). Aus dem gleichen Grund (unter anderem) nutze ich den Sonoff-Adapter nicht für meine Tasmota-Geräte
-
@bananajoe
Also der mqtt.0 Adapter hat einen Fehler mit der "Testen" Funktion und das habe ich auf Github schon gemeldet.
Ansonsten habe ich es tatsächlich nun hinbekommen das ich meine Geräte sehe und durch eine Änderung des States da tatsächlich auch was passiert.Ich muss nun noch rausfinden wie ich das jetzt über Alexa trigger.