Rollladensteuerung Zigbee2Mqtt

Moin Leute
Ich versuche seit geraumer Zeit meine Rollläden zu automatisieren. Da ich ums Verrecken nicht an den Rollingcode der Fernbedienung dran kam, habe ich einen anderen Weg gewählt und eine meiner Fernbedienungen “geopfert” (Bild anhängend). Jetzt kann ich über das Tuya-Relais ( Tuya TS0601_switch_12 control via MQTT | Zigbee2MQTT ) die Fernbedienung steuern. Allerdings ist es nicht so schön für jeden Rollladen 3 Schalter zu haben. Bekomme die Entitäten aber nicht zu einem Gerät oder ähnliches zusammengefasst. Enhanced Shutter Cards wäre auch eine schöne Idee gewesen, aber leider ist die Doku ziemlich kurz gehalten und ich kam nicht über die Installation hinaus. Ich bekomme bisher nichtmal die Einstellung hin, dass die Schalter direkt wieder zurückgesetzt werden (timeout).
Danke schonmal für jede hilfreiche Idee und liebe Grüße

Du kannst dir mqtt Covers in deiner configuration.yaml anlegen

Ich schaue es mir mal an… Setzt natürlich den Status der Schalter nicht wieder zurück. So wie es aktuell ist, sendet die Fernbedienung Signale, bis man den Schalter wieder ausmacht.

Welche Firmware läuft auf das Relay bzw. Die Steuerung?

Bei tasmota kann man zum Beispiel Pulsetime angeben. Automatisches Ausschalten nach x Sekunden

Wenn ich das wüsste… Habe das relay ja verlinkt. Viel mehr findet man da auch nicht drüber.

Habe gerade noch eine Ewigkeit versucht mit Chatgpt (HomeassistantHelper) was hinzubekommen aber das mag der studio code server nicht.

input_number:
  left_shutter_position:

    name: Left Shutter Position
    min: 0
    max: 100
    unit_of_measurement: "%"
  right_shutter_position:
    name: Right Shutter Position
    min: 0
    max: 100
    unit_of_measurement: "%"

cover:
  - platform: template
    covers:
      left_shutter:
        friendly_name: "Left Shutter"
        position_template: "{{ states('input_number.left_shutter_position') | int }}"
        open_cover:
          - service: switch.turn_on
            target:
              entity_id: switch.rollo_l9
        close_cover:
          - service: switch.turn_on
            target:
              entity_id: switch.rollo_l7
        stop_cover:
          - service: switch.turn_on
            target:
              entity_id: switch.rollo_l8
        icon_template: "{{ 'mdi:window-shutter' if states('input_number.left_shutter_position') | int == 0 else 'mdi:window-shutter-open' if states('input_number.left_shutter_position') | int == 100 else 'mdi:window-shutter-cog' }}"

      right_shutter:
        friendly_name: "Right Shutter"
        position_template: "{{ states('input_number.right_shutter_position') | int }}"
        open_cover:
          - service: switch.turn_on
            target:
              entity_id: switch.rollo_l10
        close_cover:
          - service: switch.turn_on
            target:
              entity_id: switch.rollo_l12
        stop_cover:
          - service: switch.turn_on
            target:
              entity_id: switch.rollo_l11
        icon_template: "{{ 'mdi:window-shutter' if states('input_number.right_shutter_position') | int == 0 else 'mdi:window-shutter-open' if states('input_number.right_shutter_position') | int == 100 else 'mdi:window-shutter-cog' }}"

automation:
  - alias: "Turn off shutter switches after 0.5 seconds"
    mode: queued
    trigger:
      - platform: state
        entity_id:
          - switch.rollo_l7
          - switch.rollo_l8
          - switch.rollo_l9
          - switch.rollo_l10
          - switch.rollo_l11
          - switch.rollo_l12
        to: "on"
    action:
      - delay: "00:00:00.5"
      - service: switch.turn_off
        target:
          entity_id: "{{ trigger.entity_id }}"

  - alias: "Update Left Shutter Position on Close"
    mode: restart
    trigger:
      - platform: state
        entity_id: switch.rollo_l7
        to: "on"
    action:
      - repeat:
          count: 25
          sequence:
            - delay: "00:00:01"
            - service: input_number.increment
              target:
                entity_id: input_number.left_shutter_position
      - service: input_number.set_value
        target:
          entity_id: input_number.left_shutter_position
        data:
          value: 100

  - alias: "Update Right Shutter Position on Close"
    mode: restart
    trigger:
      - platform: state
        entity_id: switch.rollo_l12
        to: "on"
    action:
      - repeat:
          count: 17
          sequence:
            - delay: "00:00:01"
            - service: input_number.increment
              target:
                entity_id: input_number.right_shutter_position
      - service: input_number.set_value
        target:
          entity_id: input_number.right_shutter_position
        data:
          value: 100

  - alias: "Update Left Shutter Position on Open"
    mode: restart
    trigger:
      - platform: state
        entity_id: switch.rollo_l9
        to: "on"
    action:
      - repeat:
          count: 25
          sequence:
            - delay: "00:00:01"
            - service: input_number.decrement
              target:
                entity_id: input_number.left_shutter_position
      - service: input_number.set_value
        target:
          entity_id: input_number.left_shutter_position
        data:
          value: 0

  - alias: "Update Right Shutter Position on Open"
    mode: restart
    trigger:
      - platform: state
        entity_id: switch.rollo_l10
        to: "on"
    action:
      - repeat:
          count: 17
          sequence:
            - delay: "00:00:01"
            - service: input_number.decrement
              target:
                entity_id: input_number.right_shutter_position
      - service: input_number.set_value
        target:
          entity_id: input_number.right_shutter_position
        data:
          value: 0

  - alias: "Stop Left Shutter Position Update"
    trigger:
      - platform: state
        entity_id: switch.rollo_l8
        to: "on"
    action:
      - service: automation.turn_off
        target:
          entity_id:
            - automation.update_left_shutter_position_on_close
            - automation.update_left_shutter_position_on_open
      - delay: "00:00:01"
      - service: automation.turn_on
        target:
          entity_id:
            - automation.update_left_shutter_position_on_close
            - automation.update_left_shutter_position_on_open

  - alias: "Stop Right Shutter Position Update"
    trigger:
      - platform: state
        entity_id: switch.rollo_l11
        to: "on"
    action:
      - service: automation.turn_off
        target:
          entity_id:
            - automation.update_right_shutter_position_on_close
            - automation.update_right_shutter_position_on_open
      - delay: "00:00:01"
      - service: automation.turn_on
        target:
          entity_id:
            - automation.update_right_shutter_position_on_close
            - automation.update_right_shutter_position_on_open

Da wir hier keine Beratungsplattform für fehlerhaften Code von ChatGPT sind, dann frag doch mal die KI, warum ihr Code nicht akzeptiert wird. :wink:

Habe ich. Sie haut mir nur aktualisierte Sachen um die Ohren, die auch nicht brauchbar sind. Werde mich morgen nochmal händisch daran versuchen. Auch wenn ich befürchte, dass es noch ziemlich lange dauern wird, bis ich das ans Laufen bekomme :face_vomiting: