Switch.GetStatus klappt über HTTP, aber nicht über MQTT

  • Moin zusammen,

    ich schaffe es nicht, den Switch-Status meines Pro 4 PM per MQTT abzufragen. Per HTTP (curl) klappt es, nur per MQTT nicht. Aber der Reihe nach.

    Ich schalte Schalter 1 aus:

    Code
    $ mosquitto_pub -h localhost -t "shellypro4pm-083af2xxxxxx/rpc" -m '{"id": 1, "src":"bashscript", "method": "Switch.Set", "params": {"id": 0, "on": false}}' -q 1

    Auf einer zweiten Konsole lausche ich auf die Antwort:

    Code
    $ mosquitto_sub -h localhost -v -t "shellypro4pm-083af2xxxxxx/#"
    shellypro4pm-083af2xxxxxx/status/switch:0 {"id":0, "source":"MQTT", "output":false, "apower":0.0, "voltage":226.8, "current":0.000, "pf":0.00, "aenergy":{"total":15.924,"by_minute":[8.275,63.708,244.980],"minute_ts":1645355401},"temperature":{"tC":32.5, "tF":90.6}}

    Das an Schalter 1 angeschlossene Licht geht aus und ich bekomme eine Antwort via MQTT. MQTT und die IP-Verbindung funktionieren also.

    Nun will ich den Status abfragen:

    Code
    $ mosquitto_pub -h localhost -t "shellypro4pm-083af2xxxxxx/rpc" -m '{"id": 1, "src":"bashscript", "method": "Switch.GetStatus", "params": {"id": 0}}' -q 1

    Auf der zweiten Konsole lausche ich wieder auf die Antwort:

    Code
    $ mosquitto_sub -h localhost -v -t "shellypro4pm-083af2xxxxxx/#"

    Da kommt aber nix. :( Ja, die regelmäßigen MQTT-Messages wegen Stromverbrauch/Temperatur etc. kommen einige Sekunden später, aber keine auf meine Anfrage bezogene Antwort. Versuche ich das Gleiche per HTTP (curl), klappt es aber:

    Code
    $ curl -X POST -d '{"id": 1, "method": "Switch.GetStatus", "params": {"id": 0}}' http://10.xx.xx.xx/rpc
    {"id":1,"src":"shellypro4pm-083af2xxxxxx","result":{"id":0, "source":"MQTT", "output":false, "apower":0.0, "voltage":228.5, "current":0.000, "pf":0.00, "aenergy":{"total":15.927,"by_minute":[0.000,0.000,0.000],"minute_ts":1645356237},"temperature":{"tC":27.3, "tF":81.1}}}

    Hat jemand eine Idee, wo mein Fehler liegen könnte?

    Der Shelly Pro 1 (ohne PM) verhält sich übrigens genauso!

    Danke und Grüße,

    Sven

    Einmal editiert, zuletzt von svenfried (20. Februar 2022 um 13:09)

  • svenfried 20. Februar 2022 um 13:09

    Hat das Label von Shelly 4Pro auf Shelly PRO 4PM geändert.