Programmation hebdomadaire pour chauffage ou interrupteurs

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
syrhus
Messages : 32
Enregistré le : 17 janv. 2018, 15:53

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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 ;)
Raspberry pi 3B+, Domoticz V4.7900 + beta, Z-WAVE stick Aeon Gen5, RFX 433Mhz

Dim33
Messages : 191
Enregistré le : 29 janv. 2017, 23:19

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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.
NUC sous Ubuntu Server / RFXCom / Domoticz Version: 4.10717

e111111
Messages : 107
Enregistré le : 11 déc. 2018, 19:44

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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

syrhus
Messages : 32
Enregistré le : 17 janv. 2018, 15:53

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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
Raspberry pi 3B+, Domoticz V4.7900 + beta, Z-WAVE stick Aeon Gen5, RFX 433Mhz

e111111
Messages : 107
Enregistré le : 11 déc. 2018, 19:44

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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 ?

syrhus
Messages : 32
Enregistré le : 17 janv. 2018, 15:53

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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
Raspberry pi 3B+, Domoticz V4.7900 + beta, Z-WAVE stick Aeon Gen5, RFX 433Mhz

e111111
Messages : 107
Enregistré le : 11 déc. 2018, 19:44

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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 ?

syrhus
Messages : 32
Enregistré le : 17 janv. 2018, 15:53

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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.
Raspberry pi 3B+, Domoticz V4.7900 + beta, Z-WAVE stick Aeon Gen5, RFX 433Mhz

e111111
Messages : 107
Enregistré le : 11 déc. 2018, 19:44

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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 :(

syrhus
Messages : 32
Enregistré le : 17 janv. 2018, 15:53

Re: Programmation hebdomadaire pour chauffage ou interrupteurs

Message 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.
Raspberry pi 3B+, Domoticz V4.7900 + beta, Z-WAVE stick Aeon Gen5, RFX 433Mhz

Répondre