Shelly Plus 2PM im Cover Mode per MQTT steuern

  • Moin,

    im Zuge eines 2.5er Ausfalls, habe ich diesen heute durch einen neuen Plus 2PM ersetzt. Sämtliche meiner Shellys steuere ich bisher mittels MQTT. Beim Plus 2PM habe ich schon gelesen (und auch im MQTT Explorer beobachtet), dass die Syntax nun komplett anders aussieht.

    Leider ist die zugehörige Dokumentation auf den Seiten von Allterco - mal vorsichtig formuliert - etwas "dürftig". Wie ich den Shelly grundsätzlich ansteuere (topic + JSON) ist mir klar, nur mir fehlen ein paar Syntax-Beispiele mit den richtigen Methoden bzw. Parametern zum Hochfahren, Stoppen und Runterfahren. Hat da jemand vielleicht 1..2 MQTT-Schnipsel als Beispiel an der Hand?

    Zusätzlich: Gibt es ggf. jemanden mit einem Schnipsel zum Triggern eines Firmware-Updates via MQTT (habe ich bei den Gen1 auch über MQTT gemacht)?

    Danke + Gruß,

    Dreibein

  • Moin,

    ich bin einen Schritt weiter:

    Code
    shellies/shellyplus2pm-<mac>/rpc
    {
        "method": "Cover.Stop",
        "params": {
            "id": 0
        }
    }

    Statt "Stop" sind sinngemäß auch "Open" oder "Close" möglich. Die Umsetzung in Openhab bereitet allerdings immer noch Probleme; ebenso die Verwendung des State Topic sowie der noch fehlende Trigger zum Firmwareupdate.

    Gruß,

    Dreibein

  • Hab's mal verschoben.

    Vielleicht gibt es nun Hilfe. ;)

  • Moin,

    irgendwie komme ich momentan nicht weiter. Laut Shelly-Dokumentation kann man über den RPC channel entweder auf Ebene einzelner Komponenten deren jeweiligen Status abfragen oder den Status aller Komponenten mittels NotifyFullStatus abfragen. Bei mir funktioniert beides nicht.

    Wenn ich z.B. auf <shelly-id>/rpc den folgenden Payload publishe

    Code
    {
    "src": "user123",
    "method": "NotifyFullStatus"
    }

    passiert nix. Im MQTT broker kann ich zwar sehen, dass der Shelly angesprochen wurde, aber es gibt keine Response bzw. keine Notification.

    Genauso wirkungslos ist eine entsprechende Anfrage wie

    Code
    {
    "src": "user123",
    "method": "Shelly.GetStatus"
    }

    Hat jemand einen Tipp?

  • Moin,

    eine Ergänzung:

    1. Wenn ich <shelly-id>/rpc mit Payload

    Code
    {
    "src": "user123",
    "method": "Cover.GetStatus",
    "params": {"id": 0}
    }

    ausführe (syntaktisch richtig), dann passiert nix, d.h. keine Meldung im Broker sichtbar.

    2. Wenn ich <shelly-id>/rpc mit Payload

    Code
    {
    "src": "user123",
    "method": "Cover.GetStatus"
    }

    ausführe (syntaktisch falsch, da "id" fehlt), dann passiert nix, d.h. keine Meldung im Broker sichtbar.

    3. Wenn ich <shelly-id>/rpc mit Payload

    Code
    {
    "src": "user123",
    "method": "Cover.GetStatus",
    "id": 0
    }

    ausführe (syntaktisch falsch, da "id" an falscher Stelle), dann erhalte ich auf dem Topic user123 eine Meldung im Broker mit einer Fehlermeldung vom Shelly zurück: Code = "-103", Message = "Missing required argument id!".

    So langsam stehe ich auf dem Schlauch oder es ist ein Bug ...

  • Dieses Thema enthält 4 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.