Aller au contenu
JossAlf

Gestion Simplifiée Du Chauffage (Srt321 & Ssr303)

Recommended Posts

oui oui ça l'air d’être bon là, je vais tester sur plusieurs jours ... :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je dois être un peu idiot mais je n'arrive pas à  entrer mon mot de passe admin dans la variable globale MotDePasse ....

Il y a une astuce ?

 

Peux tu me dire à  quoi correspond l'id "100" stp Est ce ton thermostat de zone ?

if currentTime < "23:59" and currentTime > "06:30" thenfibaro:call(100, "setTargetLevel", 20.5)elsefibaro:call(100, "setTargetLevel", 18.5)end

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous,

 

je suis comme zorro

 

Mes srt321 et mes fgs211 fonctionne nickel sur ma hc2 et l'association des modules se sont très bien fait !

 

Moi ma question, sur le zonage du module de ce sujet, dans mon cas j'ai un panneau de chauffage par (chambre enfant1,) (enfant 2), etc, donc 5 en total !

 

Sur ton module, peux t'on ajouter tous les panneaux ? pour invité, vacances, etc.. ?

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que tu devrais créer un module par zone. Chaque panneau de chauffage a un ID propre et tu modifieras son json avec un module virtuel dédié.

 

Pour gérer les modes "invité" "vacances" "normal" d'un coup, tu pourras créer un nouveau module virtuel "Général" qui mettra à  jour tous les json en une fois :

Soit en programmant chaque bouton de ce MV pour modifier tous les json de chaque zone.

Soit (et je privilégierais ce fonctionnement) en simulant l'appui sur les boutons des MV de chaque zone. Ainsi tu peux créer plusieurs configurations (une partie des zones en vacances et les autres non).

 

Tu pourras ainsi gagner du temps (le MV Général traite toutes tes zones d'un coup) mais aussi garder la main sur chaque zone de façon indépendante grâce aux MV dédiés (en deuxième passe).

 

Exemple : La famille est en congés à  la maison sans invité ...

 

Sur le MV général :

Tu clique sur mode "invité" (chauffe tout le temps) ce qui va simuler l'appui sur le bouton "invité" de tout les MV dédiés.

Sur le MV Chambre d'ami :

Tu cliques sur mode "vacances" (chauffage à  15°C) ce qui va modifier uniquement la zone de la chambre d'ami.

 

Tu peux aussi prévoir un bouton spécial sur le MV général -> Congés sans invité :

Tu clique sur "Congés sans invité" ce qui simulera l'appui sur le bouton "invité" de tout tes MV dédiés sauf pour celui de la zone chambre d'ami où cela simulera l'appui sur le bouton "vacances".

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous et à  toutes,

 

J'ai un petit problème qui commence à  devenir un énorme problème  :D

 

J'ai essayé de le tourner dans tout les sens mais rien à  y faire ! Je m'explique, je souhaite piloter mon chauffage électrique avec un AEOTEC ZW078 en association avec un SRT321. J'ai procédé comme suit (et comme indiqué dans ce sujet) :

- intégration du SRT321 au HC2

- intégration du ZW078 au HC2

- association entre SRT321 et ZW078 par l'intermédiaire du HC2 (voir photos jointes)

- création du PC avec d'attribution bien cochée

- tout ce qui va bien normalement  :blink:

 

De plus, j'attends bien l'heure indiquée dans le PC + temps de réponse du SRT321 (300 secondes dans mon cas) mais rien n'y fait. La phrase magique "en attente de réveil" ne s'affiche pas ...

 

J'ai juste remarqué que pour le ZW078, il y a "transfert OK" qui s'affiche à  l'heure programmée dans le PC.

 

Sinon, pour info, j'arrive à  modifier la température de consigne en passant par des scènes alors pourquoi cela ne marche pas avec le PC ???

 

Merci pour votre aide,

 

Bonne soirée et bon week-end,

Anthony

asso pc.tiff

asso.tiff

etat.tiff

pc.tiff

salle jeux.tiff

therm.tiff

Partager ce message


Lien à poster
Partager sur d’autres sites

Re,

 

J'ai un peu avancé. Lorsque le paramètre temps est à  0 sur le thermostat, le panneau de chauffage envoie bien la consigne qui est prise en considération par le SRT321 dans les 300 secondes dans mon cas.

 

gallery_133_70_3059.png

 

Par contre, dès que je modifie la consigne de température depuis le SRT321, le température change bien mais aussi le temps qui passe à  2H00min et après cela, le panneau de chauffage ne prend plus le dessus ... Est-il possible de laisser cette variable temps en permanence à  0 ?

 

Merci

Anthony

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne crois pas que cela soit possible de mettre cette valeur à0

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Je souhaite comme vous pouvoir passer mon panneau de chauffage un mode vacance (rien d'autre) grâce à  une module virtuel.
j'utilise votre tuto pour le faire mais visiblement cela ne fonctionne pas.

 

Voici la partie utilisée :

--passe le panel en mode voyage

HC2 = Net.FHttp("192.168.2.xxx",80)
HC2:setBasicAuthentication("admin", "MDP")
local strefa = 61
response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa)
jsonTable = json.decode(response)


--je passe en mode vacances avec 10°C
jsonTable.properties.vacationTemperature =10;
json = json.encode(jsonTable);
HC2:PUT("/api/panels/heating?id="..strefa, json)


fibaro:call(65, "setProperty", "ui.Label1.value", "Voyage");


j'ai déjà  un problème avec cette  ligne de commande :

HC2 = Net.FHttp("192.168.2.xxx",80)

Quand je colle le code dans une scene LUA, il me dit :
"attempt to index global 'net' (a nil value)"

Vous avez une idée ?

 

merci d'avance !!!

 

cordialement,

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

 

Essaye avec ceci :

HC2 = Net.FHttp("127.0.0.1",11111); 
 
local panel = 4
 
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel);
jsonTable = json.decode(response);
 
jsonTable.properties.vacationTemperature = 10; 
 
json = json.encode(jsonTable); 
HC2:PUT("/api/panels/heating/"..panel, json);
 
fibaro:call(65, "setProperty", "ui.Label1.value", "Voyage");
fibaro:log("La température est réglée à  : "..jsonTable.properties.vacationTemperature.." °C") 

Partager ce message


Lien à poster
Partager sur d’autres sites

je reviens vers toi car je souhaite utiliser le même principe pour envoyer une commande GET vers une caméra :

 

voici la commande qui fonctionne très bien dans un virtual device mais qui veut pas fonctionner dans une scène :

tcpSERVER = Net.FHttp("xxxxxxxx.dyndns.org", 1234);
tcpSERVER:GET("/decoder_control.cgi?command=31&user=xxxxxx&pwd=xxxxxxx");

j'ai une erreur sur la première ligne "nil value"

 

tu as une idée ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Dans une scene, cela doit etre cela plutot :

 net.HTTPClient()

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai essayé avec

tcpSERVER = Net.HttpClient("xxxxxxxxxx.dyndns.org", 1238)
tcpSERVER:GET("/decoder_control.cgi?command=31&user=xxxxxxxxx&pwd=xxxxxxxxxxxx");

mais non toujours la même erreur àla première ligne...

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir à  vous tous,

j'ai acquis un SRT321 que j'ai appairé avec la HC2.

Je vois bien le thermostat dans les modules, mais lorsque je clique sur l'icône paramètre pour l'assigner, j'ai le code 403 qui s'affiche et "accès refusé".

J'ai fait l'association plusieurs fois et rien n'y fait.

Je suis en V4.1

 

Si l'un de vous a une info.

 

mercià  vous

 

JP

 

Edit: le prob vient de la mise à  jour 4.1, il suffit de vider le cache du navigateur pour régler le problème.

Partager ce message


Lien à poster
Partager sur d’autres sites

Est il toujours nécessaire de s'authentifier sur la HC2 avec la méthode PUT ? Cela m'embête un peu de mettre mon mot de passe en clair dans une variable globale...

 

De plus je teste le bouton normal en l'ayant modifié comme préconisé mais j'ai une erreur "[ERROR] 15:11:41: line 9: attempt to call field 'decode' (a nil value)".

 

Voici mon code pour :

 

local strefa = 75 -- ID du panneau de chauffage

local tempJour = fibaro:getGlobal('TempJour') --Variable globale de la tempérarure de consigne jour
tempJour = tonumber(tempJour)

local tempNuit = fibaro:getGlobal('TempNuit') --Variable globale de la tempérarure de consigne nuit
tempNuit = tonumber(tempNuit)

HC2 = Net.FHttp("127.0.0.1")

local NouveauPanel = ('{"id":75,"name":"Chambre Enfants","properties":{"monday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"tuesday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"wednesday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"thursday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"friday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"saturday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempJour..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"sunday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempJour..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"handTemperature":0,"handTimestamp":0,"vacationTemperature":0,"rooms":[]},"created":1487248548,"modified":1487248548}')

json = json.encode(NouveauPanel);
HC2:PUT("/api/panels/heating/"..strefa, json)
fibaro:debug(NouveauPanel)

fibaro:call(124, "setProperty", "ui.Label1.value", "Normal");

--reglage de la T° de consigne en focntion de l'heure
local currentDate = os.date("*t");
local currentTime = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min);

if currentTime < "21:30" and currentTime > "06:45" then
  fibaro:call(115, "setTargetLevel", tempJour)
  fibaro:call(112, "setTargetLevel", tempJour)
  else
  fibaro:call(115, "setTargetLevel", tempNuit)
  fibaro:call(112, "setTargetLevel", tempNuit)
end

Merci pour le coup de main !

Modifié par fmplaw

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon je m'auto réponds : le json.encode ne sert à rien ici. Voici le bon code :

 

local strefa = 75 -- ID du panneau de chauffage

local tempJour = fibaro:getGlobal('TempJour') --Variable globale de la tempérarure de consigne jour
tempJour = tonumber(tempJour)

local tempNuit = fibaro:getGlobal('TempNuit') --Variable globale de la tempérarure de consigne nuit
tempNuit = tonumber(tempNuit)

HC2 = Net.FHttp("127.0.0.1",11111)

local NouveauPanel = ('{"id":75,"name":"Chambre Enfants","properties":{"monday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"tuesday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"wednesday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"thursday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"friday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"saturday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempJour..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"sunday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempJour..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"handTemperature":0,"handTimestamp":0,"vacationTemperature":0,"rooms":[]},"created":1487248548,"modified":1487248548}')

HC2:PUT("/api/panels/heating/"..strefa, NouveauPanel)
fibaro:debug(NouveauPanel)

fibaro:call(124, "setProperty", "ui.Label1.value", "Normal");

--reglage de la T° de consigne en focntion de l'heure
local currentDate = os.date("*t");
local currentTime = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min);

if currentTime < "21:30" and currentTime > "06:45" then
  fibaro:call(115, "setTargetLevel", tempJour)
  fibaro:call(112, "setTargetLevel", tempJour)
  else
  fibaro:call(115, "setTargetLevel", tempNuit)
  fibaro:call(112, "setTargetLevel", tempNuit)
end

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, 

 

Pour m'amuser sur le code mais suis loin d'être expert, j'espère que les experts passeront par là pour me corriger, on peut gagner quelques lignes ;-) 

local strefa = 75 -- ID du panneau de chauffage
local st814 = {115, 112}
local tempJour = tonumber(fibaro:getGlobal('TempJour')) --Variable globale de la tempérarure de consigne jour
local tempNuit = tonumber(fibaro:getGlobal('TempNuit')) --Variable globale de la tempérarure de consigne nuit

--HC2 = Net.FHttp("127.0.0.1",11111)
local NouveauPanel = ('{"id":75,"name":"Chambre Enfants","properties":{"monday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"tuesday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"wednesday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"thursday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"friday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempNuit..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"saturday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempJour..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"sunday":{"morning":{"hour":6,"minute":45,"temperature":'..tempJour..'},"day":{"hour":8,"minute":45,"temperature":'..tempJour..'},"evening":{"hour":17,"minute":45,"temperature":'..tempJour..'},"night":{"hour":21,"minute":30,"temperature":'..tempNuit..'}},"handTemperature":0,"handTimestamp":0,"vacationTemperature":0,"rooms":[]},"created":1487248548,"modified":1487248548}')
api.put("/api/panels/heating/"..strefa, NouveauPanel)
--HC2:PUT("/api/panels/heating/"..strefa, NouveauPanel)
fibaro:debug(NouveauPanel)
fibaro:call(124, "setProperty", "ui.Label1.value", "Normal");
--reglage de la T° de consigne en focntion de l'heure
local currentTime = os.date("%H:%M");
--local currentTime = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min);
if currentTime < "21:30" and currentTime > "06:45" then
    for i = 1, #st814 do
  fibaro:call(st814[i], "setTargetLevel", tempJour)
  --fibaro:call(112, "setTargetLevel", tempJour)
  else
  fibaro:call(st814[i], "setTargetLevel", tempNuit)
  --fibaro:call(112, "setTargetLevel", tempNuit)
end

 

Partager ce message


Lien à poster
Partager sur d’autres sites

De rien.
Il manque le end de la blucke for :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

pouvez-vous me confirmer que ce code (publié un peu plus haut) fonctionne bien en 4.110,

le but étant de passer en mode vacances avec 10°c sur ma zone 1 et ca ne fonctionne pas ( je ne suis pas un pro du code !!!)

 

HC2 = Net.FHttp("192.168.0.51",80)
HC2:setBasicAuthentication("xxxxx", "xxxxxxx")
local panel = 1
response ,status, errorCode = HC2:GET("/api/panels/heating/"..panel)
jsonTable = json.decode(response);


jsonTable.properties.vacationTemperature = 10;
json = json.encode(jsonTable);
HC2:PUT("/api/panels/heating/"..panel, json)
 

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

×