-
Compteur de contenus
6 715 -
Inscription
-
Dernière visite
-
Jours gagnés
124
Tout ce qui a été posté par Krikroff
-
Topic unique Fibaro FGBS-321 Module Universel
Krikroff a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Très bonne idée les caches haut-parleurs Celiane, j'ai tout monté en Mosaic45 mais ça existe peut-être aussi dans cette gamme... -
Bonjour, est-il possible d'avoir un exemple du code que tu utilises sur le HC2 histoire de pouvoir t'aider
-
je ne peux qu'aller dans ton sens, les piles c'est un une vrai plaie !
-
Ha bien, FHEM sur un PI c'est effectivement une très bonne solution , mais perso je ne lui confierais rien de stratégique dans ma maison ! Mais pour le fun oui...
-
Je peux aussi me tromper ...
-
J'ai répondu a une demande similaire sur le forum forum.fibaro.com ici: http://forum.fibaro.com/viewtopic.php?t=3961 Tu as 3 solutions donc: 1. sans utiliser le LUA : GET /page.php HTTP/1. 2. En lua dans un bouton: -- Setting up the connection local FHTE = Net.FHttp(YOUR_IP, YOUR_PORT); local response, status, errorCode = FHTE:GET("/page.php"); if (tonumber(status) == 200 and tonumber(errorCode)==0) then -- todo: -- read / parse the response here ... end 3. En utilisant httpRequest de mon framework lua pour le HC2 (http://forum.fibaro.com/viewtopic.php?t=3207) pour utiliser par exemple les entêtes http etc.
-
C'est àplusieurs reprises que j'ai constaté ce phénomène et àchaque fois c'est une grosse mise àjour qui tombe pas longtemps après ...
-
C'est bien l'objectif de Fibaro d'interfacer les capteurs z-wave (door/floor etc.) avec SATEL. Attention uniquement dans le sens Fibaro -> SATEL, le HC2 peut mettre en violation la partition de l'integra mais je ne pense pas que les détails remontent dans les logs de la carte Integra, tu auras juste la partition / Zone Fibaro en breach...
-
Quand je vois ce que me bouffe mon RAID 5 c'est vrai qu'il faut vraiment que les données soient importantes ! Pour reste c'est clair: des disques simples et en ce qui me concerne un NAS pour les backups, 8T c'est jouable...
-
Moi j'utilise cela: HP N40L MicroServer + HP P212 RAID 5 Card... Car franchement le RAID logiciel c'est de la vrai m...., ça bouffe des ressources et c'est pas fiable ! Ce HP Prolian est relativement économique c'est un bon choix pour le maison je pense et en complément un NAS pour les backups + stockage enregistrement des caméras + divers... Pour le routeur je n'ai pas d'avis objectifs sur la question
-
Je suis souvent obligé de jongler entre les deux forums et pour une fois j'ai décidé de poster ici et pas là -bas ! Je vais certainement uploader le fichier aussi sur le forum officiel car il faut avoir un compte ici pour télécharger ce qui est normal mais limite les échanges...
-
@Lionel, exacte c'est dans "limitations et problème connus" . @I-magin, c'est une très bonne idée l'adresse IP pour le TTS, merci. Pour l'encodage du message j'utilise une méthode rudimentaire qui n'est visiblement pas adaptée, je corrige cela dans la prochaine maj.
-
Oui c'est faisable, je prépare cela pour la prochaine mise àjour .
-
Communiqué Fibaro ... Ça Commence À Sentir Bon
Krikroff a répondu à un(e) sujet de Gregory dans Le bistrot
@Lionel, je suis bien d'accord avec toi et je pense que Fibaro prépare un boîtier, voir une extension pour le HCL avec forcement du HDMI. Ce qui est certain c'est qu'ils laissent entendre de l'overlay video, et pour cela l'unique moyen que je connaisse c'est 1 HDMI IN et 1 HDMI OUT, HDMI pass through etc. @Cédric, oui exactement un truc comme l'ezCast, tronsmart etc mais avec en plus un HDMI IN et l'affaire est faite -
Communiqué Fibaro ... Ça Commence À Sentir Bon
Krikroff a répondu à un(e) sujet de Gregory dans Le bistrot
J'ai encore parié sur le bon cheval , bon c'est vrai c'était pas gagné au début ... Le HCL ok, les plugin's ok, maintenant je suis très curieux concernant la partie multimédia: nouveau boîtier, juste logiciel ? @I-magin, je pense que la V4 arrive en même temps que le motion sensor, c.à .d effectivement dans pas longtemps... @Karottide, comme on dit: "patience est mère de toutes les vertus" -
Sorry darklite44, j'avais pas tout compris effectivement ... LuaSNMP étant je pense impossible àfaire tourner pour le moment sur le HC2, je pense que tu trouveras ton bonheur dans un script de Patrick Karlson ici https://svn.nmap.org/nmap/nselib/asn1.lua et avec très peux de modifications sur le code... par contre je ne suis pas sur que le code soit libre d'utilisation àvoir...
-
@Benjy, tu peux effectivement trouver dans Word les caractères spéciaux et faire des copier/coller comme la judicieusement proposé i-magin , tu trouveras aussi sur la toile la table des codes ASCII et leur correspondance et aussi les symboles etc... http://www.table-ascii.com/ http://www.toutimages.com/codes_caracteres.htm ... @I-magin, oui il y a une latence vraiment énervante due je pense à la gestion du cache en mode radio par le SONOS, la solution est d'utiliser un serveur pour mettre en cache le retour de l'API google et ensuite faire jouer le fichier par le SONOS. Ce qui ajoute aussi de la latence est le fait que je récupère l'état complet du SONOS avant le TTS : état, volume, titre joué, position du transport etc afin de relancer dans l'état exacte avant la demande TTS lorsque celui-ci est terminé. J'utilise encore mon framework ici à cause de certaines limites de la surcouche logiciel proposée par Fibaro à ce jour. Et voila... Après avoir passé quelques heures sur ce développement forcement je veux mettre du SONOS partout dans la maison
-
J'ai intégré dans le Toolkit (disponible en téléchargement dans la rubrique add-on du forum) un petit éditeur LUA -> Menu Tools / LUA Script Editor ensuite cliquer droit -> Code Snippets / Advanced scripts, tu trouveras une fonction toHex() function toHex(num) local hexstr = '0123456789abcdef'; local s = ''; while num > 0 do local mod = math.fmod(num, 16); s = string.sub(hexstr, mod+1, mod+1) .. s; num = math.floor(num / 16); end if s == '' then s = '0' end return s; end Je précise que cette fonction n'est pas de moi mais elle est disponible et sans Copyright J'espère que cela correspond à ce que tu souhaites ?
-
SONOS Remote V1.0.1 RC pour Fibaro HC2 Télécommande avec retour d’informations pour diffuseur SONOS, prise en charge du TTS (Text-to-Speech) et lecture de stream depuis vos scènes et périphériques virtuels. - Les fonctions : Play, Pause, Stop, Prev, Next, Seek, Volume, Mute, Loudness, Accès direct aux 5 premières radios de “Mes radiosâ€. - Les informations : Zone, Etat du diffuseur, Position, Titre ou Nom de la radio, Artiste, Album, Volume, Loudness, dernière commande émise. Installation : A partir de la version 1.0.0 beta: 1. Télécharger puis importer le vd. 2. Renseigner l’adresse IP du diffuseur SONOS (le coordinateur) dans le vd ainsi que le port 1400 3. Pour utiliser la fonction TTS VoiceRSS il faut une API Key, pour l'enregistrement (gratuit) c'est ici http://www.voicerss.org/registration.aspx 4. Renseigner la variable voiceRssApiKey avec la clé, choisir un niveau de qualité sonore pour la generation avec voiceRssSoundQuality: low, medium, high UserParams = { -- Voice RSS API Key (Free Registration: http://www.voicerss.org/registration.aspx) voiceRssApiKey = "000000000000000000000000000", -- Sound quality: low, medium, high voiceRssSoundQuality = "medium" } 5. Enregistrer les modifications, c'est bon... Utilisation : TTS : Pour utiliser le TTS depuis une scène ou un périphérique virtuel il faut juste exécuter le code LUA suivant avec les bons paramètres. -- 408 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 408, 28 -- Create TTS params object local params = { -- TTS Message message = "La température extérieure actuelle est de 21,2°C", duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 10 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Les options de l'objet params: - message: le message tts - language: la source du flux (http ou local, local est attribué par défaut) - duration: durée du tts. (en secondes ou "auto") - volume: le volume utilisé pour la lecture du tts si différent du volume en cours d'utilisation Le programme en cours de diffusion au moment de la demande reprendra après la diffusion complète du TTS. Reprise de la radio, de la piste à l’endroit précis avant arrêt, reprise de l’état du diffuseur : Volume, Mute, Play, Stop. STREAM: Pour utiliser la lecture de Stream depuis une scène ou un périphérique virtuel il faut exécuter le code LUA suivant avec les bons paramètres. -- 408 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 408, 28 -- Create STREAM params object local params = { -- stream: the file / uri stream = "//s3.amazonaws.com/smartapp-media/sonos/bell1.mp3", -- source: "local" or "http", "local" is setted by default source = "http", -- duration: play duration in seconds (option) or "auto" duration = 8, -- volume: the volume for playing the stream volume = 10 } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { stream = params }) _f:call(sid, "pressButton", bid) Les options de l'objet params: - stream: le chemin du flux - source: la source du flux (http ou local, local est attribué par défaut) - duration: durée du stream. (en secondes ou "auto") - volume: le volume utilisé pour la lecture du flux si différent du volume en cours d'utilisation Quelques exemples: Annoncer la température dans une scène : --[[ %% properties %% globals --]] -- 408 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 811, 28 -- Create TTS params object local ValeurTemp = fibaro:getValue(61, "value") local degre = string.gsub(ValeurTemp, '[,]' , ' degret ') local degre = string.gsub(degre, '[.]' , ' degret ') local degre = string.gsub(degre, '[-]' , ' moins ') local notification = "Il fait " .. degre .. " dans le salon " fibaro:debug(notification) local params = { -- TTS Message message = notification, duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 23 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Annoncer la valeur d'une variable : --[[ %% properties %% globals --]] local sid, bid = 813, 28 -- Create TTS params object local couleur = fibaro:getGlobalValue("le nom de ta variable") local notification = ("La couleur de demain sera "..couleur.." Bonne journée") fibaro:debug(notification) local params = { -- TTS Message message = notification, duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 23 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Annoncer la date du jour, la température extérieure et la météo : -- 239 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 239, 28 local cond = fibaro:getValue(3, "WeatherConditionConverted"); local tempext = fibaro:getValue(33, "value"); -- température extérieure fibaro:debug ("Température extérieure : "..tempext) local degre = string.gsub(tempext, '[,]' , ' degré ') local degre = string.gsub(degre, '[.]' , ' degré ') local degre = string.gsub(degre, '[-]' , ' moins ') local currentDate = os.date("*t") local jourL = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"} local jour = jourL[currentDate.wday] fibaro:debug ("Jour : "..jour) local moisL = {"janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre"} local mois = moisL[currentDate.month] fibaro:debug ("Mois : "..mois) local condfr =""; if( cond == "clear" ) then condfr = "clair"; end if( cond == "cloudy" ) then condfr = "nuageux"; end if( cond == "rain" ) then condfr = "pluvieux"; end if( cond == "snow" ) then condfr = "neigeux"; end if( cond == "storm" ) then condfr = "tempete"; end if( cond == "fog" ) then condfr = "brouillard"; end fibaro:debug ("Conditions météorologiques : "..condfr) fibaro:debug ("Création du TTS") -- Create TTS params object local params = { -- TTS Message message = "Bonjour a vous. Nous sommes le "..jour .." "..currentDate.day .." "..mois .. ". Il est ".. currentDate.hour .." heure et ".. currentDate.min .." minutes. ".. "Le thermomètre extérieur est a "..degre .. ", et le temps est "..condfr ..". ", duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 40 -- Volume } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { tts = params }) _f:call(sid, "pressButton", bid) Notes de versions: Version 1.0.1 Rc - Correction: régression introduite avec la V4.080 impactant la création automatique de la variable globale Version 1.0.0 beta ATTENTION: Le passage d'une version antérieure à la v1.0.0 pour la v1.0.0 ou supérieure nécessite la réécriture des commandes TTS pour fonctionner avec le nouveau module. L'ancien module reste cependant fonctionnel et peut cohabiter logiquement avec la nouvelle version. En cas de passage définitif en V1.0.0 ou supérieure toutes les variables globales déclarées précédemment en V0.0.7 ou V0.0.8 peuvent être supprimées. - Amélioration : Configuration automatique, pas de déclaration de variables globales - Amélioration : Support natif de multiples instances du périphérique virtuel - Amélioration : Faible latence lors du déclenchement des commandes - Amélioration : Révision et amélioration du code / Refactoring - Ajout: Le TTS utilise le service Voice RSS (avec une API Key (enregistrement gratuit)) ou ResponsiveVoice API. Options: durée, volume, auto resume - Ajout: Lancement de Stream (http / local) depuis scéne / vd. Options: durée, volume, auto resume Version 0.0.8 - Amélioration : La lecture d'un TTS en mode Auto Stop est maintenant stable - Amélioration : La lecture d'un TTS avec une durée définie est maintenant stable - L'image principale du vd réapparaît maintenant automatiquement après l'appui sur un bouton (Labomatik & JM13, merci ) - Correction d'un bug avec l'analyse xml de BrowseDirectChildren - Attention: Pour utiliser les raccourcis "boutons radios favorites" vous devez ajouter au moins deux radios depuis l'application SONOS "Desktop/IOS etc..." Version 0.0.7 - Amélioration notable de la stabilité, le vd est plus réactif. - Patch line 892: attempt to index local 'value' (a function value) - Patch line 1256: attempt to concatenate a nil value - Préparation au support de nouvelles fonctionnalités Fichier Zip : SONOS_Remote_v1.0.1.vfib SONOS_Remote_v1.0.0.vfib
-
je fais cela pour changer le label d'un bouton dans un vd, il faut l'adapter pour ton besoin mais le principe reste le même local deviceToEdit = fibaro:getSelfId(); local ID = "btnOnOffAllScenes"; --Block all scenes execution --Unblock scenes execution HC2 = Net.FHttp("192.168.1.220",80); HC2:setBasicAuthentication("admin", "admin"); --get the device to change response ,status, errorCode = HC2:GET("/api/virtualDevices?id="..deviceToEdit) if (tonumber(status) == 200) then jsonTable = json.decode(response); for key,value in pairs(jsonTable.properties.rows) do name = jsonTable.properties.rows[key].elements[1].name; --fibaro:debug(name); if(name==ID) then n = key; match = true; caption = jsonTable.properties.rows[n].elements[1].caption; fibaro:debug(caption); break; end end -- if (match) then fibaro:debug(name .." found, caption is [".. caption .."]"); jsonTable.properties.rows[n].elements[1].caption = "Unblock scenes execution" -- send back json = json.encode(jsonTable); response2 ,status2, errorCode2 = HC2:PUT("/api/virtualDevices?id="..deviceToEdit, json); if (tonumber(errorCode2)==0) then fibaro:debug("Edit complete text set "..status2) else fibaro:debug("Error update "..errorCode2) end else fibaro:debug(ID .. " not found!") end else fibaro:debug("error"); end
-
... Donc nous sommes d'accord
-
La grosse différence entre les vd et les scènes c'est que fibaro n'expose pas les mêmes fonctionnalités, le vd étant le plus complet. tu peux très bien arriver au même résultat qu'une scène avec un vd mais bon entre un CRON et le Main-loop... Moi je préfère déléguer au CRON plutôt surtout que derrière Fibaro a certainement implémenté des mécanismes de vérification etc de plus il est impossible de declecher un vd sur un trigger chose faisable dans une scène et c'est un exemple parmi d'autres...
-
Et oui un 5.1 c'est fait pour flatter les oreilles de l'auditeur dans son siège sur un bon film, c'est pas du tout fait pour sonoriser une pièce encore moins pour écouter de la musique ou il vaut mieux passer en mode stéréo . Le SONOS est je pense aussi le meilleur choix actuellement pour du multiroom simple et efficace et pas trop exagéré niveau prix pour des petites installation, bref un complément idéal a une installation HC