2021-02-28

Fotovoltaico domestico e altre belle idee

Un anno e mezzo fa ho deciso di installare un impianto fotovoltaico sul tetto di casa. Questi sono i passaggi principali e alcune informazioni che mi avrebbero risparmiato qualche grattacapo tra i TANTISSIMI che ho avuto.

La prima cosa è fare un po' d'ordine: un impianto fotovoltaico è composto da pannelli fotovoltaici, che generano elettricità dalla luce solare, collegati alla rete di casa. L'elettricità prodotta viene consumata al momento e quella in eccesso viene venduta a una società chiamata GSE, di proprietà statale. Se si ha bisogno di più energia di quella prodotta dai pannelli (ad esempio di notte) si attinge a quella della rete.

Ora, è bene sapere che ci sono tre entità fondamentali che fanno parte della rete elettrica: i produttori, cioè le grandi centrali elettriche, ma anche cittadini privati con i pannelli fotovoltaici, i distributori locali, che si occupano della rete di distribuzione nella propria zona, e i fornitori, quelli che si occupano di vendere l'elettricità. Questi ultimi sono quelli a cui si paga la bolletta, e competono tra loro offrendo i migliori prezzi o servizi. Quasi tutta la rete elettrica italiana è di proprietà dell'azienda Terna SpA, che a sua volta la dà in gestione ai distributori locali.

Una volta chiara questa struttura, è più semplice capire il processo di installazione dell'impianto. La prima cosa è trovare una ditta che venda e installi l'impianto. Può essere sia una grande azienda sia un elettricista locale. Un impianto fotovoltaico è detraibile al 50% in dieci anni, e al momento alcune aziende offrono la possibilità di cedere il credito fiscale.

La ditta farà un sopralluogo, poi procederà con l'installazione. A questo punto dovrà fare una richiesta al distributore locale perché allacci l'impianto alla rete. Il distributore manderà un suo tecnico che installerà una centralina di scambio sul posto.

A questo punto l'impianto è attivo, e viene registrato su una piattaforma di Terna SpA di nome Gaudì; si tratta in sostanza di un registro di tutti gli impianti produttivi. Non so chi abbia materialmente fatto questa registrazione, ho solo ricevuto le credenziali per accedere al portale Gaudì via email. Qualche giorno dopo aver ricevuto le credenziali ho potuto scaricare un file chiamato Attestato di esercizio, in formato PDF.

Come detto, l'energia in eccesso viene acquistata dal GSE, ma occorre registrarsi. Alcuni installatori fanno la registrazione per conto del cliente, altri - come è stato nel mio caso - no. La registrazione sul sito del GSE è piuttosto semplice, e una volta fatta si può richiedere l'attivazione di diversi servizi. Per un impianto fotovoltaico va richiesto un nuovo contratto di scambio sul posto. Si viene quindi mandati ad un altro portale e da lì si segue la procedura guidata per inserire i dati dell'impianto. Vengono chiesti - senza tante spiegazioni - due codici: il codice CENSIMP e il codice Richiesta, disponibili nell'Attestato di esercizio di cui ho scritto nel paragrafo precedente.

Il portale dello scambio sul posto (SSP) verifica i dati dell'impianto partendo proprio da quei due codici, ne chiede conferma, chiede molti altri dati - tra cui l'IBAN per gli accrediti e le scansioni dei documenti d'identità - e infine chiede di confermare la richiesta di un nuovo contratto. In un paio di settimane ho avuto esito positivo, e immagino che per un impianto "standard" l'attesa media sia quella. Si rimanda al sito SSP una copia firmata del contratto e si attende la conferma definitiva.

Questo è quanto. Ora, alcune postille.

1. Fino a qualche anno fa era possibile fare un contratto chiamato Conto Energia, per cui l'energia veniva venduta al GSE a delle tariffe molto vantaggiose (circa 0,45€/kWh); dal 2013 non è più sottoscrivibile, ed è stato "sostituito" dallo scambio sul posto. In alternativa esiste la cessione diretta, ma è meglio parlarne in un post separato.

2. Vivo in un condominio, quindi, anche se non sarebbe necessario a norma di legge, ho chiesto agli altri condomini un'autorizzazione scritta. L'installatore mi ha effettivamente chiesto - senza preavviso - l'autorizzazione dei condomini prima di procedere, quindi farla sùbito è stata una buona scelta.

3. Ho chiesto all'ufficio tecnico del comune se mi serviva qualche permesso per mettere l'impianto, ma non occorreva nulla. Se mi fossi trovato in una zona con un vincolo paesaggistico o storico avrei dovuto chiedere delle autorizzazioni prima di procedere. Le commissioni che valutano queste richieste si riuniscono raramente (magari una sola volta al mese), quindi è opportuno informarsi prima.

4. Mi sono rivolto a una grossa azienda per l'installazione, che però si è rivelata estremamente inaffidabile e poco precisa. Per fare la sua parte (sopralluogo, installazione e richiesta di allaccio) ha impiegato un anno e mezzo, mentre per tutto il resto ci è voluto sì e no un mese. Se tornassi indietro penso che mi rivolgerei a un elettricista locale. Prima di ordinare fatevi un bel giro su TrustPilot o siti simili.

2011-12-11

sfondo casuale all'avvio

Un semplice script per impostare uno sfondo casuale all'avvio del computer scelto nella cartella indicata dall'utente.

Ce ne sono due versioni: una imposta lo sfondo all'avvio, l'altra lo cambia casualmente ogni dieci minuti.

#!/bin/bash

workingPath=$1

# genera un file temporaneo con la lista filtrata
# dei file presenti nella cartella
(ls $workingPath | grep jpg && ls $workingPath | grep png) > /tmp/listaSfondi

fileNum=`cat /tmp/listaSfondi | wc -l`

# genera un numero casuale e da` il resto della divisione
# per il numero di file nella cartella
imageNum=$RANDOM
let "imageNum %= $fileNum"

# sceglie il file corrispondente al numero
let "imageNum += 1"
fileName=`cat /tmp/listaSfondi | head -n $imageNum | tail -n 1`

# imposta lo sfondo
bgPath=`echo $workingPath"/"$fileName | sed s/"\/\/"/"\/"/g`
hsetroot -fill $bgPath



Per cambiare lo sfondo ogni N secondi basta aggiungere all'inizio "while [ "1" = "1" ]; do" e alla fine "sleep N" e "done".

2011-11-13

script per cambiare il layout di tastiera

un piccolo script bash per modificare il layout della tastiera (toggle, si usa sempre lo stesso tasto per passare da un layout all'altro).

#!/bin/bash

# una funzione che estrae il layout corrente (in modo un po' brusco)
getCurrentLayout () {
setxkbmap -query | sed s/^[[:alpha:]]*:[[:space:]]*// | tail -n 1
}

# il layout corrente viene memorizzato in una variabile
# non è del tutto necessario ma rende lo script comprensibile
currentLayout=`getCurrentLayout`

if [ $currentLayout = "us" ]
then setxkbmap us dvorak-intl
elif [ $currentLayout = "dvorak-intl" ]
then setxkbmap it
else setxkbmap us
fi

questo script passa da layout americano a dvorak a italiano, si può facilmente modificare per i layout che si vogliono usare. Una annotazione: l'ultima voce non contiene un controllo condizionale (una cosa tipo "elif [ $currentLayout = "it" ] then setxkbmap us") per far sì che, in caso sia stato impostato un layout diverso da quelli previsti, si possa tornare facilmente a quello americano.

2011-04-10

Il post della domenica

Pubblico uno script misero realizzato ieri sera per vedere i video youtube con mplayer (su un netbook questo porta a prestazioni molto migliori):


#!/bin/bash

# crea una cartella nascosta col nome del filmato e ci si sposta
mkdir .youtube-$1
cd .youtube-$1

# avvia il download del video (l'attesa di 4 secondi è necessaria
# perché il download parta
youtube-dl http://www.youtube.com/watch?v=$1 &
sleep 4

# esegue il video e una volta terminato lo elimina
mplayer $1.flv.part
rm $1.*

Sfrutta il programma youtube-dl e prende come input il codice di riferimento del video (non l'intero indirizzo). Viene creata una nuova cartella per evitare di cancellare file importanti in caso di una chiamata tipo "video *" che porterebbe al disastroso "rm *.*"

Seguiranno miglioramenti.

2010-11-25

eeepc + linux ARCH + nokia 6630 + bluetooth + tre.it

Il post odierno è su un tema originalissimo: utilizzare un cellulare Nokia 6630 per connettersi ad internet via bluetooth, sul solito eeePC con installato Arch Linux. In realtà il modello del computer è irrilevante.

PREMESSA: per realizzare quanto segue ho seguito scrupolosamente i passi indicati in questa pagina del wiki di Arch, che suggerisco al posto di questo post:

https://wiki.archlinux.org/index.php/Bluetooth_GPRS_Howto

Se avete difficoltà con l'inglese riporto in estrema sintesi i passi descritti (e come li ho realizzati); le frasi che iniziano in grassetto riguardano parti non presenti sulla pagina, quelli in corsivo sono passaggi che non sono stati necessari nel mio caso:

PRIMA PARTE: IL BLUETOOTH

La prima cosa da fare è installare bluez-utils, bluez-libs e dbus con pacman

# pacman -S bluez-utils bluez-libs dbus

ed avviare, nell'ordine:

# /etc/rc.d/dbus start
# /etc/rc.d/bluetooth start

Si può poi modificare il file /etc/rc.conf aggiungendo (in questo ordine) dbus e bluetooth alla riga DAEMONS=(... dbus ... bluetooth ...).

Si esegue una scansione dei dispositivi (il cellulare va messo in modalità visibile) con:

# hcitool scan
Scanning ...
00:11:22:33:44:55 NomeTelefono

00:11:22:33:44:55 è il mac del cellulare.

Poi con:

sdptool search --bdaddr 00:11:22:33:44:55 DUN
[...]
Channel 1
[...]

si trova il canale su cui il cellulare effettua il servizio DUN (dial-up network). Ovviamente al posto di 00:11:22:33:44:55 va messo il mac del proprio cellulare trovato in precedenza (la stessa cosa andrà fatta per ogni volta che si trova scritto 00:11:22:33:44:55).

Ora bisogna impostare il file /etc/bluetooth/rfcomm.conf, aggiungendo:

bind yes;
device 00:11:22:33:44:55;
channel 1;
comment "GPRS dialup";

Alla voce channel va messo il numero trovato prima, comment può essere quello che si vuole.

Quando ho fatto uno dei primi tentativi il canale era cambiato, ed al momento non ne capisco il motivo: in caso di malfunzionamenti potrebbe essere opportuno controllare che il proprio "channel" non sia diverso da quello trovato in precedenza.

Si modifica ora /etc/conf.d:

RFCOMM_ENABLE=true

e si riavvia il bluetooth:

# /etc/rc.d/bluetooth restart

Se il comando

# ls -l /dev/rfcomm0
crw-rw---- 1 root tty 216, 0 data e ora /dev/rfcomm0

dà una risposta simile a quella riportata, significa che il collegamento tra cellulare e il computer funziona (in particolare che il computer vede il servizio modem del cellulare, se non ho capito male).

Per connettere computer e modem è necessario un PIN condiviso, quindi si dà:

# bluez-simple-agent

quindi su un altro terminale si usa il comando:

# cat /dev/rfcomm0

A breve il telefono dovrebbe - ricordo che questa parte non è stata necessaria per me - chiedere un PIN; una volta inserito bluez-simple-agent richiederà lo stesso PIN per connettere i dispositivi.

SECONDA PARTE: IMPOSTARE LA CONNESSIONE

Di seguito è descritta la creazione di un file, /etc/ppp/peers/tre, che contiene i parametri per la connessione tramite un modem; in particolare fa riferimento ad altri due file, /etc/ppp/peers/tre-connect e /etc/ppp/peers/tre-disconnect. Questi ultimi due sono script che utilizzano il programma "chat", necessario per comunicare con il modem ma di cui non conosco nulla, come nulla so, al di là di ciò che è intuitivo, delle configurazioni contenute nel file "tre"; per impostare il mio computer li ho copiati pari pari dalla pagina wiki di riferimento e pertanto non so fornire chiarimenti se qualcosa non funziona.

Si inizia aggiungendo in fondo al file /etc/ppp/ip-up le seguenti due righe:

echo -e "#generated by ip-up\nsearch local\nnameserver $DNS1\nnameserver $DNS2" > /etc/resolv.conf
chmod a+r /etc/resolv.conf

Queste righe occorrono per impostare i DNS corretti. Ora bisogna creare il file /etc/ppp/peers/tre, che sarà del tipo:

show-password
noauth
/dev/rfcomm0
115200
connect /etc/ppp/peers/tre-connect
disconnect /etc/ppp/peers/tre-disconnect
defaultroute
noipdefault
nodetach
usepeerdns
crtscts
local
ipcp-accept-local
maxfail 10
lcp-echo-failure 0
lcp-echo-interval 0
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
linkname saunalahti
mtu 1500
mru 1500

Quindi si crea /etc/ppp/peers/tre-connect

#!/bin/sh
exec /usr/sbin/chat -v \
TIMEOUT 5 \
ECHO ON \
ABORT '\nBUSY\r' \
ABORT '\nERROR\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nNO CARRIER\r' \
ABORT '\nNO DIALTONE\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
TIMEOUT 12 \
SAY "Press CTRL-C to close the connection at any stage!" \
SAY "\ndefining PDP context...\n" \
OK ATH \
OK ATE1 \
OK 'AT+CGDCONT=1,"IP","tre.it","",0,0' \
OK ATD*99# \
TIMEOUT 22 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"

*99# è il numero che il cellulare compone per collegarsi, e varia a seconda del cellulare. *99# è quello usato tipicamente da Nokia. Se si usa navigaTre il file dovrà contenere "naviga.tre.it" al posto di "tre.it", ma non garantisco che funzioni.

Se qualcosa non funziona il mio consiglio è di controllare attentamente di aver messo tutte le "\". Esatto, ne avevo dimenticata una.

Lo script di disconnessione, /etc/ppp/peers/tre-disconnect è abbastanza simile:

#!/bin/sh
exec /usr/sbin/chat -V -s -S \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
SAY "\nSending break to the modem\n" \
"" "\K" \
"" "\K" \
"" "\K" \
"" "+++ATH" \
"" "+++ATH" \
"" "+++ATH" \
SAY "\nPDP context detached\n"

Dato che sono due script vanno cambiati i loro permessi in modo che siano eseguibili:

# chmod +x /etc/ppp/peers/tre-connect
# chmod +x /etc/ppp/peers/tre-disconnect

A questo punto si può far partire la connessione con:

# pon tre

Se è tutto impostato correttamente il computer utilizzerà il cellulare come modem per collegarsi ad internet. Si può chiudere la connessione con CTRL-C. Dopo aver verificato che la connessione funziona si può commentare l'opzione "# nodetach" nel file /etc/ppp/peers/tre. Ci si connette con:

# pon tre

e stavolta la disconnessione va fatta con:

# poff tre

Ecco il risultato (nulla di stupefacente, bisogna anche ricordare che il bluetooth fa da "collo di bottiglia"):



Per controllare il traffico effettuato il programma migliore che ho provato è:

# pacman -S vnstat

Infine il bluetooth sul cellulare va impostato in modalità "nascosta", se non altro per un fatto di privacy.

Una nota finale: una connessione 3G implica un consumo di energia notevole per il cellulare, quindi consiglio un occhio alla batteria quando lo si usa.

2010-11-15

Rotazione dello schermo

Aggiornamento all'ultimo post:

Con Xrandr è anche possibile cambiare l'orientamento dello schermo con l'opzione --rotate [left|right|normal|inverted], ricordando di cambiare anche la risoluzione, ovviamente. Come per il caso precedente è stato sufficiente modificare il file ~/.fluxbox/keys aggiungendo queste quattro righe:

# la combinazione Control + Tasto windows + freccia cambia l'orientamento dello schermo
# la freccia indica il basso

Control Mod4 114 :exec xrandr --output LVDS1 --fb 600x1024 --rotate left
Control Mod4 113 :exec xrandr --output LVDS1 --fb 600x1024 --rotate right
Control Mod4 116 :exec xrandr --output LVDS1 --fb 1024x600 --rotate normal
Control Mod4 111 :exec xrandr --output LVDS1 --fb 1024x600 --rotate inverted

Una nota: i numeri 114, 113, 116 e 111 indicano i tasti a cui sono abbinate le freccie (trovati con xev). Con "Control Mod4 left" si ottiene lo stesso risultato, ma preferisco usare i riferimenti assoluti per non fare confusione quando cambio il layout da QWERTY a DVORAK.

2010-11-11

Uso di Xrandr per zoomare parti del desktop

Sul mio computer fisso, dove pure è installato Arch, ho deciso di installare KDE. Tra gli effetti grafici di cui dispone, c'è la possibilità di zoomare l'area sotto al cursore del mouse.

Più volte ho pensato a quanto mi sarebbe piaciuto poter fare qualcosa di analogo sul mio eeePC, dove c'è Arch ma KDE risulterebbe troppo pesante. Esiste un software incluso in xorg, xzoom, ma ingrandisce una porzione di schermo in una finestra nuova. Così dopo qualche ricerca ho trovato il modo di ottenere questo risultato con xrandr.

Xrandr dispone dell'opzione "panning", cioè la possibilità di "inquadrare" la porzione dello schermo sotto al puntatore; se questo tutorial vi fa risparmiare l'oretta di tentativi che ci ho messo io mi considero soddisfatto.

La prima cosa da fare è decidere di quanto sarà l'ingrandimento; nel mio caso volevo quadruplicare l'area di mio interesse, ovvero visualizzare 512x300 pixel dove di solito ne stanno 1024x600.

È necessario avere la dimensione dell'ingrandimento tra le proprie modalità di xrandr; digitando da terminale "xrandr" si ha un output del tipo:

$ xrandr

LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 220mm x 129mm
1024x600 60.0*+ 65.0
800x600 60.3 56.2
640x480 59.9


La modalità di mio interesse non c'è, ne va creata una nuova seguendo il formato di xorg.conf (modeline). Il formato prevede 10 parametri, di cui solo tre sono intuitivi (nome della modalità, risluzione orizzontale e risoluzione verticale). Tuttavia il programma cvt permette, dati in input risoluzione e frequenza, di trovare i parametri mancanti:

$ cvt 512 300 60

# 512x300 64.28 Hz (CVT) hsync: 20.31 kHz; pclk: 13.00 MHz
Modeline "512x300_65.00" 13.00 512 528 576 640 300 303 313 316 -hsync +vsync


quindi basta dare i comandi:

$ xrandr --newmode "512x300" 13.00 512 528 576 640 300 303 313 316 -hsync +vsync
$ xrandr --addmode LVDS1 512x300


per ottenere:

$ xrandr

LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 220mm x 129mm panning 1024x600+0+0 tracking 1024x600+0+0 border 128/128/128/128
1024x600 60.0*+ 65.0
800x600 60.3 56.2
640x480 59.9
512x300 59.3


A questo punto con:

$ xrandr --output LVDS1 --mode 512x300 --panning 1024x600+0+0/1024x600+0+0/128/128/128/128


si ottiene un ingrandimento di un'area di 512x300 pixel che si sposta con il puntatore del mouse.

Infine, per facilitarmi la vita, ho aggiunto queste righe al file ~/.fluxbox/keys:

Mod4 65 :exec xrandr --output LVDS1 --mode 512x300 --panning 1024x600+0+0/1024x600+0+0/128/128/128/128
Mod4 58 :exec xrandr --output LVDS1 --mode 1024x600

Premendo le combinazioni "tasto windows"+barra spaziatrice si attiva lo zoom, con "tasto windows"+m si torna alle dimensioni originali.