Piloter son poêle Ravelli

Merci Tank pour ton retour.

C’est surprenant, de mon côté, j’ai bien le pilotage des ventilations (avant et arrière) disponible depuis l’application. Ne serait-ce pas une histoire de configuration entre l’application et ton poêle ?

Je n’ai pas encore déchiffré tous les paramètres que je remonte sur mes sensors mais je n’ai pas l’impression qu’il manque grand chose par rapport à la télécommande. J’ai au moins tout ce qu’il sera nécessaire au pilotage du poêle et des ventilations.

Oui, effectivement, c’est ce que j’ai remarqué en observant les échanges sur le réseau. L’application demande un retour d’état toutes les secondes… Via HA, je me contente de rafraîchir les infos toutes les 5mins pour le moment.

Ahhh. Merci de l’info, je vais contacter mon installateur pour voir à ça.

Bonjour à tous
J’ai un poele Ravelli Flexi 9 et je serais intéresser que tu détailles les commande REST que tu utilise.
D’avance merci

Bonjour

Qu’appelles tu les commandes REST ?

Bonjour
désolé ma question s’adressé plutôt @Aubusson dans son poste plus haut il propose de détaillé ses REST sensor.
Ca m’intéresse car j’aimerai domotiser mon poêle tout en gardant l’usage de la télécommande.

Bonjour @macraspberrypi, je suis sur le tel et n’ai pas accès à mon pc pour l’instant. Je posterai ce que j’ai mis en place pour mon poêle en milieu/fin de semaine depuis le pc, ça sera plus commode.

@Tank, je peux poster ici ou tu préfères que j’ouvre un autre post pour pas trop s’éloigner du sujet de base ?

1 « J'aime »

Alors voici ce que j’ai configuré pour exploiter mon poêle via HA et le module wifi (winet) de celui-ci qui a pour adresse IP 192.168.0.70 :

  • Tout d’abord les REST sensors qui me permettent de récupérer les variables d’états du poêle (il me reste encore des paramètres à identifier) :
sensor:
  - platform: rest
    resource: http://192.168.0.70/ajax/get-registers
    method: POST
    name: poele_variables2
    scan_interval: 300 #300s
    payload: key=020&category=2 
    json_attributes:
      - params
      - alr
      - localWeb
      - cat
      - authLevel
      - signal
      - model
      - flame
      - chrono
      - name
      - netatmo
    verify_ssl: false
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 18 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest

  - platform: rest
    resource: http://192.168.0.70/ajax/get-registers
    method: POST
    name: poele_variables4
    scan_interval: 300 #300s
    payload: key=020&category=4
    verify_ssl: false
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 18 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest
   
  - platform: rest
    resource: http://192.168.0.70/ajax/get-registers
    method: POST
    name: poele_variables6
    scan_interval: 300 #300s
    payload: key=020&category=6
    verify_ssl: false
    value_template: '{{ value_json["params"] }}' ## value template utilisé pour tronquer la reponse car plus de 255 caractères et ne garder que le contenus de params..., avoids the "State max length is 255 characters" error
    json_attributes:
      - params
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 18 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest
  • Ensuite, j’ai créé quelques template sensors supplémentaires pour extraire les variables les plus intéressantes :
template:
  - sensor:
      - name: "statut poele"
        unique_id: poele_statut
        state: >
                {% set names = {
                                0: "OFF",
                                1: "En attente de redémarrage",
                                2: "Allumage",
                                3: "3???",
                                4: "Flamme presente",
                                5: "Travail",
                                6: "Nettoyage brasier",
                                7: "Nettoyage final",
                                8: "Eco stop",
                                9: "?9?",
                                10: "?10?"
                } %}      #il faut encore que j'identifie certains états du poêle en regardant ce qu’affiche l'application officielle mais je n'ai pas encore eu besoin de chauffer vraiment la maison pour le moment...                  
                {% set status =  names[state_attr('sensor.poele_variables2','params')[1][1]]  %}
                {{status}}
        icon: >
          {% if is_state("sensor.statut_poele", "OFF") %}
            mdi:fireplace-off
          {% else %}
            mdi:fireplace
          {% endif %}
        attributes:
          poele_id2: "{{state_attr('sensor.poele_variables2','params')[1][1]}}" 

      - name: "poele_reglage_temperature"
        unique_id: poele_reglage_temperature
        device_class: temperature
        unit_of_measurement: '°C'
        state: "{{state_attr('sensor.poele_variables2','params')[8][1] }}"
        
      - name: "poele_sonde_telecommande"
        unique_id: poele_sonde_telecommande
        device_class: temperature
        unit_of_measurement: '°C'
        state: "{{state_attr('sensor.poele_variables2','params')[4][1] }}"
        
      - name: "poele_reglage_puissance"
        unique_id: poele_reglage_puissance
        state: "{{state_attr('sensor.poele_variables2','params')[9][1] }}"
        
      - name: "ventilation arriere poele"
        unique_id: poele_ventilation_arriere_level
        state: >
                {% set names = {
                                0: "0",
                                1: "1",
                                2: "2",
                                3: "3",
                                4: "4",
                                5: "5",
                                6: "AUTO"
                } %}                         
                {% set level_ventil_arriere =  names[state_attr('sensor.poele_variables6','params')[8][1]]  %}
                {{level_ventil_arriere}}
        attributes:
          poele_id187: "{{state_attr('sensor.poele_variables6','params')[8][1]}}" 

      - name: "ventilation avant poele"
        unique_id: poele_ventilation_avant_level
        state: >
                {% set names = {
                                0: "0",
                                1: "1",
                                2: "2",
                                3: "3",
                                4: "4",
                                5: "5",
                                6: "AUTO"
                } %}                         
                {% set level_ventil_avant =  names[state_attr('sensor.poele_variables6','params')[9][1]]  %}
                {{level_ventil_avant}}
        attributes:
          poele_id188: "{{state_attr('sensor.poele_variables6','params')[9][1]}}" 
  • et ci-dessous les commandes qui me permettent de piloter le poêle avec des REST command ( j’utilise des input_number pour changer les consignes) :
rest_command:
  allumer_ou_eteindre_poele:
    url: http://192.168.0.70/ajax/get-registers
    method: POST
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 7 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest
    payload: key=022

  maj_consigne_temperature_poele:
    url: http://192.168.0.70/ajax/set-register
    method: POST
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 47 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest
    payload: key=002&memory=1&regId=50&value={{states('input_number.consigne_temperature_poele')| int  }}&result=false

  maj_consigne_puissance_poele:
    url: http://192.168.0.70/ajax/set-register
    method: POST
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 46 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest
    payload: key=002&memory=1&regId=51&value={{states('input_number.consigne_puissance_poele')| int  }}&result=false

  maj_consigne_ventilation_avant_poele:
    url: http://192.168.0.70/ajax/set-register
    method: POST
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 47 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest
    payload: key=002&memory=1&regId=188&value={{ states('input_number.consigne_ventilation_avant_poele')| int }}&result=false

  maj_consigne_ventilation_arriere_poele:
    url: http://192.168.0.70/ajax/set-register
    method: POST
    headers:
      Accept: 'application/json, text/javascript, */*; q=0.01'
      Accept-Encoding: 'gzip, deflate'
      Accept-Language: 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
      Connection: keep-alive
      Content-Length: 47 #correspond au nombre de caractères dans le payload !
      Content-Type: 'application/json; charset=UTF-8'
      Cookie: winet_lang=fr
      Host: 192.168.0.70
      Origin: http://192.168.0.70
      Referer: http://192.168.0.70/management.html
      User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 OPR/63.0.3368.43'
      X-Requested-With: XMLHttpRequest
    payload: key=002&memory=1&regId=187&value={{ states('input_number.consigne_ventilation_arriere_poele')| int }}&result=false

Voilà, en espérant que ça pourra aider. Je ne sais pas si tout sera générique pour tous les poêles/module wifi… Si besoin de plus d’explications/détails, n’hésitez pas.

1 « J'aime »

Merci pour ton partage @Aubusson je vais tester ça et je ferai un retour ici.

Bonjour
Encore merci pour ton partage @Aubusson
Tout fonctionne parfaitement, j’ai juste changer l’adresse IP et tout est fonctionnel.

Bonjour,
Super ça !
Je n’avais pas pensé à partager l’automatisation qui gère le fonctionnement mais en gros, à chaque changement de consigne, j’appelle le rest_command qui va bien, et je fait un homeassistant.update_entity sur les variables afin d’avoir un retour d’informations du poêle à jour et réactif.
Et quand un changement sur les informations du poêle est détecté, je mets à jour les consignes également.

Si tu utilises ton poêle actuellement, n’hésites pas à me dire si tu vois des problèmes/erreurs car je n’ai pas vraiment eu l’occasion de débugger encore. Je serais intéressé par les intitulés des statuts qu’il manque dans le sensor.statut_poele aussi… :wink:

1 « J'aime »

Salut Aubusson
J’ai fait exactement pareil (automatisation) sauf pour la commande REST d’allumer/éteindre que je fais en vocal avec un script et Google home.
J’ai remarqué un soucis mais ça fait pareil avec l’appli quand le poêle a atteint sa température de consigne il se met en eco et pas possible de l’éteindre quand il est dans cet état il faut remonter la consigne de temp pour qu’il se remette au travail et la commande REST d’allumer/eteindre fonctionne mais c’est pareil avec l’appli Ravelli.Par contre avec la télécommande ça fonctionne.
Vu les températures clémente je n’utilise pas encore mon poêle mais dès qu’il sera au travail je regarderais pour les intitulés des status😉

Salut ! Je viens de tomber sur ce post et de m’inscrire sur le site. Je suis un utilisateur de domoticz mais depuis hier je teste home assistant. Je dois dire que ça me change de domoticz qui n’a plus de vraie mise à jour depuis longtemps…
Quelque chose que je n’ai jamais réussi à faire c’est de domotiser mon poêle ravelli. Et la je vois que vous avez bien avancé sur le sujet. Le fait de brancher un esp sur la prise télécommande et donc de neutraliser celle ci ne m’arrange pas trop. Je pense donc plutôt à investir dans un module wifi. Est ce que le modèle wifi type m sur le site de top chaleur conviendrait ? Je ne peux pas poster le lien.

Est ce que c’est difficile à brancher sur la carte mère ?
Merci à vous

Salut Pimseb,
Si tu parles du module suivant :

Cela semble effectivement être le même que le mien. Je n’ai par contre pas utilisé l’appli qui est affichée sur ce site mais celle de Ravelli qui semble être une variante très proche.

Sur mon poêle, l’installateur s’est juste assuré que le poêle soit débranché de l’alimentation et a connecté le module sur le connecteur de la carte mère directement accessible à l’arrière de celui-ci .
J’imagine que cela peut dépendre des modèles. Tu as lequel ?

J’ai un poêle Ravelli modèle Vittoria. Oui le module Wi-Fi dont je parlais et bien celui que tu as mis en lien. Mais je ne sais pas s’il est vraiment compatible avec mon poêle…
J’aurais aimé éviter passer par mon installateur parce que son module WiFi coûte deux ou trois fois le prix de celui-ci.
C’est pour ça que je cherchais une méthode un peu moins chère :blush:

Salut
Je confirme aussi j’ai bien le même module. Pour le branchement pareil que Aubusson débrancher le poêle et connecter le module sur le connecteur prévu cf: manuel du poêle.
Pour la comptabilité je ne peux pas te dire mais lors de mes recherches quand j’ai eu le module j’avais trouvé que ce module était utilisé par plusieurs fabricant de poêle autre que Ravelli. J’avais aussi tester l’appli Winet(que l’on vois sur le lien de Aubusson) et ça fonctionner avec le meme login et pass que l’appli Ravelli .

J’étais chez un ami qui a un poêle d’une autre marque que Ravelli, avec un module wifi fonctionnel. Les commandes via l’app marchent, par contre j’ai un peu regardé l’intégration dans Home Assistant de @Aubusson . Je vois que tu appelles une adresse dans le script, comme http://192.168.0.70/management.html. J’ai essayé cette adresse dans un navigateur mais rien ne se passe. Evidemment j’ai remplacé 192.168.0.70 par l’IP du module wifi :slight_smile:
Est ce qu’une page devrait s’afficher ?

Le module wifi utilisé est le type M ou un autre ? Quelle appli est utilisée pour communiquer avec ?

Personnellement, quand je tape juste l’adresse IP de mon poêle dans un navigateur, je suis redirigé vers cette adresse automatiquement : 192.168.0.70/management.html
J’obtiens alors le même affichage que ce que me propose l’application (Ravelli smart wifi). Par contre, il arrive que la page ne se charge pas correctement (rien ne s’affiche) et je ne comprend pas trop pourquoi pour l’instant…

Le paramétrage des commandes et sensors présentés plus haut a été obtenu en recopiant les requêtes émises par l’appli sur mon réseau lors de l’utilisation de celle-ci.

Salut Aubusson
Pour la page qui se charge mal j’avais ça aussi et j’ai bricoler un câble pour déporter le module wifi
Depuis plus de problème :wink:

Salut Macraspberrypi,
Bonne idée, ça pourrait effectivement venir de ma connexion qui doit être un peu faible. Je regarderai ça.

J’ai eu l’occasion de me servir un peu plus de mon poêle, j’ai mis à jour quelques états du sensor « statut poêle » dans mon message plus haut.

J’ai un soucis qui n’a rien à voir avec la domotique par contre. Malgré l’activation de l’option « confort climat » du poêle, celui-ci ne passe pas en mode « ECO » lorsque la température de consigne est atteinte ou dépassée.
As-tu déjà eu ça ?

Bonjour,
Ceci est un probleme de ravelli. L’option « confort climat » ne fonctionne pas si le chronothermostat est activé. J’ai eu le même problème. Et aussi celui de la télécommande en limite de portée.