-
Compteur de contenus
350 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Tout ce qui a été posté par Barelle
-
Concernant cet article, sa longueur est sûrement due à son origine, les américains sont friands de nombreuses redites... Son intérêt me paraît résider surtout dans sa cible, le grand public. Même si pour son sponsor, la fondation Mozilla, il doit s'inscrire dans une stratégie plus globale d'attaque de ses grands concurrents, Google en tête. Un des points positifs, surtout en ce mois de mai de mise en oeuvre de la RGPD, est la médiatisation même si elle est marginale, aux USA, de la sensibilité des données personnelles. C'est aussi pour cela que nous avons privilégié la solution Fibaro en refusant une solution basée sur le cloud.
-
Drôle ou inquiétant ? https://www.les-crises.fr/la-maison-qui-ma-espionne-par-kashmir-hill-et-surya-mattu/ L'article est un peu long mais reflète une lucidité certaine.
-
Installation Ecodevise
Barelle a répondu à un(e) sujet de Mickaelkael dans Périphériques et matériels autres
Désolé, je ne maîtrise pas le mode bloc, et après avoir lu le code qu'il génère, j'ai très vite abandonné l'idée de l'utiliser. Il serait quand même surprenant que l'on ne puisse pas faire une condition sur une chaîne de caractères. -
Installation Ecodevise
Barelle a répondu à un(e) sujet de Mickaelkael dans Périphériques et matériels autres
Allez, je viens de retrouver cela en commentaire d'un bout de code : ADCO = Identification du compteur OPTARIF = Option tarifaire choisie ISOUSC = Intensité souscrite BASE = Index (option base) HCHC = Index HC (option Heures Creuses) HCHP = Index HP (option Heures Creuses) EJPHN = Index HN (option EJP) EJPHPM = Index PM (option EJP) BBRHCJB = Index HC jours bleus (option tempo) BBRHPJB = Index HP jours bleus (option tempo) BBRHCJW = Index HC jours blancs (option tempo) BBRHPJW = Index HP jours blancs (option tempo) BBRHCJR = Index HC jours rouges (option tempo) BBRHPJR = Index HP jours rouges (option tempo) PEJP =Préavis EJP (30 minutes), apparaît 30 minutes avant le début de période EJP PTEC = Période tarifaire en cours DEMAIN = Couleur du lendemain IINST = Intensité instantanée IINST1 = Intensité instantanée phase 1 IINST2 = Intensité instantanée phase 2 IINST3 = Intensité instantanée phase 3 ADPS = Dépassement de Puissance Souscrite, n’est émis que pendant le dépassement effectif IMAX = Intensité maximale atteinte IMAX1 = Intensité maximale atteinte phase 1 IMAX2 = Intensité maximale atteinte phase 2 IMAX3 = Intensité maximale atteinte phase 3 PAPP = Puissance apparente instantanée HHPHC = Codage horaire H.P / H.C [A,C,D,E,Y,1,2,3,4,5,6,7,8,9 (option HC) et A,C,D,E,Y (option tempo)] MOTDETAT = 3 octets : - 1er invraisemblance des compteurs, fraude ; 2e compteurs des reset et du chien de garde ; 3e erreur mémoires -
Installation Ecodevise
Barelle a répondu à un(e) sujet de Mickaelkael dans Périphériques et matériels autres
La variable PTEC de la trame EdF indique le tarif appliqué, ainsi pour les abonnements Tempo : - HCJB : Heures Creuses Jour Bleu - HPJB : Heures Pleines Jour Bleu - HCJW : Heures Creuses Jour Blanc - HPJW : Heures Pleines Jour Blanc - HCJR : Heures Creuses Jour Rouge - HPJR : Heures Pleines Jour Rouge Selon la même codification, l'on aura la valeur des six index : BBRHCJB, BBRHPJB, BBRHCJW, BBRHPJW, BBRHCJR et BBRHPJR. Je ne peux que t'encourager à chercher la description de la trame EdF. -
Installation Ecodevise
Barelle a répondu à un(e) sujet de Mickaelkael dans Périphériques et matériels autres
Dans la commande Net.FHttp, je te suggère de rajouter le numéro de port, ainsi : HC2 = Net.FHttp("192.168.1.88", 80) -
Pour moi, le plus simple est de le prévoir dans IFTTT. Ainsi, dans "What do you want to say" au lieu de taper "jarvis $", on peut mettre "pourrais-tu". Les ordres deviennent alors : Ok Google pourrais-tu ...
- 1 289 réponses
-
- 1
-
-
- topic unique
-
(et 1 en plus)
Étiqueté avec :
-
HC2 & HCL - 4.170 - Stable - 22/03/2018
Barelle a répondu à un(e) sujet de kioneoranga dans Firmware
Je suis totalement d'accord avec tes propos, toutefois, les champs étant présents, la scène de @Steven fonctionne toujours. Il n'y a donc pas urgence à la faire évoluer, et l'on peut raisonnablement considérer que l'échéance de la nécessité d'une évolution se situe au plus tôt lors de la release de la prochaine beta. -
HC2 & HCL - 4.170 - Stable - 22/03/2018
Barelle a répondu à un(e) sujet de kioneoranga dans Firmware
Sans vouloir prendre la défense de Fibaro, il convient de reconnaître que, même si les champs "Lili" ont disparu de l'interface, ils sont toujours présent dans la base de données : il suffit d'effectuer un "get devices" pour le constater. Aussi la scène de @Steven fonctionne toujours, on ne peut en revanche pas modifier les ordres Lili... Il aurait été effectivement plus professionnel de la part de Fibaro d'annoncer cette suppression lors de la mise à disposition de la version stable précédente. -
Je te suggère d’essayer le code suivant que je n'ai pas testé. local capteurId = 22; -- capteur de mouvement local PresenceCuisine = fibaro:getValue(capteurId, "value"); local DerniereModif = os.time() - fibaro:getModificationTime(capteurId, "value"); -- en secondes fibaro:debug("PresenceCuisine="..PresenceCuisine..", DerniereModif="..DerniereModif); if (DerniereModif >= 30 * 60) then -- 30 minutes -- éteindre la lumière end
-
Hello, Comme vous le savez, nos matériels électroniques n’apprécient pas du tout les coupures électriques. Pour cela, il est plus que recommandé d’utiliser un onduleur (ou UPS, "Uninterruptible Power Supply")… Le VD que je vous propose ici permet l’interrogation du serveur UPS résidant sur un NAS Synology (auquel l’onduleur est connecté par un port USB). Il met à jour une variable globale (appelée UpsStatus par défaut) avec les valeurs "power-line" ou "battery" selon que l’onduleur est sur secteur ou sur batterie. Cette variable globale permet le lancement de la scène ci-après qui : - lors d’un passage sur batterie, après le délai "delayBeforePowerOff" réalisera l’arrêt de la HC2 ; - lors du retour de l’alimentation, appuiera sur le bouton "WOL" du VD. Là aussi, le réveil se fera après un délai "delayBeforeWakeUp". Ces délais ont pour objet de s’affranchir de retours temporaires de tension. --[[ %% properties %% events %% globals UpsStatus --]] local globalVarName = "UpsStatus"; -- values "power-line" or "battery" local wolVdId = "337"; local wolVdBtnId = "11"; local delayBeforePowerOff = 5; -- minutes local delayBeforeWakeUp = 5; -- minutes local debug = true; function trace(text, color) color = color or "white"; if debug then fibaro:debug("<font color='"..color.."'>"..text.."</font>"); end end -- trace function tracerr(text, color) color = color or "red"; fibaro:debug("<font color='red'>ERROR! </font>".."<font color='"..color.."'>"..text.."</font>"); end -- tracerr function wakeOnLan() fibaro:call(wolVdId, "pressButton", wolVdBtnId); end -- wakeOnLan local sourceTrigger = fibaro:getSourceTrigger(); trace("sourceTrigger[type] = " .. sourceTrigger["type"], "deepskyblue"); if (sourceTrigger["type"] == "global") then if (sourceTrigger["name"] ~= globalVarName) then tracerr("unknown global "..sourceTrigger["name"].." exiting"); fibaro:abort(); end elseif (sourceTrigger["type"] == 'other') then trace("Scene triggered manually", "lightgreen"); -- inform user local upsStatus = fibaro:getGlobalValue(globalVarName); if (upsStatus ~= nil) then trace(globalVarName.." = "..upsStatus, "lightgreen"); fibaro:abort(); end else tracerr("unexpected trigger type ".. sourceTrigger["type"], "orange"); fibaro:abort(); end if (fibaro:countScenes() > 1) then trace("Script already running, exiting.", "green"); return; end local upsStatus = fibaro:getGlobalValue(globalVarName); if (upsStatus == nil) then tracerr("global "..globalVarName.." = nil"); fibaro:abort(); end if (upsStatus == "power-line") then local i = 0; for i = 1, (delayBeforeWakeUp * 6) do -- check every 10 seconds during delayBeforeWakeUp minutes fibaro:sleep(10 * 1000); -- ten seconds upsStatus = fibaro:getGlobalValue(globalVarName); if (upsStatus ~= "power-line") then trace("Still on battery, aborting", "orange"); fibaro:abort(); -- not stable end end -- Time to wake up devices trace("Waking up devices", "lightgreen"); wakeOnLan(); elseif (upsStatus == "battery") then local i = 0; for i = 1, (delayBeforePowerOff * 6) do -- check every 10 seconds during delayBeforePowerOff minutes fibaro:sleep(10*1000); -- ten seconds upsStatus = fibaro:getGlobalValue(globalVarName); if (upsStatus ~= "battery") then trace("Power is back, shut down aborted", "orange"); fibaro:abort(); end end -- shutdown HC2 gracefully trace("shutting down", "lightgreen"); fibaro:sleep(10*1000); HomeCenter.SystemService.shutdown(); else tracerr("global "..globalVarName.." unknown value: "..upsStatus); end Installation du VD : - Importer le VD, - Renseigner l’adresse IP du NAS connecté à l’onduleur, le port TCP 3493 est optionnel. - Les username et password présents dans le code du bouton Update fonctionnent pour un Synology. - Dans le code du bouton WOL, vous devrez préciser les adresses MAC des matériels que vous souhaitez réveiller. Il va de soi qu’ils devront être paramétrés pour accepter les "magic packets" afin d’être réveillés (pour les PC vérifier les paramètres de la carte réseau). - Pour les Nas Synology, il faut activer le WOL : "Panneau de configuration", "Matériel et alimentation", onglet "Général", cocher "Activer WOL sur le réseau local x". - Et ne pas oublier d’activer le serveur réseau UPS : "Panneau de configuration", "Matériel et alimentation", onglet "UPS", cocher "Activer la prise en "charge UPS" et "Activer le serveur réseau UPS"). - Enfin bien sûr, trouver une jolie icône pour les boutons du VD. Installation de la scène : - Préciser l’id du VD réalisant le WOL dans "wolVdId". - et le numéro du bouton à appuyer "wolVdBtnId". Pour ceux qui veulent personnaliser le VD, le code du bouton "Update" contient, à la fin, une description des principaux champs retournés par les serveurs UPS, Tous ne sont pas implémentés par Synology ou mon onduleur. Configuration utilisée pour les tests : - HC2 : 4.153 Beta - Onduleur : Eaton Ellipse PRO 1200 - NAS : Synology DS1010+ with DSM 5.2-5967 Update 6 Joyeux réveillon et bonne année à tous… UPS.vfib
-
Merci, pour être plus clair, on pourrait également remplacer les "???" par "id:"..v.id cela permettrait d'obtenir une information sur le module...
-
@flamalex Attention, pour les modules non assignés à une pièce, room vaut zéro et fibaro:getRoomNameByDeviceID(v.id) retourne nil... Je propose : local room = fibaro:getRoomName(fibaro:getRoomID(v.id)); if (room == nil) then room = "???"; end table.insert(modules, {batt, v.name .. " (" ..room..")"});
-
Numéro de série / Date d'Achat des box HC3, HC2 et HCL
Barelle a répondu à un(e) sujet de Lazer dans HC 2 & Lite
Bonsoir à tous, N° série : HC2-027100 Date achat : 11/2015- 265 réponses
-
- numéro de série
- hc2
-
(et 1 en plus)
Étiqueté avec :
-
Bravo Steven, cela marche au poil... Pour éviter de devoir mettre à jour la variable decalage à chaque changement d'heure, je te propose d'insérer dans la fonction "toHour" le code suivant après la déclaration "local h,m,s,am = s:match(pattern)" if (maintenant.isdst) then Self.decalage = 2; -- Heure d'été else Self.decalage = 1; -- Heure d'hiver end étant entendu que cela est valable pour la France métropolitaine, puisque cela ne prend pas en compte le fuseau horaire.
-
Suppression De Variable Globale Par Vd
Barelle a répondu à un(e) sujet de Sebbrunie1 dans HC 2 & Lite
Aà¯e, aà¯e aà¯e ! Bizutage ? Bon, si je trouve le temps, je m'y mets... -
Suppression De Variable Globale Par Vd
Barelle a répondu à un(e) sujet de Sebbrunie1 dans HC 2 & Lite
Souvent, découvrant leur nouveau joujou, les débutants (en lua) sont amenés à parcourir cet excellent forum à la recherche de la bonne syntaxe, ainsi, j'ai découvert la fonction api.get dans le tutoriel http://www.domotique-fibaro.fr/index.php/topic/4439-cr%C3%A9e-une-variable-globale-ou-une-variable-globale-predefinie-en-lua/ dans une réponse de mprinfo. De part sa concision, celle-ci a eu ma préférence. Maintenant, j'ignorais qu'elle n'est pas disponible dans les VD, encore une curiosité dont la logique m'échappe. @mprinfo, un tutoriel, pourquoi pas ? Mais je ne vois pas très bien quoi détailler, ce bout de code ne consiste qu'en l'analyse de la réponse de l'API, et pour un petit nouveau membre de moins de dix messages, publier un tutoriel serait quelque peu prétentieux... A tous, merci de vos aimables commentaires. -
Suppression De Variable Globale Par Vd
Barelle a répondu à un(e) sujet de Sebbrunie1 dans HC 2 & Lite
Et dans une ligne en commentaire ? Ce qui est sà»r, c'est que le nom de la variable fait partie des informations retournées par l'API. -
Suppression De Variable Globale Par Vd
Barelle a répondu à un(e) sujet de Sebbrunie1 dans HC 2 & Lite
Merci -
Suppression De Variable Globale Par Vd
Barelle a répondu à un(e) sujet de Sebbrunie1 dans HC 2 & Lite
Bonjour, Pour savoir où les variables globales sont utilisées, je vous propose la scène ci-après qui permet de lister, dans la fenêtre de debug, les variables globales et les endroits où elles sont utilisées : --[[ This scene is used to list all the global variables and where they are used. Its a kind of xref. --]] local globalVariables = api.get("/globalVariables"); -- Get all globals variables, local scenes = api.get("/scenes"); -- all the scenes local devices = api.get("/devices"); -- and all the devices local txt = '<BR><BR><font color="yellow">Globals Xref on : ' .. os.date("%d/%m/%y à %X") .. '</font><BR>'; for _, v in pairs(globalVariables) do -- For each global variable txt = txt .. '<BR><font color="Orange">' .. v.name .. ' :</font>'; local used = false; for _, s in pairs(scenes) do -- For each scene local scene = api.get("/scenes/" .. s.id); if scene.triggers.globals ~= nil then for _, g in pairs(scene.triggers.globals) do -- We look each trigger if (g ~= nil) and (g == v.name) then txt = txt .. '<BR><font color="lightgreen"> - trigger in scene "' .. s.name.. '"</font>'; used = true; end end end -- On inspecte le code lua if (scene.isLua ~= nil) and (scene.isLua == true) and (string.find(scene.lua, v.name) ~= nil) then txt = txt .. '<BR><font color="Chartreuse"> - used in scene "' .. s.name .. '"</font>'; used = true; end end -- for _, s in pairs(scenes) for _,device in pairs(devices) do -- On parcourt les devices if device.type == "virtual_device" then -- For others types there is no lua code if (device.properties.mainLoop ~= nil) and (string.find(device.properties.mainLoop, v.name) ~= nil) then txt = txt .. '<BR><font color="DeepSkyBlue"> - used in VD "' .. device.name .. '" mainloop</font>'; used = true; end local rows = device.properties.rows; for _, r in pairs(rows) do if (r ~= nil) and (r.elements ~= nil) then for _,e in pairs(r.elements) do if (e.lua ~= nil) and (e.lua == true) then if (e.msg ~= nil) and (string.find(e.msg, v.name) ~= nil) then txt = txt .. "<BR><font color='LightSkyBlue'> - used in " .. '"' .. e.name .. '" (id: ' .. e.id .. ') of "' .. device.name .. '" VD</font>'; used = true; end end end end end end end -- for _,d in pairs(devices) if not used then txt = txt .. "<font color='Magenta'> unused</font>"; end end fibaro:debug(txt); -
Bonsoir, Et voilà , j'ai profité de ma soirée pour déballer ma toute nouvelle HC2 et quelques accessoires Fibaro pour bientôt commencer la domotique. Mais avant, he mets en place la récupération des informations de téléinformation pour suivre ma consommation (avec un Raspberry venant mettre à jour une base MariaDb sur un Nas Synology), ayant un abonnement Tempo, ce genre de suivi est, à mon avis totalement nécessaire. Le compteur électrique étant en limite de mon terrain, je suis contraint d'en installer un nouveau avoir la téléinformation. En parrallèle, je me familiarise avec la HC2 et compte bien profiter de la richesse des informations du forum pour progresser. A bientôt