Accéder au thermostat zibase depuis un pc linux ou raspberryPi avec python
Bien que le futur de notre bonne vieille zibase soit peut être compromis très bientôt, je voulais vous faire partager une application que j’ai développée il y a déjà presque cinq ans (2014), et que je viens de remettre à jour et déposer sur github.
C’est une version wan qui peut-être accédée depuis l’internet ou le réseau local.
Sur le raspberrypi, l’application s’affiche sur un écran TFT tactile dans mon salon. La version RaspberryPi TFT avec accès aux boutons GPIO n’est pas encore publiée.
La version présentée aujourd’hui et disponible sur le dépot Github , est une version qui tourne sous linux sous environnement X. Tous les commentaires et ‘issues’ sont bienvenues sur github.
Il est peut être possible de l’adapter aux plateformes Windows.
Installation des bibliothèque :
$ git clone https://github.com/onlinux/zibase-thermostat.git
$ cd zibase-thermostat
Installer python-pip s’il n’est pas déjà installé:
$ sudo apt-get install python-pip
Installation de pywapi
Télécharger la dernière version de la bibliothèque pywapi depuis : <https://launchpad.net/python-weather-api/trunk/0.3.8/+download/pywapi-0.3.8.tar.gz>
Untar les sources et installer :
$ tar xvfz pywapi-0.3.8.tar.gz
$ cd pywapi-0.3.8
$ python setup.py build
$ sudo python setup.py install
$ cd ../zibase-thermostat/
# Installation de la bibliothèque pygame
$ sudo apt-get install python-pygame
Configuration
Set [global] thermostat variables as specified within zibase interface
Modifier le fichier config.ini
L’exemple du thermostat zibase ci-dessus devrait donner un fichier config.ini ainsi:
[secret] zibaseid = ZiBASE00xxxx tokenid = 00xxxxxx [global] tempvariable= 28 setpointdayvariable= 29 setpointnightvariable= 30 modevariable= 31 statevariable= 13 thermostatscenario= 32
# Lancer Thermostat Zibase
python z.py
Alt-PageDown key to roll over the 4 available displays
Click to change Meteo Station when displaying forecasts.
Meteo Stations are defined within z.py
tlocations = ( {'code': 'FRXX0099' , 'color': BLACK}, {'code': 'FRXX4269' , 'color': BLACK}, {'code': 'FRXX3651' , 'color': BLACK}, {'code': 'BRXX3505' , 'color': DARKGREEN} )