script LUA et compteur d'energie

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
cocof
Messages : 95
Inscription : 15 sept. 2017, 18:17

script LUA et compteur d'energie

Message par cocof »

bonjour,
bien que possésseur de Domoticz depuis qq années, je ne me lance que maintenant dans les scripts (LUA)
voici ce que je veux faire : un routeur panneaux solaire qui réduit la production si la production totale s'approche de la consomation de ma maison (je ne veux pas produit plus que j'ai besoin). entre
j'ai 4 compteurs d'energie :
Prod_Panneaux_1_2=production photovoltaique 1_2 (récuperé via un ecocompteur)
Prod_Panneaux_3_4=production photovoltaique 3_4 (récuperé via un ecocompteur)
Conso_Disj1=consomation des equipements sur mon disjonteur n°1 (récuperé via un ecocompteur)
Conso_Disj2=consomation des equipements sur mon disjonteur n°2 (récuperé via un ecocompteur)

je souhaite faire
entre 11h et 17h,
Production_totale = Prod_Panneaux_1_2+Prod_Panneaux_3_4
Conso_Totale=Conso_Disj1+Conso_Disj2
si Conso_Totale-Production_totale>50
alors changer l'état d'un interrupteur (que je vais regler pour arreter la prodution photovoltaique 1_2)
hors plage horaire 11h et 17h je ne veux pas que cette regle s'applque.

j'ai un truc qui ressemble a ca, mais rien ne se passe, quelqu'un pourrait m'aider ? (j'y connais pas grand chose en informatique...) merci bcp:

Code : Tout sélectionner

--------------------
-- les variables de seuil.
Seuil_Heure_Matin="11:00:00"
Seuil_Heure_soir="17:00:00"
Seuil_Conso_Min=50
-------------------

commandArray = {}
--comment dire de ne faire ce script que de 11h à 17h?
if (devicechanged['Prod_Panneaux_1_2'] or 
devicechanged['Prod_Panneaux_3_4'])
         then
             Prod_Totale = 
tonumber(otherdevices_svalues['Prod_Panneaux_1_2'])+tonumber(otherdevices_svalues['Prod_Panneaux_3_4'])
             print("Production totale = "..'Prod_Totale'.."kWh")
             Conso_Totale = tonumber(otherdevices_svalues['Conso_Disj1'] + otherdevices_svalues['Conso_Disj2'])
             print("Consommation_totale = "..'Conso_Totale'.."kWh")

             if (Conso_Totale - Prod_Totale < Seuil_Conso_Min)
                 then
                     print("Attention la Consommation totale est inférieure à production totale")
--                     changer l'état d'un interrutpeur
             end
end
Raspberry / domoticz / RFXCOM / Conbee II / IPX800v4 / Ecodevice RT2 / enocean / enphase
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: script LUA et compteur d'energie

Message par lmet »

Salut,

Pour exécuter entre 11h et 17h c'est assez simple, ton script est de type "Time" ?
Sinon si tu écris :

Code : Tout sélectionner

print("Consommation_totale = "..'Conso_Totale'.."kWh")
Il faut enlever les simples quote soit Conso_Totale et non 'Conso_Totale'

Tu écris :

Code : Tout sélectionner

Conso_Totale = tonumber(otherdevices_svalues['Conso_Disj1'] + otherdevices_svalues['Conso_Disj2'])
Manque un tonumber pour la deuxième évaluation.

Code : Tout sélectionner

Conso_Totale = tonumber(otherdevices_svalues['Conso_Disj1']) + tonumber(otherdevices_svalues['Conso_Disj2'])
Sinon ton script devrait se terminer par un

Code : Tout sélectionner

return commandArray
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
Répondre