Meine lieben LT-ler/innen
Das Jahr hat gut angefangen, ich hab noch ein paar Tage "frei" und mir war mal wieder ein bisschen "langweilig". Am Eingang von Lilou habe ich einen Tuya-Glas-Optik-3fach Schalter. Leider kann ich damit nur 3 Leuchten ansteuern oder Geräte, je nachdem wie man das in HA hinterlegt. Es gäbe den Schalter noch als 4fach aber auch das würde mich begrenzen.
Das war mir zu wenig, zumal ich wenig "Rückmeldung" habe und ich doch auch noch das ein oder andere damit machen möchte. Ein weiteres Panel wollte ich nicht, da Karin die Bedienung zu doof ist.
Also mal wieder ein bisschen "rumgeschaut" was Google denn so finden würde. So kam ich auf Button+. Dieser bietet mir genügend Flexibilität um auch nicht nur Licht zu steuern sondern auch noch ein paar andere Sachen die ich in nächster Zeit noch umsetzen werde. Die Lichtsteuerung aller verbauten Leuchten ist aber schon mal umgesetzt. Es können mehrere Seiten hinterlegt werden, so dass man nicht auf 6 Tasten begrenzt ist. Auch gibt es "Click" und "Long-Click". Also jede Menge Möglichkeiten.
Der Vorteil den ich bei Button+ noch sehe ist, dass man alles per MQTT steuern kann und dem Button auch die Beschriftung per MQTT senden kann. Weiterhin besteht die Möglichkeit die Knöpfe entsprechend zu beleuchten. Das fand ich gar nicht so schlecht und ich hab mir überlegt für die Beleuchtung der Tasten doch die Farben zu verwenden in der das entsprechende Licht leuchtet. Alle Leuchten bei uns sind RGB-Leuchten - sprich für jeden etwas dabei.
Wie man MQTT in HA installiert und konfiguriert ist bei YT entsprechend zu finden, will ich nicht auch noch erklären. Simon macht das echt gut und wenn ihr schon dabei seid würde ich euch auch gleich Zigbee2MQTT empfehlen.
Nachdem ihr MQTT installiert habt und euer Button+ im WLAN ist, müsste ihr diesen noch konfigurieren. Das geht genauso einfach wie in der Anleitung von Button+ beschrieben.
Für ne entsprechende Basis könnt ihr ja schon mal meine Konfiguration importieren. Das geht über das Konfigurationsmanagement im Button+
Im Feld "Import...." einfach folgendes hineinkopieren und anschliessend auf "Import" klicken
{"info":{"id":"btn_fc611c","mac":"DC:54:75:FC:61:1C","firmware":"2.0.0","connectors":[{"id":0,"connector":1,"type":2},{"id":1,"connector":2,"type":1},{"id":2,"connector":3,"type":1},{"id":3,"connector":4,"type":1}],"sensors":[{"sensorid":1,"description":"Sensirion STS35 Temperature Sensor"}]},"core":{"deviceid":"btn_schalter_1","location":"Eingang","autobackup":true,"brightness":100,"color":16711680,"statusbar":2,"topics":[]},"buttons":[{"buttonid":"3-1","position":3,"page":1,"toplabel":"Hauptlicht","leds":[{"frontwall":"both","onrgb":0,"topics":[]}],"topics":[]},{"buttonid":"4-1","position":4,"page":1,"toplabel":"Arbeiten","leds":[{"frontwall":"both","onrgb":0,"topics":[]}],"topics":[]},{"buttonid":"5-1","position":5,"page":1,"toplabel":"Küche","leds":[{"frontwall":"both","onrgb":0,"topics":[]}],"topics":[]},{"buttonid":"6-1","position":6,"page":1,"toplabel":"Bad","leds":[{"frontwall":"both","onrgb":0,"topics":[]}],"topics":[]},{"buttonid":"7-1","position":7,"page":1,"toplabel":"Schlafzimmer","leds":[{"frontwall":"both","onrgb":0,"topics":[]}],"topics":[]},{"buttonid":"8-1","position":8,"page":1,"toplabel":"Aussenküche","leds":[{"frontwall":"both","onrgb":0,"topics":[]}],"topics":[]},{"buttonid":"1-0","position":1,"page":0,"toplabel":"","leds":[],"topics":[]},{"buttonid":"2-0","position":2,"page":0,"toplabel":"","leds":[],"topics":[]}],"displayitems":[{"displayitemid":"0","x":0,"y":0,"page":1,"boxtype":0,"fontsize":3,"align":1,"width":45,"label":"Uhrzeit","unit":"","round":0,"topics":[{"brokerid":"buttonplus","topic":"system/datetime/amsterdam","payload":"","eventtype":15}]},{"displayitemid":"1","x":0,"y":30,"page":1,"boxtype":0,"fontsize":1,"align":1,"width":100,"label":"Türen","unit":"","round":0,"topics":[{"brokerid":"ha","topic":"homeassistant/status/busdoors","payload":"","eventtype":15}]}],"brokers":[{"brokerid":"buttonplus","url":"mqtt://mqtt.button.plus","port":0,"wsport":0,"username":"","password":"","defaultschema":true,"defaultschemalocalstate":false,"hassdiscovery":false},{"brokerid":"ha","url":"mqtt://192.168.101.20","port":0,"wsport":0,"username":"","password":"","defaultschema":true,"defaultschemalocalstate":false,"hassdiscovery":true}],"sensors":[{"sensorid":1,"interval":10,"topics":[]}]}
Natürlich müsst ihr nachher das entsprechend auf eure Wünsche anpassen. Den MQTT Server müsst ihr noch anpassen damit die Verbindung zu HA hergestellt wird.
Das schwierige ist jetzt eigentlich HA beizubringen, dass einerseits die Tastendrücke erkannt werden und andererseits die Tastenfarbe und der Text nach dem Klick angepasst wird. Dazu erstellt ihr euch eine Automatisierung mit folgendem Inhalt:
alias: MQTT_Eingang_Button
description: ""
triggers:
- trigger: state
entity_id:
- light.sz_l_l1
id: Schlafen_RGB
for:
hours: 0
minutes: 0
seconds: 0
- trigger: state
entity_id:
- light.wz_l1
id: Wohnen_RGB
for:
hours: 0
minutes: 0
seconds: 0
- trigger: state
entity_id:
- light.arbeiten
id: Arbeiten_RGB
for:
hours: 0
minutes: 0
seconds: 0
- trigger: state
entity_id:
- light.kueche
id: Kueche_RGB
for:
hours: 0
minutes: 0
seconds: 0
- trigger: state
entity_id:
- light.bad
id: Bad_RGB
for:
hours: 0
minutes: 0
seconds: 0
- trigger: state
entity_id:
- light.led_aussenkuche
id: Aussenkueche_RGB
for:
hours: 0
minutes: 0
seconds: 0
- trigger: mqtt
topic: buttonplus/btn_schalter_1/button/3-1/pushbutton
id: Wohnen_Click
payload: click
value_template: "{{ value_json.event_type }}"
- trigger: mqtt
topic: buttonplus/btn_schalter_1/button/4-1/pushbutton
id: Arbeiten_Click
payload: click
value_template: "{{ value_json.event_type }}"
- trigger: mqtt
topic: buttonplus/btn_schalter_1/button/5-1/pushbutton
id: Kueche_Click
payload: click
value_template: "{{ value_json.event_type }}"
- trigger: mqtt
topic: buttonplus/btn_schalter_1/button/6-1/pushbutton
id: Bad_Click
payload: click
value_template: "{{ value_json.event_type }}"
- trigger: mqtt
topic: buttonplus/btn_schalter_1/button/7-1/pushbutton
id: Schlafzimmer_Click
payload: click
value_template: "{{ value_json.event_type }}"
- trigger: mqtt
topic: buttonplus/btn_schalter_1/button/8-1/pushbutton
id: Aussenkueche_Click
payload: click
value_template: "{{ value_json.event_type }}"
conditions: []
actions:
- if:
- condition: trigger
id:
- Wohnen_RGB
then:
- action: mqtt.publish
metadata: {}
data:
payload: >
{% if state_attr('light.wz_l1','rgb_color') %} {{ '#%02x%02x%02x' |
format( (state_attr('light.wz_l1','rgb_color')|list)[0],
(state_attr('light.wz_l1','rgb_color')|list)[1],
(state_attr('light.wz_l1','rgb_color')|list)[2] ) }} {% else %} null
{% endif %}
topic: buttonplus/btn_schalter_1/button/3-1/led/both/rgb/set
- action: mqtt.publish
metadata: {}
data:
topic: buttonplus/btn_schalter_1/button/3-1/label/set
payload: |-
{% if state_attr('light.wz_l1','raw_state') %}
An
{% else %}
Aus
{% endif %}
- if:
- condition: trigger
id:
- Wohnen_Click
then:
- action: light.toggle
metadata: {}
data: {}
target:
device_id: 6091d17af8151fdfd8b72a96ae0b9775
- if:
- condition: trigger
id:
- Arbeiten_RGB
then:
- action: mqtt.publish
metadata: {}
data:
payload: >
{% if state_attr('light.arbeiten','rgb_color') %} {{
'#%02x%02x%02x' | format(
(state_attr('light.arbeiten','rgb_color')|list)[0],
(state_attr('light.arbeiten','rgb_color')|list)[1],
(state_attr('light.arbeiten','rgb_color')|list)[2] ) }} {% else %}
null {% endif %}
topic: buttonplus/btn_schalter_1/button/4-1/led/both/rgb/set
- action: mqtt.publish
metadata: {}
data:
topic: buttonplus/btn_schalter_1/button/4-1/label/set
payload: |-
{% if states.light.arbeiten.state == 'on' %}
An
{% else %}
Aus
{% endif %}
- if:
- condition: trigger
id:
- Arbeiten_Click
then:
- action: light.toggle
metadata: {}
data: {}
target:
device_id: ead487e7df1c3257b8160c66ac92bdf3
- if:
- condition: trigger
id:
- Kueche_RGB
then:
- action: mqtt.publish
metadata: {}
data:
payload: >
{% if state_attr('light.kueche','rgb_color') %} {{ '#%02x%02x%02x'
| format( (state_attr('light.kueche','rgb_color')|list)[0],
(state_attr('light.kueche','rgb_color')|list)[1],
(state_attr('light.kueche','rgb_color')|list)[2] ) }} {% else %}
null {% endif %}
topic: buttonplus/btn_schalter_1/button/5-1/led/both/rgb/set
- action: mqtt.publish
metadata: {}
data:
topic: buttonplus/btn_schalter_1/button/5-1/label/set
payload: |-
{% if states.light.kueche.state == 'on' %}
An
{% else %}
Aus
{% endif %}
- if:
- condition: trigger
id:
- Kueche_Click
then:
- action: light.toggle
metadata: {}
data: {}
target:
device_id: bb326a604916755f70eac9d58f7b74e3
- if:
- condition: trigger
id:
- Bad_RGB
then:
- action: mqtt.publish
metadata: {}
data:
payload: >
{% if state_attr('light.bad','rgb_color') %} {{ '#%02x%02x%02x' |
format( (state_attr('light.bad','rgb_color')|list)[0],
(state_attr('light.bad','rgb_color')|list)[1],
(state_attr('light.bad','rgb_color')|list)[2] ) }} {% else %} null
{% endif %}
topic: buttonplus/btn_schalter_1/button/6-1/led/both/rgb/set
- action: mqtt.publish
metadata: {}
data:
topic: buttonplus/btn_schalter_1/button/6-1/label/set
payload: |-
{% if state_attr('light.bad_l1','raw_state') %}
An
{% else %}
Aus
{% endif %}
- if:
- condition: trigger
id:
- Bad_Click
then:
- action: light.toggle
metadata: {}
data: {}
target:
device_id: 76f96d8409fa6203d85f4da7875bef0b
- if:
- condition: trigger
id:
- Schlafen_RGB
then:
- action: mqtt.publish
metadata: {}
data:
payload: >
{% if state_attr('light.sz_l_l1','rgb_color') %} {{ '#%02x%02x%02x'
| format( (state_attr('light.sz_l_l1','rgb_color')|list)[0],
(state_attr('light.sz_l_l1','rgb_color')|list)[1],
(state_attr('light.sz_l_l1','rgb_color')|list)[2] ) }} {% else %}
null {% endif %}
topic: buttonplus/btn_schalter_1/button/7-1/led/both/rgb/set
- action: mqtt.publish
metadata: {}
data:
topic: buttonplus/btn_schalter_1/button/7-1/label/set
payload: |-
{% if state_attr('light.sz_l_l1','raw_state') %}
An
{% else %}
Aus
{% endif %}
- if:
- condition: trigger
id:
- Schlafzimmer_Click
then:
- action: light.toggle
metadata: {}
data: {}
target:
device_id: 79aa21e89b795f3c8c9f27681cf147b3
- if:
- condition: trigger
id:
- Aussenkueche_RGB
then:
- action: mqtt.publish
metadata: {}
data:
payload: >
{% if state_attr('light.led_aussenkuche','rgb_color') %} {{
'#%02x%02x%02x' | format(
(state_attr('light.led_aussenkuche','rgb_color')|list)[0],
(state_attr('light.led_aussenkuche','rgb_color')|list)[1],
(state_attr('light.led_aussenkuche','rgb_color')|list)[2] ) }} {%
else %} null {% endif %}
topic: buttonplus/btn_schalter_1/button/8-1/led/both/rgb/set
- action: mqtt.publish
metadata: {}
data:
topic: buttonplus/btn_schalter_1/button/8-1/label/set
payload: |-
{% if states.light.led_aussenkuche.state == 'on' %}
An
{% else %}
Aus
{% endif %}
- if:
- condition: trigger
id:
- Aussenkueche_Click
then:
- action: light.toggle
metadata: {}
data: {}
target:
device_id: 2908b68ca8830fb56ad5d437c26595a2
mode: single
Display More
Nachdem ihr die Automatisierung abgespeichert habt könnt ihr sie in der WebUI noch anpassen um die richtigen Leuchten usw. auszuwählen.
Dann würde das im Betrieb in etwas so aussehen:
Das Panel wird entweder per USB-C mit Strom versorgt. Es liegt auch ein "Netzteil" bei mit dem ihr von 230V auf die entsprechenden 3.3V kommt für den verdeckten Einbau. Für 12V/24V Bordsysteme geht auch dieser StepDown Konverter.
Vielleicht hab ich ja hiermit mal wieder den ein oder anderen "angefixt". Bei Fragen zu Risiken und Nebenwirkungen fragt euren Arzt oder Apotheker. Von mir dürft ihr keine Linderung erhalten, denn ich bin einfach zu ansteckend - da hilft kein Kraut mehr.
In diesem Sinne....