probleme conso virtuel
-
AlexElectro
- Messages : 55
- Inscription : 18 juil. 2015, 22:13
Re: probleme conso virtuel
@vil1driver
Oui c'est ce que j'ai créé comme compteur.
Oui c'est ce que j'ai créé comme compteur.
Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
http://electro.bassignyinformatique.fr/
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: probleme conso virtuel
ah..
fais un script juste avec ceci
que dit le log ?
fais un script juste avec ceci
Code : Tout sélectionner
commandArray = {}
print('conso: '..otherdevices_svalues['Conso Evrard'])
return commandArray
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
AlexElectro
- Messages : 55
- Inscription : 18 juil. 2015, 22:13
Re: probleme conso virtuel
j'ai une erreur:
Code : Tout sélectionner
Error: EventSystem: /home/pi/domoticz/scripts/lua/script_time_test.lua:2: attempt to concatenate field 'Conso Evrard' (a nil value)Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
http://electro.bassignyinformatique.fr/
Re: probleme conso virtuel
Reboot domoticz pour voir
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: probleme conso virtuel
ceci dans la barre d'adresse de ton navigateur donne quoi ?
(remplace IP par l'ip de ton domoticz)
http://IP:8080/json.htm?type=devices&rid=50
(remplace IP par l'ip de ton domoticz)
http://IP:8080/json.htm?type=devices&rid=50
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
AlexElectro
- Messages : 55
- Inscription : 18 juil. 2015, 22:13
Re: probleme conso virtuel
Ca avance!! Depuis le reboot, il n'y a plus l'erreur.
j'ai ça dans le log:
le lien de @vil1driver donne:
Par contre je m'interroge:
Si j'ai bien compris, le script time s'exécute toute les minutes. Donc il envoi dans le compteur la valeur 'energy1'. Mais je ne comprend pas comment cette valeur est calculée.
Que signifie ces lignes:
j'ai ça dans le log:
Code : Tout sélectionner
2016-01-16 16:55:00.188 LUA: Conso Evrard nulle
2016-01-16 16:55:00.191 EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_time_conso.lua
2016-01-16 16:55:00.210 LUA: conso: 0;83.333333333335Code : Tout sélectionner
{
"ActTime" : 1452959614,
"ServerTime" : "2016-01-16 16:53:34",
"Sunrise" : "08:24",
"Sunset" : "17:11",
"result" : [
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 255,
"CounterToday" : "0.083 kWh",
"CustomImage" : 0,
"Data" : "0.083 kWh",
"Description" : "",
"Favorite" : 0,
"HardwareID" : 9,
"HardwareName" : "Matériel virtuel",
"HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
"HardwareTypeVal" : 15,
"HaveTimeout" : false,
"ID" : "00082049",
"LastUpdate" : "2016-01-16 16:53:00",
"Name" : "Conso Evrard",
"Notifications" : "false",
"PlanID" : "0",
"PlanIDs" : [ 0 ],
"Protected" : false,
"ShowNotifications" : true,
"SignalLevel" : "-",
"SubType" : "kWh",
"SwitchTypeVal" : 0,
"Timers" : "false",
"Type" : "General",
"TypeImg" : "current",
"Unit" : 1,
"Usage" : "0.0 Watt",
"Used" : 1,
"XOffset" : "0",
"YOffset" : "0",
"idx" : "50"
}
],
"status" : "OK",
"title" : "Devices"Si j'ai bien compris, le script time s'exécute toute les minutes. Donc il envoi dans le compteur la valeur 'energy1'. Mais je ne comprend pas comment cette valeur est calculée.
Que signifie ces lignes:
Code : Tout sélectionner
npower1, energy1 = string.match(otherdevices_svalues[conso1], "(%d+%.*%d*);(%d+%.*%d*)")
energy1 = tonumber(energy1) + (puissance1 / 60)
npower1 = tonumber(npower1)Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
http://electro.bassignyinformatique.fr/
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: probleme conso virtuel
Code : Tout sélectionner
2016-01-16 16:55:00.210 LUA: conso: 0;83.333333333335npower1 = puissance actuelle = 0
energy1 = puissance cumulée = 83.333333333335
puis on ajoute au cumule ce que tu as consommé dans la minute
et on renvoie le tout
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
AlexElectro
- Messages : 55
- Inscription : 18 juil. 2015, 22:13
Re: probleme conso virtuel
ok . Je te remercie pour ta patience et tes explications.
Mais je vais t'embéter encore un peu. Pourrais tu me dire ce que fait la commande 'string.match', car je ne trouve pas de doc sur internet
et que veulent dire les "(%d+%.*%d*);(%d+%.*%d*)" qui suivent ?
Mais je vais t'embéter encore un peu. Pourrais tu me dire ce que fait la commande 'string.match', car je ne trouve pas de doc sur internet
et que veulent dire les "(%d+%.*%d*);(%d+%.*%d*)" qui suivent ?
Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
http://electro.bassignyinformatique.fr/
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: probleme conso virtuel
cette commande
(%d+%.*%d*) est l'expression à chercher, en gos, tout et n'importe quoi
(pas exacte mais suffisamment explicite
)
tu retrouveras cette commande dans beaucoup de scripts qui travaillent avec des périphériques contenants plusieurs infos, comme les sondes de température/humidité/baromètre par exemple..
j'ai découvert lua il y a environs 18mois maintenant, en même temps que domoticz en fait, donc je n'ai pas toutes les explications, mais je comprends le principe. j'ai toujours cherché à comprendre à fin de modifier et créer mes scripts et avec google sous le coude on fini par piger à quoi sert telle ou telle commande et ses variantes..
et puis ici on parle d'un code que j'ai écris (extrait de mon script de chauffage) alors ce n'est pas trop dure de t'en parler
sépare la chaine otherdevices_svalues[conso1] (0;83.333333333335) avec comme séparateur le ;string.match(otherdevices_svalues[conso1], "(%d+%.*%d*);(%d+%.*%d*)")
(%d+%.*%d*) est l'expression à chercher, en gos, tout et n'importe quoi
tu retrouveras cette commande dans beaucoup de scripts qui travaillent avec des périphériques contenants plusieurs infos, comme les sondes de température/humidité/baromètre par exemple..
Code : Tout sélectionner
temp, hum, baro = string.match(otherdevices_svalues['meteo'], "(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*)")et puis ici on parle d'un code que j'ai écris (extrait de mon script de chauffage) alors ce n'est pas trop dure de t'en parler
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
AlexElectro
- Messages : 55
- Inscription : 18 juil. 2015, 22:13
Re: probleme conso virtuel
Merci de ces explications. J'essaye aussi de comprendre le code pour pouvoir le mettre à ma sauce. Le problème avec LUA c'est que tout est en Anglais et comme je ne suis ppas trop bilingue.... c'est pas facile.
J'ai trouvé ça:
string.match (s, pattern [, init])
Looks for the first match of pattern in the string s. If it finds one, then match returns the captures from the pattern; otherwise it returns nil. If pattern specifies no captures, then the whole match is returned. A third, optional numerical argument init specifies where to start the search; its default value is 1 and can be negative.
et aussi ça sur les paramètres:
%d: represents all digits.
.: (a dot) represents all characters.
source: http://www.lua.org/manual/5.1/manual.html
Ca confirme ce que tu disais, string.match va chercher et séparer les deux valeurs de la sonde pour les enregistrer dans les variables energy1 et npower1.
je me demande aussi à quoi sert la variable npower dans cette partie du script:
puisque dans le commande.array, on envoi dans le compteur la valeur des variables puissance1 et energy1. On ne semble pas utiliser npower1?
J'ai trouvé ça:
string.match (s, pattern [, init])
Looks for the first match of pattern in the string s. If it finds one, then match returns the captures from the pattern; otherwise it returns nil. If pattern specifies no captures, then the whole match is returned. A third, optional numerical argument init specifies where to start the search; its default value is 1 and can be negative.
et aussi ça sur les paramètres:
%d: represents all digits.
.: (a dot) represents all characters.
source: http://www.lua.org/manual/5.1/manual.html
Ca confirme ce que tu disais, string.match va chercher et séparer les deux valeurs de la sonde pour les enregistrer dans les variables energy1 et npower1.
je me demande aussi à quoi sert la variable npower dans cette partie du script:
Code : Tout sélectionner
npower1, energy1 = string.match(otherdevices_svalues[conso1], "(%d+%.*%d*);(%d+%.*%d*)")
energy1 = tonumber(energy1) + (puissance1 / 60)
npower1 = tonumber(npower1)
commandArray[1]={['UpdateDevice'] = conso_id1 .. '|0|' .. puissance1 .. ';' .. energy1}
print('Conso Evrard envoyée')Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
http://electro.bassignyinformatique.fr/