-
Compteur de contenus
339 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Tout ce qui a été posté par Barelle
-
Dans la version de @Steven, j'ai changé, à la ligne 19, le "https" en "http", mais malgré cela rien ne s'affiche.
-
Pour répondre à la question, il n'y a pas de limite au nombre de devices... Pour aller plus loin, ce qui est curieux, c'est que pour ma part, j'ai le même problème d'affichage avec la version de @Steven. Pour l'instant, je n'ai pas pris le temps d'en chercher la cause. Désolé.
-
De plus, ils ne sont pas associés à des pièces, c'est pour cela qu'il n'y a qu'une seule couleur...
-
Je suppose que tes modules maîtres ont pour nom leur id...
-
Il est nécessaire de les encoder, tu peux par exemple utiliser le site : https://meyerweb.com/eric/tools/dencoder/ Remplacer : espace par %20, ( par %28, ) par %29, ° par %B0... Et donc "15 °C" donne "15%20%B0C"... De rien
-
La variable globale existe t-elle et est-elle bien encodée en json ?
-
Réagir sur le changement d'état du FGS223 ne permettrait-il pas de répondre au besoin ?
-
Dans ma compréhension de ton code, ce que tu appelles BLEU correspond au tarif heures pleines d'EDF, et ROUGE au tarif heures creuses... Ton debug est effectué à 13h48, et tu définis ta période ROUGE de 23h01 à 06h58, aussi tu n'as que du BLEU... CQFD Ton code pourrait être grandement simplifié, par exemple puisque tu n'as que deux périodes, si ce n'est pas l'une, alors c'est l'autre... Enfin, avec une meilleure indentation, je crois que tu maîtriserais la logique de ta scène.
-
Bonjour, Comme vous le savez, la dernière version 4.503 – BETA, a introduit l’accès à de nouvelles propriétés des modules z-wave et notamment à la propriété lastWorkingRoute (merci @tinman d’avoir attiré notre attention sur ce point). En complément du VD Table de routage de @Lazer qui permet de parcourir les devices d’une pièce et d’afficher les propriétés lastWorkingRoute et neighborList, je vous propose une petite page en PHP permettant de représenter les liaisons entre les différents modules. Ainsi j’obtiens : Il faut plus voir dans ce modeste travail plus la réalisation d’un POC que l’écriture d’une quelconque application surtout que je ne maîtrise aucun des langages employés. Au départ, je pensais tout réaliser en javascript, mais il n’est pas possible de récupérer directement les données de la box domotique pour des raisons de sécurité (pour les curieux, rechercher CORS et l’erreur No 'Access-Control-Allow-Origin'). Aussi, l’utilisation d’une page hébergée sur un serveur s’est imposée… Une rapide recherche m’a conduit à choisir pour tracer le graphe la librairie visjs pour sa simplicité d’utilisation pour l'obtention rapide d'un résultat. Pour l’installation, il devrait suffire de copier le fichier PHP joint quelque part dans l’arborescence d’un serveur web, et de l’éditer pour configurer l’accès à la box domotique : adresse IP, code utilisateur (de l’administrateur) et mot de passe. La page ayant vocation à être hébergée sur le réseau local, cela ne devrait pas poser de problèmes de sécurité. Ensuite, il suffit d’afficher la page dans son navigateur… Le nombre d’options de visjs est démesuré, je n’en ai testé qu’un petite partie. Have fun! Fichier joint : z-wave_network.php
- 335 réponses
-
- 14
-
-
-
Ce n'est pas bien grave, seuls ceux qui n'ont jamais programmé n'ont jamais fait de bug... Il y a également un cas de plantage, quand lastWorkingRoute est une table vide (un bug semblable est probable si neighborList est vide) : [DEBUG] 15:52:35: Timeout [DEBUG] 15:52:35: neighborList : [] [DEBUG] 15:52:36: lastWorkingRoute : [] [ERROR] 15:52:36: line 227: attempt to concatenate local 'route' (a nil value) Cela semble se produit pour un de mes modules, dans ses propriétés il y a : "neighborListRequestStatus": "error"
-
Il y a une erreur à la ligne 197 du bouton Module Z-wave : il convient de remplacer "roomName = " " .. fibaro.getRoomName(roomID)" par "roomName = " " .. fibaro:getRoomName(roomID)". à ce détail près, cela fonctionne bien.
-
En fait, selon ma compréhension, le # est un opérateur retournant la longueur d'une chaîne de caractères (#"titi" retourne 4) ou la taille d'une table. La notion de taille d'une table est ambiguë, dans le cas d'un tableau ordonné, "sans trou", la valeur retourné correspond à la taille du tableau, ou plus exactement à la plus grande valeur de l'indice. Dans le cas où les indices ne sont pas numériques, on a vite fait d'obtenir n'importe quoi : local tableau = {}; for i=1, 5 do tableau[i] = i; end fibaro:debug("1) #tableau="..#tableau); -- retourne 5 tableau["titi"] = "titi"; fibaro:debug("2) #tableau="..#tableau); -- retourne aussi 5, malgré un élément de plus... En bref, il est souvent prudent de prévoir une fonction qui compte... Pour des cas loufoques, cf. https://stackoverflow.com/questions/23590885/why-does-luas-length-operator-return-unexpected-values
-
Et que donne ? #jsonTable.zones
-
Utiliser : response, status, errorCode = HC2:GET("/zones/?format=json&system_id=*********&user_email=******&user_token=************") et tester les valeurs status et errorcode pourrait sans doute aider à progresser...
-
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