Cela fait un bon moment que je cherche une futur sonnette pour la maison que je suis en train de rénover …
Un peu par hasard, je suis tombé sur ce produit chez Domadoo, qui me conviendrait tout à fais, à condition que je puisse recevoir une photo de la personne qui est à ma porte (via une caméra que j’installerai).
Auriez-vous une solution de commande, pour que l’app mobile de jeedom m’envoie une photo quand quelqu’un appuie sur ce bouton ?
Ou une alternative à ce produit en sonette ?
Selon moi, la sonnette idéale doit, lorsqu’on presse le bouton, m’envoyer une notification sur mon iPhone, sonner (sur un carillon ou sur les baffles (homepod ou google home) que j’ai à la maison), et finalement faire une photo de la personne qui sonne, et me l’envoyer sur mon téléphone en direct.
Merci de m’avoir lu, et d’avance pour vos réponses.
Hello
Il suffit de déclencher un scénario lors du changement d’état de la sonnette.
Dans ce scenario enregistrer la snapshot de la caméra et envoyer cette snapshot via notification (telegram, jeedom connect, autre … )
exemple en mode bloc code
$scenario->setLog("Debut du scénario gestion sonnette");
$scenario->setLog(" * statut sonnette : " . cmd::byString(nomDeLaCommande)->execCmd());
//sendMessage("La sonnette sonne");
$scenario->setLog(" * remise a 0 du statut sonnette : " . cmd::byString(nomDeLaCommande)->event(0));
$date = new DateTime();
$dateMef=$date->format('Y-m-d H:i:s');
$dateMefPicture=$date->format('Y-m-d_H_i_s');
$filePath='/var/www/html/snapshots/';
$fileName='snap_JC_' .$dateMefPicture .'.jpg';
$urlSnapShot='http://192.168.1.36/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=p1p0b1mb0&user=admin&password=S@kVG9*e!ppMh';
$scenario->setLog("Url snapshot : " . $urlSnapShot);
get_file($scenario,$urlSnapShot,$filePath,$fileName);
$title='Evènement sonette';
$message = 'Quelqu\'un sonne à la porte ... mais qui c\'est ??';
$scenario->setLog("Titre : " . $title);
$scenario->setLog("Message : " . $message);
$scenario->setLog("Path image : " . $filePath.$fileName);
--> la le code pour envoyer la notification en fonction du plugin que tu veux utiliser
//fonction pour enregistrer la snapshot sur disque
function get_file($scenario=null,$file, $local_path, $newfilename,$username=null,$password=null) {
$err_msg = '';
$out = fopen($local_path.$newfilename,"wb");
//self::log("Attempting message download for $file to $out");
if ($out == FALSE){
self::log($scenario,"File not opened<br>");
exit;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $file);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
if (!(self::IsNullOrEmptyString($username) and self::IsNullOrEmptyString($password))) {
self::log($scenario,"set username and password : " . $username . '|'. $password);
//curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password);
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
$headers = array('Authorization: Basic '. base64_encode($username.':'.$password));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
}
curl_exec($ch);
self::log($scenario,"Error is : ".curl_error($ch));
self::log($scenario,'Curl info : ' . curl_getinfo($ch, CURLINFO_HTTP_CODE));
curl_close($ch);
}
Si tu as besoin de plus de détail sur ce qui est fait pas à pas hésites pas
lol … vraiment un chouya plus simple …
Pour ma défense j’ai pas ce plugin … mais j’aurais peut être dû … j’aurais gagné du temps …
Du coup je donne pas mon scénario pour avoir une vidéo …