fonctionnement os.exexcute

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
ziaziung
Messages : 183
Inscription : 13 févr. 2015, 14:04

fonctionnement os.exexcute

Message par ziaziung »

Bonjour à toutes et tous.

J'ai un script lua dans lequel j'utilise os.execute :

Code : Tout sélectionner

commandArray = {}
local sentence="Bonjour, nous sommes aujourd'hui le "..tonumber(os.date("%d"))
os.execute ("/usr/bin/tts " ..sentence.." "&)
os.execute("/usr/bin/tts Bienvenu. Nous sommes le 11 décembre, bon anniversaire")
return commandArray

seul le deuxieme os.execute

Code : Tout sélectionner

os.execute("/usr/bin/tts Bienvenu. Nous sommes le 11 décembre, bon anniversaire")
est executé quel est le probleme dans

Code : Tout sélectionner

local sentence="Bonjour, nous sommes aujourd'hui le "..tonumber(os.date("%d"))
os.execute ("/usr/bin/tts " ..sentence.." "&)

?
Et tts en ligne de commande fonctionne parfaitement.
La commande tts est définie ici http://www.voicerss.org/api/documentation.aspx
Raspi B+ et 2. RfxcomE. Volets Somfy. Sondes de température "AliExpress". Domoticz version 4.10761
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: fonctionnement os.exexcute

Message par thier »

Je dirais os.execute ("/usr/bin/tts " ..sentence).
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: fonctionnement os.exexcute

Message par Neutrino »

Pourquoi mettre un tonumber ?
On est justement dans une chaîne.

Code : Tout sélectionner

commandArray = {}
local sentence="Bonjour, nous sommes aujourd'hui le "..os.date("%d")
os.execute ("/usr/bin/tts " ..sentence.." "&)
os.execute("/usr/bin/tts Bienvenu. Nous sommes le 11 décembre, bon anniversaire")
return commandArray
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
ganq
Messages : 385
Inscription : 01 avr. 2015, 14:20

Re: fonctionnement os.exexcute

Message par ganq »

as -tu essayé :

Code : Tout sélectionner

local sentence="Bonjour, nous sommes aujourd'hui le "..tonumber(os.date("%d"))
os.execute ("/usr/bin/tts '" ..sentence.."' &" )
domoticien amateur option bidouille
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: fonctionnement os.exexcute

Message par vil1driver »

Salut,

+1 pour Neutrino au sujet du tonumber

+1 pour Ganq de passer le & dans la chaîne et usage d'apostrophe pour encadrer le texte.

;)

Gaffe au mot aujourd'hui qui comporte un apostrophe qu'il faut impérativement échapper

Code : Tout sélectionner

Aujourd\'hui
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
ziaziung
Messages : 183
Inscription : 13 févr. 2015, 14:04

Re: fonctionnement os.exexcute

Message par ziaziung »

Bonjour à toutes et tous
la syntaxe qui fonctionne est :

os.execute ("/usr/bin/tts " ..sentence.." " )


pas de &.

Par contre, il me semblait (c'est ce que j'avais crtu comprendre dans la doc lua : https://www.lua.org/pil/22.1.html) que os.date donnait la date (les noms des jours et des mois) en français. Ce n'est pas le cas! Savez vous comment faire?
Raspi B+ et 2. RfxcomE. Volets Somfy. Sondes de température "AliExpress". Domoticz version 4.10761
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: fonctionnement os.exexcute

Message par Neutrino »

En fait, le & doit être dans entre les guillemets, j'ai recopié l'erreur dans mon précédent post, désolé.

Code : Tout sélectionner

os.execute ("/usr/bin/tts " ..sentence.." &" )
Cela permet de lancer le tts sans bloquer le script.
Pour la VF, j'en sais rien :(
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Répondre