Christophe Nowicki

May 24, 2009

Danbooru mass upload script

Danbooru, is a powerful image board system with tagging.
It is built on RubyOnRails.
The main propose of this application is hentai pictures management^W^W^Wnice pictures management ;-)

I use it for invoice management (I swear ;-) ).
I scan all my invoices with a scanner and upload them on my local Danbooru.
The tag system is very powerful and you can find pictures very quickly.
You can setup you own version of Danbooru, an howto is available on the Ubuntu wiki.

The big power of this software is his REST API, you can do everything remotely with it.
There is an Mozilla Firefox plugin for uploading pictures, but I need a mass upload script for my documents.

So I’ve wrote my own mass upload script in Python : http://svn.csquad.org/danbooru_upload/danbooru_upload.py.

Features

$ danbooru_upload.py
Usage:
danbooru_upload.py [flags] [options] directory
where valid flags are:
-v - verbose mode
-r - recursive mode
-s - use https
and valid options are:
-t keywords - image keywords (tagme)
-h host - hostname (danbooru.donmai.us)
-u user - username
-p pass - password
-k key_file - ssl key file
-c cert_file- ssl cert file

Exemple

$ python danbooru_upload.py -v -h danbooru.csquad.lan -u test -p xxxx "/sgoinfre/documents/A Trier"
Login on danbooru.csquad.lan with user test...
Uploading file /sgoinfre/documents/A Trier/img167.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img097.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img161.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img117.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img021.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img151.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img047.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img169.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img157.jpg with tag tagme.
Uploading file /sgoinfre/documents/A Trier/img119.jpg with tag tagme.
...

Bug reports

I’ve planned to add an Optical character recognition (OCR) feature to the script. In order to automaticaly tag my invoices.

Please feel free to ask any other feature. Patches and bug reports are welcome ;)

Filed under: Projects — Tags:, — cscm @ 19:06

May 8, 2009

Pachube : un patch pour la planète

En me baladant sur les différents sites liés au projet Arduino , j’ai découvert le service Pachube, il s’agit d’un réseau social géolocaliser de capteurs.

L’idée de ce réseau est d’envoyer et d’agréger des informations de vos différents capteurs ( station météo, compteurs de consommation , objest communicants ) :

La problématique

A mon avis ce service est une très bonne idée, il correspond au besoin d’agrégation de ces différentes données.
En effet, la plupart des météorologies amateurs bricolent leur station météo et dans le meilleur des cas ils publient leurs données sur une page dédiée.
Mais il est difficile, voir carrément impossible d’agréger les données d’une région pour les exploiter ;
Le réseau est encore en version bêta, pour participer il faut demander une invitation par mail à l’adresse suivante : beta [ at] pachube [ dot ] com.

Il y a actuellement seulement 5 utilisateurs du service sur toute la France ;-)

Il existe plusieurs méthodes pour envoyer et recevoir des données de la part du réseau :

Entrées

Il est possible de fournir les données au service à l’aide :

Sorties

Il est possible d’exploiter librement les données du réseau via :

Ma petite contribution

Pour ma part, j’ai rejoint le réseau et je suis en train d’écrire un module pour connecter mon réseau domotique xPL sur Pachube.

Let’s patch the planet ;-)

Filed under: Home automation — Tags:, — cscm @ 11:45

May 7, 2009

Configuration du module Current Cost CC128 et intégration dans un réseau domotique xPL

Le Current Cost CC128 est un système de suivi de la consommation électrique.
Il est composé de deux modules : une pince ampère-métrique sans fils et un module de réception de données.
L’objectif du produit est de suivre la consommation de votre installation électrique.

En effet, la première étape pour faire des économies d’énergie est de connaitre sa consommation.
C’est pour cela, que j’ai cherché une solution simple pour monitorer mon installation de manière informatisée.

Les compteurs d’électricité EDF récents disposent d’une sortie téléinfo : cette sortie permet de récupèrer la consommation sur un PC via le port série ou USB à l’aide d’un montage électronique comme celui-ci.

Malheureusement, mon compteur est trop vieux et ne dispose pas d’une sortie téléinfo.
J’ai donc cherché une solution alternative que j’ai trouvée grâce au forum Toute la domotique.

Il est possible de se procurer le module et le câble de données USB via la boutique eBay du constructeur : Current Cost Ltd.

L’objectif de ce billet est de configurer le module CC128 sur une distribution Debian GNU/Linux, version “Lenny” dans un réseau domotique xPL à l’aide du projet xpl-perl.

Installation matériel

L’installation matériel est assez simple, il suffit de brancher le module via le câble USB pour le voir à l’aide de la commande lsusb :

$ lsusb
Bus 001 Device 008: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Le module est visible sous forme de port série via /dev/ttyUSB :

$ dmesg
pl2303 1-2.1.1.1.2:1.0: pl2303 converter detected
usb 1-2.1.1.1.2: pl2303 converter now attached to ttyUSB0
usbcore: registered new driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver

Installation de xPL-Perl

Pour faire fonctionner le module CC128, j’utilise la version SVN du projet, XPL-Perl.
Voici la procédure d’installation, il faut commencer par installer les paquets suivants via apt :

# apt-get install subversion libmodule-pluggable-perl libyaml-perl make fakeroot dh-make-perl dpkg-dev debhelper libtimedate-perl gcc libyaml-syck-perl

Télécharger le code source de la version svn :

# cd /usr/src
# svn co http://www.xpl-perl.org.uk/svn/xpl-perl/trunk xpl-perl
# cd xpl-perl
# dpkg-buildpackage -b
...
# cd ..
# dpkg -i libxpl-perl*.deb

Les différents modules xpl sont lancés sous forme de daemon, pour simplifier leur gestion le plus simple est d’installer daemontools sur la machine :

# apt-get install daemontools daemontools-run

Vous pouvez configurer le hub xpl et le module xpl-rrd grâce au script : xpl-perl-setup

# xpl-perl-setup
Using /usr/bin as directory for xpl-perl scripts

Setting up xpl-hub service

Setting up xpl-rrd service

Setting up xpl-rrd crontab
/etc/cron.d/xpl-rrd created

heyu not install not setting up xpl-x10

DateTime::Event::Sunrise not available, not configuring xpl-dawndusk

1-wire filesystem, /ow, not available, not configuring xpl-owfs
set XPL_OWFS environment variable to mount point if it is not /ow

XPL_RFXCOM_RX_TTY not defined, not configuring xpl-rfxcom-rx

XPL_RFXCOM_TX_TTY not defined, not configuring xpl-rfxcom-tx

XPL_VIOM_TTY not defined, not configuring xpl-viom

XPL_W800_TTY not defined, not configuring xpl-w800

hddtemp daemon not running, not configuring xpl-hddtemp

Vous pouvez vérifier le bon fonctionnement du module en ligne de commande :

# xpl-currentcost -v /dev/ttyUSB0
Listening on 192.168.42.4:2135
Sending on 192.168.42.255
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0.1[current]=1095
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[current]=1095
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[temp]=23.1

La cela fonctionne, le module diffuse la valeur de la consommation sur le réseau xPL.
Nous allons ensuite configurer deamontools pour lancer le script au boot sous forme de service.

# cd /etc/xplperl/service/
# cp -r xpl-hub/ xpl-currentcost
# chown -R xplperllog: /etc/xplperl/service/xpl-currentcost/log/main/
# adduser xplperl dialout
Adding user `xplperl' to group `dialout' ...
Adding user xplperl to group dialout
Done.
# sed -i 's#xpl-hub -v#xpl-currentcost -v /dev/ttyUSB0#' /etc/xplperl/service/xpl-currentcost/run
# sed -i 's#xplperl#root#' /etc/xplperl/service/xpl-currentcost/run
# sed -i 's#-d300000#-d9000000#' /etc/xplperl/service/xpl-currentcost/run
# update-service --add /etc/xplperl/service/xpl-currentcost/
Service xpl-currentcost added.

Et voila, normalement vous devriez voir des messages ur le réseau xPL à l’aide de xp-logger :

xpl-logger
192.168.42.2:52393 [xpl-stat/hbeat.app: bnz-listener.tux -> *]
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0.1[current]=1085]
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[current]=1085]
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[temp]=23.3]

Conclusion

Voila, grâce au module xpl-currentcost, les informations sur la consommation éléctrique sont diffusées sur le réseau xPL. Ma prochaine étape sera d’achiver les données dans une base de données et de dessiner des graphiques.

Filed under: Debian,Home automation — Tags:, — cscm @ 21:51

Powered by WordPress