{"id":259,"date":"2019-06-04T11:36:20","date_gmt":"2019-06-04T09:36:20","guid":{"rendered":"http:\/\/miniprojets.net\/?p=259"},"modified":"2022-12-17T17:26:25","modified_gmt":"2022-12-17T16:26:25","slug":"piloter-une-chaudiere-weishaupt-equipee-dun-wcm-com-avec-jeedom-nodered-et-mqtt","status":"publish","type":"post","link":"https:\/\/miniprojets.net\/index.php\/2019\/06\/04\/piloter-une-chaudiere-weishaupt-equipee-dun-wcm-com-avec-jeedom-nodered-et-mqtt\/","title":{"rendered":"Piloter une chaudi\u00e8re Weishaupt \u00e9quip\u00e9e d&#8217;un WCM-COM avec Jeedom, NodeRed et MQTT"},"content":{"rendered":"\n<p>Bonjour \u00e0 tous, <\/p>\n\n\n\n<p>cette semaine, je vous propose un sujet que j\u2019essayai de boucler depuis longtemps&#8230; Celui de piloter ma chaudi\u00e8re Weishaupt avec Jeedom pour l&#8217;inclure dans des sc\u00e9narios (D\u00e9part et retour de vacances par exemple).<\/p>\n\n\n\n<p>Avant toute chose, je tiens \u00e0 remercier <strong><a href=\"https:\/\/www.jeedom.com\/forum\/memberlist.php?mode=viewprofile&amp;u=10283\">Loic74<\/a><\/strong> qui a ouvert le topic <a href=\"https:\/\/www.jeedom.com\/forum\/viewtopic.php?f=143&amp;t=43948\">Chaudi\u00e8res Weishaupt<\/a> et partag\u00e9 les liens vers le site http:\/\/dpsg.weinreich.org\/ o\u00f9 la partie communication avec la chaudi\u00e8re avait commenc\u00e9e \u00e0 \u00eatre trait\u00e9 en 2015. (Cela a \u00e9t\u00e9 une sacr\u00e9e piste pour faire cet article)<\/p>\n\n\n\n<p>Je remercie aussi Steve du site  http:\/\/dpsg.weinreich.org\/  qui m&#8217;a aid\u00e9 dans la r\u00e9solution des probl\u00e8mes rencontr\u00e9s<\/p>\n\n\n\n<p>Bon pour commencer une rapide pr\u00e9sentation de l&#8217;installation.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"297\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image.png\" alt=\"\" class=\"wp-image-260\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image.png 605w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-300x147.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<p>Nous avons la chaudi\u00e8re reli\u00e9e au WCM-COM gr\u00e2ce au eBUS. Le WCM-COM  est reli\u00e9 au routeur (chez moi c&#8217;est la freebox) afin de faire soit une communication direct avec un PC soit de piloter la chaudi\u00e8re via une application Android. Il y a aussi une possibilit\u00e9 d&#8217;envoyer des mails d&#8217;alerte (Bon j&#8217;ai jamais r\u00e9ussi \u00e0 les faire fonctionner&#8230; mais c&#8217;est pas grave)<\/p>\n\n\n\n<p>Voil\u00e0 pour l&#8217;architecture livr\u00e9e avec la chaudi\u00e8re. Maintenant nous allons voir comme ins\u00e9rer Jeedom dedans afin de la piloter et de l&#8217;inclure dans des sc\u00e9narios.<\/p>\n\n\n\n<p>Pour cela, nous allons utiliser plusieurs softs pour arriver \u00e0 notre fin:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Jeedom: Pour le pilotage <\/li><li>NodeRed: C&#8217;est un outil de programmation OpenSource cr\u00e9\u00e9 par IBM et qui servira pour la partie r\u00e9cup\u00e9ration des donn\u00e9es et envoie vers commandes  la chaudi\u00e8re.<\/li><li>Mosquitto: C&#8217;est un Broker MQTT  et qui servira pour la liaison entre Jeedom et NodeRed<\/li><\/ul>\n\n\n\n<p class=\"has-large-font-size\">Partie 0: Pr\u00e9paration du terrain de jeu et installation des logiciels n\u00e9cessaires<\/p>\n\n\n\n<p>Installation de Jeedom &#8212; &gt; Voir mon pr\u00e9c\u00e9dent article <a href=\"https:\/\/miniprojets.net\/index.php\/2019\/05\/13\/jeedom-ou-comment-domotiser-sa-maison-en-quelques-clics\/\">https:\/\/miniprojets.net\/index.php\/2019\/05\/13\/jeedom-ou-comment-domotiser-sa-maison-en-quelques-clics\/<\/a><\/p>\n\n\n\n<p>Installation de Mosquitto &#8211;&gt; Je vous conseille le site suivant <a href=\"https:\/\/projetsdiy.fr\/jeedom-mqtt-objets-connectes-domotique-diy\/\">https:\/\/projetsdiy.fr\/jeedom-mqtt-objets-connectes-domotique-diy\/<\/a><\/p>\n\n\n\n<p>Installation de NodeRed &#8211;&gt; Je vous conseille aussi le site suivant <a href=\"https:\/\/projetsdiy.fr\/installer-node-red-raspbian-jessie-lite-raspberry-pi-zero-w\/\">https:\/\/projetsdiy.fr\/installer-node-red-raspbian-jessie-lite-raspberry-pi-zero-w\/<\/a><\/p>\n\n\n\n<p>R\u00e9cup\u00e9ration de l&#8217;adresse IP du WCM-COM &#8211;&gt; Voir mon pr\u00e9cedent article o\u00f9 je parle de la m\u00e9thode pour r\u00e9cup\u00e9rer l&#8217;adresse IP d&#8217;un mat\u00e9riel brancher sur une freebox <a href=\"https:\/\/miniprojets.net\/index.php\/2019\/04\/16\/hack-dune-prise-alfawise-murale-etanche\/\">https:\/\/miniprojets.net\/index.php\/2019\/04\/16\/hack-dune-prise-alfawise-murale-etanche\/<\/a> (Pour les autres, je suis d\u00e9sol\u00e9 mais il faut voir comment faire avec votre Box ou Routeur mais le principe est souvent le m\u00eame ^^)<\/p>\n\n\n\n<p>Voil\u00e0 une fois que vous avez tout install\u00e9 et r\u00e9cup\u00e9r\u00e9 l&#8217;adresse IP de votre WCM-COM, vous pouvez revenir et continuer la suite de ce tutoriel<\/p>\n\n\n\n<p class=\"has-text-align-left\">Partie 1: O\u00f9 trouver les identifiants des donn\u00e9es utiles de la chaudi\u00e8re<\/p>\n\n\n\n<p>Dans un premier temps, il faut extraire la microSD du WCM-COM.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190601_124115-768x1024.jpg\" alt=\"\" class=\"wp-image-275\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190601_124115-768x1024.jpg 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190601_124115-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>Couper le circuit d&#8217;alimentation de votre WCM-COM (si c&#8217;est bien fait il sera sur le m\u00eame disjoncteur que votre chaudi\u00e8re) afin de travailler en s\u00e9curit\u00e9.<\/p>\n\n\n\n<p>Ouvrez maintenant le boitier (par le bas)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190601_124303-768x1024.jpg\" alt=\"\" class=\"wp-image-276\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190601_124303-768x1024.jpg 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190601_124303-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>La carte microSD est en haut \u00e0 droite. Vous pouvez l&#8217;extraire.<\/p>\n\n\n\n<p>Maintenant mettez l\u00e0 dans votre ordinateur \u00e0 l&#8217;aide d&#8217;un adaptateur. Et copier tout son contenu dans un dossier de votre ordinateur (cela vous permet en plus d&#8217;avoir une sauvegarde de la carte SD en cas o\u00f9 elle mourrait comme c&#8217;est un peu capricieux ces petites b\u00eates)<\/p>\n\n\n\n<p>Une fois cette op\u00e9ration faite, vous pouvez la remettre en place, fermer le WCM-COM et remettre en route le circuit \u00e9lectrique.<\/p>\n\n\n\n<p>Maintenant que la chaudi\u00e8re et le WCM-COM se sont remis en route et que la communication est r\u00e9tablie, vous pouvez vous connecter via un navigateur internet \u00e0 la page Web du WCM-COM. Par exemple pour moi c&#8217;est http:\/\/192.168.1.37\/<\/p>\n\n\n\n<p>Vous tomber sur la page suivante: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"677\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-1.png\" alt=\"\" class=\"wp-image-278\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-1.png 1000w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-1-300x203.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-1-768x520.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>Pour savoir o\u00f9 r\u00e9cup\u00e9rer les donn\u00e9es, je vous invite \u00e0 cliquer sur G\u00e9n\u00e9rateur &#8211;&gt;  WTC-G &#8211;&gt; Valeur de Process<\/p>\n\n\n\n<p>Vous aurez la page suivante et si vous gardez le curseur sur Valeur de Process vous verrez un lien apparaitre comme entour\u00e9 si dessous:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"547\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-2-1024x547.png\" alt=\"\" class=\"wp-image-279\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-2-1024x547.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-2-300x160.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-2-768x410.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-2.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Cela nous sera utile pour savoir o\u00f9 chercher dans le code donc gardez le.<\/p>\n\n\n\n<p>Faites aussi une copie d&#8217;\u00e9cran des pages o\u00f9 sont les donn\u00e9es qui vous int\u00e9ressent, plus tard cela nous facilitera la t\u00e2che d&#8217;identification des donn\u00e9es. <\/p>\n\n\n\n<p>Faites de m\u00eame sur toutes les pages o\u00f9 vous avez des donn\u00e9es qui vous int\u00e9resse. Pour moi, c&#8217;est juste  Valeur de process  de G\u00e9n\u00e9rateur (Pour les donn\u00e9es internes) et  Utilisateur  de Circuits chauf. (Pour le pilotage). <\/p>\n\n\n\n<p>Ce qui me donne les deux fichiers suivants:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>G\u00e9n\u00e9rateur &#8211;&gt;  Valeur de process &#8211;&gt;<a>..\/Form_WTC_GW\/Form_WTC_G_Prozesswerte.xml<\/a><\/li><li>Circuit chauffage &#8211;&gt; Utilisateur &#8211;&gt;<a>..\/Form_Heizung\/Form_Heizung_Benutzer_2.xml<\/a><\/li><\/ul>\n\n\n\n<p>Maintenant, il faut aller dans le dossier  Websites\/script o\u00f9 vous avez copi\u00e9 les donn\u00e9es de la carte SD et prendre les fichiers suivants:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Valeur de process &#8211;&gt; Form_WTC_G_Prozesswerte.gz.js<\/li><li>Utilisateur &#8211;&gt; Form_Heizkreis_Benutzer2.gz.js<\/li><\/ul>\n\n\n\n<p>Il faut maintenant enlever le .js \u00e0 la fin du nom de fichier ce qui donne<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Valeur de process &#8211;&gt; Form_WTC_G_Prozesswerte.gz<\/li><li>Utilisateur &#8211;&gt; Form_Heizung_Benutzer2.gz<\/li><\/ul>\n\n\n\n<p>Faite une extraction depuis le fichier .gz et vous vous retrouverez avec un fichier js qui sera lisible facilement.<\/p>\n\n\n\n<p>Maintenant ouvrez le fichier avec un \u00e9diteur de texte (Exemple notepad++)<\/p>\n\n\n\n<p>Cherchez la fonction function gfctWEBAPP_Start(). <\/p>\n\n\n\n<p>En dessous vous auriez un bloc qui ressemble \u00e0 cela: <\/p>\n\n\n\n<p>Pour  Form_WTC_G_Prozesswerte.js<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>\/*                                 infoNr | index |  ID       | CmdType    |      MTyp       |        busk        |value|group|  method                         | obj_method_data  |Min-Val|Max-Val| MUL | DIV | Step Size|   State   | update           | *\/ <\/code>\n<code>objSiteInfo[0]  = new OBJTELEGRAMM(     81,     0 ,\"idT0051\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CHECKBOX_RO                , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[1]  = new OBJTELEGRAMM(   1497,     0 ,\"idT05D9\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CHECKBOX_RO                , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[2]  = new OBJTELEGRAMM(   1498,     0 ,\"idT05DA\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CHECKBOX_RO                , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[3]  = new OBJTELEGRAMM(    466,     0 ,\"idT01D2\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CHECKBOX_RO                , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[4]  = new OBJTELEGRAMM(     82,     0 ,\"idT0067_H\",TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CHECKBOX_RO                , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[5]  = new OBJTELEGRAMM(     83,     0 ,\"idT0067_W\",TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CHECKBOX_RO                , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[6]  = new OBJTELEGRAMM(      1,     0 ,\"idT0001\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CALC_WOP                   , [null,null,null] ,      0,    255,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[7]  = new OBJTELEGRAMM(    373,     0 ,\"idT0176\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    0, METH_CALC_WOP                   , [null,null,null] ,      0,    255,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[8]  = new OBJTELEGRAMM(    138,     0 ,\"idT008A\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_CALC                       , [null,null,null] ,      0,    100,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[9]  = new OBJTELEGRAMM(   2572,     0 ,\"idT0A0C\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_TEMP2                      , [null,null,null] ,  (-30),    130,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[10] = new OBJTELEGRAMM(      2,     0 ,\"idT0002\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_TEMP2                      , [null,null,null] ,  (-30),    130,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[11] = new OBJTELEGRAMM(   3101,     0 ,\"idT0C1D\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_TEMP2                      , [null,null,null] ,  (-30),    130,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[12] = new OBJTELEGRAMM(    325,     0 ,\"idT0145\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_TEMP2                      , [null,null,null] ,  (-30),    130,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[13] = new OBJTELEGRAMM(     12,     0 ,\"idT000C\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_TEMP2                      , [null,null,null] ,  (-30),    130,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[14] = new OBJTELEGRAMM(     14,     0 ,\"idT000E\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_TEMP2                      , [null,null,null] ,  (-30),    130,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[15] = new OBJTELEGRAMM(    118,     0 ,\"idT0076\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    1, METH_TEMP2                      , [null,null,null] ,  (-30),    130,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[16] = new OBJTELEGRAMM(   3158,     0 ,\"idT0C56\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    2, METH_CALC_WOP                   , [null,null,null] ,      0,      0, 1000,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[17] = new OBJTELEGRAMM(   3159,     0 ,\"idT0C57\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    2, METH_CALC_WOP                   , [null,null,null] ,      0,      0,  100,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[18] = new OBJTELEGRAMM(    700,     0 ,\"idT02BC\",  TEL_STD     ,     TEL_MTYPE_WG, u8CurrentBuskennung,    0,    2, METH_CALC_UNSIGNED_NO_DEC_POINT , [null,null,null] ,      0,   5000,   10,    1,         1,  ST_UPDATE,  UM_UPDATE_ALWAYS ); <\/code>\n<code>objSiteInfo[19] = new OBJTELEGRAMM(   5016,   255 ,\"idDL\"   ,  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    2, METH_SETCB_DLUW                 , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONCE_NO_SUBMIT   ); <\/code>\n<code>objSiteInfo[20] = new OBJTELEGRAMM(   5017,     0 ,\"idT0000\",  TEL_LRG     , TEL_MTYPE_DIRECT, u8CurrentBuskennung,TEL_MTYPE_WG,2,METH_APPL                     , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[21] = new OBJTELEGRAMM(   5015,     0 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    3, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[22] = new OBJTELEGRAMM(   5015,     1 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    3, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[23] = new OBJTELEGRAMM(   5015,     2 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    3, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[24] = new OBJTELEGRAMM(   5015,     3 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    3, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[25] = new OBJTELEGRAMM(   5015,     4 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    4, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[26] = new OBJTELEGRAMM(   5015,     5 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    4, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[27] = new OBJTELEGRAMM(   5015,     6 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    4, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[28] = new OBJTELEGRAMM(   5015,     7 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    4, METH_CDLW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[29] = new OBJTELEGRAMM(   5009,   255 ,\"idUW\"   ,  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    2, METH_SETCB_DLUW                 , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONCE_NO_SUBMIT   ); <\/code>\n<code>objSiteInfo[30] = new OBJTELEGRAMM(   5010,     0 ,\"idT0000\",  TEL_LRG     , TEL_MTYPE_DIRECT, u8CurrentBuskennung,TEL_MTYPE_WG,2,METH_APPL                     , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[31] = new OBJTELEGRAMM(   5008,     0 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    5, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[32] = new OBJTELEGRAMM(   5008,     1 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    5, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[33] = new OBJTELEGRAMM(   5008,     2 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    5, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[34] = new OBJTELEGRAMM(   5008,     3 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    5, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[35] = new OBJTELEGRAMM(   5008,     4 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    6, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[36] = new OBJTELEGRAMM(   5008,     5 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    6, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[37] = new OBJTELEGRAMM(   5008,     6 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    6, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[38] = new OBJTELEGRAMM(   5008,     7 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    6, METH_CUBW                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND ); <\/code>\n<code>objSiteInfo[39] = new OBJTELEGRAMM(   5019,     0 ,\"idT0000\",  TEL_GENERIC , TEL_MTYPE_DIRECT,                   0,    0,    7, METH_APPL                       , [null,null,null] ,      0,      1,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONLY_SEND );<\/code><\/pre>\n\n\n\n<p>Pour  Form_Heizung_Benutzer2.js:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>\/*                                 infoNr| index |   ID      | CmdType |      MTyp   |        busk        |value|group|  method   | obj_method_data  |Min-Val|Max-Val| MUL | DIV | Step Size|   State  | update           | *\/ <\/code>\n<code>objSiteInfo[0] = new OBJTELEGRAMM(    274,     0 ,\"idT0112HK\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    2, METH_CALC2, [null,null,null] ,      0,   255,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[1] = new OBJTELEGRAMM(      5,     0 ,  \"idT0005\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    2, METH_TEMP, [null,null,null] ,     10,     35,    1,   10,         5,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[2] = new OBJTELEGRAMM(      8,     0 ,  \"idT0008\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    2, METH_TEMP, [null,null,null] ,     10,     35,    1,   10,         5,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[3] = new OBJTELEGRAMM(    297,     0 ,  \"idT0129\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    2, METH_TEMP, [null,null,null] ,      8,     85,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[4] = new OBJTELEGRAMM(    298,     0 ,  \"idT012A\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    2, METH_TEMP, [null,null,null] ,      8,     85,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[5] = new OBJTELEGRAMM(    270,     0 ,  \"idT010E\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    2, METH_TEMP, [null,null,null] ,    2.5,     40,    1,   10,         5,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[6] = new OBJTELEGRAMM(   2580,     0 ,  \"idT0A14\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    3, METH_TEMP, [null,null,null] ,      4,     35,    1,   10,         5,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[7] = new OBJTELEGRAMM(    278,     0 ,  \"idT0116\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    3,  METH_TEMP, [null,null,null] ,      8,     30,    1,   10,       10,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[8] = new OBJTELEGRAMM(   2418,     0 ,  \"idT0972\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    3, METH_CALC2, [null,null,null] ,      5,    270,    1,    1,        5,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[9] = new OBJTELEGRAMM(   274,     0 ,\"idT0112WW\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    3, METH_CALC2, [null,null,null] ,      0,   255,    1,    1,         1,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[10] = new OBJTELEGRAMM(    19,     0 ,  \"idT0013\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    3, METH_TEMP, [null,null,null] ,      8,     80,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[11] = new OBJTELEGRAMM(   650,     0 ,  \"idT028A\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    3, METH_TEMP, [null,null,null] ,      8,     80,    1,   10,        10,  ST_UPDATE,  UM_UPDATE_ONCE  ); <\/code>\n<code>objSiteInfo[12] = new OBJTELEGRAMM(   129,     0 ,  \"idT0081\", TEL_STD , TEL_MTYPE_FS, u8CurrentBuskennung,    0,    3, METH_TEMP, [null,null,null] ,      0,     10,    1,   10,         1,  ST_UPDATE,  UM_UPDATE_ONCE  );<\/code>\n<\/pre>\n\n\n\n<p>Maintenant nous pouvons retrouver facilement \u00e0 quoi correspondent les identifiants de chaque donn\u00e9e. Pour cela, il suffit de reprendre les captures d&#8217;\u00e9cran que vous aviez faite (Je vous avait dis qu&#8217;elles seraient utiles ^^) et de prendre les donn\u00e9es dans l&#8217;ordre d&#8217;arriv\u00e9e. (Exemple avec  &#8220;G\u00e9n\u00e9rateur &#8211;&gt;  Valeur de process&#8221; &lt;&#8211;&gt;  &#8220;Form_Heizung_Benutzer2.js&#8221;  )<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"453\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Weishaupt_correlation-1024x453.png\" alt=\"\" class=\"wp-image-298\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Weishaupt_correlation-1024x453.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Weishaupt_correlation-300x133.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Weishaupt_correlation-768x340.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Weishaupt_correlation.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ce qui donne le tableau suivant:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><tbody><tr><td>ID<\/td><td>Nom sur le site<\/td><\/tr><tr><td>81<\/td><td>Flamme<\/td><\/tr><tr><td>1497<\/td><td>Vanne1<\/td><\/tr><tr><td>1498<\/td><td>Vanne2<\/td><\/tr><tr><td>466<\/td><td>Pompe<\/td><\/tr><tr><td>82<\/td><td>Chauffage<\/td><\/tr><tr><td>83<\/td><td>Eau Chaude<\/td><\/tr><tr><td>1<\/td><td>Phase fonctionnement<\/td><\/tr><tr><td>373<\/td><td>D\u00e9faut<\/td><\/tr><tr><td>138<\/td><td>Point de Charge<\/td><\/tr><tr><td>2572<\/td><td>Temp\u00e9rature ext\u00e9rieure pond\u00e9r\u00e9e<\/td><\/tr><tr><td>2<\/td><td>Demande de chaleur<\/td><\/tr><tr><td>3101<\/td><td>Temp\u00e9rature d\u00e9part (eSTB)<\/td><\/tr><tr><td>325<\/td><td>Temp\u00e9rature fum\u00e9es<\/td><\/tr><tr><td>12<\/td><td>Temp\u00e9rature ext\u00e9rieure<\/td><\/tr><tr><td>14<\/td><td>Temp\u00e9rature eau chaude<\/td><\/tr><tr><td>118<\/td><td>Sonde stock tampon B10<\/td><\/tr><tr><td>3158<\/td><td>Nombre cycle bruleur<\/td><\/tr><tr><td>3159<\/td><td>Heures fonctionnement bruleur<\/td><\/tr><tr><td>700<\/td><td>Dur\u00e9e depuis dernier entretien<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Je vous conseille de faire vous un fichier excel, cela sera plus simple pour la suite. <\/p>\n\n\n\n<p>Faites ainsi pour toutes les donn\u00e9es dont vous aurez besoin.<\/p>\n\n\n\n<p>Voil\u00e0 nous avons maintenant tous ce qui faut pour d\u00e9marrer la partie int\u00e9ressante&#8230; Le codage!<\/p>\n\n\n\n<p class=\"has-large-font-size\">Partie 2: R\u00e9cup\u00e9ration et lecture des donn\u00e9es internes de la chaudi\u00e8re<\/p>\n\n\n\n<p> Pour information,  Les sources sont <strong> CC-BY-NC-SA<\/strong><a href=\"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/fr\/\">https:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/fr\/<\/a><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"141\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/09\/licence.png\" alt=\"\" class=\"wp-image-796\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/09\/licence.png 403w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/09\/licence-300x105.png 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/figure><\/div>\n\n\n\n<p>Dans un premier temps, il faut vous connecter via un navigateur internet \u00e0 l&#8217;adresse de votre raspberry o\u00f9 vous avez install\u00e9 NodeRed sur le port 1880. Exemple chez moi c&#8217;est http:\/\/192.168.1.16:1880\/<\/p>\n\n\n\n<p>Vous allez arriver sur cette page:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/nodered-1024x461.png\" alt=\"\" class=\"wp-image-272\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/nodered-1024x461.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/nodered-300x135.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/nodered-768x346.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/nodered.png 1364w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>En double cliquant sur Flow1, vous pouvez changer le nom afin de lui donner le nom que vous voulez<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"416\" height=\"337\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/change-titre.png\" alt=\"\" class=\"wp-image-273\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/change-titre.png 416w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/change-titre-300x243.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/figure>\n\n\n\n<p>je l&#8217;ai nomm\u00e9 Weishaupt Chaudi\u00e8re et vous pouvez cliquer sur Done<\/p>\n\n\n\n<p>Maintenant que cela est fait, on va construire la strat\u00e9gie de r\u00e9cup\u00e9ration des donn\u00e9es comme ci-dessous:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"931\" height=\"163\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure_lecture.png\" alt=\"\" class=\"wp-image-316\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure_lecture.png 931w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure_lecture-300x53.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure_lecture-768x134.png 768w\" sizes=\"auto, (max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p>On commence par selectionner dans la colonne de gauche le bloc inject<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"111\" height=\"36\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/inject-bloc.png\" alt=\"\" class=\"wp-image-311\"\/><\/figure>\n\n\n\n<p>En double-cliquant sur le bloc, on va rentrer les caract\u00e9ristiques n\u00e9cessaires suivantes: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"438\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/weishaupt_Werte_Block-Inject.png\" alt=\"\" class=\"wp-image-312\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/weishaupt_Werte_Block-Inject.png 413w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/weishaupt_Werte_Block-Inject-283x300.png 283w\" sizes=\"auto, (max-width: 413px) 100vw, 413px\" \/><\/figure>\n\n\n\n<p>Avec dans Payload: la trame des donn\u00e9es que l&#8217;on veux r\u00e9cup\u00e9rer sous la forme suivante:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\"prot\":\"coco\",\"telegramm\":[[10,0,1,83,0,0,0,0],[10,0,1,82,0,0,0,0],[10,0,1,81,0,0,0,0],[10,0,1,3158,0,0,0,0],[10,0,1,373,0,0,0,0],[10,0,1,138,0,0,0,0],[10,0,1,2572,0,0,0,0],[10,0,1,2,0,0,0,0],[10,0,1,3101,0,0,0,0],[10,0,1,325,0,0,0,0],[10,0,1,12,0,0,0,0],[10,0,1,14,0,0,0,0],[6,0,1,274,0,0,0,0]]}<\/pre>\n\n\n\n<p>Dans Topic: le topic de MQTT dans lequel vous voulez \u00e9crire les donn\u00e9es<\/p>\n\n\n\n<p>Dans Repeat: la fr\u00e9quence de lecture des donn\u00e9es<\/p>\n\n\n\n<p>Dans Name: le nom du bloc ici en Allemand car c&#8217;est une capture issue du travail de Steve <\/p>\n\n\n\n<p>Maintenant on ajoute un bloc http request<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"113\" height=\"35\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/http_request.png\" alt=\"\" class=\"wp-image-313\"\/><\/figure>\n\n\n\n<p>Que l&#8217;on va remplir de la fa\u00e7on suivante: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"412\" height=\"489\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/query-WCM-Com.png\" alt=\"\" class=\"wp-image-314\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/query-WCM-Com.png 412w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/query-WCM-Com-253x300.png 253w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/figure>\n\n\n\n<p>Pensez \u00e0 bien mettre l&#8217;adresse IP, le Login et mot de passe  de votre WCM-COM  <\/p>\n\n\n\n<p>Maintenant, nous allons utiliser le bloc function afin de faire le d\u00e9codage de la r\u00e9ponse<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"115\" height=\"36\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/function-block.png\" alt=\"\" class=\"wp-image-317\"\/><\/figure>\n\n\n\n<p>Pour le bloc d\u00e9code cela donne:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"410\" height=\"551\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/decode.png\" alt=\"\" class=\"wp-image-318\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/decode.png 410w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/decode-223x300.png 223w\" sizes=\"auto, (max-width: 410px) 100vw, 410px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">msg.payload = msg.payload.telegramm;\n whinfo = {};\n whinfo[\"[6,0,1,274,0,0].name\"] = \"Mode\";\n whinfo[\"[6,0,1,274,0,0].type\"] = \"BINAIRE\"; \n whinfo[\"[10,0,1,81,0,0].name\"] = \"Flamme\";\n whinfo[\"[10,0,1,81,0,0].type\"] = \"BINAIRE\"; \n whinfo[\"[10,0,1,82,0,0].name\"] = \"Chauffage\";\n whinfo[\"[10,0,1,82,0,0].type\"] = \"BINAIRE\"; \n whinfo[\"[10,0,1,83,0,0].name\"] = \"EauChaude\";\n whinfo[\"[10,0,1,83,0,0].type\"] = \"BINAIRE\"; \n whinfo[\"[10,0,1,3158,0,0].name\"] = \"CyclesBruleur\";\n whinfo[\"[10,0,1,3158,0,0].type\"] = \"CYCLE\"; \n whinfo[\"[10,0,1,2572,0,0].name\"] = \"AussentempAvg\";\n whinfo[\"[10,0,1,2572,0,0].type\"] = \"TEMP\"; \n whinfo[\"[10,0,1,2,0,0].name\"] = \"Waermeanforderung\";\n whinfo[\"[10,0,1,2,0,0].type\"] = \"TEMP\"; \n whinfo[\"[10,0,1,12,0,0].name\"] = \"Aussentemp\";\n whinfo[\"[10,0,1,12,0,0].type\"] = \"TEMP\"; \n whinfo[\"[10,0,1,14,0,0].name\"] = \"Warmwasser\";\n whinfo[\"[10,0,1,14,0,0].type\"] = \"TEMP\"; \n whinfo[\"[10,0,1,138,0,0].name\"] = \"Laststellung\";\n whinfo[\"[10,0,1,138,0,0].type\"] = \"VALUE\"; \n whinfo[\"[10,0,1,373,0,0].name\"] = \"Betriebsphase\";\n whinfo[\"[10,0,1,373,0,0].type\"] = \"VALUE\"; \n whinfo[\"[10,0,1,3101,0,0].name\"] = \"Vorlauftemp\";\n whinfo[\"[10,0,1,3101,0,0].type\"] = \"TEMP\"; \n whinfo[\"[10,0,1,325,0,0].name\"] = \"Abgastemp\";\n whinfo[\"[10,0,1,325,0,0].type\"] = \"TEMP\"; \n for(var i = 0; i &lt; msg.payload.length; i++) {\n     var obj = msg.payload[i];\n     var idx = \"[\"+obj[0]+\",\"+obj[1]+\",\"+obj[2]+\",\"+obj[3]+\",\"+obj[4]+\",\"+obj[5]+\"]\";\n <code>var oname = whinfo[idx+\".name\"]; var otype = whinfo[idx+\".type\"]; if ((oname !== undefined) &amp;&amp; (otype !== undefined)) {     nmsg = {};     nmsg.topic = msg.topic + \"\/\" + oname;     switch (otype) {         case \"TEMP\":             var temp;             temp = (obj[6] + obj[7]*256) \/ 10;             nmsg.payload = temp;             break;         case \"VALUE\":             var value;             value = (obj[6] + obj[7]*256);             nmsg.payload = value;             break;         case \"CYCLE\":             var cycle;             cycle = (obj[6] + obj[7]*256)*1000;             nmsg.payload = cycle;             break;           case \"BINAIRE\":             var binaire;             binaire = (obj[6] + obj[7]*256);             nmsg.payload = binaire;             break;      }     \/\/ node.warn(nmsg)     node.send(nmsg); }<\/code>\n }\n return null;<\/pre>\n\n\n\n<p>Et pour le bloc ToJson: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"404\" height=\"540\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/tojson.png\" alt=\"\" class=\"wp-image-319\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/tojson.png 404w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/tojson-224x300.png 224w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">msg.payload = {\"temperature\": msg.payload,\"ts\": Math.floor(Date.now() \/ 1000)};\n return msg;<\/pre>\n\n\n\n<p>On ajoute ensuite le bloc change pour valider le message<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"117\" height=\"35\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/change.png\" alt=\"\" class=\"wp-image-321\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"425\" height=\"523\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/set-messremain.png\" alt=\"\" class=\"wp-image-322\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/set-messremain.png 425w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/set-messremain-244x300.png 244w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/figure>\n\n\n\n<p>Pour finir, on ajoute le bloc mqtt (output)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"113\" height=\"35\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/mqtt-ecriture.png\" alt=\"\" class=\"wp-image-323\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"321\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/mqtt.png\" alt=\"\" class=\"wp-image-324\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/mqtt.png 420w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/mqtt-300x229.png 300w\" sizes=\"auto, (max-width: 420px) 100vw, 420px\" \/><\/figure>\n\n\n\n<p>Que l&#8217;on configure avec l&#8217;adresse o\u00f9 est install\u00e9 mosquitto<\/p>\n\n\n\n<p>Pour v\u00e9rifier que tout fonctionne, on peux ajouter des blocs debug afin de checker le bon fonctionnement<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"107\" height=\"34\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/debug.png\" alt=\"\" class=\"wp-image-325\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"418\" height=\"283\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/debugmess.png\" alt=\"\" class=\"wp-image-326\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/debugmess.png 418w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/debugmess-300x203.png 300w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><\/figure>\n\n\n\n<p>Maintenant vous pouvez cliquer sur Deploy (En haut \u00e0 droite)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"109\" height=\"30\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/deploy.png\" alt=\"\" class=\"wp-image-327\"\/><\/figure>\n\n\n\n<p>Si tout ce passe bien le syst\u00e8me commence \u00e0 vivre et si vous cliquez sur debug la petite coccinnelle sur le cot\u00e9, vous verrez les messages arriver et partir<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"252\" height=\"267\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/debugfull.png\" alt=\"\" class=\"wp-image-328\"\/><\/figure>\n\n\n\n<p>Maintenant allez sur votre installation Jeedom et rentrez dans votre plugin MQTT, vous devriez voir des topics qui se sont cr\u00e9\u00e9s<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-3-1024x498.png\" alt=\"\" class=\"wp-image-331\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-3-1024x498.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-3-300x146.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-3-768x374.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-3.png 1896w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Si tout est ok vous pouvez les ajouter dans vos objets (ici j&#8217;ai cr\u00e9\u00e9 l&#8217;objet Chaudi\u00e8re G\u00e9n\u00e9rateur pour les acceuillir<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"245\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-4-1024x245.png\" alt=\"\" class=\"wp-image-332\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-4-1024x245.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-4-300x72.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-4-768x183.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-4.png 1913w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Voil\u00e0 vous pouvez maintenan lire les donn\u00e9es de la chaudi\u00e8re!!!!<\/p>\n\n\n\n<p class=\"has-large-font-size\">Partie 3: Commander les consignes de la chaudi\u00e8re <\/p>\n\n\n\n<p>Pour la commande des consignes de la chaudi\u00e8re, il faut modifier la partie NodeRed et la partie jeedom<\/p>\n\n\n\n<p>On commence par la partie Jeedom.<\/p>\n\n\n\n<p>Dans le plugin MQTT, on recherche le topic de la consigne que l&#8217;on veux modifier (ici par exemple Mode)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"599\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-5-1024x599.png\" alt=\"\" class=\"wp-image-338\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-5-1024x599.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-5-300x175.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-5-768x449.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-5.png 1171w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>On clique sur l&#8217;onglet Commandes<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"376\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-7-1024x376.png\" alt=\"\" class=\"wp-image-342\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-7-1024x376.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-7-300x110.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-7-768x282.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-7.png 1099w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Cliquez sur Ajouter une commande action et remplissez de la m\u00eame fa\u00e7on que sur l&#8217;exemple (Ici  Et\u00e9) en pensant \u00e0 bien mettre \/set \u00e0 la fin du topic. <\/p>\n\n\n\n<p>Le Payload est la valeur \u00e0 laquelle vous voulez que la variable soit \u00e9crite dans le topic (ici, j&#8217;ai mis 5 car cela correspond au mode \u00e9t\u00e9 de ma chaudi\u00e8re). Sauvegardez et maintenant on passe \u00e0 la partie NodeRed<\/p>\n\n\n\n<p>Pour NodeRed, on retourne \u00e0 l&#8217;adresse 192.168.1.16:1880<\/p>\n\n\n\n<p>Et l&#8217;on compl\u00e8te la structure pr\u00e9cedente de la fa\u00e7on suivante: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"939\" height=\"205\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure-complete-1.png\" alt=\"\" class=\"wp-image-335\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure-complete-1.png 939w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure-complete-1-300x65.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/Structure-complete-1-768x168.png 768w\" sizes=\"auto, (max-width: 939px) 100vw, 939px\" \/><\/figure>\n\n\n\n<p>On rajoute le bloc mqtt (input)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"112\" height=\"34\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/lecture-mqtt-block.png\" alt=\"\" class=\"wp-image-336\"\/><\/figure>\n\n\n\n<p>On le compl\u00e8te de la fa\u00e7on suivante: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"303\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/lecture-mqtt.png\" alt=\"\" class=\"wp-image-337\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/lecture-mqtt.png 413w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/lecture-mqtt-300x220.png 300w\" sizes=\"auto, (max-width: 413px) 100vw, 413px\" \/><\/figure>\n\n\n\n<p>O\u00f9 l&#8217;on met bien l&#8217;adresse IP de la Raspberry ainsi que le port 1883 correspondant \u00e0 mosquitto.<\/p>\n\n\n\n<p>On met le Topic correspondant au set fait dans Jeedom pr\u00e9c\u00e9dement.<\/p>\n\n\n\n<p>On ajoute le bloc function afin de cr\u00e9er la fonction d&#8217;encodage et on rempli de la fa\u00e7on suivante: <\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"355\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/encode.png\" alt=\"\" class=\"wp-image-344\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/encode.png 411w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/encode-300x259.png 300w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">low = msg.payload % 256; \n high = Math.floor(msg.payload \/ 256);\n req = '{\"prot\":\"coco\",\"telegramm\":[[6,0,2,274,0,0,' + low +','+ high +']]}';\n node.log(req);\n msg.topic = \"home\/weishaupt\";\n msg.payload = req;\n return msg;<\/pre>\n\n\n\n<p>Vous pouvez maintenant sauver en cliquant sur Deploy<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"109\" height=\"30\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/deploy-1.png\" alt=\"\" class=\"wp-image-349\"\/><\/figure>\n\n\n\n<p>Une fois que c&#8217;est fait, mettez la chaudi\u00e8re quand un programme sp\u00e9cifique via le panneau de contr\u00f4le mural (Exemple Stand by)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190602_111600-e1560423352451-768x1024.jpg\" alt=\"\" class=\"wp-image-352\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190602_111600-e1560423352451-768x1024.jpg 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190602_111600-e1560423352451-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>Maintenant, vous pouvez aller sur Jeedom et tester que le contr\u00f4le fonctionne. Cliquez sur le bouton Ete. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"201\" height=\"119\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/image-8.png\" alt=\"\" class=\"wp-image-351\"\/><\/figure>\n\n\n\n<p>Si tout est ok vous verrez sur le panneau de contr\u00f4le mural le petit parasol apparaitre<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190602_111541-e1560423429929-768x1024.jpg\" alt=\"\" class=\"wp-image-353\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190602_111541-e1560423429929-768x1024.jpg 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/20190602_111541-e1560423429929-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>Voil\u00e0! Maintenant vous avez toutes les clefs pour int\u00e9grer votre chaudi\u00e8re Weishaupt \u00e0 Jeedom<\/p>\n\n\n\n<p>Je mets si dessous la sauvegarde de ce qui est pr\u00e9sent\u00e9 ici<\/p>\n\n\n\n<p>Le github de Steve (je vais le forker pour avoir une version Anglaise)<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/lairsdragon\/nodered-weishaupt\">https:\/\/github.com\/lairsdragon\/nodered-weishaupt<\/a><\/p>\n\n\n\n<p>Et le fichier en cas o\u00f9 il ne serait plus disponible<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/nodered-weishaupt-master.zip\">nodered-weishaupt-master<\/a><a href=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2019\/06\/nodered-weishaupt-master.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p>Bonne continuation,<\/p>\n\n\n\n<p>Ferrader<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bonjour \u00e0 tous, cette semaine, je vous propose un sujet que j\u2019essayai de boucler depuis longtemps&#8230; Celui de piloter ma&hellip;<\/p>\n","protected":false},"author":1,"featured_media":276,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[66,2],"tags":[18],"class_list":["post-259","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hacking","category-mini-projet","tag-domotique"],"_links":{"self":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/comments?post=259"}],"version-history":[{"count":0,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/259\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media\/276"}],"wp:attachment":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media?parent=259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/categories?post=259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/tags?post=259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}