Aller au contenu

jpr105

Membres confirmés
  • Compteur de contenus

    129
  • Inscription

  • Dernière visite

Tout ce qui a été posté par jpr105

  1. Bonjour, Voilà un moment que je cherchais le moyen de piloter les projecteurs de mes caméras « Présence » (j'en ai une côté cour et une autre côté jardin). C'est chose faite et je partage ma solution si cela peut aider quelqu'un. Tout d'abord merci à @KiboOst, qui « sévit » sur le forum jeedom, pour son excellent « php-simpleNetatmoAPI ». D'après ce que j'ai compris il s'agit d'un travail de reverse engineering qui s'est terminé par un retour aux API Netatmo ... sauf, qu'en fouillant dans les API officielles de Netatmo, je n'ai trouvé nulle part le moyen de piloter l'allumage du projecteur et encore moins de gérer sa luminosité ! Donc ma solution : - Côté Serveur (mon Raspberry) installation des composants de « php-simpleNetatmoAPI » sur mon Raspberry création d'un fichier TXT de paramétrage de l'API et des projecteurs écriture d'un script PHP destiné à exécuter une action sur un projecteur - Côté Home Center création d'un VD pour piloter mes 2 projecteurs simultanément ... outil prêt pour une utilisation future, ex : allumer tous les extérieurs de la maison en cas de fête et/ou d'intrusion Un peu de contenu si cela vous intéresse : Côté HC2, le VD et ses icônes Côté Raspberry, le fichier TXT et le script PHP Et voilou ... enjoy Cordialement - Jean-Paul Le VD L'export du VD est disponible en fichier joint. Sur le Raspberry 1 - Fichier texte de paramètrages User=.......... Password=.......... ClientId=.......... ClientSecret=.......... Projo1Home=3 Projo1Name=Présence avant Projo2Home=1 Projo2Name=Présence arrière 2 - Script PHP <?php //-------------------------------------------------------------------------------------------------- // // Script de commande du projecteur d'une caméra Presence Netatmo // // Inspiration : https://github.com/KiboOst/php-simpleNetatmoAPI // // Principe : // 1 - Les infos de connexion sont enregistrées dans un fichier texte sur ce serveur // . les 4 premières lignes sont dédiées à la connexion à l'API Netatmo // . puis une paire de lignes par caméra (ligne 1 = code 'Maison', ligne 2 = nom 'Présence') // 2 - Pour connaître les 'Home' et 'Name' des projecteurs : // . ne saisir que les 4 premières lignes dans le fichier texte // . lancer le script comme ceci : /ProjoAutoOnOff.php?projo=1&action=on // . lire ce qui s'affiche // . rechercher "Si le nombre de projecteurs est égal à zéro" dans le code // . débloquer/dupliquer les lignes en commentaires en remplacant 'xx' par le/les codes 'Maison' // 3 - En entrée : // . le numéro du projecteur à piloter (1 ou 2 ... ou plus) // . la commande à envoyer au projecteur ('auto', 'on' et 'off') // 4 - En sortie : // . commande OK // . commande non effectuée car le projo est déjà à l'état demandé // . autre (erreur) // //-------------------------------------------------------------------------------------------------- $Verbose = false; /* Validation du code action */ $Action = $_GET["action"]; if (strlen($Action) == 0) { exit('Missing action code'); } else { if ($Action != 'auto' and $Action != 'on' and $Action != 'off') { exit('Invalid action code'); } } if ($Verbose) {echo 'Code action ----> ', $Action, '<br>';} /* Récupération du numéro de projecteur */ $NumProjo = $_GET["projo"]; if (strlen($NumProjo) == 0) { exit('Missing floodlight number'); } if ($Verbose) {echo 'Numéro de projecteur ----> ', $NumProjo, '<br>';} /* Ouverture du fichier des infos de connexion au routeur et retourne un tableau contenant une ligne par élément */ $lines = file('ProjosCredentials.txt'); $NbLines = count($lines); if ($Verbose) { foreach ($lines as $lineNumber => $lineContent) { echo $lineNumber,' ',$lineContent, '<br>'; } echo 'Nombre de lignes : ', $NbLines, '<br>'; } /* Vérification du nombre de lignes */ if (($NbLines % 2) == 1) { exit('Invalid line number (odd)'); } /* Chargement des variables de connexion */ $Netatmo_User = ""; $Netatmo_Psw = ""; $Netatmo_ClientID = ""; $Netatmo_ClientSecret = ""; /* ----> Netatmo User */ $mystring = trim($lines[0]); $findme = 'User='; $pos = strpos($mystring, $findme); if ($pos === false) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'", '<br>'; exit('Error retrieving Netatmo User'); } else { if ($pos <> 0) { echo 'La chaîne ', $findme, ' n\'est pas au début de ', $mystring, '<br>'; exit('Error retrieving Netatmo User'); } else { if ($Verbose) {echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring' et débute à la position $pos", '<br>';} $Netatmo_User = substr($mystring, strlen($findme)); } } /* ----> Netatmo Password */ $mystring = trim($lines[1]); $findme = 'Password='; $pos = strpos($mystring, $findme); if ($pos === false) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'", '<br>'; exit('Error retrieving Netatmo Password'); } else { if ($pos <> 0) { echo 'La chaîne ', $findme, ' n\'est pas au début de ', $mystring, '<br>'; exit('Error retrieving Netatmo Password'); } else { if ($Verbose) {echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring' et débute à la position $pos", '<br>';} $Netatmo_Psw = substr($mystring, strlen($findme)); } } /* ----> Netatmo Client ID */ $mystring = trim($lines[2]); $findme = 'ClientId='; $pos = strpos($mystring, $findme); if ($pos === false) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'", '<br>'; exit('Error retrieving Netatmo Client ID'); } else { if ($pos <> 0) { echo 'La chaîne ', $findme, ' n\'est pas au début de ', $mystring, '<br>'; exit('Error retrieving Netatmo Client ID'); } else { if ($Verbose) {echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring' et débute à la position $pos", '<br>';} $Netatmo_ClientID = substr($mystring, strlen($findme)); } } /* ----> Netatmo Client Secret */ $mystring = trim($lines[3]); $findme = 'ClientSecret='; $pos = strpos($mystring, $findme); if ($pos === false) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'", '<br>'; exit('Error retrieving Netatmo Client Secret'); } else { if ($pos <> 0) { echo 'La chaîne ', $findme, ' n\'est pas au début de ', $mystring, '<br>'; exit('Error retrieving Netatmo Client Secret'); } else { if ($Verbose) {echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring' et débute à la position $pos", '<br>';} $Netatmo_ClientSecret = substr($mystring, strlen($findme)); } } /* Chargement des numéros de projecteurs */ $i = 4; $NbProjo = 0; $TabProjo = array(); while ($i < $NbLines) { $NbProjo = $NbProjo + 1; $mystring = trim($lines[$i]); $findme = 'Projo' . $NbProjo . 'Home='; $pos = strpos($mystring, $findme); if ($pos === false) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'", '<br>'; exit('Error retrieving Floodlight' . $NbProjo . ' Home'); } else { if ($pos <> 0) { echo 'La chaîne ', $findme, ' n\'est pas au début de ', $mystring, '<br>'; exit('Error retrieving Floodlight' . $NbProjo . ' Home'); } else { if ($Verbose) {echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring' et débute à la position $pos", '<br>';} $TabProjo[$NbProjo][1] = substr($mystring, strlen($findme)); } } $i = $i + 1; $mystring = trim($lines[$i]); $findme = 'Projo' . $NbProjo . 'Name='; $pos = strpos($mystring, $findme); if ($pos === false) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'", '<br>'; exit('Error retrieving Floodlight' . $NbProjo . ' Name'); } else { if ($pos <> 0) { echo 'La chaîne ', $findme, ' n\'est pas au début de ', $mystring, '<br>'; exit('Error retrieving Floodlight' . $NbProjo . ' Name'); } else { if ($Verbose) {echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring' et débute à la position $pos", '<br>';} $TabProjo[$NbProjo][2] = substr($mystring, strlen($findme)); } } $i = $i + 1; } if ($Verbose) { echo 'Netatmo User = ', $Netatmo_User, '<br>'; echo 'Netatmo Password = ', $Netatmo_Psw, '<br>'; echo 'Client ID = ', $Netatmo_ClientID, '<br>'; echo 'Client Secret = ', $Netatmo_ClientSecret, '<br>'; echo 'Nombre de projecteurs = ', $NbProjo, '<br>'; echo 'Table des projecteurs :', '<br>'; for ($i=1; $i<=$NbProjo; $i++) { echo 'Presence', $i, ' Home = ', $TabProjo[$i][1], ' - Presence', $i, ' Name = ', $TabProjo[$i][2], '<br/>'; }; } // Si le nombre de projecteurs est égal à zéro on récupère les infos "Homes" if ($NbProjo == 0) { require($_SERVER['DOCUMENT_ROOT']."/php-simpleNetatmoAPI/class/splNetatmoAPI.php"); $_splNetatmo = new splNetatmoAPI($Netatmo_User, $Netatmo_Psw, $Netatmo_ClientID, $Netatmo_ClientSecret); if (isset($_splNetatmo->error)) die($_splNetatmo->error); // Liste des maisons avec le nombre de caméras rattachées $homes = $_splNetatmo->getHomes(); echo "<pre><br>homes:<br>".json_encode($homes, JSON_PRETTY_PRINT)."</pre><br>"; // -------------------------------------------------------------------------------------------------------------------------------- // Remplacer 'xx' dans l'instruction suivante par le code maison obtenu et décommenter les lignes pour obtenir les infos 'Présence' // // $_splNetatmo = new splNetatmoAPI($Netatmo_User, $Netatmo_Psw, $Netatmo_ClientID, $Netatmo_ClientSecret, xx); // $Cameras = $_splNetatmo->getPresenceCameras(); // echo "<pre>Cameras:<br>".json_encode($Cameras, JSON_PRETTY_PRINT)."</pre><br>"; // --------------------------------------------------------------------------------------------------------------------------------- exit ('Please enter the projectors codes (House and Name)'); } /* Validation du numéro de projecteur */ if ($NumProjo < 1 or $NumProjo > $NbProjo) { exit('Invalid floodlight number'); } // C'est parti /* Récupération du statut du projecteur */ require($_SERVER['DOCUMENT_ROOT']."/php-simpleNetatmoAPI/class/splNetatmoAPI.php"); $ProjoHome = $TabProjo[$NumProjo][1]; $ProjoName = $TabProjo[$NumProjo][2]; $_splNetatmo = new splNetatmoAPI($Netatmo_User, $Netatmo_Psw, $Netatmo_ClientID, $Netatmo_ClientSecret, $ProjoHome); $Cameras = $_splNetatmo->getPresenceCameras(); $StatusProjo = $Cameras[$ProjoName]['light_mode_status']; if ($Verbose) { echo "<pre>Cameras :<br>".json_encode($Cameras, JSON_PRETTY_PRINT)."</pre><br>"; echo "Status du projo '", $ProjoName, "' de la maison '", $ProjoHome, "' = ", $StatusProjo, '<br>'; } /* Si le projo est déjà à l'état demandé on ne fait rien */ if ($Action == $StatusProjo) { if ($Verbose) {echo 'Changement du status du projecteur inutile - On arrête', '<br>';} exit('Floodlight already set'); } /* On passe le projo à l'état demandé */ $_splNetatmo->setLightMode($ProjoName, $Action); if ($Verbose) {echo "Projecteur passé à '", $Action, "'", '<br>';} exit('Floodlight set'); ?> Projecteurs_Caméras.vfib.json
  2. Bonjour [mention]Nissan_GT-R [/mention], Perso j’ai laissé tomber mon Synology pour l’hébergement de mes scripts dédiés « HC2 ». J’ai tout mis sur un Raspberry en partant du principe qu’en cas de déménagement, je laisse la HC2 et le PI mais que j’embarque le Synology. À toi donc de réfléchir sur l’hébergement de tes scripts PHP afin de trouver les bons interlocuteurs [emoji6] Cordialement
  3. Merci, content que cela ait servi Pour info j'ai un peu "poussé" la solution et je peux : dire « Alexa, allume dehors » ... et dans ce cas j'allume mes deux Présence et mes deux lampes extérieures (FGS-212) --> merci HA-BRIDGE et je suis prêt à intégrer cette fonctionnalité dans mon système d'alarme ... que je finirai un jour Merci Lorenzo, merci pour les deux nouvelles fonctionnalité
  4. jpr105

    APIs BULKSMS et PRESENCE NETATMO

    Bonjour my Geek Team, Aujourd'hui je me lance dans la partie Alarme de ma Home Center 2 : OK je suis complètement d'accord qu'une alarme dédiée est la meilleure solution et c'est ce que j'avais dans une précédente vie (Alarme Sériée) ... sans domotique je considère donc ma démarche comme une version 1, peut-être une alarme dédiée en version 2 dans le futur ... et puis les vacances approchant je n'ai pas beaucoup de temps ... alors faisons avec la HC2 Mes détecteurs : 2 capteurs d'ouvertures Z-wave (FIBARO FGK_101) pour les 2 portes d'entrée 1 sirène Z-Wave SSA2 (FORTREZZ SSA-02) sur secteur 1 multisensor Z-wave (AEON Labs DSB05) 4 détecteurs IR en commande (véranda, salon, salle à manger, réserve) 1 bouton dédié (Fibaro FGPB-101 "The Button") lui aussi en commande Ce que j'ai compris : il me faut faire une action d'armer et de désarmer l'alarme et de dire, lors de ces actions, avec quels détecteurs je vais bosser je trouve ça plutôt bien car on peut imaginer une alarme générale avec tous les détecteurs opérationnels et, pourquoi pas, une alarme avec les détecteurs périphériques lorsqu'on dort à la maison ensuite, l'alarme étant enclenchée, libre à moi d'entreprendre toute(s) action(s) nécessaire(s) Donc dans le cadre des actions à entreprendre lorsque l'alarme est déclenchée, je voudrais entre autres : envoyer des SMS aux personnes "de confiance" allumer les projecteurs de mes 2 caméras Présence de chez Netatmo Ce que j'ai trouvé : Pour les SMS à envoyer aux personnes de confiance ... et qui ne sont pas tous chez Free ... c'est pas top au niveau de la HC2 mais j'ai trouvé ce site qui offre des crédits de SMS (bulksms) et qui, de plus possède une partie API là. Quelqu'un a-t-il des retours là-dessus ? Pour allumer mes deux projecteurs extérieurs des Présence Netatmo, ce n'est pas dans les API standard de Netatmo mais j'ai trouvé une solution en reverse-engineered ici. Encore une fois, quelqu'un a-t-il des retours là-dessus ? Voilà vous savez tout et merci d'avance pour vos lumières. Bon dimanche - Jean-Paul
  5. jpr105

    Ma HC2 ne démarre plus

    Bonjour, Hier soir ma HC2 ne répondait plus. Je suis donc monté à son chevet pour voir le souci : les 3 LED de droite fixe + la 4ème elle-aussi en fixe (ZWave) la box et l'alimentation tout juste tièdes J'ai débranché/rebranché : les 8 LED passent de l'état clignotant à l'état fixe l'une après l'autre une fois la 8ème à l'état fixe, elles s'éteignent doucement et puis plus rien au bout d'un long moment (je n'ai pas chronométré) le cycle recommence Ce matin : ouverture de la bête branchement d'une TV en VGA ---> rien ne s'affiche même TV en HDMI ---> rien ne s'affiche (la TV est OK car j'ai une Chromcast sur le HDMI et ça fonctionne) le cycle des LED est le même qu'hier soir puisque la box est ouvert, je constate une diode allumée sur la carte C'est vrai que l'on parle partout de décroissance mais on s'y fait très bien au confort de la domotique Any help les amis ? Dernière précision : je suis passé en 4.580 il y a 3 jours et j'ai fait 2 sauvegardes (local + cloud) Merci d'avance - Jean-Paul
  6. jpr105

    Ma HC2 ne démarre plus

    Merci pour l'info, J'ai créé un nouveau FIBARO ID et j'ai pu y rattacher ma HC2. Par contre j'ai un souci avec le SuperUser. Ils me l'ont renvoyée avec un super user sous la forme "admin / adresse mail perso" et quand j'ai voulu le mettre à jour sous la forme "admin / adresse fonctionnelle" je me suis retrouvé en "adresse fonctionnelle / adresse fonctionnelle" J'aurais bien voulu conserver le pseudo "admin ... ou autre" Je crois avoir vu cela quelque part mais où ?? Merci pour le tuyau
  7. jpr105

    Ma HC2 ne démarre plus

    Bonjour, Et puis, puisque je repars quasi à neuf, j'en profite pour revoir ma "stratégie" d'accès à ma HC2. Avant elle était liée à mes adresses mail "perso". Je voudrais "casser" ce lien et la raccorder à une adresse fonctionnelle rattachée à la maison (l'adresse mail existe déjà) Ainsi, en cas de déménagement, je laisse la HC2 en place et n'ai rien à "casser" dans les liens adresses mail/accès à la box Une âme charitable pour me guider dans cette grande migration ? J'ai bien ma petite idée mais ne voudrait pas faire de dégâts Merci d'avance
  8. jpr105

    Ma HC2 ne démarre plus

    Oui @mprinfo elle était aussi HS. Du coup j'ai appelé le vendeur qui me proposa de me rembourser mais il avait vraiment l'air sincère quand il m'a affirmé qu'elle fonctionnait avant de l'envoyer. J'ai donc pris la décision de faire moitié/moitié et il m'a remboursé en conséquence ;-) Voili voilou
  9. jpr105

    Ma HC2 ne démarre plus

    Merci [emoji120] M’sieur [emoji6]
  10. jpr105

    Ma HC2 ne démarre plus

    Bonsoir les amis, Donc, les dernières news : donc une semaine après la fin du déconfinement ma HC2 d'occas' est bien arrivée je lui colle un écran et un keyboard pour vérifier le BIOS et argrhhh elle n'a jamais démarré (lampe Tools clignotante) du coup, aux grands maux les grands remèdes, j'envoie les 2 HC2 au SAV Fibaro et là ... du bonheur je récupère mes deux HC2 pour finalement pas si cher que ça et elles sont arrivées ce matin Fin de la story Une dernière question pour finir @Krikroff : tes HC2 Tools fonctionnent sur Windows 10 ? Oui je sais j'suis fainéant ce soir, je n'ai pas eu le courage de lire tout le post consacré à ton super outil Bien cordialement - Jean-Paul
  11. jpr105

    Ma HC2 ne démarre plus

    Bah ça s’approche tout doucement de la maison [emoji23]
  12. jpr105

    Ma HC2 ne démarre plus

    Je dois dire que je n'ai pas fait ces 2 mesures. A vide, oui, je trouve comme toi, même un peu plus, 3,4V de mémoire
  13. jpr105

    Ma HC2 ne démarre plus

    Bonjour @minaetdave, Il semble qu'il y a un "mauvais oeil" sur Metz. La mienne n'est toujours pas là : bloquée chez Mondial Relay à 2 jours près à cause du confinement Autrement ma box d'origine m'a lâché au bout de 7 ans et celle que j'ai trouvé sur le bon coin était à 245€. Comme le vendeur m'a communiqué le numéro de série avant l'envoi, le support Fibaro m'a préparé les manips de restauration de mon ancienne sauvegarde (très récente heureusement) sur la nouvelle box qui devrait arriver ... un jour Bon dimanche à toi
  14. jpr105

    Ma HC2 ne démarre plus

    Bah heureusement que j’ai associé un de mes VR avec les 11 autres, c’est toujours ça de pris [emoji849]
  15. jpr105

    Ma HC2 ne démarre plus

    C’est le vendeur qui m’a proposé Mondial Relay car il l’avait déjà utilisé sans problème pour le restant de sa domotique et en même temps on ne pouvait pas deviner que cela allait tourner comme ça [emoji15] Bon y a pire quand même, on perd en confort mais on vivait sans avant [emoji6]
  16. jpr105

    Ma HC2 ne démarre plus

    Bonjour les amis, Un peu de nouvelles de mes ... malheurs ... soyons relatifs quand même, il n'y a pas mort d'homme ! finalement je reste sur une HC2 pour une restauration plus "secure" je cherche sur "Le Bon Coin" et trouve une HC2 relativement récente et à peine utilisée le vendeur s'est aperçu que c'était "chronophage" et il a du faire le choix entre Madame et la domotique ... devinez son choix expédition donc via Mondial Relay et je me dis ... contre mauvaise fortune bon gré dans cette période de confinement, je vais revoir ma domotique qui était gérée plutôt en dilettante pendant ces 7 ans de vie de ma brave HC2 la nouvelle a donc commencé son périple de Rouen à Metz ... et coronavirusement parlant elle est bloquée dans leur entrepôt de Rouen Snif
  17. jpr105

    Ma HC2 ne démarre plus

    Derniers échanges : Bon décision prise, je reste sur une HC2 (j'en ai une quasi neuve en vue )
  18. jpr105

    Ma HC2 ne démarre plus

    Le dernier paragraphe me fait pencher vers un transfert vers uns HC2 d'occasion
  19. jpr105

    Ma HC2 ne démarre plus

    Intéressant, je vais les titiller sur la récupération de toute la partie Z-Wave ...
  20. jpr105

    Ma HC2 ne démarre plus

    Bonjour, Oui @jojo c'est une piste mais bon, je n'ai pas envie de déranger @mprinfo pour quelque chose qui risque de foutre la grouille chez lui Dommage @Krikroff car ma dernière sauvegarde "full" avec les HC2 Tools date du 25/04/2018 ... autant dire un siècle Pour l'instant j'hésite entre une HC2 d'occasion (j'ai trouvé) et tant qu'à faire la nouvelle HC3 ... mais sans mes sources ... J'ai fait un topo avec le support Fibaro, j'attends leur réponse
  21. jpr105

    Ma HC2 ne démarre plus

    Bon et bien les zamis la nouvelle pile n’a rien changé ... Dur dur je crois que je vais partir sur une HC3 et repartir à zéro, c’est pas gagné [emoji23] [emoji15] Dis moi [mention]Krikroff [/mention]ça fait un bout de temps que je n’ai pas fait d’export avec tes HC2 Tools. C’est possible de les faire tourner à partir d’une sauvegarde locale ? Merci pour tout [emoji120]
  22. jpr105

    Ma HC2 ne démarre plus

    Bonsoir, En HDMI je n’ai pas d’image non plus [emoji15] Normalement cette TV fonctionne en VGA (il m’arrive de la mettre en second écran d’un Laptop) On verra quand la nouvelle pile va arriver ... on touche du bois [emoji849] Envoyé de mon iPhone en utilisant Tapatalk
  23. jpr105

    Ma HC2 ne démarre plus

    Petite nouvelle, En attendant ma nouvelle pile j'ai bricolé ça et damned, ça ne démarre pas Je vais aller voir un voisin pour brancher un écran VGA véritable ... on. verra bien Bon, pas trop optimiste au total
  24. jpr105

    Ma HC2 ne démarre plus

    Oui tu as raison, sors
  25. jpr105

    Ma HC2 ne démarre plus

    Merci tout le monde [emoji6] Là on vient de rentrer, demain sera un autre jour. J’ai juste identifié la motherboard (merci [mention]mprinfo [/mention]pour le démontage). C’est une KCC-REM-CPU-DN2800MT ... à environ 90$ sur Amazon ... à suivre Envoyé de mon iPhone en utilisant Tapatalk
×