-
Compteur de contenus
14 646 -
Inscription
-
Dernière visite
-
Jours gagnés
190
Tout ce qui a été posté par jojo
-
Dans le panneau des événements j'ai ON et OFF Par contre, l'historique est TRES / TROP limité +/- 1heure. Il propose une heure de départ par défaut (exple 14h00) et si je veux voir ce qui s'est passé depuis le maitin (6h00), il rebascule automatiquement sur l'heure par défaut. Chez vous aussi ?
-
Topic unique Chien Électronique À Base De Sonos
jojo a répondu à un(e) sujet de Eliah dans Multimédia (audio, vidéo ...)
je suis au bureau, et je suis allé chercher mon HP il y a 30 min chez mon ami. => WE chargé en perspective -
tu as beaucoup de Modules Virtuels avec l'adresse IP dedans ? Perso, je n'ai pas observé ce phénomène : si une adresse IP était définie, elle restait. En effet, si aucune n'était définie, il y a "" Il est possible d'écrire dans le champ IP Adresse, mais si tu n'as que 10-20 modules concernés, tu iras plus vite de faire un ctrl-C / ctrl-V que de créer un VD qui va remettre les bonnes IPs aux bons endrois, car cela nécessiterait de maintenir une table avec les ID et les IPAdress des VD à mettre à jour
-
Topic unique Chien Électronique À Base De Sonos
jojo a répondu à un(e) sujet de Eliah dans Multimédia (audio, vidéo ...)
ah mprinfo, tu es de retour, cela faisait 2 jours qu'on n'avais plus de nouvelle de toi, on commençait às'inquiéter ... -
pas de soucis pour création automatique de la variable si elle n'existe pas, j'ai fait un VD backup/restore des variable. C'est ce que je ferai, ce n'est pas si lourd que ça
-
autre petit conseil au passage pour faciliter la relecture : les options de temps, date, ... qui ressemble plus àdes conditions (mais sont des options de limitation de la condition) je les mettrais en début d'options, et les vrais actions àprendre ensuite
- 12 255 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
pas Sunrize, mais Sunrise, avec un S et pas un Z
- 12 255 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
là tu as fais un véritable travail de patron. Merci pour l'analyse, je me dois de l'implémenter maintenant. Si on veut garder un aspect esthétique au VD, il ne faudrait pas mettre le SID dans un label, mais dans une variable globale, mais là aussi j'hésite car alors le VD n'est plus autonome, il faut penser à la créer, et j'aime autant éviter si possible.
-
Oui, d'accord avec toi our l'aspect autonome. Dans les boutons ce sera la même chose que dans le mainloop, sauf qu'il n'y a pas cette problématique d'encapsulation. Et j'aurais bien utilisé des fonctions pour générer un SID, et je ne vois pas comment avec cette encapsulation => si on règle le problème des boutons, ok
-
GEA.add(true, 30,"", {{"Open",id["VL_RUE"],100},{"Open",id["VL_JARDIN"],100},{"Time","Sunrize","Sunrize+5"}})
- 12 255 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Eh Jojo, réfléchit un peu, tu es vraiment stupide quand tu veux ! Pourquoi se casse-t-on la tête pour le mainloop ? Il n'a pas de problème. Car en fait que voudrait-on faire pour le MAINLOOP ? Si erreur de SID, on recommence, étant donné qu'on est incapable de prédire quand arrivera l'erreur. Mais c'est ce qu'il fait déjà ! Donc on fait un refresh toutes les 15s, et le tour est joué, d'autant plus qu'il ne fait "que" un refresh de l'icone. Par contre là où est le problème, c'est dans les boutons. Si on automatise l'appuis sur le bouton et qu'il y a une erreur, il faut réappuyer dessus. Il y a 2 solutions pour cela : réécrire le code des boutons stocker dans une variable le status d'erreur et le traiter par GEA, si l'erreur est problématique. Pourquoi se casser la tête ?
-
Non non, surtout pas de nouveau tuto. effectivement ta solution à beaucoup d'avantages : c'est plus élégant, pas de bouton inutile si on appuye sur le debug de la mainloop, puis start, on voit tout le debug depuis la dernière sauvegarde du VD, ce qui n'est pas le cas avec un bouton. Donc je vais essayer de le faire fonctionner sans erreur avec un bouton (=développement classique) et ensuite on le traduirait vers ta solution. Mais je ne garanti rien, je ne suis pas un développeur
-
ok, merci. En effet je n'ai pas pu m'empêcher de déjà commencer, en le réécrivant de manière classique. Et le 1° 1/4 d'heure, pas d'erreur malgré un refresh toutes les 60s Mais maintenant il est planté. J'ai une autre idée : écrire le main loop dans un bouton, et dans le main loop faire appel au bouton ?
-
voici donc le code du bouton "HP Update" ---------------------------------- -- User Settings ---------------------------------- -- nom de la variable qui définit le niveau de chauffage local varChauffage = "Chauffage" local varVacances = "Vacances" -- ID des HeatingPanels local hpID = { "Rez_SdB", 9, "Etage_Circul", 7, "Etage_SdB", 6, "Etage_Bureau", 4, } -- HeatingPanels actifs pour variable Chauffage = 0 (ECS) local hp0 = { } fibaro:debug ("#hp0 = " ..#hp0) -- HeatingPanels actifs pour variable Chauffage = 1 (SdB) local hp1 = { "Rez_SdB", "Etage_SdB", "Etage_Circul", } fibaro:debug ("#hp1 = " ..#hp1) -- HeatingPanels actifs pour variable Chauffage = 2 (Oui) local hp2 = { "Rez_SdB", "Etage_SdB", "Etage_Bureau", "Etage_Circul", } fibaro:debug ("#hp2 = " ..#hp2) local tmpOff = 14 -- température pour HP Off ---------------------------------- -- DO not change bellow this line --------------------------------- local HC2 = Net.FHttp("127.0.0.1",11111) -- détermination de la version du firmware local GETheating = "" payload = "/api/settings/info" response, status, errorCode = HC2:GET(payload) if tonumber(status) == 200 then jsonTable = json.decode(response) if tonumber(jsonTable.softVersion) >= 4 then -- version = "4.x" GETheating = "/api/panels/heating/" else -- version = "3.x" GETheating = "/api/panels/heating?id=" end else fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'</span>') end -- fonction de mise à jour du heating panel -- si handTemperature == 0, c'est en auto function HeatPanel(id,HandTmp) jsonpanel = HC2:GET(GETheating ..id) jsontable = json.decode(jsonpanel) handTimestamp = jsontable.properties.handTimestamp handTemperature = jsontable.properties.handTemperature name = jsontable.name NouveauPanel = ('{"id":' ..id.. ',"name":"'..name.. '","properties":{"handTemperature":' ..handTemperature.. ',"handTimestamp": ' ..handTimestamp.. ',"vacationTemperature":' ..HandTmp.. '}}') HC2:PUT(GETheating ..id, NouveauPanel) end -- fonction pour trouver l'ID du heating panel function HeatPanelID() fibaro:debug("hpName = " ..hpName) for j = 1, #hpID, 2 do fibaro:debug(hpID[j]) if hpName == hpID[j] then hpId = hpID[j+1] end end end hpName = "" -- nom du HP en cours de traiemeent hpId = 0 -- ID du HP en cours de traitement -- lecture de la valeur du chauffage local Chauffage = fibaro:getGlobal(varChauffage) Chauffage = tonumber(Chauffage) fibaro:debug("Chauffage = " ..Chauffage) -- lecture de Vacances = Oui/Non local Vacances = fibaro:getGlobal(varVacances) fibaro:debug("Vacances = " ..Vacances) -- mettre tous les manneaux en manuel -- Vacances = Oui, alors tout les HP sont en manuel fibaro:debug("Mettre tous les HP en mode manuel") fibaro:debug("#hpID = " ..#hpID) for i = 1, #hpID, 2 do fibaro:debug("hpID[" ..i.. "] = " ..hpID[i].. " = " ..hpID[i+1]) HeatPanel(hpID[i+1], tmpOff) end -- remettre les panneaux qu'il faut en auto -- seuleement si Vacances = Non if Vacances == "Non" then fibaro:debug("VACANCES = NON") if Chauffage == 0 then -- ECS hpId = 0 for i = 1, #hp0 do hpName = hp0[i] HeatPanelID() fibaro:debug("hpId = " ..hpId) HeatPanel(hpId, 0) end elseif Chauffage == 1 then -- SdB hpId = 0 for i = 1, #hp1 do hpName = hp1[i] HeatPanelID() fibaro:debug("hpId = " ..hpId) HeatPanel(hpId, 0) end elseif Chauffage == 2 then -- Oui hpId = 0 for i = 1, #hp2 do hpName = hp2[i] HeatPanelID() fibaro:debug("hpId = " ..hpId) HeatPanel(hpId, 0) end end else fibaro:debug("VACANCES = OUI") end bonne révision. Examen demain 10h00
-
je veux bien regarder à cela, mais j'ai observé que tu as programmé cela d'une manière que je ne maîtrise pas (encore) : une partie du code serait dans une table ? Je reverrais la partie authentification du main loop (dans un premier temps), mais alors en la réécrivant d'une façon que je maîtrise. ok ?
-
C'est évident pourtant : cela dépend de l'âge du capitaine Plus sérieusement, on aura toujours l'erreur, et on ne pourra pas l'éviter. Je proposerais de si erreur de réessayer une deuxième fois dans la foulée, sans tout changer
-
bon, même avec 3000s d'intervalle ça plante. Donc la cause n'est pas la fréquence des requêtes. En analysant de plus prêt le fichier log (voir attachement), il me semble avoir trouvé la vrai cause Ton avis m'intéresserait Lazer.
-
Topic unique Chien Électronique À Base De Sonos
jojo a répondu à un(e) sujet de Eliah dans Multimédia (audio, vidéo ...)
MERCI, je mets cela en place dès ce soir ! -
Topic unique Chien Électronique À Base De Sonos
jojo a répondu à un(e) sujet de Eliah dans Multimédia (audio, vidéo ...)
je ne suis pas encore un expert en sonos, mais, je vois qu'on peut faire le choix de la musique précise en créant une liste de lecture sonos et la faire jouer par le bouton play du module. Mais on ne sais pas via le module lui dire de jouer telle ou telle liste, il va continuer àjouer ce qi était en cours (une liste de lecture, ou radio, ou ...) Comment laisser le choix e jouer ce qu'on veux avec son android, et de forcer de jouer qqch de particulier avec sa HC2 ? -
j'ai déjàune erreur après 30 min, je passe à3000s
-
Topic unique Chien Électronique À Base De Sonos
jojo a répondu à un(e) sujet de Eliah dans Multimédia (audio, vidéo ...)
@cyberquat, J'utilise "as is" le module virtuel de Krikroff, et je fais du TTS avec donc un message vocal en cas d'intrusion. Mais la demande d'Eliah est de jouer un mp3 qui serait stocké quelque part sur un NAS. Sais-tu comment configurer / quoi modifier dans le module de Krikroff pour lui faire jouer un mp3 dédié. (J'avais proposé la "solution" mais sans jamais l'avoir mise en oeuvre, et maintenant je voudrais essayer, et je n'y arrive pas) -
Mon objectif n'était pas de trouver la fréquence qui posait problème (si c'était la fréquence qui était la cause) mais de confirmer que c'était la fréquence qui était la cause. D'où mon idée de passer à1000s, et si après 1 nuit ou 24h je n'ai pas d'erreur, on a confirmation de la cause. Ensuite "il n'y a plus qu'a" ... Je viens de mettre à300s et on verra
-
Salut Lazer, J'ai commencé àregarder le code pour le process d'identification via SID. Modifier suivant tes recommandations est complexe, surtout que tu as faits 3000 tests. Je crains qu'il faille revoir le processus d'authentification, ce qui est loin d'être une mince affaire : ça me fait peur. En écrivant ces lignes je me demande si on ne pourrait pas vérifier ton hypothèse de demande de clé SID trop fréquente en allongeant la période de vérification qui est maintenant à90s. Si je passe à1000s et que j'observe toujours le problème, c'est que ce n'est pas ça. S'il n'y a plus le problème, c'est que ton intuition était bonne, et ça vaut la peine de revoir le code dans ce sens. Qu'en penses-tu ?
-
le tuto fonctionne, mais es-tu sà»r de ton JPG et MPJ path ? Je suppose que tu as bien coché Dislay Camera on the main page
-
Nico, et as-tu regardé celle assise au bureau. Mais elle n'a pas de MAC, du coup mon coeur ballance