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?
Kitty
19. April 2025 um 10:04
6
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
Kitty
19. April 2025 um 12:02
8
outhouse:
cover.rollofront
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…
Kitty
20. April 2025 um 08:13
10
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.
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.
Kitty
20. April 2025 um 09:39
14
„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
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: ''
Kitty
20. April 2025 um 10:47
16
outhouse:
set_cover_postition
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 …