Recupérer des infos json à l’extérieur de chez vous
Si comme moi vous souhaitez accéder à certaines de vos données sans forcément ouvrir votre système domotique sur l’extérieur, vous pouvez utiliser le service tiers https://dweet.io. Rapide à utiliser, il se révèle très pratique.
Pourquoi du json à l’extérieur ?
Je cherchais depuis quelques temps une solution pour avoir un dashboard complet de la domotique à la maison que je pourrais afficher sur un écran 24 » fixé au mur. Si l’écran n’est pas encore là, la solution dashboard est trouvée : freeboard.
Voici un exemple de dahsboard que je suis en train de réaliser
Le principe de base est d’ajouter une datasource qui peut être soit du json, du mqtt, etc …
Vu que je ne voulais pas exposer mon serveur domotique sur l’exterieur, la solution a été d’utiliser la passerelle dweet.
Utilisation de Dweet
Dweet est une plateforme d’échange de données, où l’on peut à partir d’une simple URL envoyer une données (température, statut d’un équipement, etc …). Ensuite, c’est accessible en json via l’url.
L’utilisation est simplissime : en ouvrant l’url https://dweet.io/dweet/for/my-thing-name?hello=world, je créé un dweet qui s’appelle my-thing-name dont le contenu est : hello=world ! Facile maintenant !
Note : les dweet sont publics, n’y partagez pas de données sensibles !
Note 2 : préfixer vos dweet avec un id unique, c’est plus facile à gérer (exemple : Balou54_xxx)
Note 3 : les api dweet sont dispos ici : https://dweet.io/play/
Scripts
Voici donc quelques scripts qui me permettent d’alimenter mon dweet. Ils tournent en crontab depuis mon serveur de script, et sont écrits en php. Ils sont basés sur mes fonctions basiques que vous retrouverez ici.
//récupération des données domoticz pour le counter d'eau $eau = getDomoticzData($SERVER,$ID_WATERCOUNTER,'CounterToday'); $eau = explode(' ',$eau); $json = file_get_contents('https://dweet.io/dweet/for/ID_UNIQUE_eau?value='.$eau[0]); $obj = json_decode($json);
//récupération des données domoticz pour les mini/maxi de la sonde de t°c extérieure $jardin_min = getDomoticzData($SERVER,$ID_JARDIN_MIN,'Temp'); $jardin_max = getDomoticzData($SERVER,$ID_JARDIN_MAX,'Temp'); $jardin_minmax = $jardin_min.' - '.$jardin_max; $json = file_get_contents('https://dweet.io/dweet/for/ID_UNIQUE_jardin_minmax?value='.$jardin_minmax); $obj = json_decode($json);
//récupération des flux RSS france info (10 derniers titres) $rss = simplexml_load_file('https://www.francetvinfo.fr/titres.rss'); $i=1; foreach ($rss->channel->item as $item) { if($i<=10){ $final .= ' - '.$item->title.' '; } $json = file_get_contents('https://dweet.io/dweet/for/ID_UNIQUE_info?value='.urlencode($final)); $obj = json_decode($json); $i++; }
Tous ces scripts sont modifiables à l’infini.
Configuration de Freeboard
Choisir une datasource de type Dweet.io puis remplir comme suit :
Ajouter ensuite un panneau (pane) puis cliquer sur le + pour ajouter un objet au panneau. Pour l’exemple de l’eau, choisir un type gauge puis cliquer sur datasource pour browser la votre et l’ajouter. Le reste est simple à configurer.
Et voilà le résultat :
Facile ! Il ne vous reste plus qu’à jouer pour réaliser vos dashboard facilement !