Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'thermor'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Bienvenue
    • Annonces et suggestions
    • Nouveau ? Présentez-vous
    • Le bistrot
    • Mon installation domotique
    • Autres Solutions Domotiques
  • La HC2 et ses périphériques
    • La Home Center pour les nuls
    • Home Center 2 & Lite
    • Modules Fibaro
    • Modules Z-wave
    • Périphériques et matériels autres
    • Plugins
    • Alarme & Vidéo-surveillance
    • Multimédia
    • Chauffage et Energie
    • Actionneurs & Ouvrants (Portail, volets...)
    • Eclairage
    • Applications Smartphones et Tablettes
    • English Section
  • Les objets connectés
    • Les Assistants Vocaux
  • Fibaro's Awards
    • Membre du mois
    • Jeux concours & Cadeaux
  • Les bonnes affaires
    • Sites internet
    • Petites annonces

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Jabber


Skype


Ville :


Intéret :


Version

1 résultat trouvé

  1. Bonjour à tous, Petit post pour aider ceux qui sont dans le même cas que moi ! J'ai un chauffe eau tout neuf Thermor 270L thermodynamique. Bref c'est cool, mais il est pas compatible HC2, mais ... il peut se connecter en IO Home Control (techno proprio de Somfy entre autre) Bref, j'ai pas acheté une Tahoma car trop cher, mais un bridge CozyTouch , sur EBay , pour 56€ 'fdp inclus !) grace a ce bridge, je peux installer une app sur mon Teléphone (Thermor cozytouch), et piloter mon chauffe eau. Outre le fait que l'appli a été codé avec les pieds, et dès fois qu'elle répond pas ou affiche des données incohérentes, cela est quand même pratique. mais surtout, je peut utiliser les API 'privé' du bridget CozyTouch pour appeler moi-même les API Rest. Ahh , la ca devient plus interessant ! 2 URL a connaitre - https://ha110-1.overkiz.com/enduser-mobile-web/externalAPI/json/login A appeler en POST, avec 2 parametre dans le body en urlEncoded : userId=TONUSER&userPassword=TONPASSWORD Il faut récupérer le Set-Cookie de la réponse (qui contient le JSESSIONID) - https://ha110-1.overkiz.com/enduser-mobile-web/externalAPI/json/getSetup A Appeler en GET (ou POST), avec dans le Header : Cookie : les cookies récupéré dans l'appel du login (avec le jessionid) Dans le retour , on a TOUT !!!! Et bien, avec tout cela, j'ai fait un petit VD dans la HC2, qui m'affiche le nombre de douche restante ( Nbr de L eau chaude restant divisé par 30L) , le mode, si le boost est actif, si le mode abs est actif , le mode (auto, manu, eco) Vu qu'un VD ne peut pas faire d'appel en POST, j'ai du passer par une scene (id 34 , il faut changer l'id de la scene apperl dans le VD offcourse) qui fait le taf (en asyncrhone de 1s) et stock le résultat dans des vars global que lit le VD PS : Le VD affiche en icone un chiffre , qui est une image , le 7 étant l'image 1010 chez moi, et le 0 la 1017 PS : il faut créer les var gloable: - mode_chauffe_eau - douche_restante - chauffe_eau_boostD - chauffe_eau_boost - chauffe_eau_abs_D prochaine étape : pouvoir activer le mode boost... La scene --[[ %% properties %% events %% globals --]] local user = "xxxxxxxxxxxx" local pass = "xxxxxxxxxxxxxx" local url = "https://ha110-1.overkiz.com/enduser-mobile-web/externalAPI/json/"; local url_login = "login" local url_data = "getSetup" local body = "userId=" .. urlencode(user) .. "&userPassword=" .. urlencode(pass) --print(urlencode(body)) local JSESSION_ID="" local data = nil fibaro:debug(body) function urlencode(s) if (s) then s = string.gsub (s, "\n", "\r\n") s = string.gsub (s, "([^%w ])", function (c) return string.format ("%%%02X", string.byte(c)) end) s = string.gsub (s, " ", "+") end return s end function connect() print("> Connect ...") local httpClient = net.HTTPClient() httpClient:request(url .. url_login , { success = function(response) if (tonumber(response.status) == 200 or tonumber(response.status) == 201 or tonumber(response.status) == 202) then print(" > Connexion OK") JSESSION_ID=response.headers['Set-Cookie'] print(" > JSSESSION ID : " .. response.headers['Set-Cookie']) get_data() else print(" > Connexion KO !") fibaro:debug('Error' .. response.status) print("Error " .. response.data) end end, error = function(err) print(' > error = ' .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/x-www-form-urlencoded', }, data = body } }); end function get_data() print("> Get data...") local httpClient = net.HTTPClient() httpClient:request(url .. url_data , { success = function(response) if (tonumber(response.status) == 200 or tonumber(response.status) == 201 or tonumber(response.status) == 202) then print(" > Get data OK") data= json.decode(response.data) --print("Data " .. response.data) read_data() else print(" > Get data KO") fibaro:debug('Error' .. response.status) print(" > Error " .. response.data) end end, error = function(err) print('error = ' .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/x-www-form-urlencoded', ["Cookie"] = JSESSION_ID, }, data = nil } }); end function read_data() local devices=data['setup']['devices'] for i,v in ipairs(devices) do local one_device=devices[i] if(one_device['controllableName'] == 'io:AtlanticDomesticHotWaterProductionIOComponent') then read_data_chauffe_eau(one_device) end end end function read_data_chauffe_eau(device) --core:WaterConsumptionState local state_eau_restante = get_state_by_name(device['states'],'core:WaterConsumptionState') print('L d\'eau restante : ' .. state_eau_restante['value']) local douche_r=math.floor(tonumber(state_eau_restante['value']) / 30) print('douche restante : ' .. douche_r) fibaro:setGlobal('douche_restante',douche_r) local state_mode = get_state_by_name(device['states'],'io:DHWModeState') local mode = 'null' if(state_mode['value'] == 'autoMode') then mode='Auto' end if(state_mode['value'] == 'manualEcoInactive') then mode='Manuel' end if(state_mode['value'] == 'manualEcoActive') then mode='Manuel [Eco]' end fibaro:setGlobal('mode_chauffe_eau',mode) print('mode : ' .. mode) local chauffe_eau_boost = get_state_by_name(device['states'],'core:BoostModeDurationState') local mode_boost = 'OFF' if(chauffe_eau_boost['value'] ~= 0) then mode_boost = 'ON' end fibaro:setGlobal('chauffe_eau_boost',mode_boost) print('BOOST : ' .. mode_boost ) print('BOOST durée : ' .. chauffe_eau_boost['value']) fibaro:setGlobal('chauffe_eau_boostD',chauffe_eau_boost['value']) --chauffe_eau_abs_D local chauffe_eau_abs = get_state_by_name(device['states'],'io:AwayModeDurationState') print('Absence durée : ' .. chauffe_eau_abs['value']) fibaro:setGlobal('chauffe_eau_abs_D',chauffe_eau_abs['value']) end function get_state_by_name(l_states,name) for i,v in ipairs(l_states) do local one_s=l_states[i] if(one_s['name'] == name) then return one_s end end end connect(); Chauffe-Eau.vfib
×