(Werbung)
In diesem Beitrag zeige ich dir, wie du deinen Frame Desk 2 (höhenverstellbarer Schreibtisch) von der Firma Linak in Home Assistant mit einem ESP32 einbinden kannst.
Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenDurch freundliche Unterstützung der Firma Flatlift habe ich das Gestell für diesen Schreibtisch auf der Internetseite lineardirect.eu erworben. Dieser höhenverstellbare Schreibtisch kann mit Arbeitsplatten von einer Breite von 1,15 – 1,75 m installiert werden. Die Besonderheit dieses Gestells liegt in dem Steuerungsgerät, welches eine Bluetooth Verbindung besitzt. Die Montageanleitung des Frame Desk 2 kann auf der folgenden Seite angesehen werden (https://cdn.linak.com/-/media/files/user-manual-source/de/deskline-desk-frame-2-montageanleitung-dt.pdf).
Inhaltsverzeichnis
ESP32
Für die Verbindung zwischen dem Schreibtisch und Home Assistant wird ein ESP32 benötigt. Dieser baut eine Bluetooth Verbindung auf. Ein ESP32 kann für ca. 10 Euro erworben werden.
ESPHome
In Home Assistant installierst du aus dem Add-On Store das ESPHome Addon. Anschließend flash du deinen ESP32 mit der Firmware. Eine Schritt für Schritt Anleitung findest du im obigen Video.
ESPHome Code
esp32_ble_tracker: globals: # To store the Desk Connection Status - id: ble_client_connected type: bool initial_value: 'false' ble_client: - mac_address: "xxxxxx" id: DESK on_connect: then: # Update the Desk Connection Status - lambda: |- id(ble_client_connected) = true; - delay: 5s # Update desk height and speed sensors after bluetooth is connected - lambda: |- id(desk_height).update(); id(desk_speed).update(); on_disconnect: then: # Update the Desk Connection Status - lambda: |- id(ble_client_connected) = false; sensor: # Desk Height Sensor - platform: ble_client type: characteristic ble_client_id: DESK id: desk_height name: 'Desk Height' service_uuid: '99fa0020-338a-1024-8a49-009c0215f78a' characteristic_uuid: '99fa0021-338a-1024-8a49-009c0215f78a' icon: 'mdi:arrow-up-down' unit_of_measurement: 'cm' accuracy_decimals: 1 update_interval: never notify: true lambda: |- uint16_t raw_height = ((uint16_t)x[1] << 8) | x[0]; unsigned short height_mm = raw_height / 10; return (float) height_mm / 10; # Desk Speed Sensor - platform: ble_client type: characteristic ble_client_id: DESK id: desk_speed name: 'Desk Speed' service_uuid: '99fa0020-338a-1024-8a49-009c0215f78a' characteristic_uuid: '99fa0021-338a-1024-8a49-009c0215f78a' icon: 'mdi:speedometer' unit_of_measurement: 'cm/min' # I'm not sure this unit is correct accuracy_decimals: 0 update_interval: never notify: true lambda: |- uint16_t raw_speed = ((uint16_t)x[3] << 8) | x[2]; return raw_speed / 100; binary_sensor: # Desk Bluetooth Connection Status - platform: template name: 'Desk Connection' id: desk_connection lambda: 'return id(ble_client_connected);' # Desk Moving Status - platform: template name: 'Desk Moving' id: desk_moving lambda: 'return id(desk_speed).state > 0;' idasen_desk_controller: # Reference to the ble client component id # ----------- # Required ble_client_id: DESK # Fallback to use only up and down commands (less precise) # ----------- # Optional only_up_down_command: false cover: - platform: idasen_desk_controller name: "Desk"
Achtung ! Es muss die Mac Adresse des Schreibtisches eingetragen werden. Außerdem muss der Name des Schreibtisches eventuell abgeändert werden.
* Die mit Sternchen markierten Links sind sogenannte „Affiliate-Links“. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Wird über diese ein Einkauf getätigt, werde ich mit einer kleinen Provision beteiligt – ohne das Kosten für dich entstehen. Vielen Dank für deinen Support!
Änderungsprotokoll
04/2023: Veröffentlichung des Beitrages