[Tuto] Voir la température de votre habitation dans XBMC
Publié : 26 janv. 2016, 13:27
Hello tout le monde,
Je ne sais pas si cela peut vous etre utile, mais perso j'ai besoin d'un moyen simple et efficace pour voir la temperature dans les pieces (surtout celle du petit).
Comme je n'ai pas envie de consulter ma tablette et que la TV est (trop) souvent allumé, je me suis dis que j'allais utilisé les Flux RSS qui sont affichés en continu sur mon XBMC pour faire défiler les températures de la maison.
Le fonctionnement repose sur :
- un script powershell qui recupere les données via API et les envoye dans un fichier xml
- un fichier xml servant de trame
- un serveur ou publier le fichier
Tout d'abord le fichier de trame xml : rssori.xml
Dans KODI :
on charge le fichier xml via le fichier présent dans userdata ou via l'interface graphique
--> http://kodi.wiki/view/RssFeeds.xml
Pour s'assurer que les données soient raffrachies :
- on change, dans KODI, la valeur du refresh à 5 minutes
- on fait une tache programmée avec le planificateur pour executer le script powershell toutes les 5 minutes
On peut aussi faire la meme chose (et meme plus simplement) avec un Linux, mais la, j'aurais du reflechir un peu plus
Je ne sais pas si cela peut vous etre utile, mais perso j'ai besoin d'un moyen simple et efficace pour voir la temperature dans les pieces (surtout celle du petit).
Comme je n'ai pas envie de consulter ma tablette et que la TV est (trop) souvent allumé, je me suis dis que j'allais utilisé les Flux RSS qui sont affichés en continu sur mon XBMC pour faire défiler les températures de la maison.
Le fonctionnement repose sur :
- un script powershell qui recupere les données via API et les envoye dans un fichier xml
- un fichier xml servant de trame
- un serveur ou publier le fichier
Tout d'abord le fichier de trame xml : rssori.xml
Code : Tout sélectionner
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Temperature</title>
<link>http://192.168.1.60:8080/</link>
<description>Temperature via Domoticz</description>
<item>
<title>(toreplace)</title>
<description>Export des temperatures</description>
</item>
</channel>
</rss>Code : Tout sélectionner
#construction du header avec basic authent.
$user = 'username' #laisser les simples quotes
$pass = 'pass'
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
Authorization = $basicAuthValue
}
#recuperation de toutes les sondes de temperatures via API
$data= Invoke-WebRequest -Uri 'http://fqdn_domoticz:8080/json.htm?type=devices&filter=temp&used=true&order=Name' -Headers $Headers
#conversion en JSON
$x = $data.content | ConvertFrom-Json
$xml_item=""
$ligne=""
#on boucle sur chaque son pour recuperer les valeurs et les stocker dans une chaine (a faire : variabiliser le nombre de sonde)
for($i=1; $i -le 10; $i++)
{
$ligne=$ligne+$x.result.name[$i] + " : "+$x.result.data[$i] +" "
}
$ligne=$ligne.Replace(" C","°")
write-host $ligne
#on remplace dans le fichier original le resultat des temperatures qu'on met dans un fichier XML publié sur un serveur Web
(Get-Content c:\inetpub\wwwroot\rssori.xml).replace("(toreplace)", $ligne) | Set-Content c:\inetpub\wwwroot\rss.xml
on charge le fichier xml via le fichier présent dans userdata ou via l'interface graphique
--> http://kodi.wiki/view/RssFeeds.xml
Pour s'assurer que les données soient raffrachies :
- on change, dans KODI, la valeur du refresh à 5 minutes
- on fait une tache programmée avec le planificateur pour executer le script powershell toutes les 5 minutes
On peut aussi faire la meme chose (et meme plus simplement) avec un Linux, mais la, j'aurais du reflechir un peu plus