Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
Fred06
Messages : 32
Inscription : 14 nov. 2016, 15:32
Localisation : France - PACA

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message 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.
Fred06
--- Raspberry Pi 2 - Pi3 - Pi3+ - Pi4 - Esp01 -Esp32 - PiDrive - RFXtrx433E -
- Sondes Orégon - Télé-Info EDF - Cam Usb --- et plein d'autres choses ---
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message par Keros »

Tu as redémarré ton système complètement ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message 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
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
yvesjose
Messages : 55
Inscription : 16 déc. 2019, 10:17

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message 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
Infos_Tempo.png (11.94 Kio) Consulté 1504 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
Dernière modification par yvesjose le 27 nov. 2023, 20:47, modifié 1 fois.
Hard: Synology
Soft: Domoticz (2023.2 sous docker / NAS synology )
Devices:RTL-SDR(Rtl_433), Sonoff(ESP-easy), Station La Crosse WS1650, téléinfo wifi avec Tasmota.
Travaux Perso : Décodage Pulsadis EDF (Tempo/EJP/HC)
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message par lost »

yvesjose a écrit : 27 nov. 2023, 11:59 Récupération des nombres de jours restants avec ce lien sur le site EDF :
-> https://particulier.edf.fr/services/res ... erte=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/res ... 2023-11-27
réponse : {"couleurJourJ":"TEMPO_BLANC","couleurJourJ1":"TEMPO_BLANC"}
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!
Sebastiii
Messages : 17
Inscription : 14 oct. 2021, 17:37

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message par Sebastiii »

@yvesjose

Salut, merci pour ton script que je viens de tester et qui fonctionne bien :D
Pour le moment, je ne commanderai rien derrière mais ça permet d'avoir le status rapidement ;)
Fred06
Messages : 32
Inscription : 14 nov. 2016, 15:32
Localisation : France - PACA

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message 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.
Fred06
--- Raspberry Pi 2 - Pi3 - Pi3+ - Pi4 - Esp01 -Esp32 - PiDrive - RFXtrx433E -
- Sondes Orégon - Télé-Info EDF - Cam Usb --- et plein d'autres choses ---
brannou
Messages : 29
Inscription : 23 oct. 2020, 00:21

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message 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
Tempo.png (147.7 Kio) Consulté 1340 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 !!!
Dernière modification par brannou le 08 déc. 2023, 18:52, modifié 1 fois.
brannou
Messages : 29
Inscription : 23 oct. 2020, 00:21

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message par brannou »

Du coup, Voici ma consommation les jours rouges (vendredi et mercredi)
Les heures creuses en bleu clair.

Rouge.png
Rouge.png (296.6 Kio) Consulté 1329 fois
JeanBonnot
Messages : 37
Inscription : 18 sept. 2019, 08:36

Re: Tempo EDF Couleur du jour - Couleur de demain - sortie relais

Message par JeanBonnot »

Super, merci yvesjose ! 8-)
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
Répondre