PioTek EnO2HA - Entitäts-ID manuell ändern?

Hallo
Ich möchte Fhem mit dem Home Assistant ersetzten. Damit die Aktoren von Enocean integriert werden können, habe ich den genannten Gateway installiert. Über die Home Assistant MQTT Schnittstelle werden die Komponenten automatisch und angepasst an den HA übertragen. Sie werden als Geräte oder Entitäten geführt. Gerätenamen und Entitäts-ID werden automatisch vergeben.

Beispiele:
Aktor Rollo: number.eep_d2_05_00_store_front_shutters_jalousie
Sensor Fenster: sensor.eep_f6_10_00_fenster_kuche_window

Leider werden diese aber nicht angezeigt, wenn ich beispielsweise bei den Helfern eine Gruppe für Abdeckungen oder im Front-End eine custom:shutter-card erstellen möchte.

Kann man die Entitäts-ID manuell ändern damit das funktioniert?

Gruss

Chris

Hallo Outhouse,

es sind nicht die Entitäts-ID, weswegen es dir nicht richtig angezeigt wird sondern die Datentypen.

Dein Rolloaktor wird als “Number” bereitgestellt. In Home Assistant gibt es dafür aber die Cover Datentypen.

Über Templates kann man das ganze entsprechend umwandeln.

Simon hat dazu mal ein Video und Blogeintrag geschrieben.

Hi

Besten Dank für die Antwort und den Link. Wie alle Videos von Simon sehr hilfreich. Ich finde darin aber kein Beispiel, wie man den Datentyp ändern kann. Kannst du mir kurz sagen, welches der Beispiele dafür in Frage kommt?

Danke

Chris

Ich habe mal folgendes versucht:

covers.yaml erstellt
configuration.yaml ergänzt mit:

cover: !include covers.yaml 

In der covers.yaml folgenden Eintrag gemacht

-  platform: template
   covers:
    rollofront:
      device_class: shutter
      unique_id: rollofront
      friendly_name: "rollofront"
      position_template: "{{ states('number.eep_d2_05_00_rollo_front_shutters_jalousie') }}"
      open_cover:
        service: script.rollofrontup
      close_cover:
        service: script.rollofrontdown
      stop_cover:
        service: script.rollofrontstop
      set_cover_position:
          service: cover.set_cover_position
          data:
            entity_id: number.eep_d2_05_00_rollo_front_shutters_jalousie
            position: "{{ (position) }}"

Nun erscheint der Rollo zwar als “Cover”, aber er lässt sich nicht bedienen

Niemand eine Idee?

Muss eventuell noch etwas geändert werden, weil die Enocen-Aktoren über die Home Assistant MQTT Schnittstelle als MQTT-Aktoren bzw. Sensoren eingelesen werden?

Von MQTT habe ich keine Ahnung, aber das dürfte nicht passen:

        set_cover_position:
          service: COVER.set_cover_position
          data:
            entity_id: NUMBER.eep_d2_05_00_rollo_front_shutters_jalousie
            position: "{{ (position) }}"

Danke für die Info. Das hatte ich bereits vermutet. Inzwischen habe ich das Template geändert:

- platform: template
  covers:
    rollofront:
      device_class: shutter
      unique_id: rollofront
      friendly_name: "rollofront"
      position_template: "{{ states('number.rollo_front_shutters_jalousie') }}"
      open_cover:
        service: cover.open_cover
        data:
          entity_id: cover.rollofront
      close_cover:
        service: cover.close_cover
        data:
          entity_id: cover.rollofront
      stop_cover:
        service: cover.stop_cover
        data:
          entity_id: cover.rollofront
      set_cover_position:
        service: cover.set_cover_position
        data:
          entity_id: cover.rollofront
          position: "{{ (postition) }}"

Obwohl der Aktor bei den Scrips als Cover erscheint, führt er den jeweiligen Schritt (öffen, schliessen etc.) nicht aus (auch nicht im Script selber)

Der Zustand wird aber ausgelesen:

cover.rollofront
rollofront
closed	
current_position: 0
device_class: shutter
friendly_name: rollofront
supported_features: 15

Du darfst das Template-Rollo nicht auf sich selbst beziehen. In die service calls muss dein eigentliches Rollo rein.

Kitty. Danke für dein Hilfe. Aber jetzt verstehe ich nur noch “Bahnhof” …

In die service calls muss dein eigentliches Rollo rein.

Da bin ich völlig überfordert…

Was hattest du denn in den ursprünglich verwendeten Skripten?

Auch hier verstehe ich nicht genau, was du meisnt.

Also die Aktoren werden über die PioTek EnO2HA eingelesen und dann über die Home Assistant MQTT Schnittstelle an den HA übertragen.

Alle Rollos können jetzt bereits bedient werden, sind aber als “number” integriert.

Bei den Scirpts für den Aktor als “number” fehlt zum Beispiel das “Stop”.

Daher war die Idee, für jeden Rollo ein Template “Cover” zu erstellen um so im Frontend die “custom:shutter-card” oder die “enhanced-shutter-card” zu verwenden.

Siehe hier

Beispiel Scirpt:

sequence:
  - device_id: 1aee9b728ff3377ac3e81112b0c7841a
    domain: select
    entity_id: e55fe4cf535e71e6c747f82645a349ee
    type: select_option
    option: DOWN
  - device_id: 1aee9b728ff3377ac3e81112b0c7841a
    domain: number
    entity_id: 08d71ac946d699f3d3168cf43cd43979
    type: set_value
    value: 100
alias: rollofrontdown
description: ""

Teil 1 fährt den Rollo runter und Teil 2 stellt die Lamellen.

Für “Stop” ist keine Sequenz-Option zu finden.

„select“ entspräche ja schon mal open_cover: und close_cover:

P.S.:

Wie stoppst du die Jalousie denn bisher?

Rauf und runter funktioniert (zwar seitenverkehrt) auch mit der card.

Nur “stop_cover:” und “set_cover_postition” gehen nicht.

Wie stoppst du die Jalousie denn bisher?

Über den Taster von enocean oder die (noch) aktuelle Plattform FHEM :slight_smile:

Daher habe ich es mit dem Script für den cover.rollofront versucht

rollofront_stoppen:
  sequence:
  - action: cover.stop_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.rollofront
  alias: RolloFront stoppen
  description: ''

Versuch’s mit


        set_cover_position:
          service: number.set_value
          target:
            entity_id: number.eep_d2_05_00_rollo_front_shutters_jalousie
          data:
            value: "{{ position }}"

Ich habe inzwischen die Aktoren von enocean (zwecks besserer Lesbarkeit) umbenannt:

- platform: template
  covers:
    rollofront:
      device_class: shutter
      unique_id: rollofront
      friendly_name: "Rollo Front"
      position_template: "{{ states('number.rollo_front_shutters_jalousie') }}"
      open_cover:
        action: script.rollofrontup
      close_cover:
        action: script.rollofrontdown
      set_cover_position:
        service: number.set_value
        target:
          entity_id: number.rollo_front_shutters_jalousie
        data:
          value: "{{ position }}"

Bei service: number.set.value zeigt Studio Code Server zwar die Meldung String does not match the pattern of "LEGACY_SYNTAX^".

ABER: Es funktioniert …

Einfach noch seitenverkehrt (also wie bei einer Garage). Das wird aber irgendwo bei der Card sicher noch einstellbar sein.


Kitty. Danke

Habe die Meldung auf meine letzte Antwort erhalten:

unser automatischer Spamfilter Akismet hat deinen Beitrag in PioTek EnO2HA - Entitäts-ID manuell ändern? vorübergehend ausgeblendet, bis er überprüft wird.

Keine Ahnung warum …