Mqtt Update Periode anpassbar?

  • Moin zusammen,

    Ich bin auch noch recht neu im shelly Universum. Ich versuche mich daran mir ein einfaches Dashboard über mqtt aufzubauen, um mit dem 3em den tatsächlichen aktuellen Verbrauch als Diagramm darzustellen. Über Home assist geht das wohl, aber ich glaube das wäre etwas übertrieben vorerst, nur um den Strom auszulesen, ohne weitere smart Home Anwendungen.

    Ich würde gern die Android App "iot mqtt Panel" nutzen. Klappt soweit auch gut, mit dem Haken, dass die App im Diagramm nur bis zu 1000 Werte anzeigen kann, das macht bei der Standard Update Frequenz vom Shelly ca. Eine Stunde. Ich würde natürlich gerne einen 24 Stunden Überblick haben, dazu müsste ich dem Shelly aber sagen, dass er nicht alle 3 Sekunden ein Update senden soll, sondern evtl alle 20, was für die einfache Übersicht absolut ausreichend wäre.

    Es gab wohl mal die Funktion, zumindest beim normalen 3em über settings die mqtt Update Periode manuell einzustellen. Der pro 3em scheint das aber nicht mehr zu verstehen.

    Kann mir jemand sagen, ob das noch irgendwie möglich ist ?

  • Hi, hierzu hatte ich in der FB Support Gruppe auch gefragt. Laut einem Entwickler von Shelly ist das nicht vorgesehen. Es wird bei jedem Change gesendet. Ich nutze OpenHab für Speicherung der Daten und Analyse. Das funktioniert prima.

  • Ah Mist, ok. Danke für die Info 😀.

    Ich hatte die Hoffnung, dass ich das hin kriege ohne einen eigenen Server aufzustellen, aber dann komm ich wohl um ne Brombeere nicht rum. OpenHab oder Home assist wird's dann wohl werden, Mal schauen.

  • Vermutlich beinhaltet der Pro 3EM einen ESP32, ich habe kein solches Gerät.

    Laut Beschreibung kann er Skripte abarbeiten. https://shelly-api-docs.shelly.cloud/gen2/Devices/ShellyPro3EM

    Daraus sollte sich folgende Implementationsmöglichkeit ergeben:

    1. Erstellen eines kurzen Skripts mit zwei Funktionen
      1. Eventhandler nimmt den jeweils aktuellen (strukturierten) Wert entgegen und speichert diesen in einer globalen Variablen im Skript (RAM)
      2. Senden einer MQTT-Nachricht (Beispielname send()), welche den/die gewünschten Werte in der Payload, ggf. JSON, sendet.
        Das MQTT Topic kannst du nach deinen Wünschen selbst wählen.
    2. Einrichten eines Schedule Jobs mit timespec="*/20 * * * * *" und der Methode Script.Eval zum aufrufen von send().

    Damit wird alle 20s eine MQTT-Nachricht mit den zuletzt erfassten Werten gesendet.

    Zu den Schedule Jobs siehe https://shelly-api-docs.shelly.cloud/gen2/Component…rvices/Schedule

    Bei Bedarf kann ich noch konkreter werden.

    Edit: Die vorgegebenen MQTT Nachrichten werden dann zwar gesendet, es gibt dann aber keinen Subscriber dafür, wenn dein Topic (im Skript) vom vorgegeben/konfigurierten Topic abweicht.

    Edit 2: Ich nutze sehr gerne die Android App "mqtt dash". Sie hat eine relativ schlichte Oberfläche, ist aber sehr flexibel nutzbar. Die "iot mqtt Panel" will ich mir mal ansehen.

    Edit 3: s.a. RE: Kombinierte Zeit-/Bewegungssteuerung zur Unterstützung beim Anlegen von Schedule Jobs, Post #50

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

    4 Mal editiert, zuletzt von eiche (30. Juli 2023 um 19:53)

  • Ich hab mich vorhin schon dazu durchgerungen nen pi zu bestellen, letztendlich wäre es wohl früher oder später sowieso darauf raus gelaufen.

    Ich kann die Tage leider nicht auf den Shelly zugreifen, wäre aber interessant zu wissen, ob man das da so drauf Skripten könnte, vielleicht hat ja jemand ein ähnliches Problem.

    Die mqtt Dash ist mit meinem Handy leider nicht kompatibel, ich schätze mal, dass die noch 32 Bit ist, das mag das Pixel nicht.

  • Dieses Thema enthält 12 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.