Progetto home Automation: configuriamo un relè Sonoff Basic con Openhab

Tempo fa ho comprato un paio di Sonoff Basic per integrarli nel nostro impianto domotico e dopo tanto tempo (ahimè) sono riuscito ad avere un momento per giocarci, quindi… vediamo come procedere!

Installiamo Tasmota Firmware sul nostro Sonoff

I device Sonoff sono fatti per essere controllati dalla propria app tramite un servizio cloud. A me personalmente piace avere il controllo dei miei dispositivi di home automation in locale, quindi per avere pieno accesso alle funzionalità di questi apparecchi bisogna installare un firmware specifico: Tasmota.

Per installare questo firmware bisogna seguire questa guida.

Per quanto riguarda il collegamento hardware per interfacciarci col computer vi rimando a questo tutorial su youtube, che potrete anche seguire per tutta la procedura di flash del firmware.

Io tuttavia per flashare Tasmota ho utilizzato Visual Studio Code, dal quale ho anche modificato i files platforms.iniuser_config.h.

In particolare su user_config.h si modificano le impostazioni per connettersi al WiFi e per la comunicazione MQTT, mentre in platforms.ini le impostazioni per il flash, in particolare upload_port va settata su COM 1,2,ecc se utilizzate Windows, mentre su /dev/ttyUSB0,1,2,ecc se utilizzate Linux.

Per quanto riguarda la configurazione MQTT

Configuriamo Openhab per comunicare col Sonoff

Una volta configurato correttamente il vostro Sonoff è molto semplice integrarlo con Openhab, soprattutto se avete già un broker MQTT configurato.

Quindi creiamo un file sonoff.items in cui inseriamo:
Group Sonoff


Switch Sonoff "SonoffName" (Sonoff)
{ mqtt=">[broker:percorso/prefix/topic/POWER:command:*:default],
<[broker:percorso/prefix/topic/POWER:state:default]" }

NOTA: prefix e topic e il loro ordine dipende dalla vostra configurazione.
Ora non resta che aggiungerlo sulla nostra sitemap
Frame label="Sonoff Controllers" {
Switch item=SonoffName
}

Con questi semplici passi dovreste avere il vostro Sonoff funzionante e comandabile da Openhab. Fate comunque riferimento al wiki di Tasmota per dei piccoli trucchi e miglioramenti nella configurazione in Openhab.

Come sempre se avete consigli o problemi non esitate a commentare!

Annunci
Pubblicato in Arch Linux, Home automation, raspberry pi | Contrassegnato , , , , , , , , , , , , , , , , , | Lascia un commento

Arch Linux su Dell Inspiron 7559: come risolvere Bumblebee che causa il crash di X

Dopo un aggiornamento (dovuto al kernel) Bumblebee ha iniziato a darmi problemi bloccandomi il server X all’avvio.
La soluzione l’ho trovata sul github del progetto, ed è davvero semplice:
editiamo il file /etc/default/grub ed aggiungiamo:
GRUB_CMDLINE_LINUX_DEFAULT='quiet acpi_osi="!Windows 2015"'
successivamente riconfiguriamo grub con
sudo grub-mkconfig -o /boot/grub/grub.cfg

Ora riavviate e godetevi il vostro computer di nuovo pienamente funzionante!

Nota: a quanto pare questa soluzione è valida anche per altri OS linux (ho dovuto installare Ubuntu 16.04 per l’università e ha risolto i problemi del server grafico anche lì)

Pubblicato in Arch Linux | Contrassegnato , , , , , , , , , , , , , , , | Lascia un commento

Progetto home Automation: miglioriamo la persistence e i grafici su openhab con influxDB e Grafana

Dopo aver collegato il Raspberry ad Openhab con mqtt vediamo di migliorare il nostro monitor dei consumi; uno dei problemi di Rdd come persistence per i consumi e la produzione dei pannelli è che è un database a dimensione fissa.. e quindi?
Quindi per mantenere la dimensione fissa tende a comprimere i dati raggruppando quelli più vecchi (nella nostra configurazione facendo la media tra tot) e questo non è un bel comportamento per noi che magari un domani vorremmo vedere cosa hanno prodotto i nostri pannelli un anno fa.
Inoltre permette di fare i grafici solo salvando i dati almeno ogni minuto e a me interesserebbe di più avere l’istantaneo ogni 5/7 secondi e salvare sul database per il grafico la media ogni 5 minuti… Vediamo come fare!

Installazione pacchetti

Dobbiamo installare la persistence di InfluxDB da PanelUI su openhab e da AUR influxdb; purtroppo Grafana non è disponibile per aarch64 e dovremmo procedere alla compilazione da sorgenti per il nostro ODROID-C2, procediamo:
# pacman -S nodejs git go
$ mkdir /home/user/.go
$ export GOPATH=/home/user/.go
$ go get github.com/grafana/grafana
$ cd $GOPATH/src/github.com/grafana/grafana
$ go run build.go setup
$ go run build.go build
# pacman -S phantomjs
# npm install -g yarn
$ yarn install --pure-lockfile
# npm install -g grunt-cli
# chmod 777 /home/user/.go
$ grunt
# nano /etc/systemd/system/grafana-server.service

e aggiungiamo
Continua a leggere

Pubblicato in Arch Linux, Home automation, raspberry pi | Contrassegnato , , , , , , , , , , , , , , , , , , , , , , , | Lascia un commento

Progetto home Automation: usiamo MQTT per ricevere dati su openhab e disegnarli su un grafico

Dopo tanto tempo son riuscito a prendermi un weekend libero da poter dedicare al questo progetto; l’obiettivo che mi ero prefissato era di creare una pagina con Openhab dove potevo vedere in tempo reale la produzione, i consumi e dei semplici storici (non sono granchè ma punto a migliorarli in seguito).
Avendo dovuto sostituire il Raspberry Pi 3 con un Pi Zero W, diciamo che ne hanno risentito un po’ le performance; a dire il vero pensavo sostenesse openhab, e infatti lo fa, solo che in modo parecchio lento e diventa quindi non troppo usabile.

In questo modo ho deciso di installare Openhab sull’Odroid C2 che ho come TV Box e NAS (tanto è un quad core, potenza ne ha) e far inviare i dati dal Pi Zero tramite MQTT; vediamo come fare!
Nota prima di iniziare: Io sul Pi zero avevo già installati i software necessari cioè aurora e sdm120c; se non li avete trovate come installarli sulle guide precedenti.
Continua a leggere

Pubblicato in Arch Linux, Home automation, raspberry pi | Contrassegnato , , , , , , , , , , , , , , , , , , , , , | Lascia un commento

Progetto home Automation: aggiungere la data su OpenHAB

L’idea di questa guida flash è di creare una sitemap dove viene visualizzata la data odierna, come nell’immagine qui sotto.

Andiamo dunque sulla nostra installazione di Openhab ed editiamo i seguenti file come segue:

    • items/stuff.items

DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:local:dateTime" }

    • things/ntp.things

ntp:ntp:local [ hostname="nl.pool.ntp.org", refreshInterval=60, refreshNtp=30 ]

    • sitemaps/default.sitemap

sitemap default label="House Energy Monitor"
{
Frame label="Date"{
Text item=Date
}
}

Ora dovreste avere la data come nell’immagine, semplice no?

Pubblicato in Arch Linux, Home automation, raspberry pi | Contrassegnato , , , , , , , , , , , , , , , , , , , | Lascia un commento

Installiamo Arch Linux su Raspberry Pi Zero W

Purtroppo il Raspberry Pi 3 che gestiva i pannelli solari e i consumi è morto (non vanno più nè wifi nè ethernet, quindi non riesco ad accederci), per questo ho deciso di acquistare un Raspberri Pi Zero W (il quale dovrebbe essere più che sufficiente per il lavoro che deve fare), con un Hub USB per collegarci tutte le periferiche.
Per chi non conoscesse Raspberry Pi vi rimando al sito ufficiale.

Backup/ripristino della nostra immagine (se avete installato altro)

Essendo un “esperimento” il mio, o comunque Raspbian era configurato a puntino e mi dispiaceva perderlo, ho provveduto a fare un backcup (riferimento ArchWiki)

# dd if=/dev/mmcblk0 conv=sync,noerror bs=64K | gzip -c > /cartella/dove/vogliamo/salvare/backup.img.gz
# fdisk -l /dev/mmcblk0 > /cartella/dove/vogliamo/salvare/backup_fdisk.info

Nota: voi mettete sempre il vostro nome del device

E per ripristinare:
# gunzip -c /cartella/dove/vogliamo/salvare/backup.img.gz | dd of=/dev/mmcblk0

Installazione Arch

Continua a leggere

Pubblicato in Arch Linux | Contrassegnato , , , , , , , | Lascia un commento

Progetto home Automation: Data persistence su OpenHAB con Raspberry Pi

Dopo aver installato OpenHAB, bisogna configurarlo per collegarsi a MySQL ed avere i dati memorizzati tutti in un database.
Forse questa per gli utilizzi iniziali non è una feature indispensabile ma per gli sviluppi futuri potrebbe riverlarsi necessaria… quindi cominciamo!

Installazione

# pacman -Syu mariadb
# mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# systemctl enable mariadb
# systemctl start mariadb
# mysql_secure_installation

Ora dobbiamo creare il nuovo database, per farlo entriamo nella console mysql:
# mysql --user=root --password=ciccio
e da qui creiamo il nostro database e il relativo utente:
> CREATE SCHEMA openhab;
> CREATE USER openhab@localhost IDENTIFIED BY 'password';
> GRANT ALL PRIVILEGES ON openhab.* TO openhab@localhost;

Adesso che abbiamo configurato mysql dobbiamo configurare openhab per usarlo: andiamo su http://openhab_ip:8080/paperui/index.html#/inbox/search,
ora andiamo su addons->Persistence(in alto) e installiamo Persistence MariaDB, come nella foto in basso.

Ora andiamo su Configuration->Services->JDBC Persistence->Configure->Expert Mode->Add parameter e aggiungiamo i parametri come nell’immagine

Nota: su name va l’account del database, mentre su url va ‘ip_mysql/nome_db’

Adesso bisogna dire ad OpenHAB quanto spesso salvare i dati:
dal raspberry:

nano /srv/http/openhab2/conf/persistence/jdbc.persist

e aggiungiamo (configurazione iniziale da aggiustare in base ai propri utilizzi

// persistence strategies have a name and a definition and are referred to in the "Items" section
Strategies {
// if no strategy is specified for an item entry below,
// the default list will be used
everyMinute : "0 * * * * ?"
every5Minutes : "0 */5 * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
default = everyChange
}
/*
* Each line in this section defines for which item(s) which strategy(ies) should be applied.
* You can list single items, use "*" for all items or "groupitem*" for all members of a group
* item (excl. the group item itself).
*/
Items {
// persist all items once a day and on every change and restore them from the db at startup
* : strategy = everyChange, everyDay, restoreOnStartup
// additionally, persist all temperature and weather values every hour
// gTemperatur* : strategy = every5Minutes, restoreOnStartup

Nota: la prima parte sono delle variabili che utiizziamo in seguito, mentre la seconda parte dice che valori e con che frequenza salvarli; poi ognuno potrà aggiustarli secondo le sue necessità 😉

Per questa parte è tutto, riavviate e il sistema sarà pronto a salvare i dati sul database!

Pubblicato in Arch Linux, Home automation, raspberry pi | Contrassegnato , , , , , , , , , , , , , , , , , | Lascia un commento