Zum Inhalt springen
Startseite » Frame Desk 2 von Linak

Frame Desk 2 von Linak

(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 Informationen

Durch 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).

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.

AZDelivery 3 x ESP32 NodeMCU Module WLAN WiFi Dev Kit C Development Board mit CP2102 (Nachfolgermodell zum ESP8266) kompatibel mit Arduino und inklusive E-Book!…
Kundenbewertungen
Unverb. Preisempf.: € 25,99 Du sparst: € 1,00 (-4%)  Preis: € 24,99 Jetzt auf Amazon kaufen* Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 19. September 2023 um 9:17 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.

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

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Die Anzeige der Produkte wurde mit dem affiliate-toolkit WordPress Plugin umgesetzt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

The maximum upload file size: 5 MB. You can upload: image. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here