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

freeboard

Le principe de base est d’ajouter une datasource qui peut être soit du json, du mqtt, etc …

freeboard

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 :

freeboard

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.

freeboard

Et voilà le résultat :

gauge

Facile ! Il ne vous reste plus qu’à jouer pour réaliser vos dashboard facilement !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.