Shelly PLUS 1PM per MQTT von ESP8266 schalten

  • Moin Leute,

    Ich habe zwei Shelly PLUS 1PM und möchte diese per MQTT von einem ESP8266 schalten und Timergesteuert wieder ausschalten.

    Dazu habe ich z.B. diesen Thread gefunden: Per MQTT schalten

    Ausprobiert in allen Varianten....es tut sich nichts, und deswegen möchte ich dem ganzen Thema mal genau auf den Grund gehen.

    1. Die installierte Firmware ist die aktuelle 0.14.1

    2. MQTT ist auf dem Shelly aktiviert und der Shelly postet auch fleissig auf den MQTT Broker (dies lese ich dann noch mit node-RED aus und logge es mit einem volkszähler)

    pasted-from-clipboard.png

    Frage: Muss ein Username und Passwort gesetzt sein, oder geht es auch ohne? (probiert habe ich beides, ging beides nicht)

    3. mosquitto_pub ist auf einem Raspberry installiert und funktioniert

    4. Ich habe ausprobiert:

    Code
    mosquitto_pub -h 192.168.178.10 -p 1883 -t shellyplus1pm-123456789/rpc -m '{"id":124, "src":"user1", "method":"Switch.Set", "params":{"id":0,"on":true}}'
    
    mosquitto_pub -h 192.168.178.10 -p 1883 -u 1234 -P 5678 -t shellyplus1pm-123456789/rpc -m '{"id":124, "src":"user1", "method":"Switch.Set", "params":{"id":0,"on":true}}'
    
    mosquitto_pub -h 192.168.178.10 -p 1883 -t shellyplus1pm-123456789/rpc -m '{"id": "req1", "src": "shellyplus1pm-123456789/resp", "method": "Switch.set", "params":{"id": 0, "on": true}}'
    
    mosquitto_pub -h 192.168.178.10 -p 1883 -u test -P test -t shellyplus1pm-123456789/rpc -m '{"id": "req1", "src": "shellyplus1pm-123456789/resp", "method": "Switch.set", "params":{"id": 0, "on": true}}'

    Aber nichts davon überredet den Shelly zu schalten

    5. Im MQTT Explorer sehe ich, das die Messages auf dem mosquitto Broker ankommen.

    Wer kann mir weiterhelfen?

    Muss ich vielleicht noch irgendwo den MQTT Prefix eingeben?

    Oder muss irgendwas anderes noch eingestellt, aktiviert oder auch deaktiviert werden?

    (in der Client ID habe ich keinen Schreibfehler drin, den habe ich nur fürs Forum verändert. Im Test habe ich die Client ID aus den MQTT setting vom Shelly kopiert. Tippfehler somit ausgeschlossen)

    Vielen Dank und beste Grüße,

    Chris

  • hmmmm, niemand eine Idee?

    aha, das funktioniert schonmal:

    Code
    mosquitto_pub -h 192.168.178.10 -p 1883 -u 1234 -P 5678 -t Bootsschuppen/Pumpe1/command/switch:0 -m on
    mosquitto_pub -h 192.168.178.10 -p 1883 -u 1234 -P 5678 -t Bootsschuppen/Pumpe1/command/switch:0 -m off

    scheinbar wurde ab Firmware 0.14.0 etwas geändert:

    Cover | Shelly Technical Documentation
    The Cover component handles the operation of motorized garage doors, window blinds, roof skylights etc. It uses Cover as RPC namespace and provides the methods:
    shelly-api-docs.shelly.cloud

    Bisher habe ich es nicht mit dem JSON zum Laufen gebracht.

    Kann mir jemand einen Tipp geben?

  • So, dat läuft schonmal nach ner Weile try&error:

    Code
    mosquitto_pub -h 192.168.178.10 -p 1883 -t Bootsschuppen/Pumpe1/rpc -m '{"id": "req1", "src": "shellyplus1pm-123456789/resp", "method": "Switch.set", "params":{"id": 0, "on": true, "toggle_after": 1800}}'