Shelly BLU Wall Switch 4 - Automation Template

Salü :sunglasses:

Man muss das Rad ja nicht mehrmals erfinden und ich behaupte mal hier ein recht simples Template für die BLU Wall Switch 4 kreiert zu haben um alle 16 Funktionen des Shelly abzudecken.

alias: Shelly BLU Wall Switch Template
description: ""
trigger:
  - alias: Shelly BLU Wall Switch 4 Event
    platform: event
    event_type: bthome_ble_event
    event_data:
      address: XX:XX:XX:XX:XX:XX
condition: []
action:
  - alias: Button1
    choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_1' and
              trigger.event.data.event_type == 'press' }}
        sequence: []
        alias: if press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_1' and
              trigger.event.data.event_type == 'double_press' }}
        sequence: []
        alias: if double_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_1' and
              trigger.event.data.event_type == 'triple_press' }}
        sequence: []
        alias: if triple_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_1' and
              trigger.event.data.event_type == 'long_press' }}
        sequence: []
        alias: if long_press
  - alias: Button2
    choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_2' and
              trigger.event.data.event_type == 'press' }}
        sequence: []
        alias: if press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_2' and
              trigger.event.data.event_type == 'double_press' }}
        sequence: []
        alias: if double_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_2' and
              trigger.event.data.event_type == 'triple_press' }}
        sequence: []
        alias: if triple_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_2' and
              trigger.event.data.event_type == 'long_press' }}
        sequence: []
        alias: if long_press
  - alias: Button3
    choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_3' and
              trigger.event.data.event_type == 'press' }}
        sequence: []
        alias: if press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_3' and
              trigger.event.data.event_type == 'double_press' }}
        sequence: []
        alias: if double_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_3' and
              trigger.event.data.event_type == 'triple_press' }}
        sequence: []
        alias: if triple_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_3' and
              trigger.event.data.event_type == 'long_press' }}
        sequence: []
        alias: if long_press
  - alias: Button4
    choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_4' and
              trigger.event.data.event_type == 'press' }}
        sequence: []
        alias: if press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_4' and
              trigger.event.data.event_type == 'double_press' }}
        sequence: []
        alias: if double_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_4' and
              trigger.event.data.event_type == 'triple_press' }}
        sequence: []
        alias: if triple_press
      - conditions:
          - condition: template
            value_template: >-
              {{ trigger.event.data.event_class == 'button_4' and
              trigger.event.data.event_type == 'long_press' }}
        sequence: []
        alias: if long_press
mode: single

Der Grund für diesen Weg ist zum einem die Übersichtlichkeit und zum anderen spart man sich x Trigger oder seperate Automationen pro Button

In Zeile 8 die MAC des Shellys eintragen


und auf die UI umschalten

Das Template sieht dann so aus:
Im entsprechenden Button und der gewünschten Sequenz einfach festlegen was passieren soll.

Ende vom Lied: eine Automation pro Shelly-Switch
:mechanical_arm:

Die bessere Alternative wäre ein Blueprint zu erstellen.
Also einen Vorlage für eine Automatisierung.

Dann bleiben zum einem Deine Automatisierungen noch schlanker und übersichtlicher. Und jede nachträgliche Änderung/ Anpassung des Blueprints wird automatisch für bestehende Automatisierung übernommen.

Gruß
Osorkon

Nur zu… darfst gern ein Blueprint draus machen :sunglasses:

Ich finde dafür ist ein Blueprint zu unflexibel. Da will jemand noch Trigger dazubauen, oder Conditions oder mehrere Actions oder alles zusammen, das müsste man alles mit handeln, dann erwartet man support, muss es zu github hochladen und und und.
Ist nicht mein Ding. Das hier stellt erst mal nur den Anfang dar um den Switch nutzen zu können, nicht mehr und nicht weniger.

Vielleicht finde ich eine freie Minute.
Habe keine Shelly’s im Einsatz. Somit ist die Motivation natürlich groß. :wink:

Die Trigger sind ja durch den Schalter vordefiniert, da kommen mit der Zeit keine neuen dazu. Und was Du als Aktionen je Trigger zulässt, bleibt Dir ja überlassen, musst es ja nicht einschränken.

Du brauchst gar nichts hochladen, den Blueprint kannst Du auch nur für dich allein nutzen. Und teilen kannst auch nur den yaml code, da braucht es GitHub nicht. :wink:

Gruß
Osorkon

Na ich schaus mir mal an, ob ich mir das mal antue :wink:

Hallo, die Automatisierung ist ja schon mal ganz praktisch.

Ist es auch möglich den Status nach “falsch” zu prüfen? Ich möchte mit der Änderung des Zustandes der einzelnen Tasten den Zustand jeweils eine Helfer Entität “Schalter” triggern. Mit diesem Schalter möchte ich dann eine Dimmer Automatisierung umsetzen. Soll heißen, wenn ich den Taster am Shelly Switch drücke, soll eine Helfer auf “ein” gehen und wenn ich den Taster wieder loslasse und nach einer kurzen Verzögerung wieder auf “aus”. Denkst du dass das möglich ist?

Da das Taster sind gibts die Events nicht. Du könntest höchstens den Helper einschalten lassen durch den Tastendruck, eine Verzögerung von 100ms einfügen und dann den Helper wieder ausschalten.

Klingt so als würdest irgendwas auslösen wollen so lange du den Button gedrückt hälst?
Getreu dem Motto, fahre die Jalousie runter bis ich loslasse?

Edit: Du kannst das simulieren, beim ersten Druck schaltet der Helper ein, beim nächsten Druck schaltet der Helper aus. Müsstet nur eine Condition reinbauen in den Step If helper an dann schalte ihn aus else schalte ihn an.

Bin auf der Suche nach einer Nutzung des Shelly Wall Switch 4 (gerade für Rollosteuerung mit Shelly 2PM plus gekauft) ohne Cloud und habe beim Suchen nach einer Lösung diesen Artikel gefunden und habe dazu folgende Fragen:

  • ist das Template für die Nutzung in HA oder kann ich es auch direkt im Shelly 2PM plus einbauen und nutzen.
  • Wenn ja, wohinein bzw. unter welchem Menüpunkt muss ich es auf dem 2PM+ kopieren bzw. einfügen? Es ist ja offenbar kein Skript, sondern vermutlich eine yaml-Datei.
    Ich nutzen und kenne HA nicht und hoffe trotzdem auf eine hilfreiche Antwort