Steven Posté(e) le 27 mars 2014 Signaler Posté(e) le 27 mars 2014 La gestion du chauffage sur la HC2 nécessite au minimum : Une sonde de température Des plages horaires et température souhaitées Un ou plusieurs modules déclencheurs pour activer/désactiver l'appareil de chauffe. Malheureusement, pas tout le monde est équipé de sonde de température et dans ce cas là , il est impossible de chauffer son habitat à travers sa HC2. Pour remédier à ce soucis, il est possible d'utiliser un module virtuel qui va piloter vos déclencheurs selon une autre source de température* tout en tenant compte de vos souhaits en terme de températures/pages horaires. Vous pouvez aussi utiliser ce module pour utiliser comme référence une moyenne de vos sondes ou tout autre calcul. Exemple, je pilote ma chaudière en fonction de la température intérieur ET extérieur. Une seul condition à l'usage de ce module ... vous allez devoir programmer vous même la fonction qui va renvoyer la température que vous souhaiter exploiter. Mais la bonne nouvelle est que vous êtes sur un site communautaire et qu'il y a plein de personne pour vous aider si besoin. * sonde Orégon connecté à une box RFXCom, une sonde renvoyant du json comme la Netatmo.Voici la démarche à suivre : 1) Règler votre panneau de chauffage selon vosdésires (notez son ID) : 2) Importer le module virtuel "Chauffage_-_Salon.vfib 3) Modifier les premières lignes de codes qui sont dans le bouton rafraîchir Heating.hysteresis = 0.7 --- +/- de chauffage Heating.holidays = 8 -- température souhaitée du mode vacances Heating.stefa = 1 -- id du panneau de chauffage Heating.admin = "admin" Heating.password = "admin" -- Retourne la température courante Heating.getActualTemp = function() -- Ici vous pouvez mettre votre code qui doit renvoyer un nombre -- correspondant à la température en cours -- Dans mon cas, je reprend la valeur contenu dans le slider "tempSalon" du module 43 return tonumber(fibaro:getValue(43, "ui.tempSalon.value"))/10 end Heating.switch = function(choice) -- Choice est soit "turnOn", soit "turnOff" -- cela permet d'activer/désactiver plusieurs modules en même temps ou de faire -- divers traitement que le système allume/éteint les modules fibaro:call(33, choice) --fibaro:call(34, choice) --fibaro:call(35, choice) end ... L’hystérésis est utilisée pour temporiser l'allumage/extinction du système. Exemple, j'ai défini 21° dans le panneau de chauffage pour le mardi matin. Le système va prendre 21°, soustraire l’hystérésis (0.7°) et va donc ce mettre en chauffe à 20.3°. De même dans l'autre sens, ou il va attendre qu'il fasse 21° + 0.7° pour s'éteindre soit 21.7°.Cela permet d'éviter que le système s'active à 20.9 et se désactive à 21. Ce qui peut être très dérangeant pour un poêle à pellet comme le mien. 4) Variable globale :Il faut créer un variable globale "Chauffage" qui peux prendre les valeurs : ON, OFF et VACANCES 5) Scénario qui temporise tous cela :Créer un scénario qui "appuie" sur le bouton "Rafraichir" toutes les X minutes (5 minutes dans mon cas). Usage : Etat : Indique [Température actuel] / [Température souhaitée] [[hystérésis]] (correction appliquée) Rafraichir : rafraichi manuellement les calculs Automatic : met le système en mode automatique (allumé) Eteindre : stoppe le système jusqu'au prochain appuie sur "Automatic" Vacances : Bascule en mode vacances (Utilise Heating.holidays comme température souhaitée) -1, -0.5, +0.5, +1 : Permet d'ajouter une "correction" de température souhaitée. Cette correction est annulée dès le prochain changement de mode. Exemple mardi matin, je ne souhaite plus 21° mais 22°. J'appuie donc sur +1. Quand le panneau de chauffage m'indiquera que nous somme en "mardi après-midi" la correction de +1 sera automatiquement annulée. Cela correspond au mode Jour ou Nuit temp. Correction : indique la différence de correction souhaitée Mode : indique le mode en cours En Chauffe : indique si le système est en chauffe (actif) ou non En gras sont les éléments nécessaires au module pour fonctionner, si tu les enlèves, il va planter. En prime, dans le code, il y a une méthode Heating.keepOn = function(). Je l'utilise pour ralentir le chauffage de mon poêle lorsque la température souhaitée est presque atteinte. Je l'ai mise en commentaire mais tu peux l'utiliser.Dans me cas, cela donne de 20.3° à 20.7° .. On chauffe à fondde 20.8° à 21.7° .. On chauffe en douceur en ralentissant la chauffe à 21.8° on coupe tout Conclusion. Voici un module virtuel qui accepte comme température de référence n'importe quoi : la température d'un module z-wave un code json (Netamo) ... et qui va piloter vos modules selon les températures indiquées dans votre panneau de chauffage. Ce module est testé chez moi depuis plus d'un mois avec succès sur un poêle à pellet qui, par définition, est bien plus pénible que des radiateurs P.S. Joint les icônes que j'utilise pour l'affichage. Chauffage_-_Salon.vfib 9
Steven Posté(e) le 28 mars 2014 Auteur Signaler Posté(e) le 28 mars 2014 Pour recevoir la température d'une sonde de puis une Zibase ou autre box permettant d'envoyer la température via une URL : 1) Sur la HC2, créer un module virtuel avec des sliders (1 slider par information) 2) Depuis la zibase créer un scénario qui va répondre à la sonde: Stimuli : la sonde Orégon Etape 1 : Affecter une chaîne de caractère à une variable : V0 = http://<admin>:<admin>@<IP HC2>/api/callAction?deviceID=<ID module virtuel>&name=setSlider&arg1=<numéro du slider>&arg2=I0 -- petit rappel I0 = température I1 = humidité Etape 2 : Commander par Http : URL Contenue dans la variable globale V0 Avec juste ceci, vous avez un module virtuel prêt à recevoir un nombre à travers de slider et vous avez un scénario qui va mettre à jour la valeur du slider. Pour obtenir en LUA la valeur du slider : local temp = tonumber(fibaro:getValue(<ID module virtuel>, "ui.<id du slider>.value"))/10 --local temp = tonumber(fibaro:getValue(fibaro:getSelfId(), "ui.tempSalon.value"))/10 Voilà , vous avez maintenant la température de ta sonde Orégon exploitable en LUA sur ta HC2.
Zorro Posté(e) le 29 mars 2014 Signaler Posté(e) le 29 mars 2014 @Steven, un grand Merci !! je pense qu'àterme je ne voudrais utiliser que la HC2 afin d'unifier mais en attendant je pense que c'est une bonne solution. je vais experimenter le truc
Zorro Posté(e) le 29 mars 2014 Signaler Posté(e) le 29 mars 2014 Le module est bien crée le paramétrage dans le panneau de chauffage je ne vois pas trop comment dire : tu utilises le module virtuel nommé passerelle zibase et en fonction de ça tu allumes les 3 radiateurs du salon
Zorro Posté(e) le 3 avril 2014 Signaler Posté(e) le 3 avril 2014 Salut Steven , ça c'est du Tuto !!! je tiens vraiment à te remercier , c'est très sympa, je vois que nous sommes à peu prés dans la même config (Zibase / HC2) et ton expérience m'aide enormément. Bravo également pour la Gestion avec la famille, je gère bien moins bien que toi avec un enfant de moins ... je vais tester ça !
pgondot Posté(e) le 3 avril 2014 Signaler Posté(e) le 3 avril 2014 Bonjour, Je tente la mise en place de votre module mais je bloque sur : return tonumber(fibaro:getValue(43, "ui.tempSalon.value"))/10 43 est bien la sonde de temperature ? ainsi "ui.tempSalon.value" serait la valeur retournée par la sonde J'ai essayé avec "value" qui me retourne la température mais impossible d'avoir la bonne dizaine : soit 2.14 soit 214 mais si votre module fonctionne mon erreur est ailleurs et il faut bien garder "ui.tempSalon.value" Merci de me sortir du brouillard
Steven Posté(e) le 3 avril 2014 Auteur Signaler Posté(e) le 3 avril 2014 ... Merci de me sortir du brouillard Attention cette ligne est làpour exemple et doit être remplacée. Si ton module àbien l'ID 43 et que le getValue te donnais 2.14 c'est qu'il faut juste que tu enlèves le /10 qui est àla fin. Mon exemple était principalement pour Zorro car il reçoit la température directement depuis sa ZiBASE et cette coquine renvoi 210°. Et il faut donc diviser par 10. Si tu as besoin d'un coup de main... Hurle et donne moi plus d'info sur ta configuration. @zorro En effet même configuration J'ai juste un peu plus d'avance sur toi mais cela ne va pas perdurer. Sent from my GT-I9192 using Tapatalk
Lazer Posté(e) le 3 avril 2014 Signaler Posté(e) le 3 avril 2014 Merci pour le partage Steven, il a l'air excellent ce petit module virtuel
pgondot Posté(e) le 4 avril 2014 Signaler Posté(e) le 4 avril 2014 Bonjour, Pour ma part j'avance : supprimer le module et reprendre à zéro. Ainsi si on n'a pas de passerelle zibase pour récup des temp je modifie return tonumber(fibaro:getValue(43, "ui.tempSalon.value"))/10 par return tonumber(fibaro:getValue(43, "value")) qui récupère ma temp Mon niveau "truffe en prog" me fait poser qques question concernant les figaro:call(...) ex1 : fibaro:call(selfId, "setProperty", "currentIcon", 1059) à quoi correspond le 1059 ex2 : fibaro:call(fibaro:getSelfId(), "pressButton", "2") dans les boutons à quoi correspond le "2" Bon rigolez, je sais que je ferais mieux de programmer en mode graphique, Tout cela pour proposer une amélioration (?) : Si j'ai bien compris ton module ne modifie pas le panneau de chauffage mais "force" ou "coupe" d'ailleurs j'ai pas très bien compris le mode vacances : dans le panneau on sélectionne les zones, on règle une temp, et on allume le mode, dans le module comment règle t'on la temp ? Revenons à l'amélioration : une ligne de boutons supplémentaires correspondants aux zones de chauffage et ainsi sélection de la pièce (zone) à forcer je pense que l'appui sur un bouton de zone sélectionne dans un tableau de modules le ou les interrupteurs de chauffage. Une interface et madame (un peu frileuse) pourra booster momentanément et surtout simplement Bon tout cela est bien sur pour ceux qui chauffe à l'élec et non avec un poêle et encore merci de nous montrer ce qu'il est possible de réaliser
Steven Posté(e) le 4 avril 2014 Auteur Signaler Posté(e) le 4 avril 2014 Comme tu le sais, je t'ai déjà répondu mais je résume ici pour les autres personnes : fibaro:call(fibaro:getSelfId(), "pressButton", "2") permet d'appuyer sur le bouton avec l'ID 2 qui est le bouton Rafraîchir. Pour faire simple, je change une valeur puis je rafraichi ... tout simplement. Pour les icones, c'est ici (http://forum.fibaro....opic.php?t=3635). En gros, chaque fois que tu insert une nouvelle icone dans la HC, elle te le stock sous le nom User1057 ... 1057 est son identifiant. En aucun cas ce module ne modifie le panneau de chauffage, c'est pour moi très important, en aucun cas mon code ne modifie vos choix. Le code ne "force" ni ne "coupe" rien. Tout ce qu'il fait est de "lire" le panneau de chauffage et de gérer les modules que vous aurez coder en fonction des informations recueillies. Dans mon module, on ne règle pas la température. Comme décrit, il lit la température que vous avez indiqué dans le panneau de chauffage et il vous permet d'ajouter/supprimer temporairement quelques degrés. L'appuie sur le bouton éteindre désactive le module virtuel, il ne change rien d'autre. Le mode vacances, lui, permet simplement de passer outre le panneau de chauffage et de toujours retourné la température (de 8°) comme température souhaitée. Pour la gestion des pièces/zones j'y avait déjà pensé. Cela est réalisable par contre, le code deviendrait tellement plus compliquer qu'il serait très difficile au utilisateur de le modifier. Je préfère donc que les utilisateurs crée un module virtuel par pièces plutôt qu'un seul qui lui gère les pièces. De plus, la gestion des pièces sur la HC est relativement bien pensée. J'espère avoir été clair ... ce qui n'est pas toujours mon fort
pgondot Posté(e) le 4 avril 2014 Signaler Posté(e) le 4 avril 2014 Parfait pour moi alors pour les autres .... Envoyé de mon iPad àl'aide de Tapatalk
pgondot Posté(e) le 4 avril 2014 Signaler Posté(e) le 4 avril 2014 et me revoila : peut on mettre dans le mainloop du mod.Virtuel fibaro:call(fibaro:getSelfId(), "pressButton", "2") delay (5*60*1000) cela evite de créer une scene ?
Steven Posté(e) le 4 avril 2014 Auteur Signaler Posté(e) le 4 avril 2014 C'est possible mais je n'aime pas le main loop (pas 100% stable). Sinon, ce n'est pas delay mais fibaro:sleep Cordialement Sent from my GT-I9192 using Tapatalk
sgirod Posté(e) le 2 mai 2014 Signaler Posté(e) le 2 mai 2014 La gestion du chauffage sur la HC2 nécessite au minimum : Une sonde de température Des plages horaires et température souhaitées Un ou plusieurs modules déclencheurs pour activer/désactiver l'appareil de chauffe. Malheureusement, pas tout le monde est équipé de sonde de température et dans ce cas là , il est impossible de chauffer son habitat à travers sa HC2. Pour remédier à ce soucis, il est possible d'utiliser un module virtuel qui va piloter vos déclencheurs selon une autre source de température* tout en tenant compte de vos souhaits en terme de températures/pages horaires. Vous pouvez aussi utiliser ce module pour utiliser comme référence une moyenne de vos sondes ou tout autre calcul. Exemple, je pilote ma chaudière en fonction de la température intérieur ET extérieur. Une seul condition à l'usage de ce module ... vous allez devoir programmer vous même la fonction qui va renvoyer la température que vous souhaiter exploiter. Mais la bonne nouvelle est que vous êtes sur un site communautaire et qu'il y a plein de personne pour vous aider si besoin. * sonde Orégon connecté à une box RFXCom, une sonde renvoyant du json comme la Netatmo. Voici la démarche à suivre : 1) Règler votre panneau de chauffage selon vosdésires (notez son ID) : 2) Importer le module virtuel "Chauffage_-_Salon.vfib 3) Modifier les premières lignes de codes qui sont dans le bouton rafraîchir Heating.hysteresis = 0.7 --- +/- de chauffage Heating.holidays = 8 -- température souhaitée du mode vacances Heating.stefa = 1 -- id du panneau de chauffage Heating.admin = "admin" Heating.password = "admin" -- Retourne la température courante Heating.getActualTemp = function() -- Ici vous pouvez mettre votre code qui doit renvoyer un nombre -- correspondant à la température en cours -- Dans mon cas, je reprend la valeur contenu dans le slider "tempSalon" du module 43 return tonumber(fibaro:getValue(43, "ui.tempSalon.value"))/10 end Heating.switch = function(choice) -- Choice est soit "turnOn", soit "turnOff" -- cela permet d'activer/désactiver plusieurs modules en même temps ou de faire -- divers traitement que le système allume/éteint les modules fibaro:call(33, choice) --fibaro:call(34, choice) --fibaro:call(35, choice) end ... L’hystérésis est utilisée pour temporiser l'allumage/extinction du système. Exemple, j'ai défini 21° dans le panneau de chauffage pour le mardi matin. Le système va prendre 21°, soustraire l’hystérésis (0.7°) et va donc ce mettre en chauffe à 20.3°. De même dans l'autre sens, ou il va attendre qu'il fasse 21° + 0.7° pour s'éteindre soit 21.7°. Cela permet d'éviter que le système s'active à 20.9 et se désactive à 21. Ce qui peut être très dérangeant pour un poêle à pellet comme le mien. 4) Variable globale : Il faut créer un variable globale "Chauffage" qui peux prendre les valeurs : ON, OFF et VACANCES 5) Scénario qui temporise tous cela : Créer un scénario qui "appuie" sur le bouton "Rafraichir" toutes les X minutes (5 minutes dans mon cas). Usage : Etat : Indique [Température actuel] / [Température souhaitée] [[hystérésis]] (correction appliquée) Rafraichir : rafraichi manuellement les calculs Automatic : met le système en mode automatique (allumé) Eteindre : stoppe le système jusqu'au prochain appuie sur "Automatic" Vacances : Bascule en mode vacances (Utilise Heating.holidays comme température souhaitée) -1, -0.5, +0.5, +1 : Permet d'ajouter une "correction" de température souhaitée. Cette correction est annulée dès le prochain changement de mode. Exemple mardi matin, je ne souhaite plus 21° mais 22°. J'appuie donc sur +1. Quand le panneau de chauffage m'indiquera que nous somme en "mardi après-midi" la correction de +1 sera automatiquement annulée. Cela correspond au mode Jour ou Nuit temp. Correction : indique la différence de correction souhaitée Mode : indique le mode en cours En Chauffe : indique si le système est en chauffe (actif) ou non En gras sont les éléments nécessaires au module pour fonctionner, si tu les enlèves, il va planter. En prime, dans le code, il y a une méthode Heating.keepOn = function(). Je l'utilise pour ralentir le chauffage de mon poêle lorsque la température souhaitée est presque atteinte. Je l'ai mise en commentaire mais tu peux l'utiliser. Dans me cas, cela donne de 20.3° à 20.7° .. On chauffe à fond de 20.8° à 21.7° .. On chauffe en douceur en ralentissant la chauffe à 21.8° on coupe tout Conclusion. Voici un module virtuel qui accepte comme température de référence n'importe quoi : la température d'un module z-wave un code json (Netamo) ... et qui va piloter vos modules selon les températures indiquées dans votre panneau de chauffage. Ce module est testé chez moi depuis plus d'un mois avec succès sur un poêle à pellet qui, par définition, est bien plus pénible que des radiateurs P.S. Joint les icônes que j'utilise pour l'affichage. Bonjour Steven, Super module virtuel, exactement celui qu'il me fallait. Je l'utilise pour piloter mes radiateurs (tous électriques) en récupérant la valeur de mes sondes oregon (en passant par FHEM) Donc sans ton module pas de possibilité d'utiliser mes sondes, vraiment merci. J'ai tout de même un petit soucis, au 3eme module installé (j'en aurais 10 en tout) l'affichage des icones est devenu aléatoire, de temps en temps elles apparaissent bien dans certaines pièces et dans d'autres c'est l'icone par défaut du module virtuel qui apparait. Aurais tu une explication à ça ? cordialement, Sylvain
Steven Posté(e) le 3 mai 2014 Auteur Signaler Posté(e) le 3 mai 2014 Salut Sylvain, Je suis àenviron 4000km de ma box donc difficile de tester. Néanmoins le comportement que tu m'explique est étrange mais je ne pourrais rien tester avant la fin de la semaine prochaine. @+
Steven Posté(e) le 9 mai 2014 Auteur Signaler Posté(e) le 9 mai 2014 Me revoilà , J'ai relu mon code encore et encore et je ne trouve pas de problème à la gestion des icônes (ce qui ne veux pas forcément dire qu'il n'y en a pas). De mon côté, je n'utilise qu'un seul module pour la gestion de ma maison (un seul poêle). Néanmoins, je ne vois pas pourquoi cela poserais de soucis d'en avoir plusieurs qui tournent en parallèle. J'avais fait attention à cela lors de mon développement. Si quelqu'un d'autre aurait du temps pour faire une relecture de mon code, cela serait sympa. Merci d'avance.
sgirod Posté(e) le 9 mai 2014 Signaler Posté(e) le 9 mai 2014 Bonjour Steven, Merci de t'intéresser à mon problème, j'ai également fait des recherches de mon côté et je pense avoir trouvé sans bien comprendre la relation... J'avais rajouté dans le main loop les lignes suivantes fibaro:call(fibaro:getSelfId(), "pressButton", "2") fibaro:sleep (5*60*1000) Comme tu précisais que tu n'aimais pas trop le main loop parce que pas stable, je me suis dit c'est peut être ça, mais non, fausse piste... Je t'ai dit que j'utilises ton module avec celui de lazer qui est un module pour récupérer les températures de mes sondes Oregon, donc autant de modules temperature que de modules thermostat, et dans ce module j'utilisais toujours la même variable pour relire dans le tien (variable tempSalon) J'ai donc créé une variable pour chaque pièce et depuis toutes les icones sont là , par contre je ne vois pas bien la relation... Je dois te dire que j'utilise aussi ton module pour piloter un radiateur avec un fil pilote et ça fonctionne super bien, j'ai juste changé le On en Off et le Off en On et mon radiateur est commandé par ton module. Merci et à bientot
Steven Posté(e) le 9 mai 2014 Auteur Signaler Posté(e) le 9 mai 2014 Si ce module t'es utile, c'est un vrai plaisir pour moi. Pour le bug ... en effet, je ne vois pas non plus la relation entre la variable tempSalon et les icônes, mais je suis bien content que tu ailles pu régler cela. Cordialement
Steven Posté(e) le 2 octobre 2014 Auteur Signaler Posté(e) le 2 octobre 2014 Dès la sortie de la V4 ... La suite ici : http://www.domotique-fibaro.fr/index.php/topic/2164-plugin-virtual-sensor/ 1
BenjyNet Posté(e) le 2 octobre 2014 Signaler Posté(e) le 2 octobre 2014 Steven, est-ce qu'on ne pourrait pas s'attacher àdévelopper (enfin toi surtout ) un vrai module de chauffage incluant un régulateur PID pour la HC2. Il me semble que c'est ce qui est mis en place sur l'eedomus et que c'est ce qu'il manque cruellement sur la HC2. Un simple tout ou rien sur une limite de chauffage me parait bien moins précise que la régulation numérique des radiateurs chaleur douce d'aujourd'hui. Qu'en penses-tu ? 1
BenjyNet Posté(e) le 2 octobre 2014 Signaler Posté(e) le 2 octobre 2014 Au passage ça ne sert à rien de réinventer la roue quand le script ultime existe déjà ... et il parait même que ça fonctionne très bien : http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/98_PID20.pm Je ne pense pas être assez calé pour adapter ça pour la HC2 mais si on avait un plugin "Regulation_PID", le pied quoi !
Lazer Posté(e) le 3 octobre 2014 Signaler Posté(e) le 3 octobre 2014 Steven, tu as une nouvelle mission on dirait bien Si ça peut t'aider aussi : Algorithme Chauffage Programmation Thermostat Virtuel
Steven Posté(e) le 4 octobre 2014 Auteur Signaler Posté(e) le 4 octobre 2014 J'arrive déjàpas trouver le temps de faire ce que j'ai promis
HANSOLO Posté(e) le 4 octobre 2014 Signaler Posté(e) le 4 octobre 2014 @Steven président. @Steven président. Il fait déjà des promesses qu'il ne tient pas. 2
Fredric Posté(e) le 24 octobre 2014 Signaler Posté(e) le 24 octobre 2014 @Steven, j'ai du mal à adapter ton module, j'ai installé des FGS-221 avec diodes pour 4 ordres et créé un vd par pièces. ton module envoie un "turnOn | turnOff" comme commande, je n'arrive pas à modifier cela par un fibaro:call(340, "pressButton", "1") pour turnOn et fibaro:call(340, "pressButton", "4") pour turnOff tu as le temps pour un peu d'aide?
Messages recommandés