Page 6 sur 12

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 02 févr. 2023, 09:37
par L'Arsène
Cette version fonctionne mieux !
Mes excuses, trop de précipitations !
Les condensateurs C1 et C5 sont volontairement < à 1µF du fait de leur taille si le montage devait être placé dans un petit boitier. Sinon comme le schéma à Yves ils pourraient faire 1µF.

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 03 févr. 2023, 12:08
par DURAM49
Salut,

merci à vous deux, mais je pense rester sur in modèle avec transfo 2v, cela me semble moins dangereux.

cordialement.
R.DURAND

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 05 févr. 2023, 15:04
par L'Arsène
Bonjour Richard, Yves,

C'est sage et sécurisant de prendre un transfo !

Yves, est-il possible de trouver des informations EJP, HC-HP et Tempo sur le net dans un format utile comme pour la domotique ?
La question est dans le but d'afficher ces informations recueillis sur le net via un réseau WiFi puis visualiser ceux-ci sur un petit afficheur autonome.

Merci d'avance pour ta réponse.
L'Arsène.

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 05 févr. 2023, 17:59
par yvesjose
Bonjour L'Arsene

Pour tempo :
J'utilise ce lien qui te donnes les infos couleurs jour et demain :
https://particulier.edf.fr/services/res ... 2023-02-05
Réponse : {"couleurJourJ":"TEMPO_BLEU","couleurJourJ1":"TEMPO_ROUGE"} en json.
et celui-ci pour les jours restants :
https://particulier.edf.fr/services/res ... erte=TEMPO
Réponse : {"PARAM_NB_J_BLANC":24,"PARAM_NB_J_ROUGE":6,"PARAM_NB_J_BLEU":176}

Pour EJP :
j'ai trouvé ce lien :
https://particulier.edf.fr/services/res ... chType=ejp
çà donne la liste de 22 jours avec le nombre de jours restants, mais je n'ai pas essayer de décoder les données jour.
(avec l'augmentation des tarifs, EJP est-il toujours intéressant par rapport à Tempo ???)

Pour HC-HP et info demain pour EJP & Tempo
Si vous avez un compteur EDf électronique (ancien ou linky) le mieux c'est de se connecter sur la sortie teleinfo compteur(TIC), avec ce schéma d'interface.
teleinfo_schema.png
teleinfo_schema.png (57.89 Kio) Consulté 2514 fois
Tu auras en plus ta consommation en direct live. Moi j'utilise un module sonoff avec tasmota et j'envoie ces infos via MQTT vers domoticz. Mais j'ai d'autre programme pour UNO/Nano en pour des compteurs en BASE en HP-HC et en TEMPO pour EJP je ne connais pas la trame et je ne peux pas la tester.

Cordialement YJB

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 06 févr. 2023, 13:25
par L'Arsène
Bonjour Yves,

Merci pour les infos.
Je me penche sur les données.

Bonne journée.
L'Arsène.

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 08 févr. 2023, 13:55
par yvesjose
Bonjour,

A partir du lien EJP sur le site EDF, j'ai crée un script dzvents pour domoticz qui récupère les infos pour le jour et lendemain.
Infos EJP.png
Infos EJP.png (13.9 Kio) Consulté 2355 fois
Surement à perfectionner en fonction des besoins, j'ai intégrer l'envoie d'email a chaque évolution des infos EDF.
je fournis un premier jus mon script voir post plus loin.
Moi je n'utilise pas EJP (je suis en tempo) donc vérifier que les infos soient correctes,

Cdlt YJB

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 09 févr. 2023, 09:20
par yvesjose
Bonjour,

Une deuxième version avec un peu de couleurs :

1/ La veille du jour EJP
Infos EJP.png
Infos EJP.png (14.16 Kio) Consulté 2292 fois
2/ Au basculement après minuit
Infos EJP 2.png
Infos EJP 2.png (14.3 Kio) Consulté 2292 fois
3/ A partir de 7H00
Infos EJP 3.png
Infos EJP 3.png (13.81 Kio) Consulté 2292 fois
Le fonctionnement à l'air correct.

nouveau script voir post suivant.
Cdlt Yjb

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 09 févr. 2023, 09:45
par Keros
Merci pour tes scripts yvesjose.

Est-ce que tu peux plutôt mettre ton script entre les balises code (il y a un bouton </>) que de le mettre dans un zip ? C'est plus pratique car on peut voir le script directement et piocher une bonne idée (je vais regarder comment tu as mis le texte en couleur dans le widget alerte) sans avoir à le télécharger, le dézipper, l'ouvrir dans un éditeur ...

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 09 févr. 2023, 09:52
par yvesjose
Bonjour Keros,

Voila mon script en non zippé :

Code : Tout sélectionner

--[[
Récupère les infos EJP sur le site de EDF avec ce lien

https://particulier.edf.fr/services/rest/referentiel/historicEJPStore?searchType=ejp

{"listeEjp":[{"dateApplication":1638140400000,"statut":"EJP"},{"dateApplication":1641942000000, ......
.......,{"dateApplication":1675724400000,"statut":"EJP"},{"dateApplication":1675897200000,"statut":"EJP"}],"nbEjpRestants":10,"dateFinPeriode":"2023-03-31","dateDebutPeriode":"2022-11-01"}
On reçoit une table json contenant les dates des 22 jours de la saison précédente suivie des dates de la nouvelle saison le tout en pile FIFO et la trame se termine
avec le nombre de jours restants de la saison encours et les dates de le période.
Pour déterminer les infos EJP du jour et du lendemain je récupère uniquement que les 2 dernières dates de la table et je les compare à la date actuelle.
La mise à jour de ces est théoriquement disponible à partir de 15H30 (mais souvent plutôt) donc je force "Demain pas d'info" avant 16H00 et "Demain non EJP" après.
sur le site EDF :
***La mise à jour des données est effectuée quotidiennement vers 15h30, cependant des contraintes d'exploitation peuvent la retarder jusqu'à 5h du matin du jour EJP.***
--]]
local alerte_ejp    = 'Infos EJP'       -- renseigner le nom de l'éventuel device alerte EJP associé (dummy - alert)
return {
	on = {
		timer = { 'at *:05', 'at *:35' }, 
	--	timer = { 'every 5 minutes' },
		httpResponses = {
			'Rep_ejp' -- must match with the callback passed to the openURL command
		}
	},
	logging = {
		level = domoticz.LOG_INFO,
		marker = 'template',
	},
	execute = function(domoticz, item)
        local devEJP = domoticz.devices(alerte_ejp)
        local function getTimezone()
            local now = os.time()
            return math.floor(os.difftime(now, os.time(os.date("!*t", now))))/3600
        end
        local function text_color(text,color)
            if color == 1  then text = '<FONT COLOR=#00FF00>' .. text .. '</FONT>' end
            if color == 4 or color == 3 then text = '<FONT COLOR=#FF0000>' .. text .. '</FONT>' end
            return text
        end
        local Time = require('Time')
        TimeZone = getTimezone()
        local now = Time(domoticz.time.rawDate .. ' 00:00:00') -- .addHours(TimeZone)
		if (item.isTimer) then
			domoticz.openURL({
				url = 'https://particulier.edf.fr/services/rest/referentiel/historicEJPStore?searchType=ejp',
				method = 'GET',
				headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"},
				callback = 'Rep_ejp', -- see httpResponses above.
			})
		end
		if (item.isHTTPResponse) then
			if (item.ok) then
				if (item.isJSON) then
				    local Etat = devEJP.text -- 237
                    local ix = 0
					local Nbjrestant = item.json.nbEjpRestants  -- Nombre de jours restants
					for index, value in ipairs(item.json.listeEjp) do
                        ix = index -- recupère l'index de la dernire valeur de la tabel "listeEjp"
                    end
					local date_dj =  item.json.listeEjp[ix].dateApplication / 1000 -- derniere date
					local date_avdj =  item.json.listeEjp[ix-1].dateApplication / 1000 -- avant dernière date
					print( 'Nb Jours restants : ' .. Nbjrestant .. ' Date : ' .. date_dj .. ' / ' .. date_avdj )
					texte = 'Nb Jours restants : ' .. Nbjrestant
                    date_dj_ejp = domoticz.time.timestampToDate(date_dj,'yyyy-mm-dd hh:MM:ss')
                    date_avdj_ejp = domoticz.time.timestampToDate(date_avdj,'yyyy-mm-dd hh:MM:ss')
                    Tdate_dj_ejp = Time(date_dj_ejp)
                    Tdate_avdj_ejp = Time(date_avdj_ejp)
                    --compare :  0 = date & heure égale, 1 = date & heure dans le futur, -1 = date & heure dans le passé.
                    dernier = now.compare(Tdate_dj_ejp).compare 
                    avant_dernier = now.compare(Tdate_avdj_ejp).compare
                    print (' Dernière date : ' .. date_dj_ejp .. ' Dernier : ' .. dernier .. ' Av-dernière date : ' .. date_avdj_ejp .. ' Avant dernier : ' .. avant_dernier)
                    message1 = 'Jour Non EJP'
                    if domoticz.time.matchesRule('at 16:00-23:59') then
                        message2 = 'Demain Non EJP'
                    else
                        message2 = 'Demain pas d\'info'
                    end
                    couleur2 = 1
                    if dernier == 1 and avant_dernier == 0 then -- C'est rouge aujourd'hui et demain rouge
                        Jour = 'Rouge'
                        -- couleur1 = 3
                    end
                    if dernier == 1 and avant_dernier ~= 0 then  -- non EJP aujourd'hui et demain rouge
                         message1 = 'Aujourd\'hui Non EJP'
                         couleur1 = 1
                    end
                    if dernier == 0  or Jour == 'Rouge' then            -- C'est rouge aujourd'hui et pas d'info pour demain  
                        message1 = 'Aujourd\'hui Rouge EJP'
                        if domoticz.time.matchesRule('at 07:00-23:00') then -- Rouge entre 07H00 & 23H00
                            couleur1 = 4 
                        else
                            couleur1 = 3
                        end
                    end
                    if dernier == 1 then -- Demain rouge
                        Jour = 'Rouge'
                        message2 = 'Demain Rouge EJP'
                        couleur2 = 3
                    end
                    mail_texte = texte  .. '<br>' .. message1
                    mail_texte = mail_texte  .. '<br>' .. message2
                    texte = texte  .. '<br>' .. text_color(message1,couleur1)
                    texte = texte  .. '<br>' .. text_color(message2,couleur2)
                    if couleur1 > couleur2 then
                        couleur = couleur1
                    else
                        couleur = couleur2
                    end
					if texte ~= Etat or devEJP.color ~= couleur then
					    if alerte_ejp ~= nil then
					        devEJP.updateAlertSensor(couleur,texte) -- .updateAlertSensor(couleur,message) -- Vert=1 Jaune=2 Orange=3 Rouge=4
			            	    end
					    domoticz.email('Changement EJP demain', texte , 'martin.dupont@xxxxx.com')
					end
				end
			else
				domoticz.log('There was a problem handling the request', domoticz.LOG_ERROR)
				domoticz.log(item, domoticz.LOG_ERROR)
			end

		end

	end
}
J'avais peur d'encombrer le forum avec ce script
Cordialement YJB

Re: Trame 175 HZ Pulsadis(Tempo,EJP, Heures Creuses, etc)

Publié : 09 févr. 2023, 13:18
par Keros
Non, non, regarde, le bloc de code est limité à un certain nombre de lignes et avec l'ascenseur, on peut faire défiler.

J'ai trouvé la fonction que je ne connaissais pas : text_color(message1,couleur1).
Merci