Beiträge von eiche

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Wenn der Ausgang ausgeschaltet ist, kann der Shelly Plus 1 PM nicht messen. Also geht deine Frage an der Machbarkeit vorbei.

    Was kannst du stattdessen tun?

    Du misst bspw. mit einem Shelly PM Gen 3 die eingespeiste Leistung. Dieser Mess-Shelly kann, abhängig von der gemessenen Leistung eine Nachricht per HTTP oder auch MQTT senden, welche ein anderer Shelly dazu veranlasst, zu schalten.

    "Da staunt der Laie und der Fachmann wundert sich."

    Alias: "Geht das?"

    Meine Frage: "Wo gibt es noch mehr trial and error?"

    Wer sich nun (als Laie) verunsichert fühlt, Glückwunsch!

    Unsicherheiten sind gut und angemessen. Herumstocherei ist (mitunter) gefährlich.

    Wer etwas Brauchbares/Gutes will, muss auch investieren - in Zeit oder in Geld oder in beides. Entschuldigt bitte meinen Kommentar! Manchmal wird es mir in der Konsumwelt zuviel. :S


    tvbshelly

    Verwirrend? Dann habe ich mein Ziel erreicht, zumindest etwa - eigentlich eher "Verunsicherung", aber das ist nicht vorgesehen. :S8)

    Nur mal so im Kontext dieses Thread.

    Ich bin ja grundlegend sehr angetan von der Shelly Firmware Entwicklung. Klar, ich sehe manchmal auch einen Stolperstein. Aber ich finde, dass die Richtung - für meine Anliegen zumindest - stimmt. Auch die Dokumentation finde ich unter dem Strich sehr gelungen. All dies lässt mich an den Shelly "kleben", trotz Erfahrungen mit Tasmota und Berry (für manche Zwecke die bessere Alternative, insbesondere auf einem ESP32 Entwicklungsboard).

    Ich bin kein naiver Konsument und mag Eigenkreativität. Hoffentlich wird Shelly solches weiterhin unterstützen und nicht in einen geschäftstüchtigen finanziellen Erfolg absteigen. Die Gefahr erscheint mir am Horizont erkennbar. :/

    tvbshelly Die Links verweisen in einen anderen Kontext. Dieser erscheint mir an dieser Stelle wenig relevant. Zusätzlich zeigt die dort dargelegte Info ein Paradigma auf, nach welchem möglichst alle Informationen eingebettet sind, die ggf. nutzbar sind. Nutzbar! Aber nicht zwingend. Das ist der Knackpunkt. Deshalb schrieb ich von "kann" anstatt "muss". Ich kann somit keinen Widerspruch zwischen erforderlich und optional erkennen.

    Wir bleiben hoffentlich dran. Es kann nur erhellend sein. ;)

    Sorry, ich brauche immer Zeit zum nachdenken und formulieren. Deshalb bezieht sich dieser Beitrag nicht auf deinen letzten. ;)

    Das ist sehr einfach, auch wenn ich hier noch interpretiere.

    Wenn du eine spezifische Komponente eines Zählers rücksetzen willst, dann musst du das zu rücksetzende Ding angeben. Dazu ist die type Komponente im params Objekt zuständig. Ob diese type Komponente verfügbar ist, ist zielorientiert zu prüfen. Dabei dürften die Antworten des Shelly Systems helfen.

    Wenn ein spezifisches Rücksetzen nicht angestrebt ist, braucht type nicht angegeben zu werden. Dann ist der Parameter params typischerweise obsolet.

    Eine Id Komponente in params ist nicht zwingend, weshalb ohne type auch params entfallen kann.

    Habe ich mich (objektorientiert) verständlich ausgedrückt? ;)

    Btw, ich kenne mich mit Objektorientierung relativ gut aus. Unter einer Perspektive bedeutet dies Eigenverantwortlichkeit der Objekte. Diese stellen Kommunikationsschnittstellen zur Verfügung. Was sie mit einer Nachricht tun, bleibt den Objekten überlassen. Dieses Paradigma ist auch MQTT zu eigen. Eine Peer to Peer Kommunikation ist in MQTT nicht vorgesehen, entschuldige bitte meine Erklärungen. Wenn eine solche P2P Kommunikation erwünscht ist, müssen zusätzliche Infos in den Payloads eingepflanzt werden. Dafür ist aber MQTT nicht verantwortlich, sondern ausschließlich dessen Clients. Soll heißen:

    "Ich (MQTT Broker) stelle mein schwarzes Brett zur Verfügung. Was Ihr (Clients) damit tut, bleibt euch überlassen. Wenn jemand von euch nicht erreichbar ist, kann ich das den anderen mitteilen (LWT), wenn ihr das so wollt." 8)

    es gibt laut Doku nur id und type

    Ja, type muss aber im Objekt params enthalten sein, ein type ohne params funktioniert nicht.

    - das ist leider etwas verwirrend in der Doku.

    Das finde ich auch. ;)

    aber z.B. bei MQTT ... benötigt wird.

    Nur bei der MQTT Nutzung per System, weil dieses für eine Peer to Peer Kommunikation over MQTT eingerichtet ist. Notwendig ist diese Nutzung aber nicht.

    Kleines Zurückrudern. Ich habe experimentiert.

    Fazit: In params kann die Id weggelassen werden, was ich auch tue.

    Code
    http://<IP Adresse>/rpc/Input.ResetCounters?id=2&params={"type":["counts"]}

    Im Skript:

    Code
    Shelly.call("Input.ResetCounters", {id:2,params:{type:["counts"]}});

    Das ist insofern verständlich, als es im Plus Uni nur eine Zählerinstanz gibt.

    Und es kommt noch besser.

    Da in der Doku der zweite Parameter als optional angegeben ist, habe ich weiter reduziert. Ergebnis:

    Code
    http://<IP Adresse>/rpc/Input.ResetCounters?id=2

    Im Skript:

    Code
    Shelly.call("Input.ResetCounters", {id:2});

    Btw, mein Skript reagiert praktisch unmittelbar auf einen Impuls am Zählereingang, während das Web-UI stark verzögert aktualisiert.

    Auszug aus meinem Experimentierskript:

    Vermutlich ignoriert die RPC Methode bei id 2 den zweiten Parameter. Oder man kann vielleicht im type spezifisch rücksetzen. Bei Muße will ich das mal testen.

    Für Mitleser! :)

    Im Skript tut es bspw. folgender RPC:

    Code
    Shelly.call("Input.ResetCounters", {id:2,params:{id:0,type:["counts"]}});

    Man kann an verschiedenen Stellen auch Anführungszeichen verwenden, wie bspw. "[counts]" statt ["counts"]. Insbesondere die Keys können in Anführungszeichen gesetzt werden. Ich mag eher die obige Notation, welche an JavaScript Objekten orientiert ist. Die [] müssen sein, weil (nach Doku) der type Wert ein Datenfeld sein muss.

    Fazit: Die params Komponente im Objekt ist erforderlich.