Aller au contenu
Domodial

Thermostat Netatmo Et Api Avec Hc2

Recommended Posts

Oui j'ai tellement retiré et ajouté que j'en ai mal aux doigts. Je recommencerais un jour. Passer une demi journée la dessus....

Partager ce message


Lien à poster
Partager sur d’autres sites

non j'ai rien dans ces zones la non plus;

 

tu as bien mis

username = email du compte

password = password du compte

client ID et Client Secret, les numéros que tu récupères sous le compte dev de ton app précédemment crée

 

et ensuite tu fais un GET DEVICE, et ça devrait apparaitre.

Je n'ai toujours pas pu afficher ce plugin ^^

 

Je viens de m'amuser a un truc.

J'essaye de changer par un mot de passe bidon et le plugin me retourne que je suis connected...

 

De pire en pire.

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai meme révoqué l'accès de Fibaro a Netatmo, j'ai aussi regénéré les clés.

Bref je n'ai vu apparaitre ce plugin qu'une fois et il a fallut que je rip sur le mauvais icon ^^ pour l'effacer au lieu de l'éditer ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Après, même si tu avais le plugin, tu serais déçu de son utilisation. D'après des retours du forum...

Partager ce message


Lien à poster
Partager sur d’autres sites

Par contre, les lignes de commandes Lua fonctionnent bien avec le Thermostat ?

Parce que finalement l'appli d'origine est bien mieux que ce plugin.

Mais si c'est possible d'agir en lua ça peut être bien.

Partager ce message


Lien à poster
Partager sur d’autres sites

En lua j'ai lu que les demandes duraient 3h seulement. Donc bon. J'ai préféré passer par ifttt, ça fonctionne très bien depuis 2 semaines. 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui IFTTT est une sacré bonne chose.

Et combiné avec les widgets des Do c'est encore mieux, plus besoin d'entrer dans l'appli pour changer un truc.

Direct sur le bureau je kifff

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, me revoilà  :D

 

J'ai donc reçu le thermostat il y a deux semaines, branché et paramétré en 15 mn

Je pensais galérer plus que ça au vu des posts sur le forum netatmo...

 

Je l'ai bien observé, reçu le PID il y a 2 jour.

 

Avec IFTTT et Google Calendar je me suis fait un changement de planning automatique.

Ma femme a des horaires et moi d'autres une semaine sur deux.

Ca fonctionne parfaitement, pas besoin de changer à  la main sur le board netatmo.

 

Avec les Do sur android il est possible de placer sur le bureau des boutons directement cliquable, assez cool.

 

J'utilise aussi Impérihome et actuellement je n'utilise plus l'appli Fibaro.

Impérihome est de base moins sexy, mais super souple, et en tablette toute sa puissance de board personnalisable est juste extra, dommage que la version ipad déconne totalement.

 

Du coup, le seul truc interressant pour moi serait de passer le thermostat en absent lorsque ma variable HC2 passe en Absence.

 

C'est là  que lua m'interesse, mais je ne comprends pas ta ligne : c'est quoi le kkkkkkkkkk (cela correspond a quel clé ? la secrete ou l'autre)

  • local url = 'https://maker.ifttt.com/trigger/'..trigger..'/with/key/kkkkkkkkkk';

Et lorsque tu dis : Ensuite, en fonction de la demande : if (demande) then ifttt("Netatmo22") else ifttt("NetatmoProgram");end;

Je ne vois pas trace de ce code dans le code que tu as posté.

 

Concrètement, meme en passant par IFTTT (même surtout je dirait !) comment faire ?

Je ne savais même pas qu'il était possible de jouer en mettant IFTTT dans lua :P

 

Gracias :P

Partager ce message


Lien à poster
Partager sur d’autres sites
kkkk c'est la clé fournie quand tu t'inscris ici : https://ifttt.com/maker

Tu verras apparaître "Your key is" ... 

 

Pour le code if (demande) ... c'est normal que tu ne le vois pas, je t'ai posté la fonction que j'utilise. 

Tu mets le code que j'ai fourni au début de ton programme, après le --]] du début

Et quand tu en as besoin, tu lances la fonction. 

Dans mon cas, j'avais défini une variable booléenne demande à  false au début. 

Pour chaque sonde de température, je faisais une comparaison avec la tp de consigne et si elle était inférieure, je passais la variable demande à  true, 

A la fin des différents tests, si demande vrai, je monte le thermostat à  22, sinon je remets en mode programme.

 

Concrètement, dans ifttt, 

Créer une recette if. A la demande du this, choisir MAKER

Choisir un trigger par ex "absent"

Tu auras alors if ( Maker event "absent") then that 

Choisir Netatmo, puis Set to away mode

 

Ensuite lorsque ta variable HC2 passe en absence,fais un truc du genre :


 

if (absence) then ifttt("absent") else ifttt("NetatmoProgram");end;

 

Bien sur il faut avoir crée la recette NetatmoProgram ( Go back to schedule ). 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 

kkkk c'est la clé fournie quand tu t'inscris ici : https://ifttt.com/maker
Tu verras apparaître "Your key is" ... 
 
Pour le code if (demande) ... c'est normal que tu ne le vois pas, je t'ai posté la fonction que j'utilise. 
Tu mets le code que j'ai fourni au début de ton programme, après le --]] du début
Et quand tu en as besoin, tu lances la fonction. 
Dans mon cas, j'avais défini une variable booléenne demande à  false au début. 
Pour chaque sonde de température, je faisais une comparaison avec la tp de consigne et si elle était inférieure, je passais la variable demande à  true, 
A la fin des différents tests, si demande vrai, je monte le thermostat à  22, sinon je remets en mode programme.
 
Concrètement, dans ifttt, 
Créer une recette if. A la demande du this, choisir MAKER
Choisir un trigger par ex "absent"
Tu auras alors if ( Maker event "absent") then that 
Choisir Netatmo, puis Set to away mode
 
Ensuite lorsque ta variable HC2 passe en absence,fais un truc du genre :
 
if (absence) then ifttt("absent") else ifttt("NetatmoProgram");end;
 
Bien sur il faut avoir crée la recette NetatmoProgram ( Go back to schedule ). 
 

 

Merci Bono2007 pour ce retour et complément d'informations.

 

J'ai compris en partie (ça serait trop simple)...

 

J'ai plusieurs questions :

 

1 - Est-ce que cette fonction, fonctionne au début de GEA ?

2 - J'ai justement pas l'impression que Gea comprennent ça : if (absence) then ifttt("absent") else ifttt("NetatmoProgram");end;

3 - Je ne trouve meme pas une recette qui ferait if. A la demande du this, choisir MAKER

 

C'est un peut la m... lol

Partager ce message


Lien à poster
Partager sur d’autres sites

Je tape maker dans la recherche et ca me sort 6 trucs qui n'ont rien a voir...

Envoyé de mon GT-I9505 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ha ben d'accord ! c'est dans un channel...

Je passais par la recherche global, a revoir leur recherche quand meme.

 

Euh aucun rapport avec GEA, c'est un script lua ( scénario de la HC2 )

Pour ifttt : 

http://www.abavala.com/l-interface-ifttt-generique-est-arrivee-les-requetes-http-pour-les-makers/

A partir de maker en tant que trigger

 

 

PS : je n'avais pas cliqué sur ton lien au départ (Maker) car j'avais vu le début de l'url qui parlait de IFTTT.

Et comme j'y était déjà  inscrit je n'ai pas jugé bon de cliquer dessus... dsl

Partager ce message


Lien à poster
Partager sur d’autres sites

Ensuite lorsque ta variable HC2 passe en absence,fais un truc du genre :
 
if (absence) then ifttt("absent") else ifttt("NetatmoProgram");end;
 
Bien sur il faut avoir crée la recette NetatmoProgram ( Go back to schedule ). 
 

 

Super ! J'ai passé toutes les étapes, il ne me reste que les 3 dernières lignes, je continue ce soir (un GRAND merci !!)

151117050843209593.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Arghhh ! Je la met ou ma ligne : if (absence) then ifttt("absent") else ifttt("NetatmoProgram");end;

 

 ?? dans un autre script ? désolé je suis pas bien doué :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Finalement c'est bon ça fonctionne :D

Mais a partir du site IFTTT Maker (Test it).

 

Maintenant en lua sur la fibaro c'est pas la même chose :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, je ne dois pas comprendre une chose....

 

Si je test les triggers (absent/present) sur cette ligne :

 

https://maker.ifttt.com/trigger/present/with/key/KKKKKKKKKKKK

 

Ca fonctionne.

 

Si je test avec ton code :

--[[
%% properties

%% globals
--]]

function ifttt(trigger)
local httpClient = net.HTTPClient({ timeout = 2000 });
local url = 'https://maker.ifttt.com/trigger/'..trigger..'/with/key/KKKKK_DJ1VPPX_';
--debug url
print(url);
httpClient:request(url, {
success = function(response)
if tonumber(response.status) == 200 then
print("Updated at " .. os.date());
else
print("Error " .. response.status)
end
end,
error = function(err)
print('error = ' .. err)
end,
options = {
method = 'GET'
}
});
end

if (absent) then ifttt("absent") else ifttt("present");end;

Ca fonctionne.

Mais ce qui va remplacer '..trigger..' c'est ("present");end;

Par contre, If (absent) devrait être ma variable Maison à  Absent ou Present.

Je ne vois pas comment elle peut être reconnue par cette commande.

 

Je lague là  ^^ mais ça a bien avancé :D

 

Correction :

--[[
%% properties
%% globals
Maison
--]]


function ifttt(trigger)
local httpClient = net.HTTPClient({ timeout = 2000 });
local url = 'https://maker.ifttt.com/trigger/'..trigger..'/with/key/KKKKKKK';
--debug url
print(url);
httpClient:request(url, {
success = function(response)
if tonumber(response.status) == 200 then
print("Updated at " .. os.date());
else
print("Error " .. response.status)
end
end,
error = function(err)
print('error = ' .. err)
end,
options = {
method = 'GET'
}
});
end


if (Maison) then ifttt("absent") else ifttt("present");end;

Je suis bon là  ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bouaaah en plus même si ça fonctionne j'ai une problématique.

Sur la variable Maison j'ai mes notifications ainsi que la vidéosurveillance.

 

Du coup il faut que j'introduise une autre variable (Saison) Eté/Hiver

Car si c'est l'hiver ok tout va bien, mais si c'est l'été, le script actuel passera quand même le thermostat en "Absence" (donc 12 degrés)

Ok en été il fait toujours plus que 12° mais c'est un risque si jamais, ben la chaudière fonctionnerait pour rien.

Compliqué mon truc.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca a l'air de prendre forme en tout cas ^^.

 

Attention à  ce que la variable Maison soit une variable du panneau ( globale donc ).

 

Cela dit, pourquoi n'utilises pas juste ifttt, il gère l'absence et la présence via le gps et ton téléphone... Une piste

Partager ce message


Lien à poster
Partager sur d’autres sites

Je lague encore...

Je n'arrive pas a comprendre comment le code sait, dans quel état se trouve ma variable maison, si elle est à  Absent ou Présent.

Il me manque un bout de code lol ou un bout de cerveau (c'est très possible).

 

Pour le GPS, ni ma femme ni moi l'utilise au quotidien.

Ca mange les accus des portables...et surtout nous n'en avons pas le besoin.

Meme si je m’habituait à  l'activer sur mon portable, ma femme ne le ferait pas.

 

Bon, à  réfléchir tout ça ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

Le code ne peut pas savoir si tu es absent ou présent, sauf si 

- tu définis la variable maison toi-même manuellement 

- la variable maison est modifiée si par exemple tu as un capteur NFC qui signale ta présence en rentrant. Aucune possibilité autre si tu n'utilises pas le GPS. Essaie un capteur de mouvement à  un endroit où il y a du passage. 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Bono2007 !

 

Donc ce que tu dis, c'est que par rapport au code que j'ai mis plus haut (le tiens avec mes infos), si, je change ma variable manuellement... (heu... donc dans le code quoi ?), dans ce cas ça fonctionne c'est ça ?

 

C'est ce que j'en ai déduit dans mes tests.

Il y aurait un champion du code pour que la variable soit bien interprété quand elle change d'état sans avoir a la changer manuellement dans le code ?

 

Quoi que je vais m'entrainer :D ça doit bien ce modifier ce truc :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Domodial,

 

Ta scène est lancée sur une modification de la Variable globale Maison

D'après ce que je comprend son contenu est soit "Present" soit "Absent". Si c'est le cas la ligne suivante enverra toujours "present", car la variable (en lua) Maison n'est pas définie

Il faut que tu compares avec la variable globale Maison; Par exemple:

local etatMaison = fibaro:getGlobalValue('Maison')
if (etatMaison == "Absent" ) then ifttt("absent") else ifttt("present");end;

Nicolas

Partager ce message


Lien à poster
Partager sur d’autres sites

×