Für alle die Jalousien in HA integrieren möchten habe ich hier einen Lösungsansatz vorbereitet.
Und zwar habe ich mich hier für die Touch-Schalter Sonoff T0 2CH Entschieden.
Sonoff T0 2CH: https://amzn.to/3uu181s
Dabei existieren zwei Probleme:
- Man muss sicherstellen, dass immer nur einer der beiden Kanäle aktiv ist, da der Motor ansonsten für beide Drehrichtungen Strom bekommen könnte.
- Die Taster sollten nach einer festgelegten Zeit automatisch den Strom für den aktivierten Kanal wieder abschalten. (wenn die Jalousie vollständig rauf/runter gefahren ist)
ESPHome Programm
Damit man hier nicht im Home Assistant unnötig viele Automatisierungen anlegen muss, die eventuell bei Netzwerkausfall sogar versagen könnten, was zum defekt der Motoren führen kann, habe ich mich hier für offline Automatisierungen auf ESPHome Basis entschieden.
Dadurch funktionieren die oben genannten Regeln sowohl bei Bedienung über den Taster, als auch über Home Assistant automatisch.
Das einzige was ihr neben eurem WiFi Zugang und den Namen der Objekte im Programm anpassen müsst, sind die Zeiten für die Dauer, die eure Jalousie für das öffnen/schließen benötigt.
Stoppt dazu die Sekunden für beide Richtungen einzeln und tragt sie bei den Punkten open_duration und close_duration ein.
1esphome:
2 name: t0_schalter_jalousie
3 platform: ESP8266
4 board: esp01_1m
5
6wifi:
7 ssid: !secret WLanSSID
8 password: !secret WLanPassword
9
10 # Enable fallback hotspot (captive portal) in case wifi connection fails
11 ap:
12 ssid: "Sonoff T1 Ch2 Fallback Hotspot"
13 password: "4DGYHKEXmwmf"
14
15captive_portal:
16
17logger:
18
19api:
20ota:
21
22binary_sensor:
23 - platform: gpio
24 pin:
25 number: GPIO0
26 mode: INPUT_PULLUP
27 inverted: True
28 id: button_1
29 on_press:
30 then:
31 - lambda: |
32 if (id(my_cover).current_operation == COVER_OPERATION_IDLE) {
33 id(my_cover).open();
34 } else {
35 id(my_cover).stop();
36 }
37
38
39 - platform: gpio
40 pin:
41 number: GPIO9
42 mode: INPUT_PULLUP
43 inverted: True
44 id: button_2
45 on_press:
46 then:
47 - lambda: |
48 if (id(my_cover).current_operation == COVER_OPERATION_IDLE) {
49 id(my_cover).close();
50 } else {
51 id(my_cover).stop();
52 }
53
54
55 - platform: status
56 name: "Jalousie Status"
57
58
59switch:
60 - platform: gpio
61 name: "Jalousie rauf"
62 pin: GPIO12
63 interlock: &interlock [open_cover, close_cover]
64 id: open_cover
65 on_turn_on:
66 - script.execute: switch_open_cover_off
67
68 - platform: gpio
69 name: "Jalousie runter"
70 pin: GPIO5
71 interlock: *interlock
72 id: close_cover
73 on_turn_on:
74 - script.execute: switch_close_cover_off
75
76cover:
77 - platform: time_based
78 name: "Jalousie"
79 id: my_cover
80 open_action:
81 - switch.turn_on: open_cover
82 open_duration: 22s
83 close_action:
84 - switch.turn_on: close_cover
85 close_duration: 20s
86 stop_action:
87 - switch.turn_off: open_cover
88 - switch.turn_off: close_cover
89
90
91status_led:
92 pin:
93 number: GPIO13
94 inverted: yes
95
96
97script:
98- id: switch_open_cover_off
99 mode: restart
100 then:
101 - delay: 1min
102 - switch.turn_off: open_cover
103
104- id: switch_close_cover_off
105 mode: restart
106 then:
107 - delay: 1min
108 - switch.turn_off: close_cover

