-
Compteur de contenus
2 501 -
Inscription
-
Dernière visite
-
Jours gagnés
28
Tout ce qui a été posté par MAM78
-
Hello @Steven merci pour cette livraison. Snif pour mes propositions mais, il n'y a pas seulement des corrections dans cette V6.04 Pour ne pas oublier, il reste si tu veux bien intégrer dans la prochaine version les corrections / évolutions ci-dessous : En attendant, je ferais des copier / coller Pour ceux qui souhaitent continuer à tester ma version, voici le fichier construite sur la base de la V6.04 officielle de Steven et dans laquelle j'ai réintégré mes add-ons : gea_6_04-MAM78.lua Change log : -- ========================================================== -- v.6.04 MAM78 modified the 7 jan. 2018 on the base of V6.04 from Steven -- add : Sonos TTS message function -- Exemple : GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", 40}, "Annonce de la météo") GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "We are #datefull# the outside temperature is #tempsext# degrees and the weather is #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "We are the #datefull# the outside temperature is #tempsext# degrees and the weather is #value[2]#", 40}, "Wheater annonce") -- add : Sonos MP3 message function and add sonosMP3foldername variable, -- Exemple : GEA.add({id["DETECTEUR_PORTE_GARAGE"], {"Time", "Sunset-15", "Sunrise+5"}}, -1, "La porte du garage vient d être fermée", {{"Inverse"}, {"Sleep", 7, {"sonosmp3", id["VD_SONOS"], id["VD_SONOS_BT"], "Fermeture Porte Cave.mp3", 40}}}, "Fermeture porte Garage") -- add : #tempsext# substitution text for the external temperature rounded without decimals -- mod : debug the transpose function -- mod : modify the action message in debug windows with the transposed values -- ========================================================== 1) Fonctions Sonos Ajouter : sonosmp3 = {name = "Sonos MP3", action = function(vd_id, button_id, filename, volume) if (not volume) then volume = 30 end 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} _x:set(tostring(vd_id), { stream = {stream=GEA.sonosMP3foldername..filename, source="local", duration="auto", volume=volume} }) _f:call(vd_id, "pressButton", button_id) end }, sonostts = {name = "Sonos TTS", action = function(vd_id, button_id, message, volume) local message = GEA.getMessage(message) local langue = "en-US" if GEA.language:lower() == "fr" then langue = "fr-FR" end if (not volume) then volume = 30 end 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} _x:set(tostring(vd_id), { tts = {message=message, duration='auto', language=langue, volume=volume} }) _f:call(vd_id, "pressButton", button_id) end } Ajouter dans la partie -- CONFIGURATON GENERALE : GEA.sonosMP3foldername = "//xxxxxxxx/music/Domotique/Domotique/iTunes Media/Music/Sons Domotiques/Sons Domotiques/" 3) Substitutions de valeurs #tempsext# Ajouter : if (message:find("#tempsext#")) then message = message:gsub("#tempsext#", tonumber(string.format("%.0f", GEA.getOption({"weather", "Temperature"}).getValue()))) end 3) Fonction transpose Remplacer : transpose = {name = "Transpose", getValue=function(table1, table2, value) tools.error(table1) return GEA.translate(value, table1, table2) end }, par : transpose = {name = "Transpose", getValue=function(value, table1, table2) return GEA.translate(value, table1, table2) end, action =function(value, table1, table2) return GEA.translate(value, table1, table2) end }, 3) Clarifier le contenu du mode debug, en ligne 1341 : Remplacer : tools.debug(" ["..GEA.trad.action.."] " .. entry.actions[i].getLog()) Par : tools.debug(" ["..GEA.trad.action.."] " .. GEA.getMessage(entry.actions[i].getLog()))
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'ai aussi constaté que : La zone de recherche les caractères sont masqués par du texte bizarroïde, je suis sous safari. Lors de la saisie de messages, il n'y a plus la fonction pour décaler le texte (tabulation)
-
Voici une mise à jour de la version 6.04 toujours en beta en attente de validation par @Steven et @pepite gea_6_04.lua Elle intègre les modifications suivantes : -- ========================================================== -- v.6.04 modify by MAM78 the 7 jan. 2018 -- add : Sonos TTS message function -- add : Sonos MP3 message function and add sonosMP3foldername variable, -- mod : debug the transpose function -- add : #tempsext# substitution text for the external temperature rounded without decimals -- mod : modify the action message in debug windows with the transposed values -- mod : correction of the #datefull# substitution text -- mod : Sonos TTS message function, -- optional volume parameter, if not specified the value will be 30 -- mod : Sonos MP3 message function and add sonosMP3foldername variable, -- optional volume parameter, if not specified the value will be 30 -- language parameter is no longer needed, automatically determine based on GEA.language -- ==========================================================
- 12 330 réponses
-
- 3
-
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
En fait, la ligne ci-dessous retourne une valeur string et non numérique local jour = os.date("%w") J'ai modifié le code de cette façon : if (message:find("#datefull#")) then local jour = tonumber(os.date("%w")) if (jour == 0) then jour = 6 else jour = jour-1 end message = message:gsub("#datefull#", GEA.trad.week[tonumber(jour)+1] .. " " .. os.date("%d").. " " .. GEA.trad.months[tonumber(os.date("%m"))].. " " .. os.date("%Y")) end
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
hello @Steven Il semblerait que ta réécriture de la fonction #datefull# ne fonctionne pas le dimanche : if (message:find("#datefull#")) then local jour = os.date("%w") if (jour == 0) then jour = 6 else jour = jour-1 end message = message:gsub("#datefull#", GEA.trad.week[tonumber(jour)+1] .. " " .. os.date("%d").. " " .. GEA.trad.months[tonumber(os.date("%m"))].. " " .. os.date("%Y")) end J'ai l'erreur suivant sur la ligne message : message:sub ................. [DEBUG] 17:01:23: line 1475: attempt to concatenate field '?' (a nil value)
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Il me semble qu'il manque la notion de version du code. Il conviendrait d'ajouter ceci dans l'entête : Version : 1.00 Date Update : 07 janv. 2018 Comment vous voyez, les évolutions/corrections/optimisations des codes en question ? MAJ du post par l'auteur ? Nouveau post ? Est-ce tout ça ne devrait pas être écrit en anglais afin que ce soit ouvert aux autres utilisateurs que ceux de la langue de Molière ?
-
Gérer plusieurs radiateurs avec panneau de chauffage
MAM78 a répondu à un(e) sujet de ansaro dans Chauffage et Energie
chez moi c’est dispo. dans l’appli. fibaro sur mon iphone. Envoyé de mon iPhone en utilisant Tapatalk Pro -
Dans ce cas, je pourrais contribuer aux tests de ton futur VD.
-
Si ça s'instal également dans un Docker sur un Synology, ça pourrait également m'intéresser.
-
Gérer plusieurs radiateurs avec panneau de chauffage
MAM78 a répondu à un(e) sujet de ansaro dans Chauffage et Energie
Ta WAF peut utiliser la modification de consignes via l’interface de gestion des zones en utilisant le mode manuel dans lequel elle peut definir une température, une durée (de 1 à 24h maxi) et les zones qu’elles souhaitent modifier ponctuellement. Envoyé de mon iPhone en utilisant Tapatalk Pro -
Gérer plusieurs radiateurs avec panneau de chauffage
MAM78 a répondu à un(e) sujet de ansaro dans Chauffage et Energie
Je ne vois pas bien où est ton problème. Tes têtes sont localisées dans la même pièce. Au niveau du panneau de chauffage tu crées une zone à laquelle tu associes cette même pièces. L'ensemble des têtes présentes dans cette pièce seront pilotées automatiquement par ce panneau de chauffage selon les consignes que tu auras déterminées (jour, horaire, température). Probablement, il te faudra néanmoins garder un thermostat qui va réguler la température d'une pièce pour piloter ta chaudière. Dans mon cas, c'est mon salon, c'est ma pièce la plus chaude de ma maison. -
Effectivement vu sous cet angle technique ça semble moins évident. Ah ces utilisateurs qui qui se mettent à rêver de fonctionnalités que la technique ne sait pas adresser
-
Mode boulet, Effectivement c'était bien le volume, j'avais oublié de le remonter le rechargement de ta dernière version Maintenant que cela fonctionne, j'ai une petite suggestion à te faire concernant la saisie textuelle Ce serait TOP de basculer en mode numérique lorsque l'on clique sur le bouton du milieu en bas "_123" un peu comme sur nos anciens téléphones portables en mode T9
-
Marche toujours pas : [DEBUG] 19:48:53: {"174":{"stream":"","action":"","zpStatus":{"zoneName":"Salle de bains","localUID":"RINCON_949F3E0BF25E01400","macAddress":"94:9F:3E:0B:F2:5E"},"zonePlayers":{"uuid":"RINCON_949F3E0BF25E01400","coordinator":"true","group":"RINCON_949F3E0BF25E01400:1849025896","location":"","ip":"192.168.0.102"},"tts":{"message":"Favori numéro 2.","duration":"auto","language":"fr-FR","volume":0},"radioStations":[{"title":"ABC Lounge","res":"x-rincon-mp3radio:\/\/http:\/\/listen.radionomy.com\/abc-lounge.m3u"},{"title":"Europe 1","res":"x-sonosapi-stream:s6566?sid=254&flags=8224&sn=0"},{"title":"France Inter 87.8 (Émissions-débats France)","res":"x-sonosapi-stream:s24875?sid=254&flags=8224&sn=0"},{"title":"franceinfo","res":"x-sonosapi-stream:s9948?sid=254&flags=8224&sn=0"},{"title":"RFM","res":"x-sonosapi-stream:s6616?sid=254&flags=8224&sn=0"}]},"214":{"stream":"","action":"","zpStatus":{"zoneName":"","localUID":"","macAddress":""},"zonePlayers":{"uuid":"","coordinator":false,"group":"","location":"","ip":""},"tts":"","radioStations":{}}} Mais la variable x_sonos_tts est bien crée et elle contient ça : [DEBUG] 19:51:29: {"remote":302,"sonos":[{"id":"174","name":"SONOS Remote"},{"id":"214"}]} Pour info, j'avais avant un deuxième VD Sonos Remote, que j'ai supprimer depuis, il correspondait à l'ID 214 ci-dessus. J'ai du supprimer la variable x_sonos_tts pour qu'elle soit a nouveau générée pour contenir ça : [DEBUG] 19:54:10: {"remote":302,"sonos":[{"id":"174","name":"SONOS Remote"}]} Mais ça ne fonctionne toujours pas
-
Version 1.0.1 [DEBUG] 18:27:15: {"174":{"stream":"","tts":"","zpStatus":{"zoneName":"Salle de bains","localUID":"RINCON_949F3E0BF25E01400","macAddress":"94:9F:3E:0B:F2:5E"},"action":"","zonePlayers":{"uuid":"RINCON_949F3E0BF25E01400","coordinator":"true","location":"","group":"RINCON_949F3E0BF25E01400:1849025896","ip":"192.168.0.102"},"radioStations":[{"title":"ABC Lounge","res":"x-rincon-mp3radio:\/\/http:\/\/listen.radionomy.com\/abc-lounge.m3u"},{"title":"Europe 1","res":"x-sonosapi-stream:s6566?sid=254&flags=8224&sn=0"},{"title":"France Inter 87.8 (Émissions-débats France)","res":"x-sonosapi-stream:s24875?sid=254&flags=8224&sn=0"},{"title":"franceinfo","res":"x-sonosapi-stream:s9948?sid=254&flags=8224&sn=0"},{"title":"RFM","res":"x-sonosapi-stream:s6616?sid=254&flags=8224&sn=0"}]},"214":{"stream":"","tts":"","zpStatus":{"zoneName":"","localUID":"","macAddress":""},"action":"","zonePlayers":{"uuid":"","coordinator":false,"location":"","group":"","ip":""},"radioStations":{}}}
-
ton id est bien déclaré dans l'entête ? --[[ %% autostart %% properties 87 value
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Oui j'ai bien x_sonos_object et le VD. Effectivement, j'ai une erreur dans le debug du main loop. [DEBUG] 18:05:02: Starting Sonos TTS Remote...[ERROR] 18:05:02: line 30: bad argument #1 to 'decode' (string expected, got nil)
-
Idem
-
[DEBUG] 17:52:29: [Sonos TTS Remote] Unable to set x_sonos_tts, please check variable lors de l'appui sur le premier favori. La variable n'est pas créée automatiquement
-
Oups, mode boulet. J'avais pas lu l'indication sur le nombre de secondes.
-
Je n'arrive pas à faire fonctionner le VD, la variable x_sonos_tts ne semble pas être alimenté ? Par ailleurs, je n'arrive pas à utiliser la fonction clavier, passage en numérique et utilisation de la deuxième lettre de chaque bouton ?
-
Très sympathique ton VD, même si pour le moment je n'en vois pas encore l'usage dans mon contexte, notamment la saisie via les boutons. Sauf peut-être pour envoyer à distance un message de type depuis sont smart phone qui serait diffuser sur une Sonos afin par exemple d'inviter à quitter les lieux lors d'une détection d'intrusion ou s'il l'on veux envoyer un message vocal aux personnes présentes à la maison. Tu vois d'autres usages ? Concernant les messages de type favori (fixe), je préfère utiliser les messages de type MP3 qui se diffusent beaucoup plus rapidement. Merci pour le partage
-
Merci pour ce petit rappel des basiques de la programmation
-
Ok, j'ai capté. Ok pas d'exécution mais lecture du code de la scène
-
J'ignorais cette subtilité, tu veux dire que la ligne ci-dessus est exécuter autant de fois que la valeur nbr. Je supposais qu'elle n'était exécutée qu'une fois et que c'était uniquement le contenu de la boucle qui était exécuté autant de fois que la valeur nbr. Il y énormément de codes sur le forum qui sont écrit comme ça : for a=1, #r do