Page 3 sur 4
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 26 nov. 2023, 21:19
par Fred06
Bonsoir,
Mon device de type "Général Alert" issu de l'info téléinfo du Linky est en mode clignotant dans mon Domoticz !!!
A une fréquence de 2 secondes, elle passe alternativement de 0 à 2 ce qui engendre des changement d'état et une multitude d'enregistrements dans les archives (ci dessous) !!!
Seul (le n° alerte) change, pas le message (je ne sais pas comment il est généré)
Le fait de changer la fréquence de mise à jour dans le "Matériel" ne fait que changer la fréquence de 'clignotant'
2023-11-26 21:08:37 (0) Demain, jour BLANC
2023-11-26 21:08:35 (2) Demain, jour BLANC
2023-11-26 21:08:33 (0) Demain, jour BLANC
2023-11-26 21:08:31 (2) Demain, jour BLANC
2023-11-26 21:08:29 (0) Demain, jour BLANC
2023-11-26 21:08:27 (2) Demain, jour BLANC
2023-11-26 21:08:25 (0) Demain, jour BLANC
2023-11-26 21:08:21 (2) Demain, jour BLANC
2023-11-26 21:08:19 (0) Demain, jour BLANC
2023-11-26 21:08:17 (2) Demain, jour BLANC
2023-11-26 21:08:15 (0) Demain, jour BLANC
2023-11-26 21:08:13 (2) Demain, jour BLANC
Une idée de la provenance de ce bug ou comment le contourner ?
Merci.
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 27 nov. 2023, 03:24
par Keros
Tu as redémarré ton système complètement ?
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 27 nov. 2023, 06:36
par denis_brasseur
Cela ressemble à un script en trigger device au lieu d'un trigger time, donc exécution du script à chaque changement d'un device
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 27 nov. 2023, 11:59
par yvesjose
Bonjour à tous
Je n'ai pas étudié vos scripts, mais je vous propose le mien écrit en 'dzvents' actuellement en test.
il faut créer un device dummy Alert ici : 'Infos Tempo' et une variable utilisateur type chaine : 'Nbjtempo'.
Résultat affichage :

- Infos_Tempo.png (11.94 Kio) Consulté 1497 fois
Code : Tout sélectionner
--[[ Script test Tempo V1.0 YJB 27/11/2023
Ces infos sont théoriquement disponible à partir de 11H00 mais je vérifie toutes les 30 minutes pour info sur linky on a les infos a 20H00
Récupération des nombres de jours restants avec ce lien sur le site EDF :
-> https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
réponse : {"PARAM_NB_J_BLANC":40,"PARAM_NB_J_ROUGE":22,"PARAM_NB_J_BLEU":215}
Récupération des couleurs pour aujourd'hui et demain avec ce lien sur le site EDF :
-> https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant=2023-11-27
réponse : {"couleurJourJ":"TEMPO_BLANC","couleurJourJ1":"TEMPO_BLANC"}
--]]
local Jour_semaine = { 'Dimanche' , 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi' }
local alerte_tempo = 'Infos Tempo' -- renseigner le nom de l'éventuel device alerte Tempo associé (dummy - alert)
return {
on = {
timer = { 'at *:05', 'at *:35' }, -- Vérification toutes les 30 minutes pour avoir l'info au plutôt en général on aura l'info à 11H05
-- timer = { 'every 5 minutes' }, -- pour test
httpResponses = {
'Rep_njb_tempo', 'Rep_couleur_tempo' -- correspond au callback passé avec openURL command
}
},
-- logging = {
-- level = domoticz.LOG_INFO,
-- marker = 'template',
-- },
execute = function(domoticz, item)
local day = Jour_semaine[tonumber(os.date("%w")) + 1]
local devTempo = domoticz.devices(alerte_tempo) -- On récupère le device alerte pour tester la couleur actuelle
local Etat = devTempo.text -- on récupère le texte pour vérifier s'il a changé
local function text_color(text,color)
if color == 1 then text = '<FONT COLOR=#00FF00>' .. text .. '</FONT>' end -- Vert
if color == 2 then text = '<FONT COLOR=#FFE436>' .. text .. '</FONT>' end -- Jaune
if color == 3 then text = '<FONT COLOR=#FFA500>' .. text .. '</FONT>' end -- Orange
if color == 4 then text = '<FONT COLOR=#FF0000>' .. text .. '</FONT>' end -- Rouge
return text
end
local Time = require('Time')
if (item.isTimer) then
domoticz.openURL({
url = 'https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO',
method = 'GET',
headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"},
callback = 'Rep_njb_tempo', -- see httpResponses above.
})
end
if (item.isHTTPResponse) then
if (item.ok) then
if (item.trigger == 'Rep_njb_tempo') then
-- {"PARAM_NB_J_BLANC":41,"PARAM_NB_J_ROUGE":22,"PARAM_NB_J_BLEU":215}
if (item.isJSON) then
local NbjBleu = item.json.PARAM_NB_J_BLEU -- Nombre de jours restants
local NbjBlanc = item.json.PARAM_NB_J_BLANC
local NbjRouge = item.json.PARAM_NB_J_ROUGE
Nbjrestant = 'Bleu : ' .. NbjBleu .. ' Blanc : ' .. NbjBlanc .. ' Rouge : ' .. NbjRouge
print( 'Nb Jours restants : ' .. Nbjrestant)
if Nbjrestant ~= domoticz.variables('Nbjtempo').value then
domoticz.variables('Nbjtempo').set(Nbjrestant) -- stockage dans une variable utilisateur du nombre de jours restants pour affichage dans la device alerte
end
end
url_ctempo = 'https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant=' .. domoticz.time.rawDate
domoticz.openURL({
url = url_ctempo,
method = 'GET',
headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"},
callback = 'Rep_couleur_tempo', -- see httpResponses above.
})
end
if (item.trigger == 'Rep_couleur_tempo') then
texte = domoticz.variables('Nbjtempo').value
-- {"couleurJourJ":"TEMPO_BLEU","couleurJourJ1":"TEMPO_BLANC"}
if (item.isJSON) then
jourj = item.json.couleurJourJ
jourj1 = item.json.couleurJourJ1
textj = 'Aujourd hui : ' .. jourj
textj1 = 'Demain : ' .. jourj1
print(textj .. ' - ' .. textj1)
-- texte = textj .. ' - ' .. textj1
if jourj == 'TEMPO_BLEU' then
couleurj = 1
-- J_couleur = 'power4%201%3Bpower5%201%3Bpower6%200' -- Bleu 1,1,0 (pilotage led RVB)
end
if jourj == 'TEMPO_BLANC' then
couleurj = 2
-- J_couleur = 'power4%200%3Bpower5%200%3Bpower6%200' -- Blanc 0,0,0 (pilotage led RVB)
end
if jourj == 'TEMPO_ROUGE' then
couleurj = 4
-- J_couleur = 'power4%201%3Bpower5%200%3Bpower6%201' -- Rouge 1,0,1 (pilotage led RVB)
end
texte = texte .. '<br>' .. text_color(textj,couleurj)
if jourj1 == 'NON_DEFINI' then
couleurj1 = 0
-- D_couleur = 'power1%203%3Bpower2%201%3Bpower3%201' -- Vert 0,1,1 => 3,1,1 pour clignotant vert
end
if jourj1 == 'TEMPO_BLEU' then
couleurj1 = 1
-- D_couleur = 'power1%201%3Bpower2%201%3Bpower3%200' -- Bleu 1,1,0
end
if jourj1 == 'TEMPO_BLANC' then
couleurj1 = 2
-- D_couleur = 'power1%200%3Bpower2%200%3Bpower3%200' -- Blanc 0,0,0
end
if jourj1 == 'TEMPO_ROUGE' then
couleurj1 = 4
-- D_couleur = 'power1%201%3Bpower2%200%3Bpower3%201' -- Rouge 1,0,1
end
texte = texte.. '<br>' .. text_color(textj1,couleurj1)
if couleurj > couleurj1 then
couleur = couleurj
else
couleur = couleurj1
end
if texte ~= Etat or devTempo.color ~= couleur then -- on mets à jour le device uniquement si les infos sont différentes
mail_texte = domoticz.variables('Nbjtempo').value .. '<br>' .. textj .. '<br>' .. textj1
if alerte_tempo ~= nil then
devTempo.updateAlertSensor(couleur,texte) -- .updateAlertSensor(couleur,message) -- Vert=1 Jaune=2 Orange=3 Rouge=4
end
-- domoticz.email('Changement état Tempo', mail_texte , 'prenom.nom@xxxmail.com')
end
end
end
else
domoticz.log('There was a problem handling the request', domoticz.LOG_ERROR)
domoticz.log(item, domoticz.LOG_ERROR)
end
end
end
}
Etant sur NAS je pilote 2 leds RVB en Wifi via un "Wemos D1 Mini(ESP8266)" sous tasmota avec 2x3 Gpios
On peut insérer ces pilotages perso en lieu et place.
C'est un premier jus, bonne lecture.
Cordialment YJB
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 27 nov. 2023, 14:32
par lost
Tiens, je connaissais la seconde URL (que j'utilise) pour couleur jour+lendemain, mais pas la première qui donne direct les décomptes à jour! J'avais pas voulu m'emmerder à tenir ce décompte moi même sur une "année Tempo" pour pas compliquer le script, mais si c'est dispo tout cuit je l'ajouterais également, merci de l'info!
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 01 déc. 2023, 14:52
par Sebastiii
@yvesjose
Salut, merci pour ton script que je viens de tester et qui fonctionne bien
Pour le moment, je ne commanderai rien derrière mais ça permet d'avoir le status rapidement

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 06 déc. 2023, 20:46
par Fred06
yvesjose a écrit : 27 nov. 2023, 11:59
C'est un premier jus, bonne lecture.
Je te remercie yvesjose pour ce premier jus que tu partage,
Déjà une semaine que je l'ai ajouté à mes scripts (et un peu modifié pour envoi SMS) et ça fonctionne super.
Bonne continuation.
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 08 déc. 2023, 18:33
par brannou
Bonsoir à tous,
Pour la couleur du jour et celle du lendemain, il existe également un petit script qui permet de récupérer les deux couleurs via l'API Tempo chez RTE. Je ne suis pas spécialiste et ça ne m'a pas pris plus d'une heure . Du coup un autre petit script Blockly avec un capteur virtuel qui ne passe au rouge qu'entre 6h et 22h. Le tour est joué...

- Tempo.png (147.7 Kio) Consulté 1333 fois
Super simple pour arrêter les chauffages aux heures rouges !!!
Dans mon cas, dans le fameux script Tempo d'Alain, j'ai juste ajouté :
domoticz.devices('Tempo Rouge Demain').switchOn()
Après les lignes :
elseif ColorTempo == "RED" then
ColorTempo = "ROUGE"
Cependant, il est plus propre d'utiliser le second script d'Alain (que je n'avais pas vu...)
Merci Alain78 !!!
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 08 déc. 2023, 19:03
par brannou
Du coup, Voici ma consommation les jours rouges (vendredi et mercredi)
Les heures creuses en bleu clair.

- Rouge.png (296.6 Kio) Consulté 1322 fois
Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais
Publié : 21 févr. 2024, 16:12
par JeanBonnot
Super, merci yvesjose !
yvesjose a écrit : 27 nov. 2023, 11:59
Bonjour à tous
Je n'ai pas étudié vos scripts, mais je vous propose le mien écrit en 'dzvents' actuellement en test.
il faut créer un device dummy Alert ici : 'Infos Tempo' et une variable utilisateur type chaine : 'Nbjtempo'.
Résultat affichage :
Infos_Tempo.png
Code : Tout sélectionner
--[[ Script test Tempo V1.0 YJB 27/11/2023
Ces infos sont théoriquement disponible à partir de 11H00 mais je vérifie toutes les 30 minutes pour info sur linky on a les infos a 20H00
Récupération des nombres de jours restants avec ce lien sur le site EDF :
-> https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
réponse : {"PARAM_NB_J_BLANC":40,"PARAM_NB_J_ROUGE":22,"PARAM_NB_J_BLEU":215}
Récupération des couleurs pour aujourd'hui et demain avec ce lien sur le site EDF :
-> https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant=2023-11-27
réponse : {"couleurJourJ":"TEMPO_BLANC","couleurJourJ1":"TEMPO_BLANC"}
--]]
local Jour_semaine = { 'Dimanche' , 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi' }
local alerte_tempo = 'Infos Tempo' -- renseigner le nom de l'éventuel device alerte Tempo associé (dummy - alert)
return {
on = {
timer = { 'at *:05', 'at *:35' }, -- Vérification toutes les 30 minutes pour avoir l'info au plutôt en général on aura l'info à 11H05
-- timer = { 'every 5 minutes' }, -- pour test
httpResponses = {
'Rep_njb_tempo', 'Rep_couleur_tempo' -- correspond au callback passé avec openURL command
}
},
-- logging = {
-- level = domoticz.LOG_INFO,
-- marker = 'template',
-- },
execute = function(domoticz, item)
local day = Jour_semaine[tonumber(os.date("%w")) + 1]
local devTempo = domoticz.devices(alerte_tempo) -- On récupère le device alerte pour tester la couleur actuelle
local Etat = devTempo.text -- on récupère le texte pour vérifier s'il a changé
local function text_color(text,color)
if color == 1 then text = '<FONT COLOR=#00FF00>' .. text .. '</FONT>' end -- Vert
if color == 2 then text = '<FONT COLOR=#FFE436>' .. text .. '</FONT>' end -- Jaune
if color == 3 then text = '<FONT COLOR=#FFA500>' .. text .. '</FONT>' end -- Orange
if color == 4 then text = '<FONT COLOR=#FF0000>' .. text .. '</FONT>' end -- Rouge
return text
end
local Time = require('Time')
if (item.isTimer) then
domoticz.openURL({
url = 'https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO',
method = 'GET',
headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"},
callback = 'Rep_njb_tempo', -- see httpResponses above.
})
end
if (item.isHTTPResponse) then
if (item.ok) then
if (item.trigger == 'Rep_njb_tempo') then
-- {"PARAM_NB_J_BLANC":41,"PARAM_NB_J_ROUGE":22,"PARAM_NB_J_BLEU":215}
if (item.isJSON) then
local NbjBleu = item.json.PARAM_NB_J_BLEU -- Nombre de jours restants
local NbjBlanc = item.json.PARAM_NB_J_BLANC
local NbjRouge = item.json.PARAM_NB_J_ROUGE
Nbjrestant = 'Bleu : ' .. NbjBleu .. ' Blanc : ' .. NbjBlanc .. ' Rouge : ' .. NbjRouge
print( 'Nb Jours restants : ' .. Nbjrestant)
if Nbjrestant ~= domoticz.variables('Nbjtempo').value then
domoticz.variables('Nbjtempo').set(Nbjrestant) -- stockage dans une variable utilisateur du nombre de jours restants pour affichage dans la device alerte
end
end
url_ctempo = 'https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant=' .. domoticz.time.rawDate
domoticz.openURL({
url = url_ctempo,
method = 'GET',
headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"},
callback = 'Rep_couleur_tempo', -- see httpResponses above.
})
end
if (item.trigger == 'Rep_couleur_tempo') then
texte = domoticz.variables('Nbjtempo').value
-- {"couleurJourJ":"TEMPO_BLEU","couleurJourJ1":"TEMPO_BLANC"}
if (item.isJSON) then
jourj = item.json.couleurJourJ
jourj1 = item.json.couleurJourJ1
textj = 'Aujourd hui : ' .. jourj
textj1 = 'Demain : ' .. jourj1
print(textj .. ' - ' .. textj1)
-- texte = textj .. ' - ' .. textj1
if jourj == 'TEMPO_BLEU' then
couleurj = 1
-- J_couleur = 'power4%201%3Bpower5%201%3Bpower6%200' -- Bleu 1,1,0 (pilotage led RVB)
end
if jourj == 'TEMPO_BLANC' then
couleurj = 2
-- J_couleur = 'power4%200%3Bpower5%200%3Bpower6%200' -- Blanc 0,0,0 (pilotage led RVB)
end
if jourj == 'TEMPO_ROUGE' then
couleurj = 4
-- J_couleur = 'power4%201%3Bpower5%200%3Bpower6%201' -- Rouge 1,0,1 (pilotage led RVB)
end
texte = texte .. '<br>' .. text_color(textj,couleurj)
if jourj1 == 'NON_DEFINI' then
couleurj1 = 0
-- D_couleur = 'power1%203%3Bpower2%201%3Bpower3%201' -- Vert 0,1,1 => 3,1,1 pour clignotant vert
end
if jourj1 == 'TEMPO_BLEU' then
couleurj1 = 1
-- D_couleur = 'power1%201%3Bpower2%201%3Bpower3%200' -- Bleu 1,1,0
end
if jourj1 == 'TEMPO_BLANC' then
couleurj1 = 2
-- D_couleur = 'power1%200%3Bpower2%200%3Bpower3%200' -- Blanc 0,0,0
end
if jourj1 == 'TEMPO_ROUGE' then
couleurj1 = 4
-- D_couleur = 'power1%201%3Bpower2%200%3Bpower3%201' -- Rouge 1,0,1
end
texte = texte.. '<br>' .. text_color(textj1,couleurj1)
if couleurj > couleurj1 then
couleur = couleurj
else
couleur = couleurj1
end
if texte ~= Etat or devTempo.color ~= couleur then -- on mets à jour le device uniquement si les infos sont différentes
mail_texte = domoticz.variables('Nbjtempo').value .. '<br>' .. textj .. '<br>' .. textj1
if alerte_tempo ~= nil then
devTempo.updateAlertSensor(couleur,texte) -- .updateAlertSensor(couleur,message) -- Vert=1 Jaune=2 Orange=3 Rouge=4
end
-- domoticz.email('Changement état Tempo', mail_texte , 'prenom.nom@xxxmail.com')
end
end
end
else
domoticz.log('There was a problem handling the request', domoticz.LOG_ERROR)
domoticz.log(item, domoticz.LOG_ERROR)
end
end
end
}
Etant sur NAS je pilote 2 leds RVB en Wifi via un "Wemos D1 Mini(ESP8266)" sous tasmota avec 2x3 Gpios
On peut insérer ces pilotages perso en lieu et place.
C'est un premier jus, bonne lecture.
Cordialment YJB