[LUA] Récupérer sa conso linky avec ecocompteur legrand
Re: Récupérer sa conso linky avec ecocompteur legrand
Voilà les resultats du script :

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 
- Pièces jointes
-
- Capture.JPG (45.04 Kio) Consulté 5676 fois
-
jojomul1983
- Messages : 74
- Inscription : 23 févr. 2019, 18:22
Re: Récupérer sa conso linky avec ecocompteur legrand
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)
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)
Re: Récupérer sa conso linky avec ecocompteur legrand
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
Je mettrai en ligne mon dernier script qui a changé et aussi pour l eau et le gaz
Re: Récupérer sa conso linky avec ecocompteur legrand
pour l electricité j ai comme script :
pour le compteur eau et gaz j ai fait un deuxieme script ne sachant pas les rassembler :
si une personne trouve le moyen de les rassembler je suis preneur 
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 commandArrayCode : 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
-
jojomul1983
- Messages : 74
- Inscription : 23 févr. 2019, 18:22
Re: Récupérer sa conso linky avec ecocompteur legrand
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.
Re: Récupérer sa conso linky avec ecocompteur legrand
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
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
Raspberry / domoticz / RFXCOM / Conbee II / IPX800v4 / Ecodevice RT2 / enocean / enphase
Re: Récupérer sa conso linky avec ecocompteur legrand
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
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
Re: Récupérer sa conso linky avec ecocompteur legrand
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 :
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
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
commandArray[htidx] = { ['UpdateDevice'] = htidx ..'|0|'.. consoHP .. ";" .. consoHC.. ";" .. "0" .. ";" .. "0" .. ";" .. ?? .. ";" .. "0" }
Merci par avance
Re: Récupérer sa conso linky avec ecocompteur legrand
Peut-être y a t il un calcul a faire ou un commande en Lua?