Salut à tous,
J’ai acheté récemment un bureau Ikea IDÅSEN motorisé assis/debout qui peut se contrôler grâce à une application connectée en bluetooth.
Afin de l’intégrer à Home Assistant, je me suis inspiré de projets Github existant ayant reverse engineered l’application et j’ai créé un custom component ESPHome :
Matériel :
- Un ESP32
Installation :
-
Copier le dossier
idasen_desk_controller/
dans le dossiercustom_components/
d’ESPHome (à créer si ce n’est pas déjà fait). -
Configuration à ajouter en renseignant l’adresse mac bluetooth du bureau :
idasen_desk_controller:
# Renseigner l'adresse mac du bureau
mac_address: "00:00:00:00:00:00"
# Configuration d'un composant cover permettant de monter / baisser / définir la position
cover:
- platform: idasen_desk_controller
name: "Bureau"
sensor:
- platform: idasen_desk_controller
desk_height:
# Hauteur du bureau en cm (0 à 65cm)
name: "Bureau hauteur"
binary_sensor:
# Statut de la connexion bluetooth entre l'ESP32 et le bureau
- platform: idasen_desk_controller
name: "Bureau connexion bluetooth"
type: CONNECTION
# Indicateur permettant de savoir si le bureau est en mouvement
- platform: idasen_desk_controller
name: "Bureau en mouvement"
type: MOVING
- Lors de la première connexion, il faut presser le bouton d’association du bureau
Home Assistant
Le composant va ajouter à Home Assistant :
- Une intégration cover permettant de monter / baisser le bureau, stopper le déplacement et définir une position
- Le statut de la connexion bluetooth
- La hauteur du bureau en cm (entre 0 et 65cm)
- Le statut de mouvement du bureau
Bonus
Ajout d’un switch permettant d’alterner entre une position assis / debout :
idasen_desk_controller:
mac_address: "00:00:00:00:00:00" # À définir
cover:
- platform: idasen_desk_controller
id: desk_cover
name: "Bureau"
sensor:
- platform: idasen_desk_controller
desk_height:
id: desk_height
name: "Bureau hauteur"
switch:
- platform: template
name: "Bureau debout"
id: desk_stand
lambda: |-
return id(desk_height).state > 20;
turn_on_action:
- cover.control:
id: desk_cover
position: 90% # Position debout à définir
turn_off_action:
- cover.control:
id: desk_cover
position: 20% # Position assise à définir
Perte de connexion wifi
J’ai eu quelques problèmes de perte de connexion de l’ESP32 au wifi que je semble avoir corriger en activant l’option fast_connect
dans la configuration wifi :
wifi:
ssid: ...
password: ...
fast_connect: true
En conclusion
J’utilise ce composant depuis une semaine et, avec ma configuration et mon usage, je n’ai pas rencontré de gros problème. Il se peut que lors d’un déplacement le bureau s’arrête en plein milieu, je pense que c’est lié à une sécurité permettant de stopper le mouvement si un obstacle est rencontré.
Je n’ai pas l’habitude d’écrire du C++ ou du Python donc je suis preneur de tous vos retours.