Portage plugin Home Assistant vers Jeedom : Edilkamin The Mind

Je suis l’heureux possesseur d’un poele à granules Edilkamin Bild, qui fonctionne sous The Mind et n’est donc pas compatible avec le plugin Hottoh.

Dans mes recherches, j’ai trouvé le reverse engeneering sur l’API et je suis le sujet depuis un moment.
Il avance et il est même suffisamment avancé pour que des contributeurs aient réalisé le plugin pour Home Assistant.

Du coup, je cherche à savoir si quelqu’un a déjà fait le portage d’un plugin HA vers Jeedom.

Merci !

Et je découvre :

@Foulek57 : tu penses que cela pourrait fonctionner avec ce plugin ?

2 « J'aime »

Hello @geraldelbaze je suis le développement de cette API et de son portage depuis le début.
Elle semble fiable et plutôt bien conçue.
Je ne sais malheureusement pas comment la porter sur Jeedom.
Je rêve de me débarrasser de gestion OEM qui est bête à bouffer du foin.

1 « J'aime »

Hello,

Oui Home Assistant Conncect permet de piloter home assistant depuis Jeedom
(Je viens tout juste de sortir une vidéo pour l’expliquer - YouTube)

2 « J'aime »

je viens d’installer un Home Assistant pour voir ce que permet de faire l’intégration Edilkamin.
Voici une capture d’écran. Cela montre assez bien les fonctionnalités disponibles. (j’ai un problème avec le capteur de température de la télécommande qui est à 3°C d’écart avec la température réelle… je ne suis pas en surchauffe hein :wink: )

3 « J'aime »

Bonjour,

Edit : j’avais pas vu la vidéo de Foulek57, j’ai la réponse à une de mes questions…
Ce plugin sous home assistant permet de faire quoi concrètement ?
L’idéale serait d’asservir le poêle au plugin thermostat (sous jeedom du coup) afin de gérer la puissance en fonction des températures intérieur / extérieur, etc…

Mon but serait de me passer totalement de la gestion par the mind.

Actuellement « The mind » est très mal pensé.
Il y a des conflits avec le mode standby et les autres façons d’arrêter le poêle, par conséquent il arrive que le poêle démarrer puis s’arrête dans la foulée … pour redémarrer tout de suite après le refroidissement. Bonjour l’encrassement et usure prématuré de la bougie !

J’ai aussi cet écart de quelques °C avec la sonde de la télécommande.
Et c’est sans parler de la fréquence de rafraichissement trop lente qui induit des comportements non désirés, des overshoots…

Je vais mettre des copies d’écrans, mais du coup oui je pense qu’on peut aboutir à ça. L’idée serait de seulement piloter des fonction on/off sous Jeedom (et ça c’est possible)

Pour ma part, je suis même pour ne plus utiliser la sonde de température de la télécommande.
Et du coup avec un capteur de température c’est aussi possible.

Mais sur le principe ça revient à « débrancher » the mind… Et de n’utiliser que la fonction on/off en OTA.
Ce qui revient à la bonne vieille approche d’agir sur la prise relais :wink:

En revanche on récupère aussi toutes les stats présentes sur le télécommande.

Bonus : on peut piloter les modes donc on peut aussi se faire des « rampes » de chauffage rapide. Mais ça serait non-compatible avec le plugin thermostat et son modèle d’apprentissage.

Dernière chose : reste la question de la gestion des arrêts d’urgence gérés par la télécommande.

Effectivement j’ai pour but de ne plus utiliser the mind et la télécommande.
Cela suppose que je puisse piloter les modes manuel avec le plugin thermostat en m’inspirant fortement du tuto de Pierrick :

Les arrêts d’urgence sont gérés par le poêle lui même, sinon la sécurité ne serait pas assurée en cas d’interruption de la liaison avec la télécommande :wink:
D’ailleurs le poêle peut être utilisé sans elle … mais c’est peu pratique :slight_smile:

Oui oui bien sûr. Je parlais de retour de ces informations pour pouvoir les gérer et les remonter.

Hello,

J’ai installé HA sur une VM pour faire des essais.
L’intégration Edilkamin fonctionne plutôt bien.

Le retour d’infos des arrêt d’urgence semblent être présent :
image

J’ai ensuite testé le plugin de @Foulek57 en suivant le tuto vidéo, c’est parfait il fait bien l’interface avec HA sans soucis et c’est plutôt réactif.

Par contre je rencontre un problème pour rapatrier les infos / commandes de ce widget :
image
Sous un seul ID d’entité il se cache de multiples commandes / infos.

Je ne vois pas comment les exploiter séparément.
La seul info que j’arrive à remonter via Home Assistant Connect c’est « heat »

En l’état je ne peux donc pas m’en servir, dommage.

Bonjour à tous,
Je viens de découvrir le sujet et fortement intéressé par la création d’un plugin Edilkamin. Pour ma part j’utilise le scrypt Python GitHub - AndreMiras/edilkamin.py: Unofficial Edilkamin library directement depuis Jeedom grâce au plugin Script, ce n’est pas parfait mais ça fait le taf avec le plugin Thermostat (+sonde déportée) et je me suis aussi basé sur le travail de Pierrick pour la gestion du poële via scénario et je trouve ça vraiment plus cool que l’infâme télécommande.
J’ai commencé à regarder pour créer un plugin mais par manque de compétence et de temps, j’ai un peu abandonné. Donc si un développeur passe par là et ests prêt à nous aider, ça serait cool. Mon questionnement se porte sur le choix du language à utiliser, est-ce qu’on porte le code JS/Python en natif Jeedom à savoir le PHP ou bien on garde l’existant ?

1 « J'aime »

Bonsoir,

Peux-tu décrire comment tu utilise ce scrypt ? Voir fait un petit tuto ?
Pour l’instant tu es le seul qui semble avoir réussi à commander son Edilkamin depuis Jeedom. :+1:

Salut,
Ok je vais prendre le temps de rédiger un tuto. Je ne vous garantis rien pour ce week-end mais plus le week-end prochain.

1 « J'aime »

Merci beaucoup !

Voici les différentes étapes pour automatiser un poële EDILKAMIN (Blade UP dans mon cas) pilotable avec l’application « The Mind » et le plugin Jeedom « Script ».
Premièrement installer les librairies Python Edilkamin.py sur votre Jeedom :

pip install edilkamin[ble]

Télécharger ensuite l’archive edilkamin.txt (1,7 Ko) et la renommer en .7z puis la désarchiver dans le répertoire

/var/www/html/plugins/script/data

Remplacer dans le fichier get_token la balise et par vos identifiants « The Mind ».

Il faut maintenant créer un équipement Script dans Jeedom. Nommez le Edilkamin si vous souhaitez.
Paramétrez l’Auto-actualisation avec la valeur suivante : */5 * * * .
Créer les commandes suivantes :

  • « get_token » qui va vous permettre d’obtenir un token pour vous connecter au poële avec comme valeur « python3 /var/www/html/plugins/script/data/edilkamin/get_token > /var/www/html/plugins/script/data/edilkamin/token.json » :

  • « power » pour récupérer l’info de fonctionne de votre poële avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/get_info edilkamin.device_info_get_power » :

  • « Power On » pour démarrer votre poële avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/power_on #[Salon][Edilkamin][token]# #[Salon][Poele][mac_address]# » Le second paramètre vient d’un virtuel que l’on créera plus par la suite pour stocker l’adresse mac de votre poële :

  • « Power Off » pour éteindre votre poële avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/power_off #[Salon][Edilkamin][token]# #[Salon][Poele][mac_address]# » :

  • « device_info » permet de récuperer dans un fichier json toutes les infos de votre poële avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/device_info #[Salon][Edilkamin][token]# #[Salon][Poele][mac_address]# » :

  • « token » permet de stocker le token récupérer précédemment avec la valeur suivante « /var/www/html/plugins/script/data/edilkamin/info.sh /var/www/html/plugins/script/data/edilkamin/token.json » :

  • « fan1 » pour récupérer l’information de la vitesse du ventilateur numéro 1 avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/get_fan edilkamin.device_info_get_fan_speed 1 » :

  • « fan2 » idem pour le ventilateur numéro 2 avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/get_fan edilkamin.device_info_get_fan_speed 2 » :

  • « temperature » pour récupérer l’information de la température de la sonde du poële avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/get_info edilkamin.device_info_get_environment_temperature » :

  • « Fan Speed 1 » permet de setter la puissance du ventilateur numéro 1 avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/set_fan_speed #[Salon][Edilkamin][token]# #[Salon][Poele][mac_address]# 1 #slider# » :

  • « Fan Speed 2 » permet de setter la puissance du ventilateur numéro 2 avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/set_fan_speed #[Salon][Edilkamin][token]# #[Salon][Poele][mac_address]# 2 #slider# » :

  • « alarm_type » permet de récupérer l’info des alarmes (pas encore réussi à le faire fonctionner) avec la valeur suivante « /var/www/html/plugins/script/data/edilkamin/info.sh /var/www/html/plugins/script/data/edilkamin/device_info.json | jq ‹ .status.state.alarm_type › » :

  • « operational_phase » permet d’obtenir le status du poële combiné à d’autre infos « /var/www/html/plugins/script/data/edilkamin/info.sh /var/www/html/plugins/script/data/edilkamin/device_info.json | jq ‹ .status.state.operational_phase › » :

  • « stove_state » permet d’obtenir le status du poële combiné à d’autre infos « /var/www/html/plugins/script/data/edilkamin/info.sh /var/www/html/plugins/script/data/edilkamin/device_info.json | jq ‹ .status.state.stove_state › » :

  • « sub_operational_phase » permet d’obtenir le status du poële combiné à d’autre infos « /var/www/html/plugins/script/data/edilkamin/info.sh /var/www/html/plugins/script/data/edilkamin/device_info.json | jq ‹ .status.state.sub_operational_phase › » :

  • « Manual Power » permet de setter la puissance du poële « python3 /var/www/html/plugins/script/data/edilkamin/set_power_manual #[Salon][Edilkamin][token]# #[Salon][Poele][mac_address]# #slider# » :

  • « Global Power » permet de setter d’une seul commande la puissance du poële ainsi que les ventilateurs (depuis un scénario) pour éviter une connexion au cloud Edilkamin à chaques commandes avec la valeur suivante « python3 /var/www/html/plugins/script/data/edilkamin/set_stove_power #[Salon][Edilkamin][token]# #[Salon][Poele][mac_address]# variable(manual_power,1) variable(fan_speed_1,1) variable(fan_speed_2,1) » :

  • « pellet » permet de récupérer l’autonomie des pellets une fois que le seuil dans le réservoir est atteint (non fonctionnel pour moi pour le moment) par défaut 1800s quand le seuil n’est pas encore atteint « /var/www/html/plugins/script/data/edilkamin/info.sh /var/www/html/plugins/script/data/edilkamin/device_info.json | jq ‹ .status.pellet.autonomy_time › » :

Maintenant créez un virtuel pour y mettre votre adresse mac :
Attention le nom du champs comportant l’adresse mac doit être adapté dans les valeurs des champs ci-dessus pour refléter votre configuration.
image
Vous pouvez très bien créer le champ dans le même script.
Ensuite il ne vous reste plus qu’a créer les scénarios pour utiliser votre poële.
Un exemple d’utilisation, je stockee mes valeurs dans des variables et je fais appels à la commande « Global Power » vue ci-dessus pour ne faire qu’un seul appel et ensuite je rafraichis les infos de mon poële avec la commande « device_info »:

le screenshot est coupé mais vous comprendrez très bien la fin.

Voici les informations que j’ai collecté dans un scénario pour avoir l’état de mon poële :

J’espère que cela vous aidera, comme je l’ai dit ce n’est pas parfait mais ça fait le travail, évidemment il faudrait créer un plugin à partir de tout ça.
Attention cela fonctionne avec mon poële Blade UP et certains ajustements devraient être fait chez vous.
Petite précision, le token n’est valide que 24 heures, il vous faut donc le réinitialiser avec un cron tous les jours depuis un scénario par exemple. Il faut aussi rafraichir les valeurs « device_info » toutes les 5 minutes afin d’avoir les dernières infos de votre poële.
Bon week-end !

2 « J'aime »

Bonsoir,

Un grand merci pour ce partage !

Petite précision : pour installer la librairie j’ai du utiliser la commande suivante :

sudo python3 -m pip install edilkamin[ble]

Sinon par défaut il essai d’installer avec Python 2.7 et ca ne fonctionne pas.

Edit : je galère un peu, ca ne fonctionne pas du premier coup mais j’avance :slight_smile:

Bonjour @Duvid ,
N’hésite pas si besoin d’aide ? J’ai essayé de me souvenir des étapes d’installations.

Bonjour,

Voici les problèmes que j’ai rencontré :
1- Les commandes infos ne pouvaient pas êtres enregistrées car elle vont chercher les données dans le fichier device_info.json … qui n’existe pas.
→ Problème résolu lorsque j’ai pu le générer un peu plus tard après avoir renseigné l’adresse MAC et récupéré le token.

2- Le token était généré mais au début du fichier « token.json » j’avais un message d’avertissement car la V3.7 de python ne va plus être maintenue.
→ Problème résolu en installant python3.12.

Il me reste un problème avec les commandes info qui utilisent une expression du type « | jq ‹ .status.xxxxxx › »

Ca me remonte des erreurs comme celle-ci :

Erreur pour [Salon][Edilkamin][ alarm_type] : Erreur sur /var/www/html/plugins/script/data/edilkamin/info.sh /var/www/html/plugins/script/data/edilkamin/device_info.json | jq ‹ .status.state.alarm_type › 2>&1 valeur retournée : 127. Détails : sh: 1: jq: not found		

Là je sèche.

Sinon le reste semble fonctionner, le statut remonte, la température et les vitesses des fan aussi.
Reste à tester une mise en route et ajustement des réglages, mais il fait pas assez froid pour ca :smiley:
Reste aussi les scénario à créer mais pour moi le point dur c’était les scripts

Il faut installer « jq » qui te permet de parser un json

Pensez a signaler ca lorsque vous ferez un post parce que le démon d’un autre plugin est planté :wink: