[BLOCKLY] Shelly PLUS 1 und 1 PM verwaltet viele Shellys ein Multi Blockly sehr umfangreich MQTT RPC/ EVENT

  • So erstmal mein letztes Bockly für die PLUS Reihe,

    aktuelle Version: V3

    Aufgabe:

    Blockly soll fast alles alleine erstellen was für die Aufnahme eines Shelly PLUS 1 und oder PM über MQTT nötig ist.

    und nur ein Blockly für viele Shelly PLUS Teilnehmer.

    im Shelly selbst MQQT aktivieren und einrichten.....

    den Prefix für 1PM:

    "Shelly.PLUS.1PM.173" eintragen die 3 Zahlen am Ende ist die IP die der Shelly hat, also diese nur anpassen. (wird im Blockly gebraucht)

    Edit: wenn IP mit 0 anfängt also, z.B. 048 gab es in der 1. Version Probleme bei der http Abfrage, dann Version 3 nutzen, siehe unten...

    Bildschirmfoto vom 2021-09-28 12-35-55.png

    den Prefix 1 für :

    "Shelly.PLUS.1.172" eintragen die 3 Zahlen am Ende ist die IP die der Shelly hat, also diese nur anpassen.


    Das Blockly erkennt um welchen Typ es sich handelt, prüft Datenpunkte, sind die nicht vorhanden werden diese mit Struktur erstellt.

    Kommt eine Aktualisierung über den RPC/Event rein, werden die Daten in den Datenpunkten eingetragen. Egal welcher von dem im Trigger eingetragenen RPC Pfad aktiv ist. Das Blockly wertet aus, ordnet es zu und trägt es ein.


    Das Blockly:

    Den Pfad könnte man anpassen, aber für den Anfang einfach so lassen

    MQTT Pfad ggf. anpassen, wenn man den Prefix wie oben einträgt, dann nichts ändern

    IP Adressbereich anpassen, bei mir ist es Fritet original..

    im 1. Triggerblock die mqtt RPC/Event aussuchen, ich habe nur den 1 und 1pm aktiv, daher habe ich nur 2 drin.

    Und das wars auch schon, der Rest wird vom Blockly erledigt.

    Datenpunkte:


    Bildschirmfoto zu 2021-10-29 22-01-17.png


    Trigger 2 ist ein Versuch (Schalten über Datenpunkt Switch), hier muss aber der Datenpunkt "Switch" von Hand ausgesucht werden, alle Shellys laufen über einen Trigger, dort aber anlegen (Datenpunkt "Switch") (. (noch keine Automatik)


    Blockly:

    Bildschirmfoto zu 2021-10-29 22-27-54.png


    Wenn man es aufklappt, nicht erschrecken, ist schon etwas umfangreicher.

    Trigger auf die 2 Shellys,

    dann folgt die Auswertung des rpc/events : Shellytyp 1 oder 1PM; ID, IP Adresse über Prefix,


    Bildschirmfoto vom 2021-09-28 12-18-35.png


    Prüfblock:

    Welcher Shelly Typ (1) und ID...

    erstellen der Datenpunkte

    Abrufen via http den Switch Status

    Auswertung Switch Status

    Setzen der Datenpunkte

    Bildschirmfoto vom 2021-09-28 12-19-01.png

    Änderung in V3: (TYP: 1PM und in 1)

    Bildschirmfoto zu 2021-10-29 22-17-58.png


    Prüfblock 2:

    Welcher Shelly Typ (1PM) und ID...

    erstellen der Datenpunkte

    Abrufen via http den Switch Status

    Auswertung Switch Status

    Setzen der Datenpunkte


    Bildschirmfoto vom 2021-09-28 12-19-53.png


    Trigger 2 fürs Schalten über den Datenpunkt "Switch"

    Variable befüllen/erstellen, oder den Triggerblock so mit dem/ die Datenpunkt(e) verknüpfen, wie man es möchte. fertig.

    Bildschirmfoto zu 2021-10-29 22-18-12.png


    Version 3:


    Shelly PLUS 1 und PM Serie V3.txt

    VG

    Maik

    2 Mal editiert, zuletzt von neo-v (29. Oktober 2021 um 22:36) aus folgendem Grund: Version 3 vom Blockly fertig, + Schalten über Datenpunkt (HTTP-Befehl)

  • Damit kann ich erstmal arbeiten und die 2 Burschen testen, mal sehen wann ein FW update kommt und alles über den Haufen wirft. ;)

    Vermutlich ist es einfacher die Scriptfunktion im Shelly zu nutzen, um die Datenpunkte zu füttern.

    Das wird dann das nächste Projekt, oder warten bis jemand schneller ist... :)

    VG

    Maik

  • Hallo neo-v , ich hatte mal Zeit dein Blockly zu testen.

    Leider bekam ich keine vollständige Kontrolle über den ShellyPlus1PM hin.

    Irgentwann musste ich dann feststellen das es ein Problem beim Prefix gibt wenn das letzte IP Segment mit einer führenden NULL, also z.B "Shelly.PLUS.1PM.039" angegeben wird.

    Erst dachte ich es liegt an der Firmware, das IP Segment sah doch so perfekt aus, aber im Script wurden immer wieder Errors gemeldet:

    Code
    javascript.0 (2177) script.js.common.ShellyPlus.Shelly1PlusPM001: {'errno':'ENOTFOUND','code':'ENOTFOUND','syscall':'getaddrinfo','hostname':'192.168.178.039'}

    Das Script heist bei mir "Shelly1PlusPM001"

    Nun funktioniert aber alles, doofe Null!

    Edit. im 3.Teil des Prüfblock "schreibe Objekt ID" gibt es zweimal "output" und "current" gibt es nicht, dann wird im Datenpunkt Current ein "{"ack":true}" eingetragen. Ist das für den Plus1ser?

  • Halloaa, ich habe eben den Pro4PM ein Blockly verpasst, dabei ist mir das auch aufgefallen.

    Da ich die Plus Reihe noch nicht verbaut habe, sondern wieder zerlegt im Karton liegt, hatte ich das nicht weiter getestet.

    Bin nun aber wieder im Lande und kann das mir anschauen und ändern. Danke schon mal fürs testen.

    current ist in einer beta version vorhanden, in der normalen war es wieder raus.

    beim pro4pm gibt es nur power, current fehlt hier auch.

    ich werde current weg lassen.

    VG

    Maik

  • Hi, ich habe es eben mit einem Pro 4PM getestet (neues Blockly aber gleiche Auswertung der IP).

    Einmal Prefix mit 77 und einmal mit 077, beides wurde erkannt und die Datenpunkte wurden sauber angelegt. einmal mit 77 und beim 2. Versuch dann mit 077... komisch....

    Ich hole mal einen Plus PM und teste es mit dem im originalen Blockly.

    VG

    Maik

  • Dieses Thema enthält 23 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.