-
Compteur de contenus
2 501 -
Inscription
-
Dernière visite
-
Jours gagnés
28
Tout ce qui a été posté par MAM78
-
Concernant ta proposition, ci-dessus elle me convient bien. Du coup, cela pourrait être également fait pour la variable volume dans le cas d'un message MP3.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@pepite Concernant le fait que je renseigné {"Weather!", "Temperature" ,""} dans la condition c'était volontaire puisque pour un message push, la précision des décimales est intéressante alors que pour le message TTS ce n'est pas pertinent.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Hello @pepite, Le problème avec ta proposition ci-dessus c'est que la valeur restituée est en décimales et donc pas très agréable à entendre. L'idéal serait de pourvoir intégrer des fonctions de mise en forme des valeurs comme par exemple une fonction arrondi : string.format("%.0f", #value[1]#) ) Je n'ai pas trouvé comment intégrer cela dans GEA lorsqu'il s'agit de l'appliquer sur une valeur de substitution de type #value[1]#, #time#, ...
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Yes it is solved also
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Voici la beta de la version 6.04 gea_6_04.lua Elle contient les évolutions suivantes : -- ========================================================== -- v.6.04 modify by MAM78 -- add : Sonos TTS message function -- add : Sonos MP3 message function and add sonosMP3foldername -- 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, line 1331 -- ========================================================== Voici quelques exemples de tests : 1) Fonction Transpose qui recherche une valeur dans un premier tableau et qui retourne sa correspondance dans le deuxième tableau : L'exemple ci-dessous retourne un Message Popup sur votre smartphone contenant le texte suivant : "Retour = Vrai", GEA.add({"transpose!", "true", {"true", "false"}, {"Vrai", "Faux"}, ""}, 0, "Test", {"Popup", "Info", "Titre", "Retour = #value[1]#"}, "Test fonction Transpose") 2) Fonction Sonos MP3 qui execute la lecture d'un fichier MP3 contenu dans votre bibliothèque Sonos sur votre l'enceinte de votre choix. 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") GEA.add({id["DETECTEUR_PORTE_GARAGE"], {"Time", "Sunset-15", "Sunrise+5"}}, -1, "La porte de la cave vient d être ouverte", {"sonosmp3", id["VD_SONOS"], id["VD_SONOS_BT"], "Ouverture Porte Cave.mp3", "40"}, "Ouverture porte Garage") Le valeurs dans l'exemple ci-dessous : "Fermeture Porte Cave.mp3", "40" correspondent respectivement au nom du fichier à écouter et au volume sonore (de 0 à 100) Attention de bien ajouter dans vos variables : local id = { DETECTEUR_PORTE_GARAGE = 87, VD_SONOS = 174, VD_SONOS_BT = 28 } Evidement, il faut disposer du VD Sonos de @Krikroff et renseigner les variables ci-dessus VD_SONOS et VO_SONOS_BT (Nième bouton correspondant à l'execution d'une commande sonos) Ne pas oublier d'ajouter au début de votre code la value correspondant à votre détecteur d'ouverture dd porte. Cf. ci-dessous : %% properties 87 value Et compléter la variable : GEA.sonosMP3foldername = "//XXXX/music/Domotique/Domotique/iTunes Media/Music/Sons Domotiques/Sons Domotiques/" Remplacer les xxxx par le nom de votre serveur contenant votre bibliothèque Sonos et adapter le chemin d'accès aux fichiers MP3 correspondant à vos messages vocaux pré-enregistrés 3) Fonction Sonos TTS qui execute la lecture d'un message textuel et l'envoi sur votre l'enceinte de votre choix. Ci-dessous un exemple en français et en anglais donnant la l'indication sur le jour courant et la météo de l'instant présent. Il y a également envoi d'une notification du même message sur votre smartphone. 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]#", "fr-FR", "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]#", "en-us", "40"}, "Wheater annonce") Ci-dessous un autre exemple en français qui indique que la porte du garage est ouverte depuis x minutes. Il y a également envoi d'une notification du même message sur votre smartphone. GEA.add({id["DETECTEUR_PORTE_GARAGE"]}, 10*60, "La porte du garage est ouverte depuis plus de #duration#", {{"Repeat"}, {"sonostts", id["VD_SONOS"], id["VD_SONOS_TTS_BT"], "La porte du garage est ouverte depuis plus de #durationfull#", "40", "fr-FR"}}, "Porte Garage toujours ouverte") Attention de bien ajouter dans vos variables : local id = { VD_SONOS = 174, VD_SONOS_BT = 28 } Et bien renseigner la variable suivante selon le language que vous souhaitez utiliser : (elle sera utiliser pour traduire dans l'exemple ci-dessus le jour de la semaine et le temps qu'il fait. GEA.language = "Fr" ou GEA.language = "En" @pepite pourrais-tu STP faire quelques tests complémentaires avant mise en disposition sur la page officielle @Steven pourrais-tu regarder le code, si tu vois des optimisations à apporter
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
En fait ce que je ne comprends pas c'est : Tu veux dire qu'il y a une différence entre lancer (fibaro:startScene) une scène et un chargement en mémoire d'une scène ? Si oui, quelle est le différence ?
-
Que veux-tu dire par ?
-
Non effectivement, trop lourd. En plus faudrait la supprimer la scène dès lors que le code évoluerait. Dans ta solution avec l'utilisation d'une scène : Lorsque tu livre une nouvelle version de ton VD, ceux qui rechargeront ton VD devront désigner (modifier) le n° de scène dans chacun des boutons ? Est-ce que tu aurais trouver une solution pour contourner cette manipulation ?
-
Dommage, s'aurait été bien d'avoir tout le code relatif au VD dans le VD et non en partie distribué dans une scène
-
C'était effectivement ma question (ci-dessus), j'ai maintenant ma réponse Mais est-ce toutes les 3 secondes ou 1 seconde, comme indiqué sur les VD : In main loop you can enter LUA code to be executed each second Ce qui je te l'accord ne règle pas le fond du problème que tu exposes
-
C'est bien ce que je pensais, nous nous sommes pas compris, mon idée est que le main loop contiendrait l'ensemble du code qui est répété actuellement dans les boutons et sans le déporter dans une scène.
-
De retour de congés, je me lance dans l'élaboration de la V6.04 avec l'intégration des fonctions Sonos. Dès que j'aurais fait quelques tests, je vous livrerais le résultat pour tests. @pepite tu seras dispo. pour faire également quelques tests ?
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Je ne suis pas certain de te suivre sur ta notion de design monolithique. C'est bien mon idée, c'est bien d'avoir dans le même VD l'ensemble du code qui le concerne Mais ce qui m'inquiète c'est la fréquence d'exécution du main loop versus la rapidité d'appui sur les boutons, au risque de louper certains appuis.
-
Est-ce que ça fonctionne également dans le main loop du VD afin d'y déporter le code identique relatif aux différents boutons du même VD ?
-
Comme tu veux, soit tu fais la modify sur la base de ta v6.02 et je fais les tests, soit je fais la totale puis tu publies la v6.03. Envoyé de mon iPhone en utilisant Tapatalk Pro
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Comment ajouter un nouvel Appareil = Téléphone
MAM78 a répondu à un(e) sujet de WARZAS dans HC 2 & Lite
hou là, j'ai du abuser pour les fêtes de noël -
Comment ajouter un nouvel Appareil = Téléphone
MAM78 a répondu à un(e) sujet de WARZAS dans HC 2 & Lite
Comment est-ce que l'on fait pour retirer un ancien téléphone de la liste enregistrée ? -
Hello @Steven Désolé, j'avais pas bien regardé. Pour rester dans du code en anglais, tu peux peut-être l'écrire de cette façon : language Quand penses-tu sortir une V6.03 ? sans te mettre la pression, c'est les vacances
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Pour sonoslanguage la variable langue devra être adapté dans GEA puisque le contenu n'est pas le même GEA.language = "Fr" versus "fr-FR", "en-us" pour les sonos Pour sonosfoldername le chemin sont vraiment long du coup on vas perdre en lisibilité des GEA.add Dans mon cas, c'est : "//xxxxxxxxxx/music/Domotique/Domotique/iTunes Media/Music/Sons Domotiques/Sons Domotiques/" Moi je dis ça, je ne dis rien .c'est toi le maitre J'ignore si les fonctions Sonos de @Krikroff intègrent déjà la possibilité de désigner l'enceinte sur la et lesquelles doivent se faire l'envoi du message, je pense que ce serait bien d'ajouter un paramètre pour ça si c'est déjà prévu. C'est peut-être l'adresse ip de l'enceinte qui permet la détermination.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Il faudra ajouter les variables suivantes : sonosfoldername, contenant le chemin d'accès aux fichiers MP3 de la bibliotheque Sonos. Pour la fonction MP3 sonoslanguage, pour la langue, soit "fr-FR", "en-us"
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Avec la fonction transpose, nous pourrions également faire ceci. GEA.add(({{"transpose!", {true, false}, {"alumée", "éteinte"}, {turnOn, 73}, ""}, 0, "La lampe est #value[1]#") Ce qui donnerait : [DEBUG] 11:56:45: La lampe est alumée Ce qui permetrait de faire la traduction de n'importe qu'elle donnée selon les 2 tables de correspondance.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Génial, j'ai enfin réussi à faire l'intégration de l'événement avec envoi de message TTS vers ma Sonos : GEA.add({{"transpose!", GEA.traduction.en.WeatherCondition, GEA.trad.WeatherCondition, {"weather"}, ""}, {"Weather!", "Temperature" , ""}}, 0, "Test", {"SendVoiceMessage", "TTS", "Nous sommes #datefull# il fait #value[2]# degrer et le temps est #value[1]#", "30", "fr-FR"}, "Annonce de la météo") Voici, la fonction transpose finalisée : transpose = { name = "Transpose", getValue = function(table1, table2, value) for k, v in pairs(table1) do if (v:lower() == value:lower()) then return table2[k] end end return nil end } Maintenant, il reste plus que l'intégration de la fonction SONOS à intégrer dans GEA. @Steven tu vois ça comment ?
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Ok, j'arrive bien maintenant à faire la transposition (traduction) avec la commande suivante (en renseignant en dur "Cloudy"), j'obtient bien "Retour = Nuageux" : GEA.add({"transpose!", "Cloudy", GEA.traduction.en.WeatherCondition, GEA.trad.WeatherCondition,""}, 0, "Test", {"Popup", "Info", "Titre", "Retour=#value[1]#"}, "Test Transpose") Mais maintenant, si je veux remplacer la valeur en du par la fonction GEA "weather". Ca ne fonctionne pas. GEA.add({"transpose!", {"weather"}, GEA.traduction.en.WeatherCondition, GEA.trad.WeatherCondition,""}, 0, "Test", {"Popup", "Info", "Titre", "Retour=#value[1]#"}, "Test Transpose") Mais en l'utilisant de cette façon, ça fonctionne : GEA.add({"transpose!", GEA.options.weather.getValue(), GEA.traduction.en.WeatherCondition, GEA.trad.WeatherCondition,""}, 0, "Test", {"Popup", "Info", "Titre", "Retour=#value[1]#"}, "Test Transpose") Je ne trouve pas ça très élégant. Est-il possible de faire mieux ?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@Steven En fait mon copier coller dans mon post avait supprimé [i] Vlici le bon code. transpose = {name="transpose", action=function(Value, Table1, Table2) for i = 1, #Table1 do if Table1[i] == Value then return Table2[i] end end return "" end }, Mais je garde le tient qui est plus propre et qui traite en plus les PB de majuscules. Mon code fonctionnait bien, mais mon problème est dans l'usager de l'événement. GEA.add(true, 0, "Test", {{"transpose", "B", {"A", "B", "C"}, {"a", "b", "c"}}, {"Popup", "Info", "Titre", "Retour = #value[1]#"}}, "Test Transpose") j'ai bien le Popup sur l'application fibaro mais avec comme contenu : Retour = true et non Retour = b Lorsque j'utilise la ligne ci-dessous, ça fonctionne bien print( "Transpose="..GEA.options.transpose.action("B", {"A", "B", "C"}, {"a", "b", "c"} ) ) j'ai bien Transpose=b Pourquoi mon GEA.add ne fonctionne pas.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :