Commandarray sur idx
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Commandarray sur idx
Fait voir tout le script
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
Re: Commandarray sur idx
Code : Tout sélectionner
-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
--------------------------------------------
----------- Variables à éditer -------------
--------------------------------------------
local api = 'xxxxxxxxxxxxxxxxxxx' -- Remplacer par votre clé API
local lat = 'xxxxxxx' -- Remplacer par ici votre latittude
local long = 'xxxxxxxxxxxxx' -- Remplacer par votre longitude
--Sélectionner le chemin vers votre fichier JSON.lua en enlevant les dé commentant la ligne pour votre système d'exploitation
--json = (loadfile "/home/votrenomutilisé/domoticz/scripts/lua/JSON.lua")() -- For Linux
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- for PI
--json = (loadfile "/volume1/@appstore/domoticz/var/scripts/lua/JSON.lua")() -- For Syno
--------------------------------------------
---------- Fin variables à éditer ----------
--------------------------------------------
commandArray = {}
-- Récupère les IDX des widgets.
idxjour = '402'
idxdemain = '403'
-- Récupère l'heure actuelle.
local heure = os.date('%H:%M')
local debug = true
if (heure == '20:00' or heure == '8:00' or heure == '13:00' or heure == '13:12') then
-- L'appel et l'enregistrement des prévisions dans la variable jsonValeur
config=assert(io.popen('/usr/bin/curl "https://api.openweathermap.org/data/2.5/onecall?lat='..lat..'&lon='..long..'&appid='..api..'&lang=fr&units=metric"'))
blocjson = config:read('*all')
config:close()
jsonValeur = json:decode(blocjson)
--------------------------------------------
---- Code à modifier selon vos besoins -----
--------------------------------------------
-- L'enregistrement des données souhaitées dans des variables (vous pouvez en ajouter autant que vous voulez)
--temp = jsonValeur.current.temp
--rose = jsonValeur.current.dew_point
--weather = jsonValeur.current.weather[1].description
if (jsonValeur.daily[1].rain) then
rain = jsonValeur.daily[1].rain
else
rain = 0
end
if (jsonValeur.daily[2].rain) then
rain2 = jsonValeur.daily[2].rain
else
rain2 = 0
end
rain = jsonValeur.daily[1].rain
rain2 = jsonValeur.daily[2].rain
if rain ~= nil then
commandArray['Variable:Pluie-jour'] = tostring(rain)
print(getDeviceName('404'))
commandArray[getDeviceName('404')] ='Set Level: 10'
else
commandArray['Variable:Pluie-jour'] = '0'
print(getDeviceName('404'))
commandArray[getDeviceName('404')] ='Set Level: 20'
end
if rain2 ~= nil then
commandArray['Variable:Pluie-lendemain'] = tostring(rain2)
print(getDeviceName('406'))
commandArray[getDeviceName('406')] ='Set Level: 10'
else
commandArray['Variable:Pluie-lendemain'] = '0'
print(getDeviceName('406'))
commandArray[getDeviceName('406')] ='Set Level: 20'
end
--Pluiejour = uservariables['Pluie-jour']
--Pluielendemain = uservariables['Pluie-lendemain']
--commandArray[#commandArray+1]={['UpdateDevice'] =idxjour..'|0|' .. tostring(Pluiejour)}
--commandArray[#commandArray+1]={['UpdateDevice'] =idxdemain..'|0|' .. tostring(Pluielendemain)}
--------------------------------------------
--------- Fin code à modifier -------------
--------------------------------------------
end
return commandArray-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Commandarray sur idx
Le nom ne change pas dans ce script.
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
Re: Commandarray sur idx
Non, c'est dans celui la que je change nom et icone
Code : Tout sélectionner
-- Icon changer
local ICON_RAIN = 116
local ICON_SUN = 117
return {
logging = {
level = domoticz.LOG_DEBUG, -- Select one of LOG_DEBUG, LOG_INFO, LOG_ERROR, LOG_FORCE to override system log level
},
on = {
devices = {404},
},
execute = function(dz, item)
local pluiej = dz.variables('Pluie-jour').value
print('start icon ' .. pluiej)
if item.level == 10 then
item.setIcon(ICON_RAIN)
item.rename('Aujourdhui - pluie : '..pluiej..'mm')
item.switchSelector(10).silent()
elseif item.level == 20 then
item.setIcon(ICON_SUN)
item.rename('Aujourdhui - soleil')
item.switchSelector(20).silent()
end
end
}
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Commandarray sur idx
Ah dzvent en + 
Belle usine à gaz
Du coup ton Set Level est déjà fait dans dzvent ? A quoi bon le faire également dans le script lua ?
Pourquoi ne pas aussi faire la relève météo dans dzvent ?
Ca sera moins source de problèmes si tu regroupe tout. Tu pourras même te passer des variables intermédiaires
Belle usine à gaz
Du coup ton Set Level est déjà fait dans dzvent ? A quoi bon le faire également dans le script lua ?
Pourquoi ne pas aussi faire la relève météo dans dzvent ?
Ca sera moins source de problèmes si tu regroupe tout. Tu pourras même te passer des variables intermédiaires
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
Re: Commandarray sur idx
Parce que le dzvent, j'y comprends pas grand chose, donc j'utilise le moins possible.
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Commandarray sur idx
Dans ce cas fait tout en lua.
Changer le nom du device est possible aussi en lua
Possible qu'il y ai des erreurs dans ce code mais tu as l'idée générale
L'icône est sûrement modifiable de la même façon
Ce sera bien plus simple à debuguer
Maintenant je ne vais pas être d'une grande aide, pour moi l'interface est juste pour l'administration, l'apparence, etc ne m'importait pas du tout. Alors les icônes et autres thèmes, ce n'était pas pour moi
Changer le nom du device est possible aussi en lua
Code : Tout sélectionner
commandArray['OpenURL']='IPADDRESS:PORT/json.htm?type=command¶m=renamedevice&idx=404&name=Aujourdhui - pluie : '..rain.. 'mm'
L'icône est sûrement modifiable de la même façon
Ce sera bien plus simple à debuguer
Maintenant je ne vais pas être d'une grande aide, pour moi l'interface est juste pour l'administration, l'apparence, etc ne m'importait pas du tout. Alors les icônes et autres thèmes, ce n'était pas pour moi
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
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Commandarray sur idx
S'agissant d'un idx, pas de quotevil1driver a écrit : 07 juin 2020, 11:22 Salut,
Oui dans ma signature
Importe la fonction getDeviceName dans ton script
PuisCode : Tout sélectionner
commandArray[getDeviceName('deviceIDX')] =
Code : Tout sélectionner
commandArray[getDeviceName(deviceIDX)] = print(getDeviceName(404))
commandArray[getDeviceName(404)] ='Set Level: 10'
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Commandarray sur idx
Quelle équipe de choc sur ce forum, grâce a vous tous j'au enfin un script qui fonctionne et me fait ce que je veux.
Merci les gars.
Merci les gars.
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Commandarray sur idx
Bien vu Denis 
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