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

Forum pour tous les autres protocoles : Enocean, X10, les cartes piface.razberry ...
Pour les questions concernant le choix de protocoles, merci d'utiliser le forum Les autres objets.
L'Arsène
Messages : 51
Inscription : 06 févr. 2019, 18:57
Localisation : Grand EST

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

Message 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.
Pièces jointes
Schéma Nano sous 230V.png
Schéma Nano sous 230V.png (13.25 Kio) Consulté 2621 fois
DURAM49
Messages : 5
Inscription : 24 janv. 2023, 10:38

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

Message 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
L'Arsène
Messages : 51
Inscription : 06 févr. 2019, 18:57
Localisation : Grand EST

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

Message 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.
yvesjose
Messages : 55
Inscription : 16 déc. 2019, 10:17

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

Message 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é 2524 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
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)
L'Arsène
Messages : 51
Inscription : 06 févr. 2019, 18:57
Localisation : Grand EST

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

Message par L'Arsène »

Bonjour Yves,

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

Bonne journée.
L'Arsène.
yvesjose
Messages : 55
Inscription : 16 déc. 2019, 10:17

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

Message 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é 2365 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
Dernière modification par yvesjose le 04 mars 2023, 11:55, 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)
yvesjose
Messages : 55
Inscription : 16 déc. 2019, 10:17

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

Message 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é 2302 fois
2/ Au basculement après minuit
Infos EJP 2.png
Infos EJP 2.png (14.3 Kio) Consulté 2302 fois
3/ A partir de 7H00
Infos EJP 3.png
Infos EJP 3.png (13.81 Kio) Consulté 2302 fois
Le fonctionnement à l'air correct.

nouveau script voir post suivant.
Cdlt Yjb
Dernière modification par yvesjose le 04 mars 2023, 11:56, 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)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message 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 ...
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
yvesjose
Messages : 55
Inscription : 16 déc. 2019, 10:17

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

Message 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
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)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message 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
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
Répondre