Code : Tout sélectionner
commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'..puissance..';0'}Code : Tout sélectionner
commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'..puissance..';0'}Merci Denis !denis_brasseur a écrit : 29 nov. 2020, 14:06 Essaie :Update device (Electrique)Code : Tout sélectionner
commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'..puissance..';0'}
Ce que ma envoi Denis, tel quel, ne fonctionne pas. J'ai essayé de remplacer l'idx que j'ai par celui de mon capteur virtuel. Notamment 34, de remplacer puissance par la variable "MyUptime" qui renseigne du coup la puissance instantané.Keros a écrit :A toi de faire le script,Je pense qu'il te manque que la fonction de Denis à modifier pour y arriver. Tu as deux valeurs à renseigner
- qui récupère l'info souhaité : ça il semblerait que tu y arrives avec ton print
- qui envoi les infos où tu souhaites : Denis viens de te donner la fonction permettant d'envoyer des infos dans un device électrique.
- qui s’exécute quand tu le souhaites : Voir Le point sur les scripts lua de Domoticz et les autres explications que j'ai regroupé dans le lien Débuter en programmation dans ma signature.
Qu'est-ce qui ne fonctionne pas ? Tu as des erreurs ? Que dises les logs ?
Tout est pourtant dans la commandeEnamaryn a écrit : 29 nov. 2020, 16:52 Ce que ma envoi Denis, tel quel, ne fonctionne pas. J'ai essayé de remplacer l'idx que j'ai par celui de mon capteur virtuel. Notamment 34, de remplacer puissance par la variable "MyUptime" qui renseigne du coup la puissance instantané.
Et cela ne fonctionne pas. Comme je ne comprends pas la fonction qu'il me donne et comment je dois l'utiliser.. Compliqué. J'ai essayé du coup un tas de variante sans succès.
Code : Tout sélectionner
commandArray[#commandArray+1]={['UpdateDevice'] = idx..'|0|'..MyUptime..';0'}Code : Tout sélectionner
commandArray[#commandArray+1]={['UpdateDevice'] = '35|0|'..MyUptime..';0'}Code : Tout sélectionner
commandArray[#commandArray+1]={['UpdateDevice'] = '35|0|18;0'}L'API json sur le wiki domoticz fait référence pour tout ce qui est UpdateDeviceSi vous pouvez m'expliquer la fonction je pourrais l'adapter à mon usage.
Electricity (instant and counter)
- IDX = id of your device (This number can be found in the devices tab in the column "IDX")Code : Tout sélectionner
/json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=POWER;ENERGY
- POWER = current power
- ENERGY = cumulative energy in Watt-hours (Wh) This is an incrementing counter. (if you choose as type "Energy read : Computed", this is just a "dummy" counter, not updatable because it's the result of DomoticZ calculs from POWER)
Code : Tout sélectionner
-- On appel JSON pour decoder le texte donner par shelly a cette adresse http://ip.du.she.lly/status sur un reseau local --
json = (loadfile "/opt/domoticz/scripts/lua/JSON.lua")() -- For Linux
-- API call
local config=assert(io.popen('curl "http://192.168.1.24/status"')) -- ip du shelly
local result = config:read('*a')
config:close()
output = json:decode(result)
-- déclaration des variables avec les bonnes données issu du json --
local idx = 34 -- on rentre le bon id du capteur virtuel, capteur Utilisation Electrique ou en anglais Usage electric
local energieInstantanee = output.meters[1].power -- on prend l'information dans le tableau JSON
-- on update le capteur virtuel --
domoticz_updateDevice(idx,'',energieInstantanee)
Code : Tout sélectionner
domoticz_updateDevice(idx,'',energieInstantanee)