Ik vroeg me af of iemand een ideetje heeft. Ik zoek een manier om in een lovelace-kaart een event te zetten.
Onderaan m'n post heb ik m'n automation. De automation reageert op m'n zigbee-schakelaar. Knop 1 en 3 zetten het licht aan, knoppen 2 en 4 zet het licht uit, enz. enz. enz.)
Voordat de lichten daadwerkelijk aan gaan, wordt er eerst gekeken op welke helderheid en kleurtemperatuur de lichten aan moeten komen. (deze waarden worden gedurende de dag aangepast en verschillen per kamer - 's nachts worden de lichten heel erg zwak en warm ingeschakeld, overdag fel en koel en een zwik stappen daartussen)
Nou wil ik graag een paar lovelace kaarten maken die onderstaande automation afvuren. Idealiter kan ik gewoon een deconz_event afvuren met de knop-naam en de event_data van de betreffende knop. Ik ben echter tot de conclusie gekomen dat ik vanuit een tap_action geen event kan afvuren. (iets wat ik wel kan vanuit een automation). Althans. Als dit mogelijk is ben ik het niet tegengekomen.
Ik ben op zoek naar iets 'schoners' dan een event afvangen als de lampen aan gaan, dat hij ze dan zelf op de juiste helderheid zet.
Idealiter wil ik onderstaande action achter een tap_action kunnen zetten:
YAML:
1
2
3
4
5
| action:
- event: deconz_event
event_data:
id: mini_wandschakelaar
event: 2002 |
M'n automation:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| - id: 'mini_lampen'
alias: 'Mini lampen'
initial_state: 'on'
mode: 'restart'
variables:
kleurtemperatuur: >
{{ state_attr('variable.verlichting_mini_waarden', 'doelkleurtemperatuur') | int }}
helderheid: >
{{ state_attr('variable.verlichting_mini_waarden', 'doelhelderheid') | int }}
trigger:
platform: event
event_type: deconz_event
event_data:
id: mini_wandschakelaar
action:
- choose:
# Lampen aan
- conditions:
- condition: template
value_template: "{{ trigger.event.data.event in ( 1002, 3002 ) }}"
sequence:
- service: deconz.configure
data_template:
entity: light.mini_lampen
field: "/action"
data: {"on": true, "bri": "{{ helderheid }}", "ct": "{{ kleurtemperatuur }}"}
# Feller
- conditions:
- condition: template
value_template: "{{ trigger.event.data.event in ( 1001, 3001 ) }}"
sequence:
- service: deconz.configure
data:
entity: light.mini_lampen
field: "/action"
data: {"bri_inc":254, "transitiontime":50}
# Dimmen
- conditions:
- condition: template
value_template: "{{ trigger.event.data.event in ( 2001, 4001 ) }}"
sequence:
- service: deconz.configure
data:
entity: light.mini_lampen
field: "/action"
data: {"bri_inc":-254, "transitiontime":50}
# Stop feller/dimmen
- conditions:
- condition: template
value_template: "{{ trigger.event.data.event in ( 1003, 2003, 3003, 4003 ) }}"
sequence:
- service: deconz.configure
data:
entity: light.mini_lampen
field: "/action"
data: {"bri_inc":0}
# Uit
- conditions:
- condition: template
value_template: "{{ trigger.event.data.event in ( 2002, 4002 ) }}"
sequence:
- service: deconz.configure
data_template:
entity: light.mini_lampen
field: "/action"
data: {"on": false} |
En voordat er vragen komen:
Ik gebruik deconz.configure ipv light.turn_on omdat dit een vloeiender resultaat geeft
Ik zet eerst 'variables' bovenin, omdat de deconz.configure.data over de gier gaat van m'n 'komma' in m'n state_attr.
Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...