hippoo
20. Januar 2025 um 09:34
1
Ich habe gemäß simons Video
[https://www.youtube.com/watch?v=SLo86-xpKcw&t=461s ] (Der „Saver“ aus HACS)
die Rollladensteuerung nachgebaut.
Bei der mutmaßlich einfachen c&p-Aufgabe und Anpassung der Entitäten treffe ich jedoch auf Fehler, die ich nicht lösen kann/richtig interpretiere.
Zunächst habe ich den Code auf einen Aktor (Rollladen) heruntergebrochen - die Fehler bleiben die Gleichen.
id: '1737127628526'
alias: _Fenster offen = Rollo hoch
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.keller_fenster_contact
from: 'off'
id: KE
to: 'on'
conditions:
- condition: or
conditions:
- alias: KE
condition: and
conditions:
- condition: trigger
id:
- KE
- condition: numeric_state
entity_id: cover.rolladen_office_klein
attribute: current_position
below: 90
actions:
- choose:
- conditions:
- condition: trigger
id:
- KE
sequence:
- action: saver.save_state
metadata: {}
data:
entity_id:
- cover.rolladen_office_klein
- action: cover.open_cover
metadata: {}
data: {}
target:
entity_id: cover.rolladen_office_klein
- wait_for_trigger:
- trigger: state
entity_id:
- binary_sensor.keller_fenster_contact
from: 'on'
to: 'off'
timeout:
hours: 0
minutes: 0
seconds: 30
- action: cover.set_cover_position
metadata: {}
data:
position: >-
{{ saver_entity('cover.rolladen_office_klein',
'current_position') }}
target:
entity_id: cover.rolladen_office_klein
mode: parallel
max: 10
Der Fehler scheint zu sein, dass beim Speichern/Abruf statt des korrekten Wertes ‘current_position’ (z.B. 75%) dort ‘null’ drinsteht.
Schaue ich mir dann das Attribut ‘current_positon’ der Entität ‘cover.rolladen_office_klein’ an steht dort der korrekte Wert.
Warum?
Folglich startet die Automation:
nach Öffnen des Fensterkontaktes (-> Position Rollo < 90%) öffnet das Rollo wie zu erwarten aber dann tritt der obige Fehler auf.
Ergo: da ‘null’ kein integer-Wert fällt die Automation auf die Nase.
edit:
hier noch die Attribute der cover-Entität:
Avant
23. Januar 2025 um 10:31
2
Ich schließe mich hier mal an.
Auch ich habe gerade versucht die Automation nachzubauen, jedoch scheitere ich am gleichen Problem, wie @hipoo .
Fenster auf, dann fährt der Rollladen hoch. Aber weder bei Timeout noch Fenster zu fährt er wieder in die vorherige Position.
Ich habe einen Eintrag im LogBuch der ist für mich nicht ganz schlüssig.
Wenn ich jetzt den Eintrag vom Saver aufmache und dort in die Attribute gehe hat er einmal bei einer Entität (cover.rolladen.bad) den Positionswert null und weiter unten (sensor.rolladen_bad_position_ch3) 38 (was auch hinkam beim testen).
Jedoch fährt er dorthin nicht wieder zurück nach schließen des Fensters.
Ich wüßte jetzt nicht woran es noch liegt.
maxe
23. Januar 2025 um 12:18
3
dann wäre es aber so falsch
position: >-
{{ saver_entity('cover.rolladen_office_klein',
'current_position') }}
dann müsste imho ja der state vom sensor.rolladen_bad_position_ch3 wiederhergestellt werden
position: >-
{{ saver_entity('sensor.rolladen_bad_position_ch3',
'state') }}
Ich nutze Saver selber nicht.
Avant
23. Januar 2025 um 14:57
4
Kann es sein das du die Beiträge von @hipoo und mir mischt?
Ich habe keine Zeile mit „Rollo klein“
Aber dafür Bad Ch 3…
maxe
23. Januar 2025 um 15:00
5
Da du deinen Code nicht angegeben hast, muss ich ja vom TE ausgehen.
Hast du es denn mit state versucht? Vielleicht muss auch noch ein float() dran.
Avant
23. Januar 2025 um 15:28
6
Stimmt hast recht…
hier zu Vollständigkeit
alias: Fenster offen = Rollo hoch
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.fenstersensor_bad_erdgeschoss_contact
from: 'off'
to: 'on'
id: Bad
- trigger: state
entity_id:
- binary_sensor.fenstersensor_kuche_contact
from: 'off'
to: 'on'
id: Küche
conditions:
- condition: trigger
id:
- Bad
- condition: device
device_id: c10f14a8d8faa0207888e985c6496b4a
domain: cover
entity_id: f4b843abc9311fd3e65fb7d6e89f89ee
type: is_position
below: 40
actions:
- choose:
- conditions:
- condition: trigger
id:
- Bad
sequence:
- action: saver.save_state
metadata: {}
data:
entity_id:
- sensor.rolladen_bad_position_ch3
- action: cover.open_cover
metadata: {}
data: {}
target:
entity_id: cover.rolladen_bad
- wait_for_trigger:
- trigger: state
entity_id:
- binary_sensor.fenstersensor_bad_erdgeschoss_contact
from: 'on'
to: 'off'
timeout:
hours: 0
minutes: 0
seconds: 20
- action: cover.set_cover_position
metadata: {}
data:
position: saver_entity('cover.rollo_bad','current_position')
target:
entity_id: cover.rolladen_bad
mode: single
maxe
23. Januar 2025 um 16:04
7
Du sicherst den Zustand von einem sensor und willst anschließend aber den Zustand vom cover wiederherstellen? Sicher die mal die richtige Entität
action: saver.save_state
metadata: {}
data:
entity_id:
- cover.rollo_bad
Oder stell die andere Entität wieder her (hatte ich ja bereits oben beschrieben).
Avant
23. Januar 2025 um 17:11
8
Ahh danke für den Hinweis:
alias: Fenster offen = Rollo hoch
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.fenstersensor_bad_erdgeschoss_contact
from: 'off'
to: 'on'
id: Bad
- trigger: state
entity_id:
- binary_sensor.fenstersensor_kuche_contact
from: 'off'
to: 'on'
id: Küche
conditions:
- condition: trigger
id:
- Bad
- condition: device
device_id: c10f14a8d8faa0207888e985c6496b4a
domain: cover
entity_id: f4b843abc9311fd3e65fb7d6e89f89ee
type: is_position
below: 40
actions:
- choose:
- conditions:
- condition: trigger
id:
- Bad
sequence:
- action: saver.save_state
metadata: {}
data:
entity_id:
- sensor.rolladen_bad_position_ch3
- action: cover.open_cover
metadata: {}
data: {}
target:
entity_id: cover.rolladen_bad
- wait_for_trigger:
- trigger: state
entity_id:
- binary_sensor.fenstersensor_bad_erdgeschoss_contact
from: 'on'
to: 'off'
timeout:
hours: 0
minutes: 0
seconds: 20
- action: cover.set_cover_position
metadata: {}
data:
position: saver_entity('sensor.rolladen_bad_position_ch3','current_position')
target:
entity_id: cover.rolladen_bad
mode: single
Ich hab jetzt unten in der drittletzten Zeile auf den Sensor gewechselt aber die danach folgende entity_id kann die mit dem Wert was anfangen?
maxe
23. Januar 2025 um 17:53
9
Müsste dann nicht state rein?
Aber warum saves du nicht das cover und stellst danach die current_position des covers wieder her?
Ich verstehe den Mix nicht.
Avant
24. Januar 2025 um 08:05
10
Ich hatte gedacht, dass das cover den Positionspunkt nicht weiß, sondern nur eine Art Schalter ist und hoch runter kann. Probiere ich aber aus und melde mich.
maxe
24. Januar 2025 um 12:16
13
@hippoo
was sagen denn bei dir die Attribute der saver Entität?
tarag
24. Januar 2025 um 15:07
16
Ich habe hier einmal durch gewischt und einige Beiträge gelöscht.
Bitte bleibt freundlich. Und Nein, wir werden das Thema aktuell nicht schließen. Wenn jemand kein Interesse am weiteren Verlauf hat, kann er das beobachten beenden und bekommt keine weitere Benachrichtigung.
Avant
24. Januar 2025 um 15:54
17
@tarag
Danke vielmals.
@maxe
Ich habe jetzt die auf cover gewechselt als Entität.
Das Problem bleibt aber bestehen.
Auf Rollo hoch funktioniert, bei zu weder nach Timeout noch nach schließen des Fensters.
alias: Fenster offen = Rollo hoch
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.fenstersensor_bad_erdgeschoss_contact
from: 'off'
to: 'on'
id: Bad
- trigger: state
entity_id:
- binary_sensor.fenstersensor_kuche_contact
from: 'off'
to: 'on'
id: Küche
conditions:
- condition: trigger
id:
- Bad
- condition: device
device_id: c10f14a8d8faa0207888e985c6496b4a
domain: cover
entity_id: f4b843abc9311fd3e65fb7d6e89f89ee
type: is_position
below: 40
actions:
- choose:
- conditions:
- condition: trigger
id:
- Bad
sequence:
- action: saver.save_state
metadata: {}
data:
entity_id:
- cover.rolladen_bad
- action: cover.open_cover
metadata: {}
data: {}
target:
entity_id: cover.rolladen_bad
- wait_for_trigger:
- trigger: state
entity_id:
- binary_sensor.fenstersensor_bad_erdgeschoss_contact
from: 'on'
to: 'off'
timeout:
hours: 0
minutes: 0
seconds: 20
- action: cover.set_cover_position
metadata: {}
data:
position: saver_entity('cover.rolladen_bad','current_position')
target:
entity_id: cover.rolladen_bad
mode: single