BLU Daten per Shelly Gen 3 und MQTT senden - ohne oder mit Skript

  • Ich experimentiere mit Shelly BLU Geräten. Ich nutze die Web UI der Shelly Geräte. Auf einem Shelly 1 Gen 3 habe ich unter Components u.a. den Shelly BLU H&T hinzugefügt. Die Web UI zeigt mir brav gemessene Werte (Temperatur, rel. Luftfeuchtigkeit) an. Diese Werte möchte ich ohne Cloud übertragen lassen.

    Ziel: Ereignisse, auch denen der BLU Geräte, per Topic <Shelly Pretopic>/events/rpc mit Nutzdaten per MQTT empfangen

    Das gelingt mir bisher: Ich erhalte MQTT Nachrichten, in denen folgendes enthalten ist - am Beispiel BLU H&T:

    • Im Payload Objekt:
      • params.bthomedevice:200
        • id: 200
        • last_updated_ts: <Zeitstempel>
        • packet_id: <laufende Nummer>
        • rssi: ...

    Damit kann ich für mein Ziel nichts anfangen. Ich konnte bisher nicht herausfinden, wie ich per Shelly Gen 3 die Nutzdaten übertragen bekomme. Auch per Action gelingt mir das noch nicht, auch nicht, wenn ich per Methode Script.Eval eine Skriptfunktion aufrufen lasse. Ich weiß schlicht nicht, wie ich an die Daten herankomme. Per Eventhandler (Skript) gelingt mir das auch nicht.

    Frage: Wie gelange ich an die Daten eines BLU Gerätes zwecks Übertragung, ob per MQTT oder HTTP?

    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.

  • Heureka, ich glaube, es gefunden zu haben ...

    In der MQTT Konfiguration "Generic status update over MQTT" aktivieren.

    Dann kommen mit anderen Id die Werte, der Rest ist Selektion.

    Ich gab wohl hier mal bereits nach 2h vorläufig auf, was ich sonst sehr selten tue.

    Also zunächst Problem gelöst. :)

    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.

  • Nun weiß ich allerdings noch immer nicht, wie ich diese Daten per RPC abfragen kann.

    Auch täte ich diese gerne in eine Action packen, bspw. um diese einer Skriptfunktion als Parameter zu übergeben.

    Ein Eventhandler bekommt von den BLU Daten leider nicht mitgeteilt.

    ???

    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.

  • Korrektur

    Die per Shelly Generation 3 vom System gesendete MQTT Nachricht für Sensordaten:

    • Topic: <Shelly Pretopic>/events/rpc
    • Payload - ein Objekt
      • bthomesensor:<id> - der Schlüssel zum nachfolgenden Objekt
        • id: <id>
        • last_updated_ts: <timestamp>
        • value: <Sensorwert>

    Hinweis

    Ich nutze Node-RED und kann damit über ein Workaround per Stringverarbeitung, was suboptimal ist, aus der Payload den Schlüssel "bthomesensor:xxx" in "bthomesensor" transformieren. Ich kenne derzeit keine andere Möglichkeit.

    Ich verstehe absolut nicht, warum im Schlüssel die id enthalten ist. Das ist in anderen Components auch so. Dies ist redundant, weil im dazugehörigen Wert (ein Objekt) noch einmal die id enthalten ist. Aber das ist ein anderes Thema.

    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.

  • Die Nutzung eines Shelly Gen 3 zur Weiterleitung von BLU H&T Nachrichten gelingt vorzüglich und relativ leicht.

    Alternativ zu den MQTT Nachrichten durch das System kann man Actions nutzen. Inzwischen gelingt es mir auf unterschiedliche Weise, per Actions und sehr einfaches Skript Nachrichten frei zu gestalten. Hiermit kann ich auch den doofen Schlüssel "bthomesensor:<id>" vermeiden und "leicht verdauliche" Schlüssel in der JSON Payload selbst kreieren.

    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.

  • eiche 8. Mai 2025 um 05:54

    Hat den Titel des Themas von „Daten per Shelly Gen 3 und MQTT senden - ohne Skript“ zu „Daten per Shelly Gen 3 und MQTT senden - ohne oder mit Skript“ geändert.
  • Dieses Thema enthält 7 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.