Shelly BLU Button RC 4

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 320

    #1

    Shelly BLU Button RC 4

    Hallo zusammen,

    gerne will ich per UDP einen Shelly BLU Button RC 4 als Fernbedienung für div. Dinge nutzen.
    Dafür habe ich diesen per UDP in Loxone eingebunden. Leider weiß ich ab hier nicht genau weiter wie ich am besten die Einzel-, Doppe-, Dreifach und Lang-Klicks als Impulse nutzen kann. Auch wiederholtes Drücken (z.B. wiederholtes Einzel-Klicken) möchte ich als separate und kurze Impulse nutzen können.

    Im UDP Monitor sehe ich, dass jede Aktion als "event" mit "single push", "double push", "triple push", "long push" ankommt. Es kommt jedoch kein reset irgendeiner Art. Mit der UDP Befehlsumwandlung und \1 bekomme ich ein Mapping von 115 → 1, 100 → 2, 116 → 3, 108 → 4, und einem Radio-Button auf den "Sel"-Eingang schaffe ich dies in einzelne Digital-Ausgänge zu übersetzen. Leider bleibt ein Eingang solange auf "EIN" bis eine neue und andere Aktion erfolgt. Gerne würde ich aber nach z.B. jeweile 0,5Sek den Digital-Ausgang auf 0 setzen...

    Hat schon jemand den Shelly BLU Button RC 4 eingebunden oder kann mir sonst iwie einen Tipp geben?

    Kann man vllt. clever den Timestamp "ts" nutzen?

    Vielen Dank!
  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 320

    #2
    ...mit der "ts" variable scheint es zu funktionieren... Ich habe einen verzögerten (100 Zyklen) Merker erstellt und mit einem Ungleich-Baustein (+ Monoflop) bekomme ich so einen Puls bei jeder Betätigung (aber auch bei jedem sonstigen Update, da ich in der entsprechenden UDP-Befehlserkennung nur nach shellyMAC\i\push":"ts":\i\v suche...). Mit diesem Impuls resette ich den Status-Baustein der nach obigem Schema die I1-Werte ummünzt, wobei der Baustein die Werte nur ausgibt wenn I2=Impuls=1, und sonst 0 ausgibt. Somit gibt der Radio-Button-Baustein letztendlich die 4 Aktionen als Impulse auch bei gleichartigen Merhfachbetätigungen aus...

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: BLU4.png
Ansichten: 200
Größe: 61,6 KB
ID: 460432

    Kommentar

    • AlexAn
      Lebende Foren Legende
      • 25.08.2015
      • 4454

      #3
      Ich nutze nur Einzelklick (EIN) und Doppelklick (AUS):

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 8,4 KB ID: 460440

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 17,8 KB ID: 460441

      Brauch nicht mehr aber kannst dir ja einen 2.Sensor und gleicher Befehlserkennung bauen: GLEICH 3, 4 usw.
      Die Mehrfachfunktionen kann ich mir persönlich nicht merken.
      Zuletzt geändert von AlexAn; 27.04.2025, 18:05.
      Grüße Alex

      Kommentar


      • MarkusCosi
        MarkusCosi kommentierte
        Kommentar bearbeiten
        Danke, AlexAn, aber wie bekommst du so zwei aufeinanderfolgende einfache Klicks mit? Bei mir jedenfalls bekomme ich als bthomesensor-event nur einen push wenn geklickt wird, aber kein "reset" irgendwelcher Art. Dein Monoflop scheint das bei dir zu leisten, aber der Virtuelle Eingang bleibt ja unverändert abgesehen vom time-stamp bei erneutem gleichartigen Drücken... Beim Shelly jedenfalls habe ich leider keine Einstellmöglichkeit zu diesem Verhalten finden können?
    • AlexAn
      Lebende Foren Legende
      • 25.08.2015
      • 4454

      #4
      Sorry hab dir das abgeschnitten:

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 22,5 KB ID: 460448
      Grüße Alex

      Kommentar


      • MarkusCosi
        MarkusCosi kommentierte
        Kommentar bearbeiten
        wundervoll, danke, so klappt es nun ohne den timestamp!
    • Papablaubaer
      Dumb Home'r
      • 03.10.2018
      • 15

      #5
      Hallo,

      ich habe genau dieses Szenario mit dem Shelly BLU Button RC 4 umgesetzt.
      Ziel war ebenfalls, jeden Buttondruck (Single, Double, Triple, Long) als kurze Impulse in Loxone zu erfassen. So kannst du direkt einen VI anlegen, der eine entsprechende Anzahl Impulse bekommt.

      Ich nutze dafür dieses Skript auf Shelly Plus / Gen.3. Es wandelt die BLU-Events in eine Reihe Shelly.emitEvent-Aufrufe um – die auch per UDP übermittelt werden.

      Code:
      Shelly.addEventHandler(function (e) {
        // print("Eingehendes Event:", JSON.stringify(e));
        if (!e || !e.info || !e.info.event || typeof e.info.event !== "string") return;
      
        let ev = e.info.event;
        let component = e.info.component;
        let id = e.info.id;
      
        if (component.indexOf("script:") === 0 && e.info.data && typeof e.info.data.address === "string") {
          id = (e.info.data.address || "").toLowerCase();
        }
      
        let count = 0;
      
        if (ev === "single_push") count = 1;
        else if (ev === "double_push") count = 2;
        else if (ev === "triple_push") count = 3;
        else if (ev === "long_push") count = 4;
      
        if (count > 0) {
          let payload = {};
          if (e.info.data && typeof e.info.data.button !== "undefined") {
            payload = { button: e.info.data.button };
          } else {
            payload = { count: 1 };
          }
          for (let i = 0; i < count; i++) {
            Shelly.emitEvent("blu-" + id + "-click", payload);
          }
          // print("BLE click:", ev, "| ID:", id, "| emitted:", count, "x", "| Payload:", JSON.stringify(payload));
        }
      });
      Einfach als neuen Script auf das Shelly laden und ausführen.
      Der UDP Monitor zeigt dann in etwa sowas:

      {"component":"script:1","id":1,"event":"blu-207-click","data":{"count":1},"ts":1745918794.13}]}}

      Der Eingang muss als Digital Eingang verwendet werden, Die Befehlserkennung muss in etwa
      "{"component":"script:1","id":1,"event":"blu-207-click","data":{"count":1}"
      sein er bekommt die Anzahl Impulse die du gedrückt hast, bei Long_Push sind es 4 Stück.

      Gruß Papablaubaer

      Kommentar

      Lädt...