Aller au contenu
jojo

Backup Heating Panels / Panneaux De Chauffage

Recommended Posts

Voici un nouveau venu dans la série backup/restore.

Avec ce couple scène / VD vous pourrez faire un backup (hors de votre HC2)  de vos panneaux de chauffage (Heating Panels) et ensuite un restore sur une nouvelle box (ou après un recovery).

 

post-1320-0-97936800-1434290282_thumb.jpg

 

Avec la scène en mode débug, on crée le backup des heating panels.

Le système génère deux tables

  • une pour la liste des Heating Panels
    post-1320-0-32861700-1433075084_thumb.jpg
  • et une autre avec la configuration de chaque heating panel
    post-1320-0-03619700-1433075085_thumb.jpg

On colle le résultat du debug de la scène dans le bouton restore du VD (que vous exportez sur votre disque dur).

Créer manuellement autant de heating panels qu'il y en a à  restaurer (car il n'est pas possible de prédire facilement (et de manière fiable) les ID qui seront générés par le système)

Récupérer les ID de ces nouveau Heating Panels via http://<ip>/api/panels/heating

Dans la table "ListeHP", remplacer les ID actuels par les nouveaux ID

Appuyez sur le bouton restore. (Si vous lancez le restore en Debug, vous avez un débug détaillé de ce qu'il a fait).

 

Ceci peut également être utilisé pour : (=> faites attention à  ce que les noms repris dans les tables ListeHP et ConfigHP soient parfaitement identiques)

  • Renommer un panneaux de chauffage
  • Faire une copie d'un panneau de chauffage, et donc l'utiliser comme template d'un nouveau
  • …

 

PS : les instruction se trouvent également dans le Main Loop du VD

v3:: correction bug API

Backup_HeatPanel_v3.0.vfib

Backup_HeatPanel_v3.0.lua

 

Historique :

v2 :

Backup_HeatPanel_v2.0.lua

Backup_HeatPanel_v2.0.vfib

v1.1 : optimisation du code du bouton backup grâce à  Steven

Backup_HeatPanel_v1.1.vfib

Backup_HeatPanel_v1.1.lua

v 1.0 : Backup_HeatPanel_v1.0.vfib

  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

Good !!

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pensai àun truc, avec le toolkit de Krikoff on ne peut pas faire une grosse sauvegarde de notre HC2 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Le tookit aura des évolutions il faut juste du temps a krikroff

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai publié une v1.1 avec une optimisation du code du bouton backup grâce àSteven.

Aucun changement de fonctionnalité.

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour ceux qui préfèrent le debug des scènes, j'ai créé une version scène du bouton backup (et qui évite de devoir supprimer les lignes [DEBUG] de la table ConfigHP)

Partager ce message


Lien à poster
Partager sur d’autres sites

version 2.0 publiée dans le premier post

Partager ce message


Lien à poster
Partager sur d’autres sites

jojo,

 

comme tu maitrises le panneau de chauffage, je me demandai si il y avait la possibilité de désactiver le panneau ?

En gros maintenant que la chaudiere n'est plus utile, pas besoin de faire faire au vanne le yoyo (ouvert/fermé) surtout quelles doivent etre tout le temps fermé et en été c'est pas conseillé de laisser les vannes fermées si je me trompe pas.

donc j'aimerai bien désactiver le panneau de chauffage car "Mode ETE' et le remettre cette hiver.

 

tu as une idée ?

Partager ce message


Lien à poster
Partager sur d’autres sites

il y a deux solutions :

  1. tu supprimes la pièce du panneau de chauffage (j'aime pas)
  2. tu passes la mièce en manuel à10 °C (mode vacances)

C'est ce que je fais.

J'ai d'ailleurs faits un petit module virtuel pour cela, qui en fonction du mode vacances et mode de chauffage, modifie automatiquement mes panneaux de chauffage. Ca fait longtemps que je me dis qu'il faudrait que je partage, mais il faut que je trouve le temps

Partager ce message


Lien à poster
Partager sur d’autres sites

Sauf que mettre à  10° manuel ca va fermé la vanne, moi je veux qu'en été elle soit ouverte à  fond (comme recommandé ici ou la pour pas bloquer la tige métallique)

 

ton VD est parfait

je mets une consigne MAX pour toutes mes tetes quand mode ETE et c'est bon.

Partager ce message


Lien à poster
Partager sur d’autres sites

si tu as des vannes Danfoss, ne gèrent-t-elles pas une ouverture régulière pour éviter qu'elle ne colle ?

 

P.S. je suis "présentemment" en train d'écrire le tuto pour l'automatisation du bazar

Partager ce message


Lien à poster
Partager sur d’autres sites

si tu as des vannes Danfoss, ne gèrent-t-elles pas une ouverture régulière pour éviter qu'elle ne colle ?

 

ha tu crois ?

Partager ce message


Lien à poster
Partager sur d’autres sites

voici ce que j'avais lu dans la doc

5.3 Antigommage automatique
Pour maintenir le robinet de radiateur en état de fonctionnement optimal, living connect® le fait travailler
automatiquement chaque jeudi vers 11h00 par une ouverture complète suivie d’un retour au réglage
normal.

Mais en fait, cla semble être leur living connect qui fait ce travail.

Je vais regarder comment le faire faire par Fibaro

Partager ce message


Lien à poster
Partager sur d’autres sites

en redémarrant mon chauffage ce matin, j'ai vu qu'il y avait un bug dans la version 2 (chargement des valeurs pas dans le bon ordre de l'ÀPI)

J'ai donc publié une version 3 corrigée dans le premier post.

 

code de la scène :

----------------------------------
-- Instructions
----------------------------------
--[[
pour le BACKUP
1) lancer cette scène en mode debug
2) copier les tables 
    ListeHP = { ... } et ConfigHP = { ... } 
     dans le bouton Restore du VD "Backup HeatPanel"
3) sauver le VD
4) exporter le VD sur votre disque dur

pour le RESTORE (via le VD)
1) créer manuellement autant de Heating Panels qu'il y en a
   à  restaurer.
2) récupérez les ID de ces nouveaux Heating Panels via
   http://<ip>/api/panels/heating
3) dans la table ListHP, remplacer les ID actuels, par les 
   nouveaux ID
!! les noms référencés dans les tables ListeHP et ConfigHP
   doivent être IDENTIQUES
--]]
----------------------------------
-- DO not change bellow this line
----------------------------------
Days = {"monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"}
DayParts = {"morning", "day", "evening", "night"}

-- backup Liste des heating panels
jsonListe = api.get("/panels/heating")

result = "<BR><BR>-- Backup liste des Heating Panels généré le : " .. os.date("%d/%m/%y à  %X")
result = result.. '<BR><BR>local ListeHP = {<BR>-- id, "name", '
for k, v in pairs(jsonListe) do
  result = result ..'<BR>'.. v.id ..', "' .. v.name ..'",'
end
result = result .. "<BR>}"
--fibaro:debug(result)

-- backup de la configuration détaillée des heating panels
result = result.. "<BR><BR>-- Backup configuration des Heating Panls généré le : " .. os.date("%d/%m/%y à  %X")
result = result.. '<BR><BR>local ConfigHP = {<BR>-- "name", "day", "part", "hour", "minute", "temperature", '
for k, v in pairs(jsonListe) do
  jsonTable =  api.get("/panels/heating/"..v.id)
  result = result ..'<BR>"' .. jsonTable.name ..'", '
  for _,Day in pairs(Days) do
    result = result ..'<BR>"'..Day..'", '
    for _,Part in pairs(DayParts) do
      result = result .. '"'..Part..'", '
      result = result ..'"'.. jsonTable.properties[Day][Part].hour ..'", '
      result = result ..'"'.. jsonTable.properties[Day][Part].minute ..'", '
      result = result ..'"'.. jsonTable.properties[Day][Part].temperature ..'", '
    end  -- DayParts
  end -- Days
end
result = result .. "<BR>}"
fibaro:debug(result)

code du bouton restore du VD :

----------------------------------
-- User Settings
----------------------------------

-- Backup liste des Heating Panels généré le : 14/06/15 à  15:19:33

local ListeHP = {
-- id, "name", 
4, "Etage_Bureau",
6, "Etage_SdB",
7, "Etage_Circul",
9, "Rez_SdB",
}

-- Backup configuration des Heating Panls généré le : 14/06/15 à  15:19:33

local ConfigHP = {
-- "name", "day", "part", "hour", "minute", "temperature"
"Etage_Bureau", 
"monday", "morning", "6", "0", "17", "day", "12", "0", "17", "evening", "17", "0", "20", "night", "22", "0", "17", 
"tuesday", "morning", "6", "0", "17", "day", "12", "0", "17", "evening", "17", "0", "20", "night", "22", "0", "17", 
"wednesday", "morning", "6", "0", "17", "day", "12", "0", "17", "evening", "17", "0", "20", "night", "22", "0", "17", 
"thursday", "morning", "6", "0", "17", "day", "12", "0", "17", "evening", "17", "0", "20", "night", "22", "0", "17", 
"friday", "morning", "6", "0", "17", "day", "12", "0", "17", "evening", "17", "0", "20", "night", "22", "0", "17", 
"saturday", "morning", "9", "0", "20", "day", "12", "0", "20", "evening", "17", "0", "20", "night", "22", "0", "17", 
"sunday", "morning", "9", "0", "20", "day", "12", "0", "20", "evening", "17", "0", "20", "night", "22", "0", "17", 
"Etage_SdB", 
"monday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "18", "30", "22", "night", "21", "0", "17", 
"tuesday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "18", "30", "22", "night", "21", "0", "17", 
"wednesday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "18", "30", "22", "night", "21", "0", "17", 
"thursday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "18", "30", "22", "night", "21", "0", "17", 
"friday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "18", "30", "22", "night", "21", "0", "17", 
"saturday", "morning", "9", "0", "21", "day", "10", "0", "17", "evening", "18", "30", "22", "night", "21", "0", "17", 
"sunday", "morning", "9", "0", "21", "day", "10", "0", "17", "evening", "18", "30", "22", "night", "21", "0", "17", 
"Etage_Circul", 
"monday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "17", "0", "21", "night", "22", "0", "17", 
"tuesday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "17", "0", "21", "night", "22", "0", "17", 
"wednesday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "17", "0", "21", "night", "22", "0", "17", 
"thursday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "17", "0", "21", "night", "22", "0", "17", 
"friday", "morning", "6", "0", "21", "day", "7", "0", "17", "evening", "17", "0", "21", "night", "22", "0", "17", 
"saturday", "morning", "8", "0", "21", "day", "12", "0", "21", "evening", "17", "0", "21", "night", "22", "0", "17", 
"sunday", "morning", "8", "0", "21", "day", "12", "0", "21", "evening", "17", "0", "21", "night", "22", "0", "17", 
"Rez_SdB", 
"monday", "morning", "6", "0", "21", "day", "7", "0", "15", "evening", "18", "0", "0", "night", "0", "0", "0", 
"tuesday", "morning", "6", "0", "21", "day", "7", "0", "15", "evening", "18", "0", "0", "night", "0", "0", "0", 
"wednesday", "morning", "6", "0", "21", "day", "7", "0", "15", "evening", "18", "0", "0", "night", "0", "0", "0", 
"thursday", "morning", "6", "0", "21", "day", "7", "0", "15", "evening", "18", "0", "0", "night", "0", "0", "0", 
"friday", "morning", "6", "0", "21", "day", "7", "0", "15", "evening", "18", "0", "0", "night", "0", "0", "0", 
"saturday", "morning", "8", "30", "21", "day", "10", "30", "15", "evening", "18", "0", "0", "night", "0", "0", "0", 
"sunday", "morning", "8", "30", "21", "day", "10", "30", "15", "evening", "18", "0", "0", "night", "0", "0", "0", 
}

----------------------------------
-- DO not change bellow this line
----------------------------------
--Days = {"monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"}
--DayParts = {"morning", "day", "evening", "night"}
--Parameters = {"temperature", "minute", "hour"}

----------------
-- FUNCTIONS
----------------
function Debug(Color, Message)
  fibaro:debug('<span style="color:' ..Color.. ';">' ..Message.. '</span>')
end
----------------
-- END FUNCTIONS
----------------

fibaro:call(fibaro:getSelfId(), "setProperty", "ui.message.value", "Restore démarré")
Debug("white", "Restore démarré")

msg = "Erreur : pas d'id trouvé pour : "

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

-- renomer les heating panels & remettre les bons horaires
for i = 1, #ConfigHP, 120 do -- parcourir les HP
  HPindex = i
  -- parcourir la table ConigHP et retrouver l'id dans ListeHP
  HPid = 0
  for j = 1, #ListeHP, 2 do 
    if ConfigHP[i] == ListeHP[j+1] then HPid = ListeHP[j] end
  end
  if HPid ~= 0 
    then 
      Debug("blue", "nom : " ..ConfigHP[i].. " - ID : " ..HPid)
      jsonInput = '{"name":"'..ConfigHP[i]..'","properties":{'
      for j = i+1, i+119, 17 do -- parcourir les jours
        HPday = j -- jour du  HP
        if j > i+1 then jsonInput = jsonInput..'},' end
        jsonInput = jsonInput..'"'..ConfigHP[HPday]..'":{'
        for k = j+1, j+16, 4 do -- parcourir les partir de jour
          HPpart = k -- partie du jour
          HPtemperature = ConfigHP[k+3]
          HPminute = ConfigHP[k+2]
          HPhour = ConfigHP[k+1]
          if k > j+1 then jsonInput = jsonInput..',' end
          jsonInput = jsonInput..'"'..ConfigHP[HPpart]..'":{"hour":'..HPhour..',"minute":'..HPminute..',"temperature":'..HPtemperature..'}'
        end
      end
      jsonInput = jsonInput..'}}}'
      Debug("white", jsonInput)
      response, status, error = HC2:PUT("/api/panels/heating/" ..HPid, jsonInput)
      Debug("green","status = " ..status.." - error = "..error)
    else
      Debug("red", "ERROR : pas d'id trouvé pour : ".. ConfigHP[i]) 
      msg = msg.. ConfigHP[i]..", "
  end
end

if msg == "Erreur : pas d'id trouvé pour : " then
  msg = "Restore terminé sans erreur"
  Debug("green", "Restore terminé sans erreur")
end

fibaro:call(fibaro:getSelfId(), "setProperty", "ui.message.value", msg)

Partager ce message


Lien à poster
Partager sur d’autres sites
Bonjour

Je suis parvenu àtout écrire dans une variable.

Exemple avec les paramètres pour le début de changement, changement tardif et de nuit.

Comment faire le script pour reconstruire tous de prendre de la variable et writeback.

S'il vous plaît aidez-moi avec ce ou est-il une solution pour le travail posté?

Merci beaucoup

Partager ce message


Lien à poster
Partager sur d’autres sites
Bonjour

 

Malheureusement, il ne fonctionne plus avec Firmware 4.081.

Y at-il une solution?

Mersi

Partager ce message


Lien à poster
Partager sur d’autres sites

oui, mais làtu l'a cherché : le firmware 4.081b est POURRI : il n'y a rien qui fonctionne avec ce firmware ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

×