Problème avec mon objet "comparateur" et module "Météo"

Bonjour à tous,

Je rencontre un souci avec un comparateur sur IPX800 V5 que je n’arrive pas à expliquer.


:bullseye: Objectif :

Je cherche à détecter si on est après le coucher du soleil, en comparant :

  • Variable A : [IPX]|CLOCK → valeur actuelle = 1753036664
  • Variable B : [WEATHER]|SUNSET → valeur = 1753054720

Je veux juste tester :

CLOCK > SUNSET

:gear: Ma configuration :

  • Dans l’éditeur du comparateur, les bonnes valeurs sont bien présentes :
    • A = 1753036664
    • B = 1753054720
  • Opérateur utilisé : A > B

:cross_mark: Le problème :

Dès que je valide, sur la tuile du comparateur, je vois :

Variable A : 1753000000
Variable B : 1753100000

Ces valeurs ne sont pas celles que j’ai saisies, ni celles des sources réelles (horloge ou sunset).


:red_question_mark: Mes questions :

  • Est-ce un bug d’affichage dans l’interface ?
  • Une conversion automatique mal interprétée ?
  • Ou est-ce que j’ai oublié une liaison ou un lien vers une entrée analogique réelle ?

Merci d’avance pour vos lumières ! :folded_hands:
Je peux ajouter d’autres captures si besoin.


Bonjour,
Il faut dabord valider l’unité RAW et revenir pour la saisie de la valeur.
Cela dit, votre comparateur devrait fonctionner demain au changement de la valeur B.
Bonne journée

Merci pour ta réponse. Je continue car je me rend compte que jai deux problèmes :

:one: Comparateur RAW tronqué

Objectif :
Détecter si on est après le coucher du soleil :

CLOCK > SUNSET  

Configuration :

  • Variable A → [IPX]|CLOCK (RAW) = 1753036664
  • Variable B → [WEATHER]|SUNSET (RAW) = 1753054720
  • Opérateur : A > B

Symptôme :

  • Dans l’éditeur, on a bien 1753036664 et 1753054720.
  • Sur la tuile du comparateur, j’obtiens A = 1753000000 et B = 1753100000 (arrondi).
  • Le calcul reste juste (la sortie bascule correctement), mais l’affichage des valeurs est tronqué à la dizaine de millions près.

:two: Décalage Day/Night du plugin Météo

Contexte :

  • IPX800 V5: passage de la v5.5.8 à la v5.6.2 le 07/07/2025 (~19h55)
  • Plugin météo : OpenWeatherMap via IPX800 V5

Problème observé :
Depuis la mise à jour, la tuile Day/Night (du module Météo) passe en Mode Nuit vers 23h4x :

Date Historique Day/Night
2025-07-08 23:49 (Nuit)
2025-07-07 23:50 (Nuit)
2025-07-06 21:51 (Nuit)

+2 h par rapport à avant la mise à jour du firmware.

Vérifications déjà effectuées :

  • Fuseau UTC+2 et heure système IPX corrects.
  • API renvoie bien les bons timestamps.
  • Aucun “offset” défini dans le plugin météo.
  • Aucun scénario externe ne modifie Day/Night.

:red_question_mark: Questions ???

  1. (Partie :one:) Comparateur RAW : s’agit-il d’un bug d’affichage (arrondis) ou d’une conversion mal appliquée dans l’UI ?
  2. (Partie :two:) Day/Night : la 5.6.2 a-t-elle introduit un décalage lié au DST ou à la gestion du timezone ?
  3. Le problème est connu ? ou existe-t-il un paramètre caché pour recalibrer ces heures ?

Merci d’avance pour vos retours et votre aide !

Depuis la mise à jour firmware v5.6.2, le module Météo de l’IPX800 V5 garde un décalage de +2 h sur le passage Jour/Nuit et l’affichage du coucher de soleil n’est plus fiable. Plutôt que d’attendre un correctif, j’ai choisi de :

  1. Mettre de côté (pour le moment) le plugin météo intégré.
  2. Requêter directement l’API Open Data du Royal Meteorological Institute (IRM) pour la Belgique.
  3. Piloter mes sorties IO de l’IPX800 en fonction des données officielles.

Solution pas à pas

1. Installer Node‑RED

Assurez‑vous d’avoir Node‑RED en service (sur un Raspberry Pi, un PC, etc.).

2. Identifier votre station IRM

3. Flow Node‑RED

  1. Inject (timer) : déclenchement toutes les 5 – 15 minutes.
  2. HTTP Request → WFS GetFeature synop_data
https://opendata.meteo.be/service/ows?
  service=WFS&version=2.0.0&request=GetFeature
  &typeNames=synop:synop_data
  &outputFormat=application/json
  &cql_filter=code='6447'
  &sortBy=timestamp%20DESC&count=1
  1. Function “Parse IRM” : extraire les propriétés
const feat = msg.payload.features[0];
if (!feat) return null;
const p = feat.properties;
msg.payload = {
  temperature: p.Temp,
  pleut:       p.precip_quantity > 0,
  jour:        p.is_day === 1
};
return msg;
  1. Switch + RBE (report by exception)
  • Ne laisse passer que si pleut (ou jour) change.
  1. Template True / False
  • { "on": true } si alerte, { "on": false } sinon.
  1. HTTP Request (PUT)IPX800 V5
http://<IP_IPX800>/api/core/io/67052?ApiKey=<VOTRE_APIKEY>
  • Body = payload du template.

Voici un exemple de payload (JSON) tel qu’il sort de votre fonction avec plusireurs sortie :

{
  "temperature": 16.1,
  "feels_like": 17.2,
  "windspeed": 6.8,
  "winddirection": 176,
  "weathercode": 0,
  "is_day": "Nuit",
  "pleut_maintenant": false,
  "va_pleuvoir": false,
  "vent_fort": false,
  "risque_uv": false,
  "orage": false,
  "jour": false,
  "sunrise": "2025-07-24T05:53",
  "sunset": "2025-07-24T21:33",
  "sunrise_passed": true,
  "sunset_passed": false,
  "precipitation_now": 0,
  "uv_index": 0.05,
  "pluie_jour_mm": 1.5
}

Pour ceux que ça intéresse, voici un fichier JSON de mes nœuds ; prenez-le comme exemple.
Pour la Belgique, modifiez la 1er requête en renseignant vos coordonnées géographiques en décimal.
Pour agir sur une IO de votre IPX, changez dans la requête l’adresse de votre automate, l’ID de l’IO et votre API key.
flows (7).rar (4,1 Ko)

2 « J'aime »