Une mise à jour du flow (version 1.4) a été postée. Elle intègre une correction/amelioration dans le flow pour la récupération de la consommation.
Une autre astuce pour récupérer « correctement » les données complètes de chaque journée sur HA (retrouver dans J-1 les consommations 18h-24h récupérées à J après minuit) : décaler chaque nouvelle valeur reçue à -1h dans de nouvelles entités. Voici comment faire :
Édit : tout ce qui suit ne fonctionne finalement pas
- Considérer les entités créées dans le flow Node Red comme « passagères »
- Dans HA, créer une entrée de type template pour chaque pièce de votre domicile et une dernière pour le totalisateur.
- Renseigner les entrées comme sur l’exemple ci-dessous :
- Modèle de l’état à ajouter :
{% set current_time = now() %}
{% set advanced_time = current_time - timedelta(hours=1) %}
{{ states(‹ sensor.votre_sensor ›) | default(0) }}- Renseigner le nom de votre sensor dans les parenthèses qui suivent « states( », entre deux apostrophes.
- Répéter l’opération pour chaque entité
- Attribuer ces entités à vos graphiques et votre module de suivi d’énergie à la place de celles créées dans Node Red
De mon côté, je suis pleinement satisfait du flow en récupérant les données sur J-1 et en utilisant les graphes de statistiques. Mais pour la partie dashboard Energie, je n’ai pas réussi à faire ce que je voulais jusqu’à maintenant (à savoir Avoir le même comportement dans le tableau de bord Energie qu'un graphe de statistiques utilisant l'attribut "Etat" (state)).
Je suivrai donc avec intérêt la suite de vos tests ! Merci.
De toutes façons ce que je propose juste au dessus ne fonctionne finalement pas.
Bonjour Yann,
Merci beaucoup pour tout ton travail, ça fonctionne super bien chez moi.
Je ne suis pas informaticien et j’ai réussi à intégrer mon radiateur Noirot dans ma conf Home Assistant grâce à toi !
Pour la remontée d’informations, tout se passe très bien.
J’aimerais maintenant pouvoir passer des commandes du type « passage en mode hors gel les journées Tempo Rouge ». Aucun problème pour l’automatisation qui est faite dans HA mais j’ai besoin d’accéder aux « commandes ».
Questions :
- As-tu trouvé une description de l’API Muller Intuitive ?
- As tu a dispo un flux de node-red même pas tout a fait adapté pour que je puisse commencer à bricoler ?
Encore merci pour ton travail,
Guillaume
Bonjour,
C’est toujours un plaisir de voir que ce flow rend service à de nouvelles personnes. J’ai passé tellement de temps à le concevoir !
Il est tout à fait possible de passer des commandes. J’ai par exemple un flow qui permet d’acquitter les fenêtres ouvertes et un autre qui va modifier le planning en cours.
Par contre il n’existe aucune doc qui recense les commandes API, mais il y a quand même quelques astuces possibles :
. Télécharger le plugin Jeedom dont il est question dans le premier message de ce sujet et faire des recherches dans les différents fichiers de l’archive (Notepad++ est votre ami pour la recherche sur plusieurs fichiers à la fois). Mais cela nécessite pas mal de temps et d’essais pour les commandes et les paramètres.
. Interecepter les trames HTTP de l’appli Intuis Connect avec une application style HTTP toolkit. Cela nécessite un vieux téléphone (IPhone S 1er du nom pour moi) et une petite prise en main mais c’est assez efficace.
Je mets à dispo le flux de commande très vite !
Voici un lien vers un nouveau flow qui contient deux commandes pour acquitter la notification de fenêtre ouverte et pour modifier le planning en cours.
https://flows.nodered.org/flow/2134237ff93f1b079fb8ac6ade453d07
Attention, les éléments de ce nouveau flow sont à coller dans l’existant. Si vous l’utilisez tel quel, il ne fonctionnera pas.
Un énorme merci pour ton flow .
J’ai pas encore mis en l’exploitation ton flow mais ça m’a permis de me mettre à node Red déjà et je commence à faire des petites modifications du code.
Merci pour le boulot
Top ! merci Yann,
Je regarde tout ça et je reviens donner des nouvelles.
bonne journée !
Hello,
Je reviens vers vous avec quelques news :
Voici le flux pour envoyer les commandes :
[{"id":"a2f12235762ec828","type":"tab","label":"Flux 1","disabled":false,"info":"","env":[]},{"id":"087481a66b64a77c","type":"group","z":"a2f12235762ec828","name":"Passer une commande manuelle","style":{"label":true},"nodes":["e16b1440f9976fc9","40443890d8c3a7df","5a3259d752e1efa7","2ae8f33d83a59f91","f1b88b07dab52fdf","e0f695c83e952ca1","872ac0abb2dfec75","7dce604279a1cf46","f81677b3ca6fc19f","e4342b0432a85d74","96c2c3ef618edd31","1267ba1a01763541","be6618e22ddd3bef","4a1da8ae2657e4f7"],"x":54,"y":119,"w":1732,"h":202},{"id":"e16b1440f9976fc9","type":"debug","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"contrôle retour","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1660,"y":220,"wires":[]},{"id":"40443890d8c3a7df","type":"debug","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"contrôle requête","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1460,"y":160,"wires":[]},{"id":"5a3259d752e1efa7","type":"http request","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Intuis setstate","method":"POST","ret":"obj","paytoqs":"ignore","url":"https://app.muller-intuitiv.net/syncapi/v1/setstate","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[{"keyType":"Authorization","keyValue":"","valueType":"msg","valueValue":"token"},{"keyType":"Content-Type","keyValue":"","valueType":"other","valueValue":"application/json"}],"x":1460,"y":220,"wires":[["e16b1440f9976fc9"]]},{"id":"2ae8f33d83a59f91","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Set param acquit fenetre","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t \"home\": {\t \"id\": \"yourId\",\t \"rooms\": [\t {\t \"id\": \"yourId\",\t \"therm_setpoint_mode\": $globalContext(\"mode_setpoint\"),\t \"therm_setpoint_temperature\": $globalContext(\"temp_setpoint\"),\t \"therm_setpoint_end_time\": $globalContext(\"due_date_setpoint\")\t }\t ]\t },\t \"app_identifier\": \"app_muller\"\t}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1210,"y":220,"wires":[["40443890d8c3a7df","5a3259d752e1efa7"]]},{"id":"f1b88b07dab52fdf","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"token","pt":"msg","to":"\"Bearer \" & $globalContext(\"AccessToken\")\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":970,"y":220,"wires":[["2ae8f33d83a59f91"]]},{"id":"e0f695c83e952ca1","type":"server-state-changed","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Mode de fonctionnement - setpoint","server":"3b9eb627.f4aeda","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_select.radiateur_chambre_parents_mode_de_fonctionnement_setpoint"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":220,"y":220,"wires":[["e4342b0432a85d74"]]},{"id":"872ac0abb2dfec75","type":"server-state-changed","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Consigne de température - setpoint","server":"3b9eb627.f4aeda","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_number.radiateur_chambre_parents_consigne_de_temperature_setpoint"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"num","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":220,"y":160,"wires":[["7dce604279a1cf46"]]},{"id":"7dce604279a1cf46","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"temp_setpoint","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":160,"wires":[["96c2c3ef618edd31"]]},{"id":"f81677b3ca6fc19f","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"due_date_setpoint","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":890,"y":280,"wires":[["96c2c3ef618edd31"]]},{"id":"e4342b0432a85d74","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"mode_setpoint","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":220,"wires":[["96c2c3ef618edd31"]]},{"id":"96c2c3ef618edd31","type":"delay","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","pauseType":"delay","timeout":"100","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":770,"y":220,"wires":[["f1b88b07dab52fdf"]]},{"id":"1267ba1a01763541","type":"server-state-changed","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Echéance - setpoint","server":"3b9eb627.f4aeda","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_datetime.radiateur_chambre_parents_setpoint_end_time"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":170,"y":280,"wires":[["4a1da8ae2657e4f7"]]},{"id":"be6618e22ddd3bef","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$round($number($toMillis(payload))/1000,0)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":280,"wires":[["f81677b3ca6fc19f"]]},{"id":"4a1da8ae2657e4f7","type":"moment","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","topic":"","input":"payload","inputType":"msg","inTz":"Europe/Paris","adjAmount":0,"adjType":"days","adjDir":"add","format":"","locale":"C","output":"payload","outputType":"msg","outTz":"Europe/Paris","x":400,"y":280,"wires":[["be6618e22ddd3bef"]]},{"id":"3b9eb627.f4aeda","type":"server","name":"Home Assistant","addon":true}]
En deux mots, le fonctionnement :
-
« hg » : hors gel → la commande est passée et maintenue automatiquement jusqu’à nouvel ordre
-
« home » : « mode auto » → place le radiateur (la pièce) sur le programme établi dans l’application
-
« manual » : « mode manu » → force le radiateur à une température donnée
- il faut comprendre ce mode comme une dérogation au mode « home » avec une durée limitée
- il faut donc envoyer en même temps l’heure de fin du forçage ; après cette heure, le radiateur retourne automatiquement sur le mode « home » et la programmation établie dans l’application.
- l’heure est au format timestamp unix en secondes (et non milli-secondes) → conversion*$round($number($toMillis(payload))/1000,0)*
Les entités sont configurée dans configuration.yaml :
Messages de déboggage :
et sur l’appli :
Au final, je ne vais probablement commencer par piloter le radiateur les jours Tempo Rouge par le mode manu avec une température assez faible, vois peut-être avec le mode hors gel … on verra par la suite.
Si vous avez de bonnes idées, je suis preneur
Bonne journée !
Excellent travail ! Bien joué
Et en plus c’est extrêmement bien expliqué pour les suivants qui voudraient essayer à leur tour.
Hello,
Pour la doc de l API, celle ci s’appuie sur celle de netatmo energy si je ne me trompe pas.
Clément
Un grand merci à vous tous pour vos partages.
J’ai adapté vos flows respectifs pour récupérer les Infos de mes 3 radiateurs et ajouter un mode away global.
Par contre, j’ai du changer la baseurl de l api bizarrement ( api vs syncapi) pour le flow de BeaverBeliever qui était pourtant la même que celle de Yann. La fonction setthermmode ne semble pas exposée sur la syncapi,
Il y a sûrement plusieurs versions de l’api exposées par l’app muller.
En suivant la doc de l’api netatmo, je m’en suis sorti( pas besoin de sniffer les appels)
Le endpoint setthermmode permet de gérer le mode away, hg, schedule(qui correspond à home) sur la maison directement ce qui est utile lorsqu’on a plusieurs radiateurs.
Merci encore…
Clément
Félicitations Clément !
Est-ce que tu pourrais partager ton flow finalisé avec le mode away global ? Ca m’intéresse énormément, étant nouveau sur Home Assistant et novice sur Node Red, j’avoue que j’ai encore quelques difficultés à m’y retrouver…
Merci beaucoup à tous de faire avancer ce sujet qui n’est pas simple, notamment @Yann0128 et @BeaverBeliever
Bonjour,
Le voici:
[{"id":"087481a66b64a77c","type":"group","z":"a2f12235762ec828","name":"Passer une commande manuelle","style":{"label":true},"nodes":["e16b1440f9976fc9","40443890d8c3a7df","5a3259d752e1efa7","2ae8f33d83a59f91","f1b88b07dab52fdf","e0f695c83e952ca1","f81677b3ca6fc19f","e4342b0432a85d74","96c2c3ef618edd31","1267ba1a01763541","be6618e22ddd3bef","4a1da8ae2657e4f7","481383c692b73536"],"x":174,"y":-1,"w":2012,"h":202},{"id":"e16b1440f9976fc9","type":"debug","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"contrôle retour","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":2060,"y":100,"wires":[]},{"id":"40443890d8c3a7df","type":"debug","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"contrôle requête","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1860,"y":40,"wires":[]},{"id":"5a3259d752e1efa7","type":"http request","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Intuis setstate","method":"POST","ret":"obj","paytoqs":"ignore","url":"https://app.muller-intuitiv.net/api/setthermmode","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[{"keyType":"Authorization","keyValue":"","valueType":"msg","valueValue":"token"},{"keyType":"Content-Type","keyValue":"","valueType":"other","valueValue":"application/json"}],"x":1860,"y":100,"wires":[["e16b1440f9976fc9"]]},{"id":"2ae8f33d83a59f91","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Set home mode","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t \"app_identifier\": \"app_muller\",\t \"home_id\": $globalContext(\"home_id\"),\t \"mode\": $globalContext(\"mode_setpoint\"),\t \"endtime\": $globalContext(\"due_date_setpoint\")\t}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1660,"y":100,"wires":[["40443890d8c3a7df","5a3259d752e1efa7"]]},{"id":"f1b88b07dab52fdf","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"token","pt":"msg","to":"\"Bearer \" & $globalContext(\"AccessToken\")\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1450,"y":100,"wires":[["2ae8f33d83a59f91"]]},{"id":"e0f695c83e952ca1","type":"server-state-changed","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Home mode selected","server":"3b9eb627.f4aeda","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_select.radiateurs_intuis_set_mode"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":300,"y":100,"wires":[["481383c692b73536"]]},{"id":"f81677b3ca6fc19f","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"due_date_setpoint","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1010,"y":160,"wires":[["96c2c3ef618edd31"]]},{"id":"e4342b0432a85d74","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"mode_setpoint","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1020,"y":100,"wires":[["96c2c3ef618edd31"]]},{"id":"96c2c3ef618edd31","type":"delay","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","pauseType":"delay","timeout":"100","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":1250,"y":100,"wires":[["f1b88b07dab52fdf"]]},{"id":"1267ba1a01763541","type":"server-state-changed","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Due date selected","server":"3b9eb627.f4aeda","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_datetime.away_until_date"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":290,"y":160,"wires":[["4a1da8ae2657e4f7"]]},{"id":"be6618e22ddd3bef","type":"change","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$round($number($toMillis(payload))/1000,0)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":750,"y":160,"wires":[["f81677b3ca6fc19f"]]},{"id":"4a1da8ae2657e4f7","type":"moment","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"","topic":"","input":"payload","inputType":"msg","inTz":"Europe/Paris","adjAmount":0,"adjType":"days","adjDir":"add","format":"","locale":"C","output":"payload","outputType":"msg","outTz":"Europe/Paris","x":520,"y":160,"wires":[["be6618e22ddd3bef"]]},{"id":"481383c692b73536","type":"function","z":"a2f12235762ec828","g":"087481a66b64a77c","name":"Transco home mode","func":"if(msg.payload == \"Home\")\n{\n msg.payload = \"schedule\";\n}\nelse if (msg.payload == \"Away\")\n{\n msg.payload = \"away\";\n}\nelse if ( msg.payload == \"Hors Gel\")\n{\n msg.payload = \"hg\";\n}\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":100,"wires":[["e4342b0432a85d74"]]},{"id":"3b9eb627.f4aeda","type":"server","name":"Home Assistant","addon":true}]
Pour le faire fonctionner, il faut créer deux entrées dans HA comme l’explique @BeaverBeliever
- 1 liste déroulante avec les choix suivants: « Away », « Home », « Hors gel ». ( respecter la casse car il y a une transco faite dans nodered pour transformer ce string, eg. Home → schedule…, Away → away, Hors gel → hg)
- 1 entrée date
Il faudra changer le nom des entités dans les 2 noeuds input et le homeid.
J’ai aussi créé un déclencheur Away ( booléen ) et deux automatismes par dessus qui sélectionne la valeur de la liste déroulante à Away ou Home lorsqu’il est activé ou désactivé.
Voici ce que ça donne dans mon Dashboard:
Les automatisations:
Au top, merci beaucoup !
Je vais très vite essayer tout ça
Bonjour,
Tout d’abord merci beaucoup pour ce travail titanesque…
Node-red est ouissant mais vous aussi ! merci
Il y a eu de l’évolution, une sacrée évolution depuis mon premier message d’il y a plusieurs mois.
J’ai mis en place Node-red, injecté le JSON de Yann (merci).
J’ai modifié pour la remontée d’info de mes 5 radiateurs, j’en ai laissé 1/5 d’activé pour tester.
Sur le premier radiateur j’ai bien les infos qui remontent, top.
En revanche j’ai une erreur sur la conso de ce radiateur « TypeError » : je ne trouve pas ce qui ne va pas, jai essayé de modifier dans « Set param get config » le « type »: « sum_energy_elec$0 » en « type »: « sum_energy_elec », puis « type »: « sum_energy_elec$1 », puis « type »: « sum_energy_elec$2 » mais rien n’a changé concernant le TypeError.
Faut-il attendre absolument le lendemain pour avoir les infos ? sans quoi cette erreur remonte ? ou le « typeError » s’affiche suite à un prob dans ma config…?
Ajout Message d’erreur exact via Debug :
TypeError: Cannot read properties of undefined (reading ‹ value ›)
De plus, je m’interroge sur les horaires « Veille »… j’essaie de bien comprendre ce que vous avez fait
N’y a-t-il pas une erreur ? svp
Bonjour Florian,
Pour pouvoir comprendre d’où vient ce message d’erreur, peux-tu mettre une capture d’écran des paramètres renseignés dans les deux noeuds « Set param get config 2 » ? Ca serait aussi intéressant d’activer les deux noeuds de contrôle de requête et nous poster le résultat du débug lorsqu’ils sont exécutés.
Pour ce qui est des blocs de configuration des heures. Le noeud initial dans le flow s’appelle bien « veille 12h01 » et calcule l’heure « 12,1,0,0 » dans ses paramètres. Il calcule également la date J-1 au niveau de la syntaxe « a.setDate(a.getDate() - 1) » à la ligne 3. Le but d’avoir une plage qui débute la veille à 12h01, c’est d’intégrer la dernière publication de consommation d’une journée, qui peut avoir lieu le très tôt le lendemain matin. C’est un sujet qui a été abordé par Kyrille plus haut dans cette conversation.