<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Thema "Doppelklick für Universalschalter GEN 1 mit Home Assistant" in Projekte, REST API und Co.</title>
    <link>https://community.bosch-smarthome.com/t5/projekte-rest-api-und-co/doppelklick-f%C3%BCr-universalschalter-gen-1-mit-home-assistant/m-p/78549#M813</link>
    <description>&lt;P&gt;Moin zusammen,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ich habe mich mal mit dem &lt;LI-PRODUCT title="Universalschalter (Flex)" id="Universalschalter"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;in Home Assistant beschäftigt,&lt;/P&gt;&lt;P&gt;da ich mehr als nur 4 Belegungen (Oben kurz, Oben lang, Unten kurz, Unten Lang) verwenden wollte.&lt;/P&gt;&lt;P&gt;Mir hat immer der Doppelklick gefehlt.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Für den, der das auch gut gebrauchen kann, wollte ich es hier einmal zeigen:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Der &lt;LI-PRODUCT title="Universalschalter (Flex)" id="Universalschalter"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;in Home Assistant sendet Befehle über den Event Bus.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;event_type: bosch_shc.event
data:
  device_id: 681ae0a745ab17600f518ab04c1c1078
  id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
  name: Schalter Bett
  lastTimeTriggered: 1734291020811
  event_subtype: UPPER_BUTTON
  event_type: PRESS_SHORT
origin: LOCAL
time_fired: "2024-12-15T19:30:20.863539+00:00"
context:
  id: 01JF5WSQ1ZNBWN6C9BQY247JA8
  parent_id: null
  user_id: null&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dort stehen die alle Infos drin, die man braucht.&lt;/P&gt;&lt;P&gt;Dazu kommt, das dieses Event ein zweites Event (State_Changed) auslöst.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;event_type: state_changed
data:
  entity_id: event.schalter_wohnzimmer_button_upper_button
  old_state:
    entity_id: event.schalter_wohnzimmer_button_upper_button
    state: "2024-08-30T20:54:08.212+00:00"
    attributes:
      event_types:
        - PRESS_SHORT
        - PRESS_LONG
        - PRESS_LONG_RELEASED
      event_type: PRESS_SHORT
      device_id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      name: Schalter Wohnzimmer
      lastTimeTriggered: 1725051248150
      device_class: button
      friendly_name: Schalter Wohnzimmer Button UPPER_BUTTON
    last_changed: "2024-12-13T18:34:53.471439+00:00"
    last_reported: "2024-12-13T18:34:53.471439+00:00"
    last_updated: "2024-12-13T18:34:53.471439+00:00"
    context:
      id: 01JF0MTQMZ3X3W9SSYXCD9GH0K
      parent_id: null
      user_id: null
  new_state:
    entity_id: event.schalter_wohnzimmer_button_upper_button
    state: "2024-12-15T19:30:20.866+00:00"
    attributes:
      event_types:
        - PRESS_SHORT
        - PRESS_LONG
        - PRESS_LONG_RELEASED
      event_type: PRESS_SHORT
      device_id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      name: Schalter Wohnzimmer
      lastTimeTriggered: 1734291020811
      device_class: button
      friendly_name: Schalter Wohnzimmer Button UPPER_BUTTON
    last_changed: "2024-12-15T19:30:20.878651+00:00"
    last_reported: "2024-12-15T19:30:20.878651+00:00"
    last_updated: "2024-12-15T19:30:20.878651+00:00"
    context:
      id: 01JF5WSQ2E9PCNWPKFAHF4HS6F
      parent_id: null
      user_id: null
origin: LOCAL
time_fired: "2024-12-15T19:30:20.878651+00:00"
context:
  id: 01JF5WSQ2E9PCNWPKFAHF4HS6F
  parent_id: null
  user_id: null&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hier ist gut zu sehen, dass dort ein Alter und ein Neuer Status angezeigt wird. Das kann man für sich nutzten, um den Abstand des Tastendruckes zu ermitteln.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Als erstes erstellen ich eine neue Automation mit dem Trigger "Ereignis" (Event).&lt;/P&gt;&lt;P&gt;In diesem Ereignis-Trigger warten wir auf das Event "state_changed" mit dem Datenzusatz des Events vom Universalschalter. Und vergeben eine ID für später.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;trigger: event
event_type: state_changed
event_data:
  entity_id: event.schalter_wohnzimmer_button_upper_button
id: upper_press&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Damit wird auf jeden Tastendruck des oberen Schalters des Universalschalters reagiert.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unter Aktionen erstellen wir dann Variablen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;variables:
  old_state: "{{ trigger.event.data.old_state }}"
  last_trigger_time: "{{ old_state.split('=')[1].split(';')[0] | as_timestamp }}"
  new_state: "{{ trigger.event.data.new_state }}"
  trigger_time: "{{ new_state.split('=')[1].split(';')[0] | as_timestamp }}"
  press: "{{ new_state.split('=')[3].split(',')[0] }}"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Old_State: beinhaltet den Datensatz von state_changed -&amp;gt; old_state&lt;/P&gt;&lt;P&gt;last_trigger_time: isoliert die Zeit des Auslösens als Zeitstempel aus dem Datensatz Old_State&lt;/P&gt;&lt;P&gt;New_State:&amp;nbsp;beinhaltet den Datensatz von state_changed -&amp;gt; new_state&lt;/P&gt;&lt;P&gt;trigger_time: isoliert die Zeit des Auslösens als Zeitstempel aus dem Datensatz New_State&lt;/P&gt;&lt;P&gt;press:&amp;nbsp;isoliert die Info ob PRESS_SHORT, PRESS_LONG oder PRESS_LONG_RELEASED aus dem Datensatz New_State&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Als 2 Aktion führen wir dann etwas mit Bedingungen aus.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;War hat Ausgelöst?: ID von oben (Hier upper_press)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dann die Variablen von oben abfragen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ist "press" = "PRESS_SHORT"?&lt;/P&gt;&lt;P&gt;Ist "Neue Zeit" minus "Alte Zeit" kleiner als 2 (Sekunden)?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DANN mache Esstisch auf 100% Helligkeit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;- conditions:
      - condition: trigger
        id:
          - upper_press
      - condition: template
        value_template: "{{ press == \"PRESS_SHORT\" }}"
      - condition: template
        value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;lt; 2.0}}"
    sequence:
      - data:
          brightness_pct: 100
        target:
          entity_id:
            - light.ph_esstisch_1
            - light.ph_esstisch_2
        action: light.turn_on&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Wenn man einen Einzelklick möchte, einfach statt kleiner 2, größer 2 eintragen.&lt;/P&gt;&lt;P&gt;Der Modus der Automation sollte auf "Warteschlange" mit max. 10 sein.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ich nutzte es, um mit einmal drücken das Licht auf 1% zu stellen.&lt;/P&gt;&lt;P&gt;Mit dem zweiten drücken innerhalb 2 Sekunden auf 100%.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ein weiter Einzelklick nach 2 Sekunden schaltet es wieder aus. (Bedingung Licht ist an)&lt;/P&gt;&lt;P&gt;Mit dem PRESS_LONG lasse ich jedes mal die Helligkeit um 5% ansteigen.&lt;/P&gt;&lt;P&gt;Damit ist die Obere Taste für Licht an/an 100%/aus und Dimmen zuständig.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hier nochmal die ganze Automation:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;alias: Universalschalter Wohnzimmer
description: ""
triggers:
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.schalter_wohnzimmer_button_upper_button
    id: upper_press
conditions: []
actions:
  - variables:
      old_state: "{{ trigger.event.data.old_state }}"
      last_trigger_time: "{{ old_state.split('=')[1].split(';')[0] | as_timestamp }}"
      new_state: "{{ trigger.event.data.new_state }}"
      trigger_time: "{{ new_state.split('=')[1].split(';')[0] | as_timestamp }}"
      press: "{{ new_state.split('=')[3].split(',')[0] }}"
  - choose:
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: state
            entity_id: light.ph_esstisch_1
            state: "off"
          - condition: template
            value_template: "{{ press == \"PRESS_SHORT\" }}"
          - condition: template
            value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;gt; 2.0}}"
        sequence:
          - data:
              brightness_pct: 1
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_on
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: state
            entity_id: light.ph_esstisch_1
            state: "on"
          - condition: template
            value_template: "{{ press == \"PRESS_SHORT\" }}"
          - condition: template
            value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;gt; 2.0}}"
        sequence:
          - data:
              transition: 5
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_off
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: template
            value_template: "{{ press == \"PRESS_SHORT\" }}"
          - condition: template
            value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;lt; 2.0}}"
        sequence:
          - data:
              brightness_pct: 100
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_on
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: template
            value_template: "{{ press == \"PRESS_LONG\" }}"
        sequence:
          - data:
              brightness_step_pct: 5
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_on
mode: queued
max: 10&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 15 Dec 2024 20:07:04 GMT</pubDate>
    <dc:creator>M_Rapske</dc:creator>
    <dc:date>2024-12-15T20:07:04Z</dc:date>
    <item>
      <title>Doppelklick für Universalschalter GEN 1 mit Home Assistant</title>
      <link>https://community.bosch-smarthome.com/t5/projekte-rest-api-und-co/doppelklick-f%C3%BCr-universalschalter-gen-1-mit-home-assistant/m-p/78549#M813</link>
      <description>&lt;P&gt;Moin zusammen,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ich habe mich mal mit dem &lt;LI-PRODUCT title="Universalschalter (Flex)" id="Universalschalter"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;in Home Assistant beschäftigt,&lt;/P&gt;&lt;P&gt;da ich mehr als nur 4 Belegungen (Oben kurz, Oben lang, Unten kurz, Unten Lang) verwenden wollte.&lt;/P&gt;&lt;P&gt;Mir hat immer der Doppelklick gefehlt.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Für den, der das auch gut gebrauchen kann, wollte ich es hier einmal zeigen:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Der &lt;LI-PRODUCT title="Universalschalter (Flex)" id="Universalschalter"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;in Home Assistant sendet Befehle über den Event Bus.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;event_type: bosch_shc.event
data:
  device_id: 681ae0a745ab17600f518ab04c1c1078
  id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
  name: Schalter Bett
  lastTimeTriggered: 1734291020811
  event_subtype: UPPER_BUTTON
  event_type: PRESS_SHORT
origin: LOCAL
time_fired: "2024-12-15T19:30:20.863539+00:00"
context:
  id: 01JF5WSQ1ZNBWN6C9BQY247JA8
  parent_id: null
  user_id: null&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dort stehen die alle Infos drin, die man braucht.&lt;/P&gt;&lt;P&gt;Dazu kommt, das dieses Event ein zweites Event (State_Changed) auslöst.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;event_type: state_changed
data:
  entity_id: event.schalter_wohnzimmer_button_upper_button
  old_state:
    entity_id: event.schalter_wohnzimmer_button_upper_button
    state: "2024-08-30T20:54:08.212+00:00"
    attributes:
      event_types:
        - PRESS_SHORT
        - PRESS_LONG
        - PRESS_LONG_RELEASED
      event_type: PRESS_SHORT
      device_id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      name: Schalter Wohnzimmer
      lastTimeTriggered: 1725051248150
      device_class: button
      friendly_name: Schalter Wohnzimmer Button UPPER_BUTTON
    last_changed: "2024-12-13T18:34:53.471439+00:00"
    last_reported: "2024-12-13T18:34:53.471439+00:00"
    last_updated: "2024-12-13T18:34:53.471439+00:00"
    context:
      id: 01JF0MTQMZ3X3W9SSYXCD9GH0K
      parent_id: null
      user_id: null
  new_state:
    entity_id: event.schalter_wohnzimmer_button_upper_button
    state: "2024-12-15T19:30:20.866+00:00"
    attributes:
      event_types:
        - PRESS_SHORT
        - PRESS_LONG
        - PRESS_LONG_RELEASED
      event_type: PRESS_SHORT
      device_id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      id: hdm:HomeMaticIP:3014F711A000159BB85FDC8D
      name: Schalter Wohnzimmer
      lastTimeTriggered: 1734291020811
      device_class: button
      friendly_name: Schalter Wohnzimmer Button UPPER_BUTTON
    last_changed: "2024-12-15T19:30:20.878651+00:00"
    last_reported: "2024-12-15T19:30:20.878651+00:00"
    last_updated: "2024-12-15T19:30:20.878651+00:00"
    context:
      id: 01JF5WSQ2E9PCNWPKFAHF4HS6F
      parent_id: null
      user_id: null
origin: LOCAL
time_fired: "2024-12-15T19:30:20.878651+00:00"
context:
  id: 01JF5WSQ2E9PCNWPKFAHF4HS6F
  parent_id: null
  user_id: null&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hier ist gut zu sehen, dass dort ein Alter und ein Neuer Status angezeigt wird. Das kann man für sich nutzten, um den Abstand des Tastendruckes zu ermitteln.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Als erstes erstellen ich eine neue Automation mit dem Trigger "Ereignis" (Event).&lt;/P&gt;&lt;P&gt;In diesem Ereignis-Trigger warten wir auf das Event "state_changed" mit dem Datenzusatz des Events vom Universalschalter. Und vergeben eine ID für später.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;trigger: event
event_type: state_changed
event_data:
  entity_id: event.schalter_wohnzimmer_button_upper_button
id: upper_press&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Damit wird auf jeden Tastendruck des oberen Schalters des Universalschalters reagiert.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unter Aktionen erstellen wir dann Variablen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;variables:
  old_state: "{{ trigger.event.data.old_state }}"
  last_trigger_time: "{{ old_state.split('=')[1].split(';')[0] | as_timestamp }}"
  new_state: "{{ trigger.event.data.new_state }}"
  trigger_time: "{{ new_state.split('=')[1].split(';')[0] | as_timestamp }}"
  press: "{{ new_state.split('=')[3].split(',')[0] }}"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Old_State: beinhaltet den Datensatz von state_changed -&amp;gt; old_state&lt;/P&gt;&lt;P&gt;last_trigger_time: isoliert die Zeit des Auslösens als Zeitstempel aus dem Datensatz Old_State&lt;/P&gt;&lt;P&gt;New_State:&amp;nbsp;beinhaltet den Datensatz von state_changed -&amp;gt; new_state&lt;/P&gt;&lt;P&gt;trigger_time: isoliert die Zeit des Auslösens als Zeitstempel aus dem Datensatz New_State&lt;/P&gt;&lt;P&gt;press:&amp;nbsp;isoliert die Info ob PRESS_SHORT, PRESS_LONG oder PRESS_LONG_RELEASED aus dem Datensatz New_State&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Als 2 Aktion führen wir dann etwas mit Bedingungen aus.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;War hat Ausgelöst?: ID von oben (Hier upper_press)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dann die Variablen von oben abfragen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ist "press" = "PRESS_SHORT"?&lt;/P&gt;&lt;P&gt;Ist "Neue Zeit" minus "Alte Zeit" kleiner als 2 (Sekunden)?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DANN mache Esstisch auf 100% Helligkeit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;- conditions:
      - condition: trigger
        id:
          - upper_press
      - condition: template
        value_template: "{{ press == \"PRESS_SHORT\" }}"
      - condition: template
        value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;lt; 2.0}}"
    sequence:
      - data:
          brightness_pct: 100
        target:
          entity_id:
            - light.ph_esstisch_1
            - light.ph_esstisch_2
        action: light.turn_on&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Wenn man einen Einzelklick möchte, einfach statt kleiner 2, größer 2 eintragen.&lt;/P&gt;&lt;P&gt;Der Modus der Automation sollte auf "Warteschlange" mit max. 10 sein.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ich nutzte es, um mit einmal drücken das Licht auf 1% zu stellen.&lt;/P&gt;&lt;P&gt;Mit dem zweiten drücken innerhalb 2 Sekunden auf 100%.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ein weiter Einzelklick nach 2 Sekunden schaltet es wieder aus. (Bedingung Licht ist an)&lt;/P&gt;&lt;P&gt;Mit dem PRESS_LONG lasse ich jedes mal die Helligkeit um 5% ansteigen.&lt;/P&gt;&lt;P&gt;Damit ist die Obere Taste für Licht an/an 100%/aus und Dimmen zuständig.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hier nochmal die ganze Automation:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;alias: Universalschalter Wohnzimmer
description: ""
triggers:
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.schalter_wohnzimmer_button_upper_button
    id: upper_press
conditions: []
actions:
  - variables:
      old_state: "{{ trigger.event.data.old_state }}"
      last_trigger_time: "{{ old_state.split('=')[1].split(';')[0] | as_timestamp }}"
      new_state: "{{ trigger.event.data.new_state }}"
      trigger_time: "{{ new_state.split('=')[1].split(';')[0] | as_timestamp }}"
      press: "{{ new_state.split('=')[3].split(',')[0] }}"
  - choose:
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: state
            entity_id: light.ph_esstisch_1
            state: "off"
          - condition: template
            value_template: "{{ press == \"PRESS_SHORT\" }}"
          - condition: template
            value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;gt; 2.0}}"
        sequence:
          - data:
              brightness_pct: 1
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_on
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: state
            entity_id: light.ph_esstisch_1
            state: "on"
          - condition: template
            value_template: "{{ press == \"PRESS_SHORT\" }}"
          - condition: template
            value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;gt; 2.0}}"
        sequence:
          - data:
              transition: 5
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_off
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: template
            value_template: "{{ press == \"PRESS_SHORT\" }}"
          - condition: template
            value_template: "{{((trigger_time - last_trigger_time) | round(2) | float) &amp;lt; 2.0}}"
        sequence:
          - data:
              brightness_pct: 100
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_on
      - conditions:
          - condition: trigger
            id:
              - upper_press
          - condition: template
            value_template: "{{ press == \"PRESS_LONG\" }}"
        sequence:
          - data:
              brightness_step_pct: 5
            target:
              entity_id:
                - light.ph_esstisch_1
                - light.ph_esstisch_2
            action: light.turn_on
mode: queued
max: 10&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 15 Dec 2024 20:07:04 GMT</pubDate>
      <guid>https://community.bosch-smarthome.com/t5/projekte-rest-api-und-co/doppelklick-f%C3%BCr-universalschalter-gen-1-mit-home-assistant/m-p/78549#M813</guid>
      <dc:creator>M_Rapske</dc:creator>
      <dc:date>2024-12-15T20:07:04Z</dc:date>
    </item>
    <item>
      <title>Betreff: Doppelklick für Universalschalter GEN 1 mit Home Assistant</title>
      <link>https://community.bosch-smarthome.com/t5/projekte-rest-api-und-co/doppelklick-f%C3%BCr-universalschalter-gen-1-mit-home-assistant/m-p/78916#M815</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.bosch-smarthome.com/t5/user/viewprofilepage/user-id/97"&gt;@M_Rapske&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;wow, cooler Blick über den Tellerrand! Danke für's Teilen!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Viele smarte Grüße&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ulrike&lt;/P&gt;</description>
      <pubDate>Thu, 19 Dec 2024 11:05:16 GMT</pubDate>
      <guid>https://community.bosch-smarthome.com/t5/projekte-rest-api-und-co/doppelklick-f%C3%BCr-universalschalter-gen-1-mit-home-assistant/m-p/78916#M815</guid>
      <dc:creator>Ulrike</dc:creator>
      <dc:date>2024-12-19T11:05:16Z</dc:date>
    </item>
    <item>
      <title>Betreff: Doppelklick für Universalschalter GEN 1 mit Home Assistant</title>
      <link>https://community.bosch-smarthome.com/t5/projekte-rest-api-und-co/doppelklick-f%C3%BCr-universalschalter-gen-1-mit-home-assistant/m-p/85381#M877</link>
      <description>&lt;P&gt;UPDATE:&lt;/P&gt;&lt;P&gt;Ich habe mir einen &lt;LI-PRODUCT title="Universalschalter II" id="universalschalter_II"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;angeschafft.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dort funktioniert der Code auf den 4 Tasten genau so.&lt;/P&gt;&lt;P&gt;Einziger Unterschied. GENI sendet Befehle erst erneut, wenn der erste Befehl durchging. Also man muss mit dem 2ten Tastendruck warten bis der 1te mit grün bestätigt wurde.&lt;/P&gt;&lt;P&gt;GENII sendet den 2ten Tastendruck auch wenn die Bestätigung durch die Grüne LED noch nicht ausgeführt wurde.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Das macht ein großen Unterscheid wenn der GENI Schalter z.b. über 2 Repeater läuft. Da muss man teilweise schon 1-2 Sekunden warten, bis der 2te Tastendruck ausgeführt werden kann. Die Wartezeit fällt bei der GENII weg.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Mar 2025 13:06:59 GMT</pubDate>
      <guid>https://community.bosch-smarthome.com/t5/projekte-rest-api-und-co/doppelklick-f%C3%BCr-universalschalter-gen-1-mit-home-assistant/m-p/85381#M877</guid>
      <dc:creator>M_Rapske</dc:creator>
      <dc:date>2025-03-13T13:06:59Z</dc:date>
    </item>
  </channel>
</rss>

