Page 19 sur 23
Re: MAJ Tempo EDF
Publié : 27 déc. 2024, 09:08
par Alain78
salinois a écrit : 26 déc. 2024, 17:43
hello,
ce matin l'icon de "Demain" était en Undefined. A 10h00 toujours rien; donc j'ai changé l'heure dans le script et cela a fonctionné,
c'est Rouge ( j'ai remis la bonne heure apres dans le script). Par contre, pour Alain78, je n'ai pas reçu d'Email d'alerte; j'ai fait le test dans la partie Mail de Parametres de Domoticz, et cela fonctionne; c'est bien ce mail là qui est utilisé dans le script ?
il ne manquerai pas un "mailto"; je cherche.
est-ce que ça pourrait être ça la solution ?
Code : Tout sélectionner
domoticz.email("Alerte TEMPO jour ROUGE", message, domoticz.PRIORITY_EMERGENCY)
au lieu de domoticz.notify et la suite de la ligne est correcte aussi ou faut-il modifier aussi qqch ?
a+
Salinois
Bonjour salinois,
Oui pour les messages cela dépend a quelle heure tu as exécuté ta modification. Il y a des conditions d'heures pour envoyé le message. j'ai réalisé une petite modification mais je la publierais si ok au prochain jour rouge.
As tu bien reçu les notifications de jours rouges provisoires lors des précédents jours rouges ?
Si oui la partie envoi de messages par mail est bonne.
Bonne journée
Alain
Re: MAJ Tempo EDF
Publié : 27 déc. 2024, 09:38
par salinois
hello Alain78,
bon hier , c'est vrai que l'info avec Enedis n'a pas fonctionné de suite, donc hier en cherchant sur le net, j'ai vu que certains avaient mis
"domoticz.email; donc je l'ai modifié dans le script et ce matin j'ai bien reçu ce mail à "05:55", ce qui correspond pour l'horaire au script "script_time_Tempo_HP-HC"
sujet: Alerte TEMPO jour ROUGE
Aujourd'hui : 2024-12-27 La couleur TEMPO est: ROUGE
Est-ce que j'aurai dû le recevoir hier aussi ? oui je pense
Donc, est-ce que je laisse comme ça?
dans mes logs today: 2024-12-27 05:55:03.642 Notification sent (email) => Success
a+
salinois
ps: quand j'ai modifié le script pour email, il n'y avait pas eu de jours ROUGE après ma modif..
Re: MAJ Tempo EDF
Publié : 27 déc. 2024, 14:39
par Pierrot72
Juste pour retour d'information, de mon côté ça fonctionne simplement et parfaitement.
Pierrot72 a écrit : 10 sept. 2024, 01:37
J'amène ma pierre à l'édifice.
J'utilise deux variables utilisateur pour traiter couleur J et J+1
C'est un script en python, je le lance tous les jours à midi et ça marche nickel.
Veuillez à bien mettre l'IP de votre domoticz et l'IDX des deux variables (en haut du script tempo.py)
Donc dans /home/pi/domoticz/scripts j'ai deux fichier: tempo.sh et tempo.py
tempo.sh :
et
tempo.py
Code : Tout sélectionner
#!/usr/bin/env python
import requests
from datetime import date
import time
# Variables pour Domoticz
domoticz_ip = '192.168.0.10:8080'
idx_couleur_jour = '109'
idx_couleur_jour_j1 = '110'
vname_couleur_jour = 'Couleur TEMPO J'
vname_couleur_jour_j1 = 'Couleur TEMPO J+1'
def map_code_to_color(code):
# Mapping des codes de jour à des couleurs spécifiques
mapping = {
0: "Non défini",
1: "Bleu",
2: "Blanc",
3: "Rouge"
}
return mapping.get(code, "Inconnu")
def get_tempo_colors():
# URLs de l'API
url_today = 'https://www.api-couleur-tempo.fr/api/jourTempo/today'
url_tomorrow = 'https://www.api-couleur-tempo.fr/api/jourTempo/tomorrow'
try:
# Requête pour obtenir la couleur du jour
response_today = requests.get(url_today)
if response_today.status_code == 200:
data_today = response_today.json()
couleur_jour = map_code_to_color(data_today.get('codeJour', 0))
else:
log_to_domoticz(f"Erreur lors de la requête pour la couleur du jour: {response_today.status_code}")
return None, None
# Requête pour obtenir la couleur du lendemain
response_tomorrow = requests.get(url_tomorrow)
if response_tomorrow.status_code == 200:
data_tomorrow = response_tomorrow.json()
couleur_jour_j1 = map_code_to_color(data_tomorrow.get('codeJour', 0))
else:
log_to_domoticz(f"Erreur lors de la requête pour la couleur du lendemain: {response_tomorrow.status_code}")
return couleur_jour, None
return couleur_jour, couleur_jour_j1
except Exception as e:
log_to_domoticz(f"Une erreur s'est produite: {e}")
return None, None
def update_domoticz_variables(couleur_jour, couleur_jour_j1):
# URL de l'API JSON de Domoticz
url_domoticz = f'http://{domoticz_ip}/json.htm'
# Paramètres pour mettre à jour la variable de couleur du jour (J) dans Domoticz
params_couleur_jour = {'type': 'command', 'param': 'updateuservariable', 'idx': idx_couleur_jour, 'vname': vname_couleur_jour, 'vtype': 2, 'vvalue': couleur_jour}
# Paramètres pour mettre à jour la variable de couleur du jour suivant (J+1) dans Domoticz
params_couleur_jour_j1 = {'type': 'command', 'param': 'updateuservariable', 'idx': idx_couleur_jour_j1, 'vname': vname_couleur_jour_j1, 'vtype': 2, 'vvalue': couleur_jour_j1}
try:
# Envoyer la requête pour mettre à jour la variable de couleur du jour (J) dans Domoticz
response_couleur_jour = requests.get(url_domoticz, params=params_couleur_jour)
# Vérifier si la requête a réussi
if response_couleur_jour.status_code != 200:
log_to_domoticz(f"Erreur lors de la mise à jour de la couleur TEMPO J dans Domoticz: {response_couleur_jour.status_code}")
# Envoyer la requête pour mettre à jour la variable de couleur du jour suivant (J+1) dans Domoticz
response_couleur_jour_j1 = requests.get(url_domoticz, params=params_couleur_jour_j1)
# Vérifier si la requête a réussi
if response_couleur_jour_j1.status_code != 200:
log_to_domoticz(f"Erreur lors de la mise à jour de la couleur TEMPO J+1 dans Domoticz: {response_couleur_jour_j1.status_code}")
except Exception as e:
log_to_domoticz(f"Une erreur s'est produite lors de la mise à jour des variables dans Domoticz: {e}")
def log_to_domoticz(message):
# URL pour ajouter un log dans Domoticz
url_log = f'http://{domoticz_ip}/json.htm?type=command¶m=addlogmessage&message={message}'
try:
response = requests.get(url_log)
if response.status_code != 200:
print(f"Erreur lors de l'envoi du log à Domoticz: {response.status_code}")
except Exception as e:
print(f"Une erreur s'est produite lors de l'envoi du log à Domoticz: {e}")
# Appel de la fonction pour obtenir les couleurs Tempo du jour en cours et du jour suivant
couleur_jour, couleur_jour_j1 = get_tempo_colors()
# Affichage des résultats et enregistrement des logs
if couleur_jour is not None and couleur_jour_j1 is not None:
log_to_domoticz("* Les valeurs EDF Tempo ont bien été mises à jour")
log_to_domoticz(f"* Aujourd'hui est un jour : {couleur_jour}")
log_to_domoticz(f"* Demain est un jour : {couleur_jour_j1}")
# Appel de la fonction pour mettre à jour les variables dans Domoticz
update_domoticz_variables(couleur_jour, couleur_jour_j1)
else:
log_to_domoticz("Impossible d'obtenir les couleurs Tempo.")
# Attendre 3 secondes avant de fermer
time.sleep(3)
Re: MAJ Tempo EDF
Publié : 29 déc. 2024, 07:11
par lost
Alain78 a écrit : 27 déc. 2024, 09:08
As tu bien reçu les notifications de jours rouges provisoires lors des précédents jours rouges ?
Hello, ce jour va être un jour test: Ce sera rouge demain lundi et, vu de dehors, sans l'ombre d'une hésitation comme parfois ces derniers jours non bleu, car annoncé ici comme le plus souvent: entre 6h00 et 6h15.
Sinon pour info j'envoie pour ma part des notifs mail si J ou J1 non bleu (passé la période J1 indéfinie éventuelle): AInsi cela annonce certes blanc/rouge (même si blanc, c'est du "best effort" pour ma part, sans sélection d'un timer-plan qui coupe tous les gros consommateurs) mais aussi les transitions blanc/rouge vers bleu (car on aura alors toujours J non bleu).
C'est certes plus de mails, mais cela donne aussi une chance de se rendre compte d'un pb de notif sur du blanc, donc généralement avant les 1ers rouges.
Re: MAJ Tempo EDF
Publié : 29 déc. 2024, 09:07
par salinois
hello Alain78,
ce matin pas de mail mais des erreurs dans les logs
024-12-29 06:40:05.582 Error: SMTP Mailer: Error sending Email to: <2> !
2024-12-29 06:40:05.582 Error: libcurl: (55)
2024-12-29 06:40:05.582 Error: RCPT failed: 550
2024-12-29 06:40:05.582
2024-12-29 06:40:05.582 Error: Notification failed (Email)
salinois
Re: MAJ Tempo EDF
Publié : 29 déc. 2024, 09:22
par Alain78
Bonjour salinois,
Pour moi cela a bien fonctionné, a priori vu le message , le destinataire n'existe pas. As-tu bien vérifié dans paramètre et e-mail, le test fonctionne toujours?
As-tu modifier quelque chose dans le script ?
Les lignes ( autour de la ligne 95) que j'ai dans le script: "script_time_Tempo_Couleur_RTE" :
Code : Tout sélectionner
-- Envoi de mail pour information Jour Rouge demain
if tempoDay.J1 == "ROUGE" and ((nowDate.hour >= 10 and nowDate.minutes > 30) or (nowDate.hour > 10 )) then -- demain jour ROUGE
message = 'Demain le: '..DateTempoJ1..' la couleur TEMPO sera: ROUGE'
domoticz.notify("Alerte TEMPO jour ROUGE", message, domoticz.PRIORITY_EMERGENCY)
elseif tempoDay.J1 == "ROUGE" and nowDate.hour <= 10 then -- demain jour ROUGE
message = 'Demain le: '..DateTempoJ1..' la couleur provisoire TEMPO sera: ROUGE'
domoticz.notify("Alerte TEMPO provisoire jour ROUGE", message, domoticz.PRIORITY_EMERGENCY)
end
Bonne journée
Alain
Re: MAJ Tempo EDF
Publié : 29 déc. 2024, 10:14
par salinois
bonjour Alain,
oui le test fonctionne toujours
bizarre
salinois
Re: MAJ Tempo EDF
Publié : 29 déc. 2024, 13:52
par salinois
re Alain,
j'avais mis ça dans le script car le jour du "Rouge", j'avais reçu un mail avec cette modif.
Code : Tout sélectionner
-- Envoi de mail pour information Jour Rouge demain
if tempoDay.J1 == "ROUGE" and nowDate.hour > 10 then -- demain jour ROUGE
message = 'Demain le: '..DateTempoJ1..' la couleur TEMPO sera: ROUGE'
domoticz.email("Alerte TEMPO jour ROUGE", message, domoticz.PRIORITY_EMERGENCY)
elseif tempoDay.J1 == "ROUGE" and nowDate.hour < 10 then -- demain jour ROUGE
message = 'Demain le: '..DateTempoJ1..' la couleur provisoire TEMPO sera: ROUGE'
domoticz.email("Alerte TEMPO provisoire jour ROUGE", message, domoticz.PRIORITY_EMERGENCY)
end
mais si cela a marché pour toi, je vais remettre comme à l'origine ( le test fonctionne bien sur mon email)
voilà c'est fait, je vais attendre donc.
salinois
Re: MAJ Tempo EDF
Publié : 30 déc. 2024, 09:05
par salinois
hello Alain78,
ce matin , j'ai reçu le mail:
Aujourd'hui : 2024-12-30 La couleur TEMPO est: ROUGE
là ça fonctionne, mais pas le jour d'avant , pourquoi !!!
salinois
Re: MAJ Tempo EDF
Publié : 30 déc. 2024, 09:52
par Alain78
Bonjour salinois,
Le mail reçu ce matin viens du script : "
script_time_Tempo_HP-HC" exécuter à 5h55.
Le mail pour le jour Rouge du lendemain ( provisoire et définitif) est généré par le script: "
script_time_Tempo_Color_RTE"
J'ai mis ce dernier script en version 1.4 (
viewtopic.php?p=122438#p122438)
Il intègre une variable au début pour indiquer l'heure de validation d'ENEDIS.
Traitement du mail d'envoi en provisoire et définitif en cas de jours rouges.
Testé et validé par le jour rouge annoncé hier.
Je crois que tous les petits bugs sont maintenant réglés.
Ne pas oublier pour bien recevoir des mails avec la commande "notify" d'activer dans les paramètres de domoticz dans l'onglet "e-mail" les notifications par e-mail.
Bonne journée
Alain