Page 7 sur 13

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 20 nov. 2019, 09:10
par syrhus
Bonjour Dim33

Merci pour la patate chaude :lol:
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 ;)

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 20 nov. 2019, 22:45
par Dim33
Effectivement, j'ai bien refilé le bébé toutefois le sujet reste intéressant et touche tous ceux qui utilise les plannings (sois beaucoup de monde :) )

J'ai également un onduleur pour tout mon système mais ça ne résoud pas complètement le pb et reste limité par la capacité de l'onduleur.

Le sujet mérite donc d’être creusé... mais mes compétences dans ce cas précis sont très limitées.

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 24 déc. 2019, 18:49
par e111111
Bonjour Syrhus,

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 ?

Du genre :

Code : Tout sélectionner

http://192.168.1.44:8084/json.htm?type=command&param=switchlight&idx=214&switchcmd=DisableSetPoints=True
Merci d'avance pour ton aide

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 27 déc. 2019, 11:33
par syrhus
Bonjour
Ravi que cela serve ;-)

Pour activer ou désactiver un timer , j'utilise l'API Domoticz en précisant le paramètre "active" à true ou false:

Code : Tout sélectionner

../json.htm?type=command&param=updatetimer&idx=timerID&active=true&timertype=3&hour=0&min=20&randomness=true&command=0&days=12345

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 27 déc. 2019, 12:05
par e111111
Bonjour,

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 ?

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 27 déc. 2019, 12:22
par syrhus
En fait je boucle sur tous les timers du device... c'est la seule façon que j'ai trouvé pour le faire

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 27 déc. 2019, 13:53
par e111111
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 ?

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 27 déc. 2019, 14:49
par syrhus
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.

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 27 déc. 2019, 15:06
par e111111
Dans ce code ci ? :

Code : Tout sélectionner

-- 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&param='..vrb..'&idx=' .. (setpoint.idx) ..'"');
    end
end 

return commandArray
Je comprends pas ...
Désolé d'être lourdingue :(

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Publié : 27 déc. 2019, 15:15
par syrhus
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.