Merci pour la patate chaude
Je vais regarder ca.
Pour ma part j'ai résolu ce souci avec un onduleur pour mon switch + box internet + raspberry domoticz.
Bon, ok, tu vas me dire que si la panne dure 4h, je suis dans les choux, j'admets
j'utilise ton script depuis quelques temps, et franchement, je le trouve super.
Je cherche comment piloter le "disable /enable all" sans avoir à rentrer dans mon sélecteur, pour par exemple quand domoticz est en mode congés mettre en standby mon sélecteur de modes chauffage (eco, confort ...).
Comment piloter cette fonction par un script ou un bouton ?
merci pour ta réponse, mais cette commande ne désactive qu'une ligne du timer, moi je cherche à tout désactiver, comme le fait le bouton en bas à droite du visual timer, il doit bien y avoir moyen de piloter ce bouton sans avoir à cliquer dessus ?
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
Ok, je comprends, j'ai vu l'exemple que tu donnes sur le forum Anglais, j'ai testé et cela fonctionne très bien, mais cela désactive les timers d'un thermostat, et je n'ai pas réussi à l'adapter à ceux d'un sélecteur, si cela fonctionne sur un thermostat, cela doit aussi pouvoir le faire pour un switch ou un sélecteur ?
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
Dans mon code j'utilise le add et remove soit d'un setpointtimer soit d'un timer. Les verbes de la commande changent selon le type du device.
Avec le update, il faudrait vérifier s'il faut ajuster le nom du verbe car d'après l'API ce n'est pas le cas; updatetimer semble être le seul à utiliser.
-- Definitions
commandArray = {}
local DOMOTICZ_IP = '127.0.0.1:8080'
local DEVICE = "THE NAME OF YOUR VIRTUAL THERMOSTAT SWITCH" --In my sample, "Thermostat Switch"
local DEVICE_ID = YOUR_SETPOINT_DEVICE_ID
-- Main script
if devicechanged[DEVICE] then
json = assert(loadfile '/home/pi/domoticz/scripts/lua/JSON.lua')() -- For Linux
-- json = (loadfile "D:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows
--load all setpointtimers for the DEVICE_ID
local url = 'http://'..DOMOTICZ_IP..'/json.htm?type=setpointtimers&idx='..DEVICE_ID
--print (url)
local config=assert(io.popen('curl "' .. url .. '"'))
local blocjson = config:read('*all')
config:close()
--print ('blocjson:' .. blocjson)
local jsonResult = json:decode(blocjson).result
local vrb= "disablesetpointtimer";
local NewLevel = devicechanged[DEVICE];
print ('New level command:' .. NewLevel)
if NewLevel == "Automatic" then
vrb = "enablesetpointtimer";
else
local temp = 6
if NewLevel == "Comfort" then
temp = 21
elseif NewLevel == "Economic" then
temp = 18
end
--update the Setpoint to the predefined temperature
commandArray['UpdateDevice'] = DEVICE_ID .. "|0|" .. temp
end
--change all setpointtimers of DEVIDE_ID to the desired state : disabled of enabled
for i,setpoint in ipairs(jsonResult) do
os.execute ('curl "http://' .. (DOMOTICZ_IP) .. '/json.htm?type=command¶m='..vrb..'&idx=' .. (setpoint.idx) ..'"');
end
end
return commandArray
Je comprends pas ...
Désolé d'être lourdingue
Domoticz V4.10 sur Synology DS216j (DSM 6.3), clef Z-Wave Sigma
Le code est adapté pour les thermostats(SetPoint). Il faudrait changer le verbe "disablesetpointtimer" par "disabletimer" dans le cas d'un selecteur ou switch et "enablesetpointtimer" par "enabletimer".
Mais attention, dans l'exemple du code, il charge les timers que d'un setpoint et non pas d'un switch. Il faudrait également changer le chargement en changeant le type adequat.