Bon, côté gestion Kiosk, j'avance et ça commence à être pas mal
.
Le scénario est bien plus compliqué car en vrai il faut gérer si l'écran est déjà allumé ou éteint...
Code : Tout sélectionner
{
"event": "MOTIONDETECTED_EVENT",
"key": "__DEFAULT__",
"data": [
{
"//": "type=info&text=%C3%89v%C3%A9nement+se+d%C3%A9clenchant+lorsque+la+fonction+modtionDetector+d%C3%A9tecte+un+mouvement."
},
{
"//": "type=comment&text=Remonte+l'info+de+mouvement+de+la+tablette"
},
{
"setCmd": "id=6676"
},
{
"__IF__": "paramL=%7BIS_SCREEN_ON%7D&operator=__EQUAL__¶mR=0"
},
{
"!toast": "message=J'allume+l'%C3%A9cran+car+il+est+%C3%A9teint"
},
{
"screenOn": ""
},
{
"//": "type=comment&text=R%C3%A9cup%C3%A8re+s'il+y+a+quelqu'un+%C3%A0+la+maison"
},
{
"getCmd": "id=6257"
},
{
"//": "type=comment&text=Lance+le+bon+design+(digicode+si+absent%2C+sinon+design+defaut)"
},
{
"__IF__": "paramL=%7BRETURN%7D&operator=__EQUAL__¶mR=0"
},
{
"_designFS;1": "id=23"
},
{
"__ELSE__": ""
},
{
"goToView": "id=11"
},
{
"configureLayout": "buttons=0&webTitleBar=0&webZoomEnabled=1&webTextSize=100&androidFullScreen=1"
},
{
"__END__": ""
},
{
"resumeMotionDetector": ""
},
{
"sleep": "name=Sleep_OFF&time=600"
},
{
"//": "type=comment&text=Lib%C3%A8re+le+capteur+de+mouvement+et+%C3%A9teint+la+tablette+et+attends+10+min+et+si+pas+de+mouvement%2C+on+%C3%A9teint+l'%C3%A9cran+!"
},
{
"!toast": "message=J'ai+atteint+5+min+donc+j'%C3%A9teins+si+pas+de+mouvement"
},
{
"!sleep": "time=1"
},
{
"__IF__": "paramL=%7BSTATUS%7D&operator=__EQUAL__¶mR=1"
},
{
"screenOff": ""
},
{
"__END__": ""
},
{
"__ELSE__": ""
},
{
"//": "type=comment&text=L'%C3%A9cran+est+donc+d%C3%A9j%C3%A0+allum%C3%A9"
},
{
"//": "type=comment&text=Annule+le+sleep+en+cours+s'il+existe+(si+d%C3%A9tection+pr%C3%A9c%C3%A9dente)"
},
{
"!toast": "message=J'annule+le+sleep+pr%C3%A9c%C3%A9dent+et+je+conserve+l'%C3%A9cran+allum%C3%A9"
},
{
"sleep": "name=Sleep_OFF&time=0"
},
{
"resumeMotionDetector": ""
},
{
"__END__": ""
}
]
}
Là, le code est en mode "debug" avec des toasts et des temporisations pas bonnes (je passe de 30 à 300 secondes soit 5min).
Le principe est le suivant :
si détection de mouvement
j'envoie la commande sur jeedom (pour d'autres scénarios)
si écran éteint
alors j'allume l'écran
je teste si présence ou non
je lance le design correspond (digicode ou design vue pour l'instant)
je relance la détection de mouvement
j'attends 10 min (ici 30 secondes pour le principe)
si pas de mouvement (status = 1, cf explication de djul)
alors j'éteints l'écran
sinon si écran allumé
alors j'annule le sleep précédent
je relance la détection de mouvement
Mais j'ai un souci, bein oui !
Si jamais je fais un power off pour mettre la tablette en veille, dans les 10 min qui viennent je ne peux plus allumer la tablette par la détection de mouvement... comme si le capteur n'était plus fonctionnel.
A l'origine, j'ai allongé ce délai à 10 min car si j'utilise une application télé (mycanal ou autre) et que je ne suis pas à côté de la tablette dans le délai du sleep, elle s'éteint... du coup, le waf n'est pas respecté et madame ne reste pas à côté quand elle cuisine...
J'avoue que je sèche car je ne sais pas trop comment tester si un apk est lancé ou dans les options de JPI sur les conditions.... mais je n'ai rien trouvé.
Je me dis au pire, le sleep faut pas mettre 5 min mais au moins 15 min car statistiquement on repasse bien devant quand même ! Mais c'est bourrin... ça c'est ce que j'ai fait. Et du coup, la tablette ne se réveille plus durant un délai de X min...
EDIT : je pense avoir trouvé.
En gros si on ne repasse pas devant la tablette que ce soit un film ou un design, ça s'éteint au bout de 10 minutes.
Si l'écran est éteint, quelque soit l'état précédent, ça relance le design...
Code : Tout sélectionner
{
"event": "MOTIONDETECTED_EVENT",
"key": "__DEFAULT__",
"data": [
{
"//": "type=info&text=%C3%89v%C3%A9nement+se+d%C3%A9clenchant+lorsque+la+fonction+modtionDetector+d%C3%A9tecte+un+mouvement."
},
{
"//": "type=comment&text=Remonte+l'info+de+mouvement+de+la+tablette"
},
{
"setCmd": "id=6676"
},
{
"__IF__": "paramL=%7BIS_SCREEN_ON%7D&operator=__EQUAL__¶mR=0"
},
{
"!toast": "message=J'allume+l'%C3%A9cran+car+il+est+%C3%A9teint"
},
{
"screenOn": ""
},
{
"//": "type=comment&text=R%C3%A9cup%C3%A8re+s'il+y+a+quelqu'un+%C3%A0+la+maison"
},
{
"getCmd": "id=6257"
},
{
"//": "type=comment&text=Lance+le+bon+design+(digicode+si+absent%2C+sinon+design+defaut)"
},
{
"__IF__": "paramL=%7BRETURN%7D&operator=__EQUAL__¶mR=0"
},
{
"_designFS;1": "id=23"
},
{
"__ELSE__": ""
},
{
"goToView": "id=11"
},
{
"configureLayout": "buttons=0&webTitleBar=0&webZoomEnabled=1&webTextSize=100&androidFullScreen=1"
},
{
"__END__": ""
},
{
"resumeMotionDetector": ""
},
{
"sleep": "name=Sleep_OFF&time=600"
},
{
"//": "type=comment&text=Lib%C3%A8re+le+capteur+de+mouvement+et+%C3%A9teint+la+tablette+et+attends+10+min+et+si+pas+de+mouvement%2C+on+%C3%A9teint+l'%C3%A9cran+!"
},
{
"!toast": "message=J'ai+atteint+5+min+donc+j'%C3%A9teins+si+pas+de+mouvement"
},
{
"!sleep": "time=1"
},
{
"__IF__": "paramL=%7BSTATUS%7D&operator=__EQUAL__¶mR=1"
},
{
"screenOff": ""
},
{
"__END__": ""
},
{
"__ELSE__": ""
},
{
"//": "type=comment&text=L'%C3%A9cran+est+donc+d%C3%A9j%C3%A0+allum%C3%A9"
},
{
"//": "type=comment&text=Annule+le+sleep+en+cours+s'il+existe+(si+d%C3%A9tection+pr%C3%A9c%C3%A9dente)"
},
{
"!toast": "message=J'annule+le+sleep+pr%C3%A9c%C3%A9dent+et+je+conserve+l'%C3%A9cran+allum%C3%A9+avec+une+dur%C3%A9e+plus+longue"
},
{
"resumeMotionDetector": ""
},
{
"sleep": "name=Sleep_OFF&time=600"
},
{
"__IF__": "paramL=%7BSTATUS%7D&operator=__EQUAL__¶mR=1"
},
{
"screenOff": ""
},
{
"__END__": ""
},
{
"__END__": ""
}
]
}