Concernant le Ask
je viens de re-re-tester et aucun soucis de mon coté, avec le master ou un satellite.
Dans Rhasspy:
Slot YesNo
( oui | ouais | yes | bien sûr ):oui
( non | mais non | surtout pas | nan ):non
intent GetAskResponseJeedom
[GetAskResponseJeedom]
bien sur que ($YesNo){YesNo}
mais ($YesNo){YesNo}
surtout pas (:){YesNo:non}
bien sur (:){YesNo:oui}
($YesNo){YesNo}
oui{YesNo:oui}
non{YesNo:non}
intent ModeJeedom
[ModeJeedom]
# Mode alarme
(passe | mets toi | mets) (en | le mode | mode)(alarme){mode_name:alarme} ( partiel | partielle){mode_type:partiel}
(passe | mets toi | mets) (en | le mode | mode)(alarme){mode_name:alarme} (off){mode_type:off}
(passe | mets toi | mets) (en | le mode | mode)(alarme){mode_name:alarme} (total | totale){mode_type:total}
(passe | mets) (l'alarme){mode_name:alarme} [de la maison] [en] [mode] ( partiel | partielle){mode_type:partiel}
(passe | mets) (l'alarme){mode_name:alarme} [de la maison] [en] [mode] (off){mode_type:off}
(passe | mets) (l'alarme){mode_name:alarme} [de la maison] [en] [mode] (total | totale){mode_type:total}
Dans le plugin:
L’intent GetAskResponse n’a pas de callback, il est géré par la fonction Ask
.
Pour la petite histoire, la fonction ask appelle une fonction dédiée du plugin qui:
- Fait un listen-for-command à rhasspy
- Récupère la réponse de rhasspy et compare l’entity pour récuperer le slot. Si c’est bon, c’est bien une réponse de Ask, et il set la variable. Le code est là
Ensuite le scénario appellé par notre intent initial (ici rhasspyModes):
Ici on renseigne:
- Le tag profile pour pouvoir utiliser
#[Rhasspy-Intents][TTS-#profile#][Ask]#
(profile ! pas source ou autre comme j’ai pu voir ailleurs !!) - Le slot
YesNo
en réponse - La variable bien sûr
- Notre commande
#[Rhasspy-Intents][TTS-#profile#][Ask]#
qui va prendre le nom TTS-xx avec le master ou un satellite.
Sur Rhasspy on obtient bien notre slot de réponse:
Et ensuite on check simplement la réponse.