Aller au contenu

[Help] Piloter un Poêle Palazzetti


Messages recommandés

Posté(e) (modifié)

Bonjour

 

J'aimerai pouvoir piloter mon Poêle Palazzetti avec une Box Fibaro, je me suis donc procurer une Cbox pour pouvoir le connecter en ligne.

 

Tout fonctionne à merveille avec l'application dédié mais ça serait encore mieux si je pouvais avoir le contrôle via la Fibaro.

 

Voici les informations que j'ai trouvé sur le net. Visiblement il est assez facile de lui envoyer des commandes GET et SET via son IP.

 

Je me suis dis qu'avec ça, il devrait être assez facile de concevoir un plug virtuel ou une interface mais je n'y comprend rien en programmation !!!

 

Si quelques uns pouvait m'aider à créer ma petite interface, je leur en serait très reconnaissant.

 

Le but serait d'avoir un graphique qui indique en temps réel la température de consigne et ambiante, la puissance du poêle, la vitesse de la ventilation, la quantité de pellet restant et de pouvoir les modifier en temps réel et à termes de gérer automatiquement la température via la Fibaro

 

D'autres possesseurs de Palazzetti ?

 

Merci par avance pour votre aide.

 

 

 

 

 

Citation

Le protocole

Il est possible d'obtenir des informations et de commander votre poêle par le biais de requête HTTP (GET pour les puristes ;-) ).
La Connection Box fonctionne avec des pages web PHP et la page qui nous intéresse est sendmsg.php.

Les url sont construites sous la forme :
http://{IPdeVotreCBox}/sendmsg.php?cmd={CommandeComplete}

Construction de la commande et de l'url donc...

Les commandes sont presque toutes basées sur GET et SET.
Pour GET, il faut spécifier les parametres à lire :
GET+SETP
Pour SET, il faut spécifier le paramètre à écrire et la valeur :
SET+SETP+20

Le séparateur utilisé ici est le caractère '+'.
Sur les autres Thread, on peux remarquer que la chaine "%20" était utilisée. Elle fonctionne aussi mais je la trouve moins lisible et les appli Palazzetti utilisent le '+'


Les commandes de lecture

Pour info, je ne liste que les commandes "utiles" à des fins de contrôle/domotisation même si d'autres commandes existent.

  • GET+LABL : Obtient le nom donné au poêle
  • GET+STDT : Obtient les informations sur la CBox, les configuration réseau WiFi et LAN et enfin la version et date du firmware du poêle ainsi que le type de pellet et la configuration du poêle (1 normal ou 2 chrono-thermostat extérieur
  • GET+FWST : Obtient l'état du Firmware (???)
  • GET+TMPS : Obtient la température relevée par la sonde d'ambiance du poêle (nommée TMP_ROOM_WATER)
  • GET+FAND : Obtient la configuration de ventilation et la vitesse des ventilateurs
  • GET+SETP : Obtient la consigne actuelle du poêle
  • GET+STAT : Obtient le status du poêle.
    • 0: OFF
      1: OFF TIMER
      2: TESTFIRE
      3: HEATUP
      4: FUELIGN
      5: IGNTEST
      6: BURNING
      9: COOLFLUID
      10: FIRESTOP
      11: CLEANFIRE
      12: COOL

      241: CHIMNEY ALARM
      243: GRATE ERROR
      244: NTC2 ALARM
      245: NTC3 ALARM
      247: DOOR ALARM
      248: PRESS ALARM
      249: NTC1 ALARM
      250: TC1 ALARM
      252: GAS ALARM
      253: NOPELLET ALARM
       
    •  
  • GET+TIME : Obtient la date/heure du poêle et le jour de la semaine (1=lundi, 2=mardi, etc., ...)
  • GET+MDVE : Obtient le model du poêle, la version et la date du firmware
  • GET+CHRD : Obtient les différentes programmations horaires et les programmes des jours de la semaine
  • EXT+ADRD+2066+1 : Obtient le nombre d'allumage du poêle
  • EXT+ADRD+206A+1 : Obtient le nombre d'heure durant laquelle le poêle a été alimenté électriquement
  • EXT+ADRD+2070+1 : Obtient le nombre d'heure de chauffe total
  • EXT+ADRD+2076+1 : Obtient le nombre d'heure de chauffe depuis le dernier entretien
  • EXT+ADRD+207C+1 : Obtient le nombre d'allumage manqué (à confirmer)
  • EXT+ADRD+207A+1 : Obtient le nombre d'erreur pour cause de surchauffe

 


Les commandes d'écriture/Contrôle du poêle

 

 

  • CMD+ON : Allumage du Poêle
  • CMD+OFF : Extinction du Poêle
  • SETP+20 : réglage de la consigne à la température désirée
  • RFAN+1 : réglage de la vitesse de ventilation (de 0 à 5; 0 étant le mode auto)
  • POWR+1 : réglage de la puissance de chauffe (de 1 à 5)

 

 

 

Modifié par bib60
  • 3 semaines après...
Posté(e)

Donc je vais débuter avec un Virtual Device constitué de deux afficheurs avec en dessous 4 boutons (-) (+) (-) (+) pour faire varier les deux paramètres au dessus, qui sont température de consigne et puissance du poêle.

Donc dans le premier boutons en haut à gauche, j'aimerai afficher la consigne température, que j'obtiens avec la commande suivante depuis un navigateur : http://IP/sendmsg.php?cmd=GET+SETP

La réponse à cette requete est la suivante :

{ "Info": { "RSP": "OK", "TS": "2017-02-28 14:35:31" }, "Setpoint": { "SETP": 24.0 } }

Vous l'aurez compris, il me faut récupérer l'info SETP avec la valeur 24 que je dois afficher dans mon bouton 1.

Est il judicieux d'utiliser une variable pour stocker et utiliser cette information ? Je pense que oui puisque je vais m'en servir.

En dessous, les deux autres boutons pour augmenter ou diminuer cette valeur par incrément de 1.

On envoi la commande suivante : http://IP/sendmsg.php?cmd= SET+SETP+20 (le 20 est la consigne, je pense qu'il faudra extraire la valeur de la variable pour l'incorporer dans la ligne html)

Comment faire ? ;) Je suis un cake en LUA mais ça va venir :)

 

Presse-papiers-1.jpg

Posté(e)

Pour commencer tu ne peux pas modifier le libellé d'un bouton, tu vas donc devoir insérer un "label" dans ton VD.

 

Une fois que c'est fait, tu peux ajouter le code suivant dans ton main loop et voir ce que cela donne :

local ip_adresse = "192.168.1.xxx"
local label = "Label1"

-- Intérogation
local HC2 = Net.FHttp(ip_adresse)
local response = HC2:GET("/sendmsg.php?cmd=GET+SETP")
local resp = json.decode(response)

-- Affichage du résultat dans le label
fibaro:call(fibaro:getSelfId(), "setProperty", "ui".. label ..".value", resp.Setpoint.SETP)

 

Derrière le bouton qui ajoute 1°, tu peux essayer de coller ce code (une fois que tu auras fais la partie ci-dessus) :

local ip_adresse = "192.168.1.xxx"
local label = "Label1"
local increment = 1

local value = tonumber(fibaro:getValue(fibaro:getSelfId(), "ui".. label ..".value"))
local HC2 = Net.FHttp(ip_adresse)
local response = HC2:GET("/sendmsg.php?cmd=SET+SETP+"..(value+increment))

 

Après on verra pour mettre l'adresse IP au bon endroit mais cela permet de tester

Posté(e)

Merci Steven

 

Alors j'ai supprimé les boutons où je voulais afficher une information, par un label.

 

J'ai un message d'erreur : [ERROR] 19:05:42: line 8: Expected value but found T_END at character 1

Posté(e)

Normalement, c'est que le retour de ta requête ne respecte pas correctement le format json 🙁

Envoyé de mon SM-G935F en utilisant Tapatalk

×
×
  • Créer...