Aller au contenu

zozotte

Membres confirmés
  • Compteur de contenus

    282
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par zozotte

  1. zozotte

    Ici On Parle Lifedomus

    Le hardware de la vision est plus costaud que la sense aussi ! (désolée j'ai plus le détail)
  2. Ils ont ca chez Conrad 5V/3A mais ca demande une boite de dérivation plutot qu'un boitier d'encastrement. http://www.conrad.fr/ce/fr/product/511835/Alimentation-encastrable-SPS-G015-05?ref=list Je crois que je vais plutot partir pour un support avec bras articuler et placer une prise usb encastrée derriere Merci
  3. @pepite, je ne trouve que des alims 5V/1A sur le site et il faut du 2A. je leur ai envoyé un mail. Merci !
  4. Je cherche une solution alternative ou il n'y a que le fil de l'alimentation qui sorte de la boite de dérivation pour pouvoir mettre celle ci derrière la tablette (support qui la colle au mur) Merci !
  5. Bonjour, J'aime bien l'idée des supports universels mais le pb c'est l'alimentation. Est ce que qqn àtrouve un transfo àmettre dans une boite de dérivation derrière la tablette ? (Pas les transfos USB saillants) Merci !
  6. Merci pour ces infos ! Je suis en train de me dire que pour ma chaudière je vais plutôt installer un thermostat autre que je vais pouvoir piloter àdistance. Quelques un àdéjàconnecté un autre thermostat àune chaudière de Dietrich isystem ? Merci
  7. zozotte

    Jeedom

    +1
  8. Par contre ça veut dire que pour ceux qui ont une zibase ça ne sera plus possible de la mettre àjour... D'ailleurs même sur la hc2, si on avc Fibaro, plus moyens d'avoir des mails...
  9. zozotte

    Sonos Playbar

    Hello, Denon propose aussi une barre son dans son système Heos avc en plus un caisson de basse. Fonctionnement multiroom comme Sonos mais normalement l'API devrait être plus complète (faut que je regarde plus en détail).
  10. sendPhotoToEmail est a utiliser avec un email, pas avec un user ! fibaro:call(249, "sendPhotoToEmail", "papa@gmail.com")
  11. des nouvelles ? est il prévu une connectivité autre que wifi pour les utilisateurs qui coupent le wifi la nuit et en cas d'absence ? merci
  12. oui mais apparement il y a une API de dispo pour remplacer le xml voir dernier lien de elacombe
  13. j'ai juste fait l'inclusion et c'etait bon. rien paramétré.
  14. Hello, sur v4.057 la détection de mouvement fonctionne (0 = ras et 255 = mouvement détecté). pas d'UV pour moi
  15. Hello, Je comprends plus, HC2 gère tout seul de réveiller les noeuds dead ou pas ? Merci Zozotte
  16. Hello, j'ai du mal àvoir l'interet alors ... ??? Merci
  17. zozotte

    Meteoalerte

    Bouton vérifier: -- -------------------------------------------------------------------------------------------------------------- -- MeteoAlerte est est script qui va vérifier les alertes méteo du site vigilance.meteofrance.com -- Le site retournant des informations XML, le script va donc les parser. -- Author = "Steven Piccand" -- Version = "V1.40" -- V1.10 - Isolation des éventuelles erreurs -- V1.20 - Envoi possible sur plusieurs smartphones -- V1.30 - Correction problème Main Loop -- V1.40 - Correction status plus ajout personnalisation icone -- V2.00 - Ajout du risque (nouveauté de Météofrance -- -------------------------------------------------------------------------------------------------------------- if (not MeteoAlerte) then MeteoAlerte = {} -- !!! VOS PARAMETRES !!! MeteoAlerte.dep = "31" -- votre département MeteoAlerte.smartphone = {43} -- {70,71} vos portables ou envoyé la notification push en cas d'alerte MeteoAlerte.niveauAlerte = 3 -- le niveau minimum d'alerte pour être notifié MeteoAlerte.globalvariable = "" -- Nom de la variable globale a renseigné MeteoAlerte.commentaire = false -- -------------------------------------------------------------------------------------------------------------- -- Obtient le XML et le retourne sous forme de table LUA -- -------------------------------------------------------------------------------------------------------------- MeteoAlerte.getXml = function() local MeteoAlerteURL = Net.FHttp("vigilance.meteofrance.com"); response, status, errorCode = MeteoAlerteURL:GET("/data/NXFR34_LFPW_.xml"); return MeteoAlerte.iif(response ~= nil, MeteoAlerte.newParser().ParseXmlText(response), "") end -- -------------------------------------------------------------------------------------------------------------- -- Va chercher les valeurs du départements -- Modifie les valeurs des labels -- Envoi un push si nécessaire -- Met a jour une variable globale -- -------------------------------------------------------------------------------------------------------------- MeteoAlerte.getData = function() local messages = {"<inconnu>", "Aucune", "Attention", "Danger", "!! EXCEPTIONNEL !!"} local risques = {"<aucun>", "Vent violent", "Pluie-innondation", "Orages", "Innondation", "Neige-Verglas", "Canicule", "Grand-froid", "Avalanche", "Vagues-submersion"} local icones = {-1, -1, -1, -1, -1} local result = 0 local risque = 0 local crue = 0 local commentaire = "" local xmlTable = MeteoAlerte.getXml() if (xmlTable) then local evs = xmlTable.cartevigilance for i in pairs(evs:children()) do if (evs:children()[i]:name() == "datavigilance") then if (evs:children()[i]["@dep"] == MeteoAlerte.dep) then result = tonumber(evs:children()[i]["@couleur"]) fibaro:debug("Vigilance trouvée : " .. result) if (#evs:children()[i]:children() > 0) then for j = 1, #evs:children()[i]:children() do if (evs:children()[i]:children()[j]:name() == "crue") then crue = tonumber(evs:children()[i]:children()[j]["@valeur"]) fibaro:debug("Crue trouvée : ".. crue) elseif (evs:children()[i]:children()[j]:name() == "risque") then risque = tonumber(evs:children()[i]:children()[j]["@valeur"]) fibaro:debug("Risque trouvée : ".. risque) end end end end elseif (evs:children()[i]:name() == "entetevigilance") then for j in pairs(evs:children()[i]:children()) do if (evs:children()[i]:children()[j]:name() == "vigilancecommentaire") then commentaire = evs:children()[i]:children()[j]["@texte"] MeteoAlerte.commentaire = true else end end end end end fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblVigilance.value", messages[result+1]) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblCrue.value", messages[crue+1]) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblRisque.value", risques[risque+1]) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblCommentaire.value", commentaire) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblRefresh.value", os.date("%d/%m %H:%M")) local icone_id = icones[math.max(result+1, crue+1)] if (icone_id > -1) then fibaro:debug("Icone " .. icone_id) fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icone_id); end fibaro:log("Dernière mise à jour : " .. os.date("%c")) fibaro:debug("Vérification envoi par push") if (result >= MeteoAlerte.niveauAlerte or crue >= MeteoAlerte.niveauAlerte) then fibaro:debug("Envoi nécessaire") if (type(MeteoAlerte.smartphone) == "table") then for i = 1, #MeteoAlerte.smartphone do fibaro:call(MeteoAlerte.smartphone[i], "sendPush", "MeteoAlerte [".. MeteoAlerte.dep .." = " .. messages[result+1] .. "] | [crue = " .. messages[crue+1] .. "] | [risque = " .. risques[risque+1].."]") end end end if (result and MeteoAlerte.globalvariable and MeteoAlerte.globalvariable ~= "") then fibaro:setGlobal(MeteoAlerte.globalvariable, tostring(result)) end return true end -- ------------------------------------------------------------------------------------------------------------- -- Teste la condition et retourne la valeur true ou false -- ------------------------------------------------------------------------------------------------------------- MeteoAlerte.iif = function(condition, iftrue, iffalse) if (condition) then return iftrue end return iffalse end -- ------------------------------------------------------------------------------------------------------------- -- Ceci est une version modifiée de Corona-XML-Module par Jonathan Beebe qui a son tour -- est basée sur Alexander Makeev's Lua-only XML parser . -- see https://github.com/Cluain/Lua-Simple-XML-Parser -- ------------------------------------------------------------------------------------------------------------- MeteoAlerte.newParser = function() parseXml = {} parseXml.FromXmlString = function(value) value = string.gsub(value, "([%x]+)%;", function(h) return string.char(tonumber(h, 16)) end); value = string.gsub(value, "([0-9]+)%;", function(h) return string.char(tonumber(h, 10)) end); value = string.gsub(value, "'", "'"); value = string.gsub(value, ">", ">"); value = string.gsub(value, "<", "<"); value = string.gsub(value, "&", "&"); return value; end parseXml.ParseArgs = function(node, s) string.gsub(s, "(%w+)=([\"'])(.-)%2", function(w, _, a) node:addProperty(w, parseXml.FromXmlString(a)) end) end parseXml.ParseXmlText = function(xmlText) local stack = {} local top = parseXml.newNode() table.insert(stack, top) local ni, c, label, xarg, empty local i, j = 1, 1 while true do ni, j, c, label, xarg, empty = string.find(xmlText, "<(%/?)([%w_:]+)(.-)(%/?)>", i) if not ni then break end local text = string.sub(xmlText, i, ni - 1); if not string.find(text, "^%s*$") then local lVal = (top:value() or "") .. parseXml.FromXmlString(text) stack[#stack]:setValue(lVal) end if empty == "/" then -- empty element tag local lNode = parseXml.newNode(label) parseXml.ParseArgs(lNode, xarg) top:addChild(lNode) elseif c == "" then -- start tag local lNode = parseXml.newNode(label) parseXml.ParseArgs(lNode, xarg) table.insert(stack, lNode) top = lNode else -- end tag local toclose = table.remove(stack) -- remove top top = stack[#stack] if #stack < 1 then error("XmlParser: nothing to close with " .. label) end if toclose:name() ~= label then error("XmlParser: trying to close " .. toclose.name .. " with " .. label) end top:addChild(toclose) end i = j + 1 end local text = string.sub(xmlText, i); if #stack > 1 then error("XmlParser: unclosed " .. stack[#stack]:name()) end return top end parseXml.newNode = function(name) local node = {} node.___value = nil node.___name = name node.___children = {} node.___props = {} function node:value() return self.___value end function node:setValue(val) self.___value = val end function node:name() return self.___name end function node:setName(name) self.___name = name end function node:children() return self.___children end function node:numChildren() return #self.___children end function node:addChild(child) if self[child:name()] ~= nil then if type(self[child:name()].name) == "function" then local tempTable = {} table.insert(tempTable, self[child:name()]) self[child:name()] = tempTable end table.insert(self[child:name()], child) else self[child:name()] = child end table.insert(self.___children, child) end function node:properties() return self.___props end function node:numProperties() return #self.___props end function node:addProperty(name, value) local lName = "@" .. name if self[lName] ~= nil then if type(self[lName]) == "string" then local tempTable = {} table.insert(tempTable, self[lName]) self[lName] = tempTable end table.insert(self[lName], value) else self[lName] = value end table.insert(self.___props, { name = name, value = self[name] }) end return node end return parseXml; end end -- ------------------------------------------------------------------------------------------------------------- -- Démarrage du script -- ------------------------------------------------------------------------------------------------------------- fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblVigilance.value", "...") fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblCrue.value", "...") fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblRisque.value", "...") if (not pcall(function() MeteoAlerte.getData() end)) then local max_retry = 5 local i = 0 while (not stop) do fibaro:debug("Problème d'accès au données ... tentative dans 10mn") fibaro:sleep(10*60*1000) if (not pcall(function() MeteoAlerte.getData() end)) then i = i + 1 if (i >= max_retry) then stop = true end else stop = true end end end
  18. zozotte

    Meteoalerte

    et voila avec la correction. A priori maintenant ca devrait marcher ! Dites moi MeteoAlerte_-_31 (2).vfib
  19. Hello, je n'arrive pas àcomprendre comment on peut faire un relaché sans faire un appui long avec ? comment ca fonctionne pour faire le premier sans le 2e ? Merci Zozotte
  20. J'avais contacté De Dietrich pour ma chaudiere pour pouvoir changer le mode via le system domotique. Voici leurs réponses: "Le pilotage à distance DIematic iSystem nécessite la mise en place d'une interface chaudière ModBus ert d'une interface web DDbox Les commandes sont transmises via un protocole propriétaire Il n'y a pas d'API publique disponible Le pilotage se fait uniquement depuis l'app mobile ou l'interface web fournie par De Dietrich Nous ne proposons pas de solution pouvant s'intégrer dans un système domotique, pour le moment." Par contre je ne vois pas l'intéret d'ajouter un thermostat intelligent à une chaudière qui en a déjà un. Ce qui est intéressant c'est d'activer ou désactiver le mode Vacances pour le chauffage au sol et de pouvoir envoyer des consignes confort/éco pour les chauffages à radiateurs. Pourquoi veux tu "reprogrammer" un thermostat ?
  21. zozotte

    Meteoalerte

    Désolée, j'étais en vacances et effectivement, quand il n'y a pas le commentaire, ca bug... J'attends qu'il y ait a nouveau un commentaire pour comparer les xml et modifier.
  22. Bonjour, Je viens de tester en 4.056 et la methode POST ne semble pas disponible sur ma box !!??? est-ce que ca marche pour vous ? Merci Zoe
  23. genial ! merci
  24. Merci ! c'est bien ce qu'il me semblait, donc toutes les scenes de simulation de présence qui ne génèrent le math.random() qu'une seule fois déclenchent les actions à la même heure chaque jour Ok donc je continue avec ma scene qui rafraichit en boucle les randoms toutes les heures (je génère plusieurs random que j'enregistre dans une table qui est stockée dans une variable globale en json. quand j'ai besoin d'une variable, je pioche dans cette variable )
  25. zozotte

    Meteoalerte

    Bonjour, Pour ceux qui veulent, j'ai rajouté la récupération du commentaire de l'entete vigilance et transformé l'url en un timestamp. Zozotte MeteoAlerte_-_31.vfib
×
×
  • Créer...