Progetto home Automation: Leggiamo i consumi della nostra casa col Raspberry Pi e un contatore SDM120


Purtroppo l’università ed altri progetti hanno assorbito tutto il mio tempo libero costringendomi a dar priorità ad altre cose, ma negli ultimi giorni ho avuto un po’ di tempo e ho deciso di installare un lettore di consumi da collegare al Raspberry con 123solar.

Il contatore è un EASTRON Sdm120, acquistato da Ebay, preferibile rispetto a un misuratore a impulsi poichè dotato di uscita RS485, per cui consiglio anche l’acquisto di un adattatore da RS485 a USB;

Per il collegamento hardware farlo vi rimando a quest’ottima guida, nella quale è trattata in modo molto completo l’installazione del contatore e che qui non tratterò.

Voglio invece riassumere i passaggi per rendere il contatore funzionante e disponibile sul web. Ho deciso di utilizzare Metern solo perchè non ho pratica ancora con Domoticz, ma l’idea sarà un domani di fare tutto con lui.

Installiamo e configuriamo Metern

Scarichiamo e scompattiamo tutto il necessario

# cd /srv/http/
# wget http://123solar.org/downloads/metern/import123solar.tar.gz
# wget http://123solar.org/downloads/metern/metern.service
# wget http://123solar.org/downloads/metern/metern0.8.3.2.tar.gz
# wget http://123solar.org/downloads/metern/comapps/comapps_examples20170121.tar.gz
# tar xvzf metern0.8.3.2.tar.gz
# tar xvzf comapps_examples20170121.tar.gz
# mkdir /comapps
# mv comapps_examples/* comapps
# mv metern.service /etc/systemd/system


# cd /srv/http/metern/comapps
# wget http://www.flanesi.it/blog/download/eflowlive_rev_3.1.zip
# unzip eflowlive_rev_3.1.zip
# chmod a+x *
# ln -s /srv/http/comapps/eflow.php /usr/bin/eflow
# ln -s /srv/http/comapps/eflowlive.php /usr/bin/eflowlive
# ln -s /srv/http/comapps/pool123s.php /usr/bin/pool123s
# ln -s /srv/http/comapps/poolerconsumi.php /usr/bin/poolerconsumi
# ln -s /srv/http/comapps/pooler485.sh /usr/local/bin/pooler485
# ln -s /srv/http/comapps/reqsdm.php /usr/bin/reqsdm

Ora possiamo avviare metern con

# systemctl enable metern
# systemctl start metern

Configuriamo il contatore


$ cd ~
$ yaourt -Syua autoconf automake
$ yaourt -S libmodbus-dev
$ git clone https://github.com/gianfrdp/SDM120C
$ cd SDM120C/
$ make clean && make
# cp sdm120c /usr/local/bin/

Dopo aver riavviato il raspberry, dobbiamo configurare il contatore per lavorare con metern.
Per questo vi rimando alla guida precedente, la quale è fatta molto bene, con tanto di immagini e non vedo il motivo di ripetere tutto qui. Quindi i capitoli 6-7 sono quelli che vi servono per finire di configurare adeguatamente il sistema, il capitolo 8 ha delle modifiche da fare (vedi dopo).

Adattamenti rispetto alla guida

Per ora sono riuscito a farlo funzionare solo con due indicatori (produzione e consumo).

  • Quando cerco di cambiare l’indirizzo e la velocità del contatore mi dava l’errore
    sdm120c(567) error: (110) Connection timed out, -1, 0
    però nonostante questo il valori del contatore venivano comunque modificati.
  • Ho dovuto abilitare l’autenticazione HTTP su nginx, quindi nel file “/etc/nginx.conf” sotto
    location /123solar/admin {
    index index.php;
    auth_basic "Restricted";
    auth_basic_user_file /srv/http/123solar/config/.htpasswd;
    }

    aggiungiamo
    location /metern/admin {
    index index.php;
    auth_basic "Restricted";
    auth_basic_user_file /srv/http/metern/config/.htpasswd;
    }

    e per non avere due .htpasswd ho modificato anche su 123solar auth_basic_user_file mettendo lo stesso percorso di MeterN;
    ora riavviamo il server

    # systemctl restart nginx
  • Ho dovuto cambiare l’usb dell’inverter da ttyUSB0 a ttyUSB1 sull’admin page di 123Solar.
  • Nel file /etc/php/php.ini ho decommentato extension=shmop.so
    extension=sysvsem.so
    extension=sysvshm.so
  • Modificare il file /srv/http/metern/config/config_daemon.php col seguente contenuto
    /dev/null 2>/dev/null &');
    } else { //Stop
    $output = shell_exec('pkill -f pooler485 > /dev/null 2>&1 &');
    }
    ?>
  • Gli indicatori di tensione, corrente, ecc.. (capitolo 8 nella guida) come comando devono avere “reqsdm tensione”, “reqsdm corrente”, ecc..
  • Ho dovuto rimpiazzare i file nella cartella /srv/http/comapps/ con quelli presenti in questo archivio (in realtà l’archivio contiene i miei file, ma voi dovrete rimpiazzare quelli scaricati in precedenza con questi).

Per ora devo dire che funziona tutto, spero sia lo stesso per voi!

Appena avrò tempo la mia idea è di portare tutto su domoticz (o un software simile) e fare tutto da lui… ma vedremo cosa riuscirò a fare! Aiuti, commenti o domande sono sempre benvenuti 😉

Annunci
Questa voce è stata pubblicata in Arch Linux, Home automation, raspberry pi e contrassegnata con , , , , , , , , , , , , , , , , , , , . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...