Pour ceux que ça interesse, voici deux petites adaptations que j'ai mise en place :
- Ma phrase clé pour IFTTT c'est "Demande à Jeedom $", donc instinctivement on dit "Ok Google, demande à jeedom de fermer les volets" et la phrase envoyée au moteur des interactions est logiquement "de fermer les volets". Voilà comment supprimer le "de" ou le "d'" en début de phrase :
A mettre en début de code, 1 fonction :
Code : Tout sélectionner
function cutleft($str, $trunk){
$nb=strlen($trunk);
$begin=substr($str,0,$nb);
if ($begin==$trunk) {
$str=substr($str,$nb,strlen($str));
}
return trim($str);
}
Il suffit ensuite d'ajouter 2 lignes
Code : Tout sélectionner
// Correction de la phrase IFTTT pour aider les interactions
$tags["#phrase#"]=strtolower($tags["#phrase#"]); //tout en minuscules
$tags["#phrase#"]=str_ireplace(array_keys($IFTTTReplaceFromTo),$IFTTTReplaceFromTo,$tags["#phrase#"]); //effectue tous les remplacements
$tags["#phrase#"]=cutleft($tags["#phrase#"],"de");
$tags["#phrase#"]=cutleft($tags["#phrase#"],"d'");
De la même manière dans la réponse de l’interaction, j'ai souvent une réponse du genre "Ok, je ferme les volets virgule"....
Donc dans le même genre d'idée, on vire la fin avec une 2ème fonction :
Code : Tout sélectionner
function cutright($str, $trunk){
$nb=strlen($trunk);
$end=substr($str,strlen($str)-$nb,$nb);
if ($end==$trunk) {
$str=substr($str,0,strlen($str)-$nb);
}
return trim($str);
}
Et une nouvelle petite ligne pour corriger la réponse
Code : Tout sélectionner
$reponseArray[] = $reponseInteract; //Ajout de la réponse au array de réponses
} //end foreach
//nettoyage de fin de chaine
$responseStringCorrected=cutright($responseStringCorrected ,"virgule").".";
Pour finir, j'ai remplacé les "variables" par des tags et l'appel direct du scénario TTS depuis le bloc code :
Code : Tout sélectionner
//lecture TTS par le scenario
$idScenarioTTS=35;
$tags["#message#"]=$responseStringCorrected;
$nextscenario = scenario::byId($idScenarioTTS);
$nextscenario->setTags($tags);
$nextscenario->launch()
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...