# Mini-tuto Pour ajouter au dashboard les valeurs de l'API suncalc via nore-red et Mqtt

**URL:** <https://community.gladysassistant.com/t/mini-tuto-pour-ajouter-au-dashboard-les-valeurs-de-lapi-suncalc-via-nore-red-et-mqtt/8532>\
**Category:** Tutoriels\
**Tags:** mqtt, node-red, suncalc\
**Created:** [Novembre 26, 2023, 1:26 UTC](https://community.gladysassistant.com/t/mini-tuto-pour-ajouter-au-dashboard-les-valeurs-de-lapi-suncalc-via-nore-red-et-mqtt/8532 "2023-11-26T01:26:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![cce66](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/c/8797f3/32.png) [@cce66](https://community.gladysassistant.com/u/cce66)\
**Post date:** [Novembre 26, 2023, 1:26 UTC](https://community.gladysassistant.com/t/mini-tuto-pour-ajouter-au-dashboard-les-valeurs-de-lapi-suncalc-via-nore-red-et-mqtt/8532/1 "2023-11-26T01:26:18Z")

</div>

via ce mini-tuto vous allez pouvoir ajouter les valeurs de l’API suncalc dans le dahboard via un appel https vers l’API [https://api.sunrise-sunset.org/](https://api.sunrise-sunset.org/) qui retourne un JSON sous ce format

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/c/cd60e549eb5920f63a5b92af73e850c908414b84.png)

pour cela il faut importer le flow du message suivant dans node-red (ca dépasse 32000 caractères)

Vous aurez normalement ce flow

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/3/35dff506a2e63f09285fdff1fe2829e21ad6831c.png)

chaque node 'function" envoie la valeur voulue en payload à 00h00 mais également après x minutes après minuit ce qui permet de générer un message Mqtt au moment de l’événement voulu ( par exemple la valeur «&nbsp;Lever de soleil&nbsp;» est envoyée ici à 00h01 et à 5h42) pour l’utiliser dans une scène mais dans ce cas il faut conditionner à après 00h01

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/58eb6924d0a12d2debf0227cb1970fb6e1ed7f1a.png)

il faudra juste adapter les paramètres du node «&nbsp;Mqtt&nbsp;» en cliquant sur le node puis sur le stylo de la partie 'Server

et ajuster dans le node ‹&nbsp;[api.sunrise-sunset.org](http://api.sunrise-sunset.org)&nbsp;› vos coordonnées GPS

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/0/03647fc3050401ba2f9e6373d7d8712722705c6f.png)

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/7/7b66016cbb70ada9ddc846cd7a9fe930fd2eb885.png)

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/0/0fb5f67ad0cb76899781b07bb4d5035766d9c6c3.png)

Ensuite dans Gladys dans l’intégration «&nbsp;MQTT&nbsp;» créez un appareil comme suit

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/7/7abda0f0a32a7d8973299b13bfc838e831e0a4d3.png)

et pour chaque fonctionnalité voulue (sunrise, sunset etc) ajouter une fonctionnalité selon le modèle «&nbsp;sunrise&nbsp;»

puis dans le dashoard ajoutez les valeurs voulues

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/3/3515c178511568b667d78d35e492983cc526a0f3.png)

Voila vous avez maintenant les éléments de Suncalc dans le dashboard !

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/6/6ab8b90da8b1c0ab19b846d67354d4d02baa31f8.png)

Maintenant en créant une scène ici «&nbsp;Lever de soleil&nbsp;» et en filtrant le message envoyé à 00h00 on peu effectuer une action au lever de soleil (qui existe dejà dans Gladys) mais en plus on peut ajuster l’heure dans le node «&nbsp;fonction&nbsp;» du «&nbsp;Lever de soleil&nbsp;»

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/21e581084587b3bddabe3d02eb71b36f1e60c13c.png)

mode normal

> // calcul le delai après minuit en minutes pour envoyer le message  
> var delai = hours \*60 + minutes + 1;  
> msg.delay = delai;

mode 20 mn avant

> // calcul le delai après minuit en minutes pour envoyer le message  
> var delai = hours \*60 + minutes + 1 - 20;  
> msg.delay = delai;

mode 20 mn après

> // calcul le delai après minuit en minutes pour envoyer le message  
> var delai = hours \*60 + minutes + 1 + 20;  
> msg.delay = delai;

La simplicité de Gladys nivau utilisation et Dashboard couplé au couteau suisse node-red = produit adaptable aux besoins spécifiques de chaque utilisateur ! 😉

---

<div class="post-metadata">

**Author:** ![cce66](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/c/8797f3/32.png) [@cce66](https://community.gladysassistant.com/u/cce66)\
**Post date:** [Novembre 26, 2023, 1:36 UTC](https://community.gladysassistant.com/t/mini-tuto-pour-ajouter-au-dashboard-les-valeurs-de-lapi-suncalc-via-nore-red-et-mqtt/8532/2 "2023-11-26T01:36:40Z")

</div>

J’ai modifié le code car les node ‹&nbsp;delay&nbsp;› étaient en millisecondes au lieu de minutes…oops la boulette 🙃 🤭! Et j’ai ajouté une focntion ‹&nbsp;heure d’envoi&nbsp;› pour tracer l’heure à laquellle est envoyé le message «&nbsp;lever de soleil&nbsp;» pour la seconde fois (la 1ère à 00h01), il suffit de dupliquer pour tracer les autres.

> **Code du flow**
>
> ```auto
> [
> {
> "id": "7ff8481b0e530218",
> "type": "tab",
> "label": "Suncalc API",
> "disabled": false,
> "info": "",
> "env": []
> },
> {
> "id": "467565bd915a2a8d",
> "type": "group",
> "z": "7ff8481b0e530218",
> "name": "Suncalc API",
> "style": {
> "stroke": "#000000",
> "fill": "#e3f3d3",
> "label": true
> },
> "nodes": [
> "eae0976220b585b3",
> "5dda4437af0bff5e",
> "9ed546b6886bbafa",
> "f6ea59633d3bb98b",
> "e5be0b9d45a8b6c2",
> "38e643d99efa7a95",
> "846f914fd081c13f",
> "152afaf0fdc6be38",
> "59307f7f63590e5d",
> "838df80a9f965a6d",
> "a4397d1a98150a4d",
> "5d1de6bc5497c087",
> "c2b15889e9096be1",
> "b8a6dca76c04f480",
> "3a99ad9a2f752241",
> "3ea4979d2eaf146b",
> "901f952626786b11",
> "1d040814b1befb3a",
> "8f7e50836226d1ee",
> "8c49858b8bbfe11c",
> "9e462a3d9f69bee0",
> "048c1578dc7d13d5",
> "bee1fb0b9897f334",
> "3dd556977ebeb003",
> "17d36d7e51f3c5aa",
> "89002c75327e8e5f",
> "2e8b434a55627e7a",
> "21097eb9222e6af0",
> "e389303bb28be230"
> ],
> "x": 54,
> "y": 79,
> "w": 1312,
> "h": 722
> },
> {
> "id": "eae0976220b585b3",
> "type": "inject",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "",
> "props": [
> {
> "p": "payload"
> },
> {
> "p": "topic",
> "vt": "str"
> }
> ],
> "repeat": "",
> "crontab": "00 00 * * *",
> "once": true,
> "onceDelay": "1",
> "topic": "",
> "payload": "",
> "payloadType": "date",
> "x": 170,
> "y": 400,
> "wires": [
> [
> "5dda4437af0bff5e"
> ]
> ]
> },
> {
> "id": "5dda4437af0bff5e",
> "type": "http request",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "api.sunrise-sunset.org",
> "method": "GET",
> "ret": "obj",
> "paytoqs": "ignore",
> "url": "https://api.sunrise-sunset.org/json?lat={42.555}&lng={2.833}&date=today",
> "tls": "",
> "persist": false,
> "proxy": "",
> "insecureHTTPParser": false,
> "authType": "",
> "senderr": false,
> "headers": [],
> "x": 220,
> "y": 460,
> "wires": [
> [
> "9ed546b6886bbafa",
> "38e643d99efa7a95",
> "846f914fd081c13f",
> "152afaf0fdc6be38",
> "59307f7f63590e5d",
> "838df80a9f965a6d",
> "a4397d1a98150a4d",
> "5d1de6bc5497c087",
> "c2b15889e9096be1",
> "b8a6dca76c04f480",
> "3a99ad9a2f752241"
> ]
> ]
> },
> {
> "id": "9ed546b6886bbafa",
> "type": "debug",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "",
> "active": false,
> "tosidebar": true,
> "console": false,
> "tostatus": true,
> "complete": "payload",
> "targetType": "msg",
> "statusVal": "payload",
> "statusType": "auto",
> "x": 470,
> "y": 460,
> "wires": []
> },
> {
> "id": "f6ea59633d3bb98b",
> "type": "debug",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "debug 3",
> "active": true,
> "tosidebar": true,
> "console": false,
> "tostatus": true,
> "complete": "payload",
> "targetType": "msg",
> "statusVal": "payload",
> "statusType": "msg",
> "x": 700,
> "y": 120,
> "wires": []
> },
> {
> "id": "e5be0b9d45a8b6c2",
> "type": "mqtt out",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "Publish au broker Mqtt IP Gladys:1883",
> "topic": "",
> "qos": "",
> "retain": "",
> "respTopic": "",
> "contentType": "",
> "userProps": "",
> "correl": "",
> "expiry": "",
> "broker": "f4ab211ed11dc81c",
> "x": 1190,
> "y": 460,
> "wires": []
> },
> {
> "id": "38e643d99efa7a95",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "sunrise",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:sunrise/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString = msg.results.sunrise;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = (hours * 60) + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 460,
> "y": 160,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "f6ea59633d3bb98b",
> "3ea4979d2eaf146b",
> "2e8b434a55627e7a"
> ]
> ]
> },
> {
> "id": "846f914fd081c13f",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "sunset",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:sunset/text\";\n\n\n// chaîne de temps au format AM/PM\nvar timeString =msg.results.sunset;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 450,
> "y": 220,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "901f952626786b11"
> ]
> ]
> },
> {
> "id": "152afaf0fdc6be38",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "solar_noon",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:solar_noon/text\";\n\n\n// chaîne de temps au format AM/PM\nvar timeString =msg.results.solar_noon;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 470,
> "y": 280,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "1d040814b1befb3a"
> ]
> ]
> },
> {
> "id": "59307f7f63590e5d",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "day_length",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:day_length/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString =msg.results.day_length;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 470,
> "y": 340,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "8f7e50836226d1ee"
> ]
> ]
> },
> {
> "id": "838df80a9f965a6d",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "civil_twilight_begin",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:civil_twilight_begin/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString = msg.results.civil_twilight_begin;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 490,
> "y": 400,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "8c49858b8bbfe11c"
> ]
> ]
> },
> {
> "id": "a4397d1a98150a4d",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "civil_twilight_end",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:civil_twilight_end/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString = msg.results.civil_twilight_end;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours * 60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 480,
> "y": 520,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "17d36d7e51f3c5aa"
> ]
> ]
> },
> {
> "id": "5d1de6bc5497c087",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "nautical_twilight_begin",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:nautical_twilight_begin/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString =msg.results.nautical_twilight_begin;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 500,
> "y": 580,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "3dd556977ebeb003"
> ]
> ]
> },
> {
> "id": "c2b15889e9096be1",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "nautical_twilight_end",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:nautical_twilight_end/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString =msg.results.nautical_twilight_end;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 500,
> "y": 640,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "bee1fb0b9897f334"
> ]
> ]
> },
> {
> "id": "b8a6dca76c04f480",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "astronomical_twilight_begin",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:astronomical_twilight_begin/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString = msg.results.astronomical_twilight_begin;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 520,
> "y": 700,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "048c1578dc7d13d5"
> ]
> ]
> },
> {
> "id": "3a99ad9a2f752241",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "astronomical_twilight_end",
> "func": "var topic = msg.topic;\nvar msg = msg.payload;\n\nmsg.topic = \"gladys/master/device/mqtt:suncalc/feature/mqtt:astronomical_twilight_end/text\";\n\n// chaîne de temps au format AM/PM\nvar timeString =msg.results.astronomical_twilight_end;\n\n// Convertir la chaîne en objet Date\nvar date = new Date(\"2000-01-01 \" + timeString);\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\n// calcul le delai après minuit en minutes pour envoyer le message\nvar delai = hours *60 + minutes + 1;\nmsg.delay = delai;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 510,
> "y": 760,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "9e462a3d9f69bee0"
> ]
> ]
> },
> {
> "id": "3ea4979d2eaf146b",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "1",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 900,
> "y": 160,
> "wires": [
> [
> "e5be0b9d45a8b6c2",
> "21097eb9222e6af0"
> ]
> ]
> },
> {
> "id": "901f952626786b11",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 880,
> "y": 220,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "1d040814b1befb3a",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 840,
> "y": 280,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "8f7e50836226d1ee",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 820,
> "y": 340,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "8c49858b8bbfe11c",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 800,
> "y": 400,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "9e462a3d9f69bee0",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 900,
> "y": 760,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "048c1578dc7d13d5",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 880,
> "y": 700,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "bee1fb0b9897f334",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 860,
> "y": 640,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "3dd556977ebeb003",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 840,
> "y": 580,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "17d36d7e51f3c5aa",
> "type": "delay",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "délai avant envoi mqtt",
> "pauseType": "delayv",
> "timeout": "5",
> "timeoutUnits": "minutes",
> "rate": "1",
> "nbRateUnits": "1",
> "rateUnits": "second",
> "randomFirst": "1",
> "randomLast": "5",
> "randomUnits": "seconds",
> "drop": false,
> "allowrate": false,
> "outputs": 1,
> "x": 800,
> "y": 520,
> "wires": [
> [
> "e5be0b9d45a8b6c2"
> ]
> ]
> },
> {
> "id": "89002c75327e8e5f",
> "type": "debug",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "debug 13",
> "active": true,
> "tosidebar": true,
> "console": false,
> "tostatus": true,
> "complete": "true",
> "targetType": "full",
> "statusVal": "",
> "statusType": "auto",
> "x": 1260,
> "y": 160,
> "wires": []
> },
> {
> "id": "2e8b434a55627e7a",
> "type": "debug",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "delay",
> "active": true,
> "tosidebar": true,
> "console": false,
> "tostatus": true,
> "complete": "delay",
> "targetType": "msg",
> "statusVal": "delay",
> "statusType": "msg",
> "x": 690,
> "y": 180,
> "wires": []
> },
> {
> "id": "21097eb9222e6af0",
> "type": "function",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "heure d'envoi",
> "func": "// Convertir la chaîne en objet Date\nvar date = new Date();\n\n// Formater l'heure en format 24 heures\nvar hours = date.getHours();\nvar minutes = date.getMinutes();\n\n// ajouter un zéro devant les chiffres si nécessaire\nhours = hours < 10 ? \"0\" + hours : hours;\nminutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n// Afficher l'heure au format 24 heures\nvar formattedTime = hours + \":\" + minutes;\n\n// envoyer au format 24h\nmsg.payload = formattedTime;\n\nreturn msg;",
> "outputs": 1,
> "timeout": 0,
> "noerr": 0,
> "initialize": "",
> "finalize": "",
> "libs": [],
> "x": 1110,
> "y": 160,
> "wires": [
> [
> "89002c75327e8e5f"
> ]
> ]
> },
> {
> "id": "e389303bb28be230",
> "type": "inject",
> "z": "7ff8481b0e530218",
> "g": "467565bd915a2a8d",
> "name": "",
> "props": [
> {
> "p": "payload"
> },
> {
> "p": "topic",
> "vt": "str"
> }
> ],
> "repeat": "",
> "crontab": "",
> "once": false,
> "onceDelay": 0.1,
> "topic": "",
> "payload": "",
> "payloadType": "date",
> "x": 940,
> "y": 120,
> "wires": [
> [
> "21097eb9222e6af0"
> ]
> ]
> },
> {
> "id": "f4ab211ed11dc81c",
> "type": "mqtt-broker",
> "name": "192.168.0.125:1883",
> "broker": "192.168.0.125",
> "port": "1883",
> "clientid": "",
> "autoConnect": true,
> "usetls": false,
> "protocolVersion": "4",
> "keepalive": "60",
> "cleansession": true,
> "autoUnsubscribe": true,
> "birthTopic": "",
> "birthQos": "0",
> "birthPayload": "",
> "birthMsg": {},
> "closeTopic": "",
> "closeQos": "0",
> "closePayload": "",
> "closeMsg": {},
> "willTopic": "",
> "willQos": "0",
> "willPayload": "",
> "willMsg": {},
> "userProps": "",
> "sessionExpiry": ""
> }
> ]
> 
> ```
