Je commence à programmer des scénarios sur ma V5 en lien avec les heures de coucher et lever du soleil.
En convertissant les timestamp, je me rends compte que j’ai un décalage de 2h avec les heures réelles de lever/coucher du soleil.
Sur le site openweathermap, pour mes coordonnées, les heures affichées sont bonnes.
Les réglages de l’IPX sont bons (GMT+1, heure été/hiver automatique).
Ca ressemble très fortement à une histoire de timezone.
Quelqu’un a une idée ?
Le module météo renvoie un Timestamp décalé de 2h.
J’ai essayé avec une autre localisation en GMT+7, c’est aussi décalé de 2h. Donc c’est pas une histoire de TimeZone.
En revanche, les widgets météo, afficheur de temps, IPX Clock sont tous bons et coordonnés.
L’IO Day/Night est bien reliée à la corélation de l’IPX Clock avec la variable affichée dans le widget sunrise/sunset.
En conclusion, le fonctionnement et les affichages sont bons au sein de l’IPX.
Mais il faut faire attention si on échange avec l’extérieur (script, node-red, etc…) ou si on fait des fonctions dessus car les valeurs brutes des timestamp en sortie du module sont NOK.
Peut être un point à faire remonter aux équipes techniques?
Bonjour,
je pense que c’est l’heure d’été qui n’est pas appliquée au Timestamps de l’objet météo (sunrise, sunset) et que ces derniers sont corrigés dans le widget. Si c’est bien cela, c’est récupérable par une fonction et un calendrier en attendant une évolution éventuelle. @Jeremy_GCE@Kevin_GCE
bonne journée
Les timestamps des valeurs remontées par le module météo sont exprimées au GMT, or, en France, nous sommes en GMT+2 l’été et GMT +1 l’hiver. L’application de cet ajustement est effectivement appliqué par les widgets. En cas de l’utilisation de ces timestamps par une autre application, il faut effectivement penser à faire l’justement également.
Avec un objet calendrier « tous les jours à 02:30 », il est possible de programmer un push GET sur la V5 et traiter la réponse JSON dans un parser grâce à l’API http://worldtimeapi.org/api/timezone/Europe/Paris
Le json contient « dst » true. Ce flag booléen signifie que nous sommes en heure d’été.
Il suffit alors de récupérer sa valeur dans une variable type IO.
Un objet preset fixera la valeur d’une variable analogique à 1 heure ou 2 heures (exprimées en secondes) selon l’état de l’IO puis une « Fonction » traitera alors l’information sur le timestamp du module Météo.
Une autre solution :Timezonedb.com
Cette autre API fournit toutes les informations, y compris les dates de début (zoneStart) et de fin (zoneEnd) de l’heure d’été pour une zone donnée, sous forme de timestamps.
Il faut s’enregistrer pour obtenir une clé.
Configuration du push :
Méthode GET
Adresse : api.timezonedb.com
Port : 80
Auth mode : none
TLS : désactivé
Requête ON : /v2.1/get-time-zone?key=${apiKey}&format=json&by=zone&zone=Europe/Paris
Remplacez la chaine ${apiKey} par votre ApiKey obtenue sur Timezonedb.
Pour la programmation, il faut alors comparer les timestamps fournis dans la réponse avec l’horloge de l’ipx.
Il faut par conséquent récupérer les paramètres zoneStart et zoneEnd dans des analogiques 32 bits grâce à un objet Parser.
L’avantage de cette API, c’est qu’il suffit d’exécuter la requête une seule fois par an, ce qui réduit considérablement les risques liés à l’indisponibilité du cloud, contrairement à l’API précédente qui doit être exécutée quotidiennement après 02:00 du matin.
Je crois que j’ai reussi à créer le push (sans plus de conviction que ca mais on verra demain )
est-ce que j’ai quelque chose à faire pour que le déclenchement de mes volets (basé sur le plug-in météo dans scenario ) se fasse maintenant aux heures planifiés initialement ou dois-je aussi faire:
Pour la programmation, il faut alors comparer les timestamps fournis dans la réponse avec l’horloge de l’ipx.
Il faut par conséquent récupérer les paramètres zoneStart et zoneEnd dans des analogiques 32 bits grâce à un objet Parser.
L’avantage de cette API, c’est qu’il suffit d’exécuter la requête une seule fois par an, ce qui réduit considérablement les risques liés à l’indisponibilité du cloud, contrairement à l’API précédente qui doit être exécutée quotidiennement après 02:00 du matin.
si je dois faire ce que vous décrivez, est ce qu’il serait possible de détailler les étapes avec des captures parce que la je suis largé
(au départ je faisais juste une maj moi je voulais embeter personne )
Je crois que j’ai compris:
Avant le Bug (qui va bientôt fêter son anniversaire d’ailleurs…)
pour faire un déclenchement il fallait:
utiliser le plug-in météo pour lui demander si c’était le jour ou la nuit il répondait et on pouvait déclencher l’action.
Avec le contournement:
1-"push"J’appelle un service (fonction push) pour lui demander si c’est l’été ou l’hiver.
2-« parse »+"variable+"preset"Si c’est l’été alors j’ajoute 2heures, si c’est l’hiver alors j’ajoute 1h à l’heure qui est renvoyée par le plug-in météo
3-J’ai un « preset » qui fait cette addition et qui me donne l’heure corrigée du lever.
4-J’ai un autre « preset » qui me donne l’heure corrigée du coucher.
5-Un fois que j’ai ca je dois modifier mes scénarios existant et maintenant demander est-ce que l’heure de l’IPX est égale à l’heure de coucher/lever corrigé pour obtenir la bonne commande
1-J’appelle un service (fonction push) pour lui demander si c’est l’été ou l’hiver.
Citation
ne autre solution :Timezonedb.com
Cette autre API fournit toutes les informations, y compris les dates de début (zoneStart) et de fin (zoneEnd) de l’heure d’été pour une zone donnée, sous forme de timestamps.
Il faut s’enregistrer pour obtenir une clé.
Configuration du push :
Méthode GET
Adresse : api.timezonedb.com
Port : 80
Auth mode : none
TLS : désactivé
Requête ON : /v2.1/get-time-zone?key=${apiKey}&format=json&by=zone&zone=Europe/Paris
Remplacez la chaine ${apiKey} par votre ApiKey obtenue sur Timezonedb.
2-Si c’est l’été alors j’ajoute 2heures, si c’est l’hiver alors j’ajoute 1h à l’heure qui est renvoyée par le plug-in météo.
Un objet preset fixera la valeur d’une variable analogique à 1 heure ou 2 heures (exprimées en secondes) selon l’état de l’IO puis une « Fonction » traitera alors l’information sur le timestamp du module Météo.
dans mon cas, pour appeler la valeur du lever de soleil du plug-in météo, j’utilise $327688$
et pour appeler le temps à ajouter, je vais récupérer la valeur de mon preset:
ce qui doit vous donner quelque chose comme:
$327689$ + $262153$
5-Maintenant je dois modifier mes scénarios existant et demander est-ce que l’heure de l’IPX est égale à l’heure de coucher/lever corrigé pour juste savoir si c’est la nuit pour pas
bon bah ca ne fontionne pas : je pense qu’il y a un problème avec les fonctions parce que quand je demande l’affichage des fonctions sur le dashboard, il me retroune 0 alors que je devris avoir la veulr en seconde calculée n’est ce pas?pour le résultat des fonction lever et couché