Repartition Consommation HC / HP...

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]
Moulins58
Messages : 30
Enregistré le : 17 févr. 2019, 20:41

Re: Repartition Consommation HC / HP...

Message par Moulins58 » 01 déc. 2019, 09:19

Bonjour à tous.
Depuis 3 ou 4 mois, je me lance à Domoticz, j'y connais très peu en programmation.
J'ai installé le script Lua HP-HC hier soir (deux jours dessus), et ce matin j'ai ce message qui ce répète
"Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_compteurHP-HC.lua: .../pi/domoticz/scripts/lua/script_device_compteurHP-HC.lua:1: unexpected symbol near '{".
De quoi ça peut venir.
Si quelqu'un avait la solution, d'avance merci!
Bon weekend.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


alpin38
Messages : 57
Enregistré le : 02 juil. 2015, 11:14

Re: Repartition Consommation HC / HP...

Message par alpin38 » 01 déc. 2019, 09:37

Salut.
Tous simplement que tu as une erreur de syntaxe dans ton script , la il te dit que tu as un soucis sur la ligne 1...


Envoyé de mon SM-A530F en utilisant Tapatalk


Moulins58
Messages : 30
Enregistré le : 17 févr. 2019, 20:41

Re: Repartition Consommation HC / HP...

Message par Moulins58 » 01 déc. 2019, 14:52

Merci pour la réponse, ci-dessous de début de mon script:

Code : Tout sélectionner

{\rtf-2\ansi\ansicpg1252\deff0\nouicompat\deflang1036{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Riched20 10.0.18362}\viewkind4\uc1
\pard\fi-142\li426\sa200\sl276\slmult1\f0\fs22\lang12 - script domoticz/scripts/lua/script_device_compteurHC-HP.lua\par
\par
-- Initialisation des variables locales\par
local capteurGlobal = uservariables['Compteur Electrique']\par
local capteurCptHP = uservariables['Heures Pleines']\par
local capteurCptHC = uservariables['Heures Creuses']\par
local idxCptHP = uservariables['619']\par
local idxCptHC = uservariables['620']\par
local flagHC = uservariables['621']\par
local flagHP = uservariables['621']\par
local lastValueCptElecGlobal = uservariables['7161.94']\par
\par
-- Mode debug Oui / Non\par
local debug = uservariables['debug']\par
\par
-- Fonction de mise \'e0 jour\par
function update(device, id, power, energy, index)\par
    commandArray[index] = \{['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy\}\par
    return\par
end\par
\par
commandArray = \{\} \par
\par
-- On prend en compte a chaque changement de valeur du compteur global\par
if (devicechanged[capteurGlobal]) then\par
    if (debug == 'OUI') then\par
        print('-- Calcul Compteurs HC / HP --')\par
        print('CapteurGlobal = '..capteurGlobal)\par
        print('CapteurCptHP = '..capteurCptHP)\par
        print('CapteurCptHC = '..capteurCptHC)\par
        print('idxCptHP = '..tostring(idxCptHP))\par
        print('idxCptHC = '..tostring(idxCptHC))\par
        print('flagHP = '..tostring(flagHP))\par
        print('flagHC = '..tostring(flagHC))\par
        print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))\par
    end \par
    \par
    -- Recuperation des valeurs du compteur global\par
    local consoCumule\par
    local consoInstant\par
    consoInstant, consoCumule = otherdevices_svalues[capteurGlobal]:match("([^;]+);([^;]+)")\par
    consoInstant = tonumber(consoInstant)\par
    consoCumule = tonumber(consoCumule) \par
Je ne vois pas! c'est mon premier script lua.
Bonne après-midi.

alpin38
Messages : 57
Enregistré le : 02 juil. 2015, 11:14

Re: Repartition Consommation HC / HP...

Message par alpin38 » 01 déc. 2019, 15:27

Slt ,
Enleve ça : {\rtf-2\ansi\ansicpg1252\deff0\nouicompat\deflang1036{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Riched20 10.0.18362}\viewkind4\uc1
\pard\fi-142\li426\sa200\sl276\slmult1\f0\fs22\lang12 - script domoticz/scripts/lua/script_device_compteurHC-HP.lua\par
\par

Et tous les \par



Envoyé de mon SM-A530F en utilisant Tapatalk


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Moulins58
Messages : 30
Enregistré le : 17 févr. 2019, 20:41

Re: Repartition Consommation HC / HP...

Message par Moulins58 » 02 déc. 2019, 09:47

Bonjour,
Merci pour le tuyau d'hier. Je n'ai plus d'erreur présente dans les log.
Mais ce matin, je n'ai rien dans compteur HP et HC.

POURQUOI?
Je réfléchissais, dans le script, à quel moment, on indique d'aller chercher la consommation globale. Je ne vois pas ou mettre ID du compteur globale.
Bonne journée

Moulins58
Messages : 30
Enregistré le : 17 févr. 2019, 20:41

Re: Repartition Consommation HC / HP...

Message par Moulins58 » 03 déc. 2019, 19:43

Bonsoir,
Je suis bloqué, j'ai modifié mon script comme indiqué. Pas d'erreur en log mais rien qui s'affiche en HC ni en HP compteur global bien.
Je récupère les infos avec un "C180" et je suis en triphasé. Ci-joint mon script.

Code : Tout sélectionner

--Script_device_compteurHP-HC du 01-12-2019
-- Initialisation des variables locales
local capteurGlobal = uservariables['Compteur_Electrique']
local capteurCptHP = uservariables['Heures_Pleines']
local capteurCptHC = uservariables['Heures_Creuses']
local idxCptHP = uservariables['619']
local idxCptHC = uservariables['620']
local flagHC = uservariables['Bascule_HC']
--local flagHP = uservariables['621']
local lastValueCptElecGlobal = uservariables['4285.127']

-- Mode debug Oui / Non
local debug = uservariables['debug']

-- Fonction de mise a jour
function update(device, id, power, energy, index)
     commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
    return
end

commandArray = {}

-- On prend en compte a chaque changement de valeur du compteur global
if (devicechanged[capteurGlobal]) then
    if (debug == 'OUI') then
        print('-- Calcul Compteurs HC / HP --')
        print('CapteurGlobal = '..capteurGlobal)
        print('CapteurCptHP = '..capteurCptHP)
        print('CapteurCptHC = '..capteurCptHC)
        print('idxCptHP = '..tostring(idxCptHP))
        print('idxCptHC = '..tostring(idxCptHC))
        print('flagHP = '..tostring(flagHP))
        print('flagHC = '..tostring(flagHC))
        print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))
    end

    -- Recuperation des valeurs du compteur global
    local consoCumule
    local consoInstant
    consoInstant, consoCumule = otherdevices_svalues[capteurGlobal]:match("([^;]+);([^;]+)")
  consoInstant = tonumber(consoInstant)
    consoCumule = tonumber(consoCumule)
    if (debug == 'OUI') then
        print('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '..tostring(consoCumule)..' ')
    end

    -- Calcul de l'ecart avec le dernier envoi de donnees
    lastValueCptElecGlobal = tonumber(lastValueCptElecGlobal)
    local consoDelta = consoCumule - lastValueCptElecGlobal

    if (debug == 'OUI') then
        print('Delta conso = '..tostring(consoDelta))
    end

    local consoCumuleCible
    local consoInstantCible

    if (otherdevices[flagHC] == 'Off') then
        -- Periode heures creuse
        -- Recuperation des valeurs du compteur global
        consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
 -- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
        consoCumuleCible = tonumber(consoCumuleCible)

        if (debug == 'OUI') then
            print('Compteur cible = HC')
            print('Valeur precedente = '..tostring(consoCumuleCible))
            print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
        end

        consoCumuleCible = consoCumuleCible + consoDelta
        -- Mise à jour du compteur
        update(capteurCptHC, idxCptHC, consoInstant, consoCumuleCible, 1)

        -- Mise à 0 de la conso intantanee du compteur HP
        consoInstantHP, consoCumuleHP = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
        consoInstantHP = 0
        update(capteurCptHP, idxCptHP, consoInstantHP, consoCumuleHP, 2)
    else
        -- Periode heures pleines
        -- Recuperation des valeurs du compteur global
        consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
 -- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
        consoCumuleCible = tonumber(consoCumuleCible)

        if (debug == 'OUI') then
            print('Compteur cible = HP')
            print('Valeur precedente = '..tostring(consoCumuleCible))
            print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
        end

        consoCumuleCible = consoCumuleCible + consoDelta
        -- Mise à jour du compteur
        update(capteurCptHP, idxCptHP, consoInstant, consoCumuleCible, 3)

        -- Mise à 0 de la conso intantanee du compteur HC
        consoInstantHC, consoCumuleHC = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
        consoInstantHC = 0
        update(capteurCptHC, idxCptHC, consoInstantHC, consoCumuleHC, 4)
    end

    -- Sauvegarde de la valeur du compteur global pour prochain calcul
    commandArray['Variable:LastValueCptElecGlobal'] = tostring(consoCumule)

    if (debug == 'OUI') then
        print('-- Fin Calcul Compteur HC / HP --')
    end
end

return commandArray


Et capture de mes variables:

Si quelqu'un pouvait m'aider! Bonne soirée.
Fichiers joints
Capture.JPG
Capture.JPG (41.1 Kio) Vu 105 fois

Moulins58
Messages : 30
Enregistré le : 17 févr. 2019, 20:41

Re: bibliothèque de fonctions pour scripts LUA

Message par Moulins58 » 04 déc. 2019, 18:58

Bonsoir,
J'ai enfin une erreur, mais je ne sais pas a quoi elle fait référence et encore moins la réparer:
2019-12-04 18:54:51.718 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_compteurHP-HC.lua: .../pi/domoticz/scripts/lua/script_device_compteurHP-HC.lua:7: syntax error near 'locales'

Que faire?
Henri

vil1driver
Messages : 5187
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Repartition Consommation HC / HP...

Message par vil1driver » 04 déc. 2019, 19:11

Tu dois traîner des ratés de copier/coller

alpin38
Messages : 57
Enregistré le : 02 juil. 2015, 11:14

Re: bibliothèque de fonctions pour scripts LUA

Message par alpin38 » 04 déc. 2019, 19:17

Moulins58 a écrit :Bonsoir,
J'ai enfin une erreur, mais je ne sais pas a quoi elle fait référence et encore moins la réparer:
2019-12-04 18:54:51.718 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_compteurHP-HC.lua: .../pi/domoticz/scripts/lua/script_device_compteurHP-HC.lua:7: syntax error near 'locales'

Que faire?
Henri
Slt ..

Renvoi ton script avec les corrections que tu as faites stp


Envoyé de mon SM-A530F en utilisant Tapatalk


Moulins58
Messages : 30
Enregistré le : 17 févr. 2019, 20:41

Re: Repartition Consommation HC / HP...

Message par Moulins58 » 04 déc. 2019, 20:35

Ci-joint le script ou j'en suis rendu.

Code : Tout sélectionner

-- chargement des modules (http://easydomoticz.com/forum/viewtopic.php?f=17&t=3$
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

local debug = true  --true pour voir les logs dans la console log Dz ou false p$

-- Script_device_compteurHP-HC du 01-12-2019
-- Initialisation des variables locales
local capteurGlobal =uservariables['Compteur_Electrique']
local capteurCptHP =uservariables['Heures_Pleines']
local capteurCptHC =uservariables['Heures_Creuses']
local idxCptHP = uservariables['619']
local idxCptHC = uservariables['620']
local flagHC =uservariables['Bascule_HC']
--local flagHP = uservariables['621']
local lastValueCptElecGlobal = uservariables['4320.472']

-- Mode debug Oui / Non
local debug = uservariables['debug']

-- Fonction de mise a jour
function update(device, id, power, energy, index)
     commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. e$
    return
end

commandArray = {}

-- On prend en compte a chaque changement de valeur du compteur global
if (devicechanged[capteurGlobal]) then
    if (debug == 'OUI') then
        print('-- Calcul Compteurs HC / HP --')
        print('CapteurGlobal = '..capteurGlobal)
        print('CapteurCptHP = '..capteurCptHP)
        print('CapteurCptHC = '..capteurCptHC)
        print('idxCptHP = '..tostring(idxCptHP))
        print('idxCptHC = '..tostring(idxCptHC))
        print('flagHP = '..tostring(flagHP))
        print('flagHC = '..tostring(flagHC))
        print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))
    end

    -- Recuperation des valeurs du compteur global
    local consoCumule
    local consoInstant
    consoInstant, consoCumule = otherdevices_svalues[capteurGlobal]:match("([^;$
    consoInstant = tonumber(consoInstant)
    consoCumule = tonumber(consoCumule)
    if (debug == 'OUI') then
        print('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '.$
    end

    -- Calcul de l'ecart avec le dernier envoi de donnees
    lastValueCptElecGlobal = tonumber(lastValueCptElecGlobal)
    local consoDelta = consoCumule - lastValueCptElecGlobal

    if (debug == 'OUI') then
        print('Delta conso = '..tostring(consoDelta))
    end

    local consoCumuleCible
    local consoInstantCible
 if (otherdevices[flagHC] == 'Off') then
        -- Periode heures creuse
        -- Recuperation des valeurs du compteur global
        consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHC$
        -- Seul le cumule du compteur nous interesse pour calculer la nouvelle $
        consoCumuleCible = tonumber(consoCumuleCible)

        if (debug == 'OUI') then
            print('Compteur cible = HC')
            print('Valeur precedente = '..tostring(consoCumuleCible))
            print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
        end

        consoCumuleCible = consoCumuleCible + consoDelta
-- Mise à jour du compteur
        update(capteurCptHC, idxCptHC, consoInstant, consoCumuleCible, 1)

        -- Mise à 0 de la conso intantanee du compteur HP
        consoInstantHP, consoCumuleHP = otherdevices_svalues[capteurCptHP]:matc$
        consoInstantHP = 0
        update(capteurCptHP, idxCptHP, consoInstantHP, consoCumuleHP, 2)
    else
        -- Periode heures pleines
        -- Recuperation des valeurs du compteur global
        consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHP$
        -- Seul le cumule du compteur nous interesse pour calculer la nouvelle $
        consoCumuleCible = tonumber(consoCumuleCible)
 if (debug == 'OUI') then
            print('Compteur cible = HP')
            print('Valeur precedente = '..tostring(consoCumuleCible))
            print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
        end

        consoCumuleCible = consoCumuleCible + consoDelta
        -- Mise à jour du compteur
        update(capteurCptHP, idxCptHP, consoInstant, consoCumuleCible, 3)

        -- Mise à 0 de la conso intantanee du compteur HC
        consoInstantHC, consoCumuleHC = otherdevices_svalues[capteurCptHC]:matc$
        consoInstantHC = 0
        update(capteurCptHC, idxCptHC, consoInstantHC, consoCumuleHC, 4)
    end

    -- Sauvegarde de la valeur du compteur global pour prochain calcul
    commandArray['Variable:LastValueCptElecGlobal'] = tostring(consoCumule)

    if (debug == 'OUI') then
        print('-- Fin Calcul Compteur HC / HP --')
    end
end

        print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))


    end
Bonne soirée.
Henri

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre