bib60 Posté(e) le 13 février 2017 Signaler Posté(e) le 13 février 2017 (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é le 13 février 2017 par bib60
bib60 Posté(e) le 28 février 2017 Auteur Signaler Posté(e) le 28 février 2017 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
Steven Posté(e) le 3 mars 2017 Signaler Posté(e) le 3 mars 2017 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
bib60 Posté(e) le 3 mars 2017 Auteur Signaler Posté(e) le 3 mars 2017 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
Steven Posté(e) le 3 mars 2017 Signaler Posté(e) le 3 mars 2017 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
Messages recommandés