je commence par prévenir que mon niveau en LUA est limité surtout quand on commence a perler de fonction etc ...
Après plusieur de recherche je m'avoue vaincu ...
je cherche à contourner un problème, le voici :
J'utilise mon google home et IFTTT pour mettre a jour une variable "domoticz". Cette variable va donc prendre la valeur (chaine) de ma commande vocale, exemple : 'allume les lumières du salon'. J'utilise déjà du LUA avec beaucoup de si je dis tel phrases alors ou tels phrase ou tel ... Bref c'est long est pas toujours sure que ma commande sera bien celle que j'ai écrite dans mon script LUA...
Je souhaiterais donc utiliser un système de mots clés (idée venue du fait que j'utilise Tasker sur mon tel et que j'ai découvert le site dialoflow), par exemple dans ma phrase je vais détecter si je trouve le mot 'allumer' ou 'allume' ou 'active' et si il est détecté alors je vais chercher le nom de mon actionneur ici 'lumières du salon' puis j'effectue l'action.
rechercher un mot dans une chaine, j'ai trouvé cette méthode :
Code : Tout sélectionner
commandArray = {}
local y = 'active'
local z = 'allumer'
local x = 'power_on'
s = 'je veux allumer la lumière'
a = string.find(s, z)
print(a)
b = string.find(s, y)
print(b)
c = string.find(s, x)
print(c)
if a ~= nil or b ~= nil or c ~= nil then
print('ok')
end
return commandArrayj'ai trouvé d'autres méthode comme séparer ma chaine en plusieurs mots mais le problème c'est que ne sais pas comment utiliser ce mots séparément ou
exemple :
Code : Tout sélectionner
local example = "an example string"
for i in string.gmatch(example, "%S+") do
print(i)
end
-- output:
-- an
-- example
-- stringje vous laisse m'aiguiller vers la bonne voie car je rame un peu trop