satryany Posté(e) le 30 mai 2014 Signaler Posté(e) le 30 mai 2014 Version 2 - : version web,version windows - passerelle pushover et smsgateway, api http, gestion synology surveillance station Besoin : Avoir la possibilité d’envoyer un mail avec plusieurs photos prisent simultanément à plusieurs destinataires. Avoir une gestion multi rooms et multi users, upload des photos sur votre dropbox et gestion des cameras sur synology surveillance station, enregistrement, activation et désactivation. Tout cela avec une api pour pour être compatible avec HC2 et HCL avec un simple GET. Avoir une passerelle pour une utilisation plus simple des différents services de notifications comme smsGateway ou pushover (d'autres arriverons). L'idée est, coté hc2/hcl de ne pas avoir à gérer de numéros de tel ou de token pushover, device name etc ... juste des prénoms Etant développeur java et pour changer un peu du php l’outils est en java. Pour ceux que ça intéresse j'utilise les technos suivantes : Spring-boot - thymeleaf - bootstrap - jquery - maven Pour l’installation je vais me baser sur un synology DS713+ (processeur intel), sur lequel il est possible d’installer une machine virtuelle java en passant par le centre de paquets. Pour les syno non intel rendez vous ici (http://www.nas-forum.com/forum/topic/24712-java-sur-synology/). L'installation sur un raspberry pi avec la distribution Rapsbian sera également expliquée. Vous pouvez également faire tourner l’outils sur un pc / mac / unix avec java d’installé. Utilisation sous windows 1) Installation de java https://www.java.com/fr/download/ 2) télécharger et lancer l'application photo-sender.exe https://www.dropbox.com/s/iit77xp4tia3axz/photo-sender.exe?dl=0 double clicker, votre navigateur web se lancera Installation sur Synology DS713+ (intel) 1) Installation de java Rendez dans le center de paquets, chercher « Java ».Installez l’application «java manager» Lancez l’application java manager et clicker sur « installer java ».Suivez la procédure d’installation Pour vérifier la bonne installation, connectez en ssh à votre syno, (sur mac / unix avec un terminal, sous windows avec putty par exemple) et tapez : java -version vous devriez avoir ceci : java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) Client VM (build 24.55-b03, mixed mode) 2) Installation de l'application sur le synology L’application sur présente sous la forme d’un jar exécutable, qui démarre un serveur web qui expose un site ainsi qu'une api. photo-sender.jar : l'application​ photo-sender.log : fichier de log sender.sh : script de démarage Se connecter en ssh sur le syno Créer un répertoire "photo-sender" cd /volume1/web && mkdir photo-sender Déplacer le fichier sender.sh dans /usr/local/etc/rc.d mv /volume1/web/photo-sender/sender.sh /usr/local/etc/rc.d/sender.sh le rendre éxécutable chmod a+x /usr/local/etc/rc.d/sender.sh modifier la variable "path" avec le chemin vers lequel pointe l'application et où sera créer le fichier de config, et "port" port sur lequel va démarrer le serveur. #!/bin/sh #uncomment if syno readonly javahome="/var/packages/JavaManager/target/Java/jre/bin/" #uncomment if Rpi #readonly javahome="/usr/lib/jvm/jdk-7-oracle-armhf/bin/" readonly path="YOUR_PATH" readonly port="YOUR_PORT" start(){ echo `date +"%d-%m-%y %H:%M:%S"` "starting photo-sender..." nohup ${javahome}java -jar ${path}photo-sender.jar --config.path=${path} --server.port=${port} 2>&1 >> ${path}photo-sender.log & echo `date +"%d-%m-%y %H:%M:%S"` "photo-sender started" } stop(){ echo `date +"%d-%m-%y %H:%M:%S"` "stopping photo-sender..." kill -9 $(cat ${path}photo-sender.pid) rm ${path}photo-sender.pid echo `date +"%d-%m-%y %H:%M:%S"` "photo-sender stopped" } case $1 in start) start ;; stop) stop ;; restart) stop start ;; esac exit 0 Redémarrer votre syno ou taper : /usr/local/etc/rc.d/sender.sh start vous devriez voir des lignes de log dans le fichier photo-sender.logPour stopper l'application : /usr/local/etc/rc.d/sender.sh stop Installation sur Raspberry Pi (Raspbian) Sur la dernière version de raspbian une jre java est installée par défaut, vérifier avec : java -version vous devriez avoir : java version "1.7.0_40" Java(TM) SE Runtime Environment (build 1.7.0_40-b43) Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode) sinon : sudo apt-get install oracle-java7-jdk copier le zip de l'application dans /home/pi répertoire, avec une commande scp et en sftp avec fileZilla par example. unzip /home/pi/photo-sender/photo-sender.zip Vous aurez l'arborescence suivante /home/pi/photo-sender/ Déplacer le fichier sender.sh dans /etc/init.d mv /home/pi/photo-sender/sender.sh /etc/init.d/sender.sh le rendre éxécutable chmod a+x /etc/init.d/sender.sh editer le fichier /etc/rc.local nano /etc/rc.local et ajouter la ligne suivante : (Attention ne pas la rajouter après un exit 0) sh /etc/init.d/sender.sh start enregistrer Ctrl O quiter Ctrl X Redémarrer votre raspberry ou taper : /etc/init.d/sender.sh start vous devriez voir des lignes de log dans le fichier photo-sender.logPour stopper l'application : /etc/init.d/sender.sh stop 3) Dropbox Pour des raisons de confidentialité de vos photos, je n'ai pas crée une application dropbox que vous devez connecter à votre compte, c'est à vous de créer une application dropbox dans laquelle photo-sender viendra uploader vos photos. Pré requis : avoir un compte dropbox 1) aller sur https://www.dropbox.com/developers/apps2) clicker sur Create app3) choisissez dropbox API app4) choisissez files and datastores5) choisissez my app only needs access to files it created6) choisissez un nom 7) create app8) votre app est créée clicker sur generated access token9) le renseigner dans l'application dans l'onglet dropbox Les photos uploadées sont dans votre dropbox dans le dossier applications/votre app 4) Utilisation Rendez vous dans l'onglet "api" tout est expliquée. L'application a été testée avec des caméras foscam et axis, si vous rencontrez des problèmes avec d'autres modèles n'hésitez pas à me le remonter.Si vous avec des idées d'améliorations me le remonter aussi Change log Version 1.1 -Validation des adresses mails -Validation des urls des caméras -Publication des sources Version 1.2 Possibilité ajouter du texte dans le corps du mailVersion 1.2.1 bug fixing - encodage du mailVersion 1.2.2 ajout de logVersion 1.3.0 changement de logger sujet du mail dynamique upload dropbox Version 1.3.1 bug fixing - encodage du mail rechargement du fichier de configuration à chaud mise en place d'un timeout pour la prise de photo afin de ne pas trop retarder l'envoie des photos en cas de caméras injoignable, par défaut 3 sec Version 1.4.0 Activation / désactivation des caméras sur surveillance station Version 2 Version web pour faciliter la configuration Gestion synology surveillance station Compatible HCL Version 2.0.1 Bug fixing : création du fichier pid sur unix / mac dans le même répertoire que celui de l'application, ne pas le créer sous windows Ajout d'un bouton pour éteindre le serveur Création d'une version packagée pour windows - photo-sender.exe Version 2.0.2 Possibilité de choisir pour chaque camera un taille d'image qui sera utilisée lors de l'envois du mail et l'upload dropbox, l'idée est de donner à ceux qui ont une petite connexion la possibilité d'avoir des envois rapides. Dans les vus cameras je renvois des thumbnails à la place des images en taille réelle. Possibilité de déclencher un enregistrement dans surveillance station en précisant une durée, voir l'api pour plus de détails. Version 2.1 Ajout d'une passerelle pour utiliser très simplement différents services de notifications, pour l'instant Pushover et smsGateway. Pour smsGateway renseigner les numéros de téléphones dans la partie "User" et configurer le service. Pour Pushover renseigner pour chaque destinataire son device-name et configurer le service. Pour l'instant je gère l'envois possible à un groupe. A venir la gestion de plusieurs groupes et des sons de notifications. Technique : Mise à jour du framework spring-boot, passage en tomcat 8. L'application pour se trouve ici Windows : https://www.dropbox.com/s/iit77xp4tia3axz/photo-sender.exe?dl=0 Unix / Mac : https://www.dropbox.com/s/s8mlavsdbs9u7zg/photo-sender.zip?dl=0 satryany. 3
Moicphil Posté(e) le 30 mai 2014 Signaler Posté(e) le 30 mai 2014 Beau boulot ! merci pour le partage
carfnann Posté(e) le 31 mai 2014 Signaler Posté(e) le 31 mai 2014 Pour l'avoir vu tourner je peux vous dire que c'est vraiment efficace. J'avais créer des scènes pour envoyer des mails en bloc. J'avais 12 sec d'écart entre la 1ère et la 3ème avec le même déclencheur. Ici c'est vraiment instantané pour les 3 et en plus dans le même mail! C'est vraiment un super boulot
satryany Posté(e) le 5 juin 2014 Auteur Signaler Posté(e) le 5 juin 2014 Version 1.1 -Validation des adresses mails -Validation des urls des caméras -Publication des sources à venir tuto d'installation sur raspberry pi
satryany Posté(e) le 8 juin 2014 Auteur Signaler Posté(e) le 8 juin 2014 Version 1.2 Possibilité ajouter du texte dans le corps du mail tcpSocket = Net.FTcpSocket("192.168.0.110", 8000) --photos de la pièce "salon" et "cuisine" envoyé àtout le monde avec < Mouvement détecté sur détecteur de mouvement salon > dans le corps du mail --il est possible de mettre du html dans le corps du mail bytes, errorCode = tcpSocket:write("salon,cuisine;all;Mouvement détecté sur détecteur de mouvement salon") 1
carfnann Posté(e) le 9 juin 2014 Signaler Posté(e) le 9 juin 2014 le lien de l'application pointe vers la v1.1 et non pas la v1.2
satryany Posté(e) le 9 juin 2014 Auteur Signaler Posté(e) le 9 juin 2014 Corrigé alors quelqu'un l'a mis en place ?
satryany Posté(e) le 9 juin 2014 Auteur Signaler Posté(e) le 9 juin 2014 Version 1.2.1 bug fixing - encodage du mail tuto mis à jour pour les syno sans ipkg d'installé.
satryany Posté(e) le 17 juin 2014 Auteur Signaler Posté(e) le 17 juin 2014 Mise à jour du tuto sur synology + ajout tuto pour raspberry. Version 1.2.2 ajout de log
satryany Posté(e) le 24 août 2014 Auteur Signaler Posté(e) le 24 août 2014 Version 1.3.0 changement de logger sujet du mail dynamique upload dropbox
clarkkent609 Posté(e) le 24 août 2014 Signaler Posté(e) le 24 août 2014 super! ça marche imper! (je n'utilise que la fonction mail pour ma part, sur un raspberry) Par contre en 1.3.0 ça ne marche plus j'ai l'erreur suivante: 24-08-14 18:24:57 starting photo-sender... /etc/init.d/sender.sh: 13: /etc/init.d/sender.sh: /var/packages/JavaManager/target/Java/jre/bin/java: not found /etc/init.d/sender.sh: 14: /etc/init.d/sender.sh: cannot create /volume1/web/photo-sender/photo-sender.pid: Directory nonexistent 24-08-14 18:24:57 photo-sender started Dommage de devoir insérer le code dans un module virtuel, car cela n'est pas très maléable dans les scénarios, c'est parce que Fibaro bloque l'utilisation du socket dans les scènes tu confirmes? Merci pour ce module en tous cas!
satryany Posté(e) le 24 août 2014 Auteur Signaler Posté(e) le 24 août 2014 sur un raspberry le path de la jvm java est normalement celui-ci : javahome="/usr/lib/jvm/jdk-7-oracle-armhf/bin/", dé-commente cette ligne dans le fichier de conf et commente celle ci readonly javahome="/var/packages/JavaManager/target/Java/jre/bin/" /etc/init.d/sender.sh: 14: /etc/init.d/sender.sh: cannot create /volume1/web/photo-sender/photo-sender.pid: Directory nonexistent Pour cette erreur remplace : "/volume1/web/photo-sender/" par le chemin de ton choix Et oui pour l'utilisation dans un module virtuel, il n'est possible est faire des appels tcp / http dans une scène. Par curiosité tu peux me donner la marque / modèle de tes cameras pour mettre à jour la liste de compatibilité ?
clarkkent609 Posté(e) le 24 août 2014 Signaler Posté(e) le 24 août 2014 Merci pour le tuyau, je ferai la manip quand je serai devant le Pc. Sinon j'ai une foscam fi8904, ça marche impec, et la caméra du Karotz sous open karotz, ça marche impec aussi en laissant les champs user et mdp du json vides.
q.philippe Posté(e) le 28 août 2014 Signaler Posté(e) le 28 août 2014 satryany bon travail. Je vais testé mais aurais tu sorti un module virtuel pour y voir la forme. qqes questions : faut il remplir l'ip et port du module virtuel. quel est l'adresse ip,,, celui du serveur java je suppose (syno). pourquoi 8000, (étant utiliser)? Moi, c'est un volume2 que j'ai, pas de 1. j'ai modifié,,, je pense que ça doit passer? J'ai du Trendnet, as tu des retours. merci
q.philippe Posté(e) le 28 août 2014 Signaler Posté(e) le 28 août 2014 j'ai une erreur type : Start... 28/08/2014 12:38:47.516 - [iNFO] - Reading config... 28/08/2014 12:38:47.516 - [iNFO] - Default Charset=UTF-8 28/08/2014 12:38:48.347 - [iNFO] - Reading config ok 28/08/2014 12:38:48.347 - [iNFO] - Checking config... 28/08/2014 12:38:48.371 - [iNFO] - Mail adress of contact : is invalid 28/08/2014 12:38:48.379 - [iNFO] - Config error, exit
satryany Posté(e) le 28 août 2014 Auteur Signaler Posté(e) le 28 août 2014 salut il doit y avoir une erreur dans ton fichier de conf, il ne trouve pas le nom du contact et il doit y avoir une erreur dans le mail. essai de voir si déjà il est valide d'un point de vu structure ici http://jsonformatter.curiousconcept.com/ reviens vers moi si ça ne passe pas.
satryany Posté(e) le 28 août 2014 Auteur Signaler Posté(e) le 28 août 2014 : faut il remplir l'ip et port du module virtuel. quel est l'adresse ip L'ip est celle de la machine sur laquelle tourne photo-sender pourquoi 8000, (étant utiliser)? tu peux changer si tu veux, fait juste attention qu'il ne s'agisse pas d'un port déjà utilisé
q.philippe Posté(e) le 28 août 2014 Signaler Posté(e) le 28 août 2014 attends, je mis remets ce soir,,, aprés modif : Ouverture du Port sur le syno (8000). impec. sauf l'image,,,pas d'image, seulement un fichier que je ne peux pas ouvrir.
q.philippe Posté(e) le 28 août 2014 Signaler Posté(e) le 28 août 2014 au point de vue cam, j'ai trendnet et une panasonic pour mon test. Je reçois des fichiers mais ne peut pas l'ouvrir par mail, ni sur drop. Paint me dit : format pas pris en charge. c'est du jpeg! panasonic ou trendnet : absence d'image
q.philippe Posté(e) le 31 août 2014 Signaler Posté(e) le 31 août 2014 OK merci. J'avais smtp free avec un mail, gmail , lol Mais toujours pas de photo en image,, [iNFO] - Uploading dropbox ok 31/08/2014 10:22:21.559 - [iNFO] - Waiting connection... 31/08/2014 10:22:21.562 - [iNFO] - receive : all;all;;;dropbox 31/08/2014 10:22:21.562 - [iNFO] - Asking photo for Porte AV... 31/08/2014 10:22:21.562 - [iNFO] - Asking photo for EntreeAV... 31/08/2014 10:22:21.563 - [iNFO] - Asking photo for Cam Jardin 1... 31/08/2014 10:22:21.563 - [iNFO] - Asking photo for Cam Jardin 2... 31/08/2014 10:22:21.649 - [iNFO] - Photo ok 31/08/2014 10:22:21.650 - [iNFO] - Sending mail... 31/08/2014 10:22:23.154 - [iNFO] - Sending mail ok 31/08/2014 10:22:23.154 - [iNFO] - Uploading dropbox... 31/08/2014 10:22:24.359 - [iNFO] - Uploaded: File("/31-08-2014_10-22-23-0154/Cam Jardin 1.jpg", iconName="page_white_picture", mightHaveThumbnail=true, numBytes=457, humanSize="457 bytes", lastModified="2014/08/31 09:22:23 UTC", clientMtime="2014/08/31 09:22:23 UTC", rev="b629....a3") 31/08/2014 10:22:24.901 - [iNFO] - Uploaded: File("/31-08-2014_10-22-23-0154/Cam Jardin 2.jpg", iconName="page_white_picture", mightHaveThumbnail=true, numBytes=457, humanSize="457 bytes", lastModified="2014/08/31 09:22:24 UTC", clientMtime="2014/08/31 09:22:24 UTC", rev="b829....a3") 31/08/2014 10:22:25.495 - [iNFO] - Uploaded: File("/31-08-2014_10-22-23-0154/EntreeAV.jpg", iconName="page_white_picture", mightHaveThumbnail=true, numBytes=457, humanSize="457 bytes", lastModified="2014/08/31 09:22:25 UTC", clientMtime="2014/08/31 09:22:25 UTC", rev="b929.....a3") 31/08/2014 10:22:26.392 - [iNFO] - Uploaded: File("/31-08-2014_10-22-23-0154/Porte AV.jpg", iconName="page_white_picture", mightHaveThumbnail=true, numBytes=457, humanSize="457 bytes", lastModified="2014/08/31 09:22:25 UTC", clientMtime="2014/08/31 09:22:26 UTC", rev="ba29.....a3") 31/08/2014 10:22:26.393 - [iNFO] - Uploading dropbox ok Je constate aussi une erreur d'heure,,,, une heure de moins,,,10h22 alors que c'est 11h22 ,,,ou prend t il l'heure,, sur les cams ou sur le syno?
satryany Posté(e) le 31 août 2014 Auteur Signaler Posté(e) le 31 août 2014 Pour l'heure il y a un souci avec le syno en particulier il doit avoir un soucis dans ça gestion du Timezone, change le fuseau horaire à GMT+1 Amsterdam / Berlin. Pour les images, je n'ai pas de caméra trendnet / panasonic pour tester. As tu la possibilité de me donner un accès temporaire à ta caméra et changeant les accès pour que je teste ? (en MP)
q.philippe Posté(e) le 31 août 2014 Signaler Posté(e) le 31 août 2014 Sur le syno mon fuseau est bon (+1berline) et synchro avec la freebox aussi,,, et sur les cams fuseau du syno. Pour l'acces (en MP). J'avais une autre question,, comment puis je faire pour séparer par exemple, de jardin avant et jardin arriere. ( 2 scénes de declenchements av/ar, qui tape sur le Module virtuel, avantdropbox ou arrieredropbox, mais au niveau de ton script,,,,fichiers config? comment le séparés ! deux fichiers config ? ou créer deux ports différents pour deux fichiers config diff?) tu as du y pensée! encore une petite chose, faut il protèger le fichier avec un fichier htaccess ? (non le port ouvert n'est pas redirectionner de l’extérieur, donc aucun risque de l’extérieur)?? ton avis! lol
satryany Posté(e) le 31 août 2014 Auteur Signaler Posté(e) le 31 août 2014 Sur mon syno la timezone par défaut est ( cat /etc/sysconfig/clock ) DS713> cat /etc/sysconfig/clock ZONE=Timezone/Brussels UTC=false ARC=false et j'ai un décalage de 1 heure Quand je passe en amsterdam : ZONE=Timezone/Amsterdam UTC=true ARC=false Je n'est plus de problème. Après un changement de timezone il faut rebooter. Chose bizarre, il n'y a que sur le synology que je constate ce problème.
satryany Posté(e) le 2 septembre 2014 Auteur Signaler Posté(e) le 2 septembre 2014 Version 1.3.1 bug fixing - encodage du mail rechargement du fichier de configuration à chaud mise en place d'un timeout pour la prise de photo afin de ne pas trop retarder l'envoie des photos en cas de caméras injoignable, par défaut 3 sec Pour recharger le fichier de configuration : tcpSocket = Net.FTcpSocket("192.168.0.110", 8000) bytes, errorCode = tcpSocket:write("reload") A venir : Upload google drive
Messages recommandés