Récupérer sa conso linky avec ecocompteur legrand

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
damolc
Messages : 175
Enregistré le : 24 juil. 2016, 22:08

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par damolc »

Voilà les resultats du script :
Image
Image
dernire-24-heures.jpeg
dernire-24-heures.jpeg (42.62 Kio) Vu 1556 fois
Image
sur-la-semaine-passe (1).jpeg
sur-la-semaine-passe (1).jpeg (34.76 Kio) Vu 1556 fois
La seule chose que je n arrive pas a faire c est changer le nom "utilisation 1 et 2 par heure creuse et pleine ; mais je n arrive pas a trouver :oops:
Fichiers joints
Capture.JPG
Capture.JPG (45.04 Kio) Vu 1556 fois

jojomul1983
Messages : 25
Enregistré le : 23 févr. 2019, 18:22

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par jojomul1983 »

Bonjour et merci pour ce script.

J'ai une petite erreur:

2019-12-02 10:12:00.434 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_ecoCompteur.lua: /home/pi/domoticz/scripts/lua/script_time_ecoCompteur.lua:50: attempt to concatenate global 'hpidx' (a nil value)

damolc
Messages : 175
Enregistré le : 24 juil. 2016, 22:08

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par damolc »

Il faut que le nom des idx soit parfaitement respecté
Je mettrai en ligne mon dernier script qui a changé et aussi pour l eau et le gaz

damolc
Messages : 175
Enregistré le : 24 juil. 2016, 22:08

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par damolc »

pour l electricité j ai comme script :

Code : Tout sélectionner

Debug = "NO" -- Turn debugging on ("YES") or off ("NO")

----------------------------------------------
------ Configuration ------
----------------------------------------------

-- domoticz
local url = 'http://192.168.x.xx/data.json' -- url locale de votre écocompteur legrand
htidx = otherdevices_idx['Linky']           -- Idx P1 Compteur intelligent (électrique)
hcidx = otherdevices_idx['HC']              -- Idx Compteur
hpidx = otherdevices_idx['HP']              -- Idx Compteur

local function removeZeros(Id)
while true do
if Id:sub(1,1) == '0' then
Id = Id:sub(2)
else
break
end
end
return Id
end

----------------------------------------------
-- Fin de la partie configuration --
----------------------------------------------

commandArray={}

--import des fontions pour lire le JSON
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux
--recuperation des mesure HP et HC sur data.json
local config=assert(io.popen("curl '"..url.."'"))
local location = removeZeros(config:read('*all'))
local trouve = string.find(location,'"conso_hp"')
local consoHP = removeZeros(string.sub(location,trouve+14,trouve +23))

local trouve = string.find(location,'"conso_hc"')
local consoHC = removeZeros(string.sub(location,trouve+14,trouve +23))
config:close()

if Debug == "YES" then
print(trouve)
print(location)
print(consoHP)
print(consoHC)
end
--import des valeurs dans les Idx
commandArray[htidx] = { ['UpdateDevice'] = htidx ..'|0|'.. consoHP .. ";" .. consoHC .. ";" .. "0" .. ";" .. "0" .. ";" .. "0" .. ";" .. "0" }
commandArray[hpidx] = { ['UpdateDevice'] = hpidx ..'|0|'.. consoHP }
commandArray[hcidx] = { ['UpdateDevice'] = hcidx ..'|0|'.. consoHC }
 
return commandArray
pour le compteur eau et gaz j ai fait un deuxieme script ne sachant pas les rassembler :

Code : Tout sélectionner

----------------------------------------------
------          Configuration          ------
----------------------------------------------

local url = 'http://192.168.1.46/inst.json'


local C1 = "Eau" 			-- Idx Compteur
local C2 = "Gaz"			-- Idx Compteur
local RAZ = 'RAZ'

----------------------------------------------
--       Fin de la partie configuration       --
----------------------------------------------

commandArray={}
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()

local config=assert(io.popen("curl '"..url.."'"))
local location = config:read('*all')
config:close()
local jsonLocation = json:decode(location)

local data6=jsonLocation.data6      -- eau
local data7=jsonLocation.data7      -- gaz


p1 = string.match(otherdevices_svalues[C1], "(%d+%.*%d*)")
p1 = tonumber(data6)*1000

commandArray[1]={ ['UpdateDevice']= xx .. '|0|' .. p1 }   --n° ou nom de l idx Eau a remplacer
 
p2 = string.match(otherdevices_svalues[C2], "(%d+%.*%d*)")
p2 = tonumber(data7)*1000

commandArray[2]={ ['UpdateDevice']= xy .. '|0|' .. p2 }    --n° ou nom de l idx Gaz a remplacer


return commandArray
si une personne trouve le moyen de les rassembler je suis preneur :D

jojomul1983
Messages : 25
Enregistré le : 23 févr. 2019, 18:22

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par jojomul1983 »

damolc a écrit :
02 déc. 2019, 14:40
Il faut que le nom des idx soit parfaitement respecté
Je mettrai en ligne mon dernier script qui a changé et aussi pour l eau et le gaz

P....n quel imbécile, je suis.
Encore merci.
Ça marche à merveille.

cocof
Messages : 30
Enregistré le : 15 sept. 2017, 18:17

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par cocof »

bonjour
j'essaye depuis le début de semaine ce tuto sans succès.
j'ai aussi linky avec mode TIC en standard, connecté à un ecocompteur. La seul différence est que ce linky me sert pour mesure ma production photovoltaïque.

quand j'ouvre le fichier data.json j'ai :

"option_tarifaire" : 4,
"tarif_courant" : 11,
"isousc" : 0,

"conso_base" : 0,
"conso_hc" : 0,
"conso_hp" : 0,
"conso_hc_b" : 0,
"conso_hp_b" : 0,

le champs sonso_base reste à 0 :(
du coup mes compteurs sous domoticz reste à 0...

j'ai essayé en inversant les fils mais c'est pareil :(
il y a une conf de l'écocompteur à faire ?
merci
bonne journée

damolc
Messages : 175
Enregistré le : 24 juil. 2016, 22:08

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par damolc »

Bonjour
Moi il est branché directement
Problème un mauvais réglage Linky
Il faut qu il puisse transmettre des données
Mode historique je crois

damolc
Messages : 175
Enregistré le : 24 juil. 2016, 22:08

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par damolc »

j ai une question :
je souhaiterai récupérer la consommation en Watt instantanée pour qui s affiche dans les mesure (P1 smart meter)
je récupère l deux valeurs de consommation globale HC et HP en KWh
Voila mon script :

Code : Tout sélectionner

Debug = "NO" -- Turn debugging on ("YES") or off ("NO")

----------------------------------------------
------ Configuration ------
----------------------------------------------

-- domoticz
local url = 'http://192.168.1.46/data.json' -- url locale de votre écocompteur legrand
htidx = otherdevices_idx['Linky']           -- Idx P1 Compteur intellogent (électrique)
hcidx = otherdevices_idx['HeureCreuse']              -- Idx Compteur
hpidx = otherdevices_idx['HeurePleine']              -- Idx Compteur

local function removeZeros(Id)
while true do
if Id:sub(1,1) == '0' then
Id = Id:sub(2)
else
break
end
end
return Id
end

----------------------------------------------
-- Fin de la partie configuration --
----------------------------------------------

commandArray={}

--import des fontions pour lire le JSON
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux
--recuperation des mesure HP et HC sur data.json
local config=assert(io.popen("curl '"..url.."'"))
local location = removeZeros(config:read('*all'))
local trouve = string.find(location,'"conso_hp"')
local consoHP = removeZeros(string.sub(location,trouve+15,trouve +23))

local trouve = string.find(location,'"conso_hc"')
local consoHC = removeZeros(string.sub(location,trouve+15,trouve +23))
config:close()

if Debug == "YES" then
print(trouve)
print(location)
print(consoHP)
print(consoHC)
end
--import des valeurs dans les Idx
commandArray[htidx] = { ['UpdateDevice'] = htidx ..'|0|'.. consoHP .. ";" .. consoHC.. ";" .. "0" .. ";" .. "0" .. ";" .. "0" .. ";" .. "0" }

commandArray[hpidx] = { ['UpdateDevice'] = hpidx ..'|0|'.. consoHP }
commandArray[hcidx] = { ['UpdateDevice'] = hcidx ..'|0|'.. consoHC }
 
return commandArray
comment calculer la consommation instantanée en Watt pour pouvoir la mettre dans :
commandArray[htidx] = { ['UpdateDevice'] = htidx ..'|0|'.. consoHP .. ";" .. consoHC.. ";" .. "0" .. ";" .. "0" .. ";" .. ?? .. ";" .. "0" }
Merci par avance

damolc
Messages : 175
Enregistré le : 24 juil. 2016, 22:08

Re: Récupérer sa conso linky avec ecocompteur legrand

Message par damolc »

Peut-être y a t il un calcul a faire ou un commande en Lua?

Répondre