Open Network Object System(O.N.O.S)

2014-07-12 05:38:26




Questo progetto si chiama O.N.O.S. ed è un sistema domotico.
Grazie ad O.N.O.S. è possibile controllare qualsiasi dispositivo elettrico da internet con un solo click.
Il sistema è semplice ed intuitivo infatti si può iniziare ad utilizzarlo entro 5 minuti dall'estrazione dalla scatola.
L'utente deve solamente collegare la presa della corrente all' OnosCenter (il cervello principale dell'impianto) ed O.N.O.S. farà il resto!
Lo scopo del progetto e' di permettere a chiunque (anche privo di esperienza elettrica ed informatica) di poter configurare e realizzare la propria casa domotica senza dover chiamare l'elettricista , senza dover rompere e ricablare la casa e sopratutto senza bisogno di investire un capitale!
O.N.O.S. è modulare quindi l'utente può acquistare inizialmente solo l'OnosCenter (che consente di comandare già da subito una presa della corrente) e prendere poi successivamente solo i componenti aggiuntivi che desidera ,configurando così la propria casa su misura.
La differenza tra O.N.O.S e gli altri sistemi domotici è che non richiede l'uso di cavi ne di collegamenti radio in quanto la comunicazione tra le varie apparecchiature avviene tramite i cavi della corrente elettrica già presenti nell'edificio (questa tecnologia prende il nome di onde convogliate , http://it.wikipedia.org/wiki/Powerline).
Per utilizzare O.N.O.S. non è richiesta l'installazione di nessun software e di nessuna app , in quanto il sistema fornisce una pagina web che qualunque dispositivo dotato di browser potrà visualizzare (tablet, telefoni, pc ,ebook reader ...)
Il sistema funziona anche localmente quindi senza l'uso di internet si potrà usufruirne collegandosi alla rete locale, cosa che i sistemi basati su cloud non permettono.

Altro grande vantaggio rispetto alla concorrenza è che l'interfaccia è completamente personalizzabile , sia nella grafica sia nella suddivisione degli ambienti.
E' possibile modificare il colore e la forma dei pulsanti che controllano gli apparecchi elettrici (è persino possibile utilizzare immagini).
La suddivisione degli ambienti è facilmente impostabile dall'utente che con pochi click potrà nominare le proprie utenze e
suddividerle nelle proprie stanze.


Funzionamento:
Il computer principale (chiamato anche OnosCenter) comunica con i nodi (che sono i dispositivi O.N.O.S ai quali l'utente collegherà i propri elettrodomestici ) tramite onde convogliate.
Quando l'utente si collega al sito di O.N.O.S , l'OnosCenter crea la pagina web da visualizzare in base allo stato dei vari nodi (acceso , spento ...) , premendo su un pulsante l'utente può cambiare lo stato del nodo associato al pulsante , a questo punto il pulsante cambia colore e scritta per confermare l'avvenuta azione.
Se un nodo fosse spento o irraggiungibile il relativo pulsante indicherà con il colore grigio che l'operazione è in attesa.
Questo garantisce all'utente la conoscenza dello stato effettivo degli elettrodomestici comandati.

Tra i tipi di nodi in vendità saranno disponibili :

Prese intelligenti :
 Collegando il proprio elettrodomestico ad una di queste prese sarà possibile accenderlo e spegnerlo da remoto

Portalampada intelligenti :
 Inserendo questi dispositivi tra il proprio portalampada e la propria lampadina si potrà controllarla da remoto

Barriere infrarosso :
 Posizionando queste barriere vicino alle porte si potrà sapere se all'interno della stanza ci sono persone e spegnere le luci se non ci sono.

Sensore igrometrico :
 Per misurare l'umidità del terreno e irrigare di conseguenza la zona controllata

Sensori di temperatura:
 Tramite questi sensori si potrà sapere le temperature di ciascun ambiente e condizionarlo di conseguenza


Esempi particolari di utilizzo:

Antifurto:
Con O.N.O.S. sarà possibile la realizzazione di un antifurto affidabile ed economico

Distributore di cibo automatico di pollai ed altri animali :
Con O.N.O.S. sarà facilmente automatizzabile la distribuzione degli animali sia domestici che non.
Sarà inoltre possibile tramite webcam controllarne visivamente lo stato.


Controllo di presenza negli ostelli/baite/agriturismi/resort : tramite barriera infrarossi O.N.O.S. permette di controllare se ci sono persone nella stanza in modo da poter effettuare le pulizie solo quando i clienti non sono presenti, inoltre può far risparmiare sul costo della corrente elettrica disattivando tutti gli apparecchi elettrici della stanza quando è vuota.


Controllo del livello di acqua nei campi:
Avendo diverse pompe nei pozzi  si potrà controllare il livello dell'acqua ed alimentarle in base ad una soglia.
Questo senza dover passare altri cavi oltre a quelli già esistenti delle pompe stesse.


Controllo luce ed umidità di una serra:
Grazie a sensori di temperatura e di umidità O.N.O.S. può essere facilmente utilizzato per l'automatizzazione di una serra , illuminando ed innaffiando le piante in base ad orari e sensori.


Controllo della casa per anziani :
Avendo l'interfaccia altamente personalizzabile O.N.O.S. si predispone egregiamente per l'uso da parte degli anziani in quanto è possibilile fare interfaccie con pulsanti enormi facilmente leggibili.
Grazie ad O.N.O.S. l'anziano avrà il controllo della casa senza alzarsi dalla poltrona .


Ecco il video dimostrativo:





Note tecniche (utili solo per gli sviluppatori):



O.N.O.S. è rilasciato sotto licenza opensource , questo per favorirne lo sviluppo e dare la possibilità agli utenti di migliorarlo ulteriormente.

Il software è completamente gratuito e puo essere eseguito su qualsiasi dispositivo abbia python quindi qualsiasi pc con linux tra cui anche il raspberry pi ed il beaglebone (persino su alcuni router con openwrt è possibile eseguirlo!)

Non è richiesta alcuna installazione , basta semplicemente scaricare il programma ed eseguirlo con python

Speriamo di permettere a sempre più persone di 'giocare' con l'internet of things per questo motivo il progetto è stato rilasciato sotto la licenza opensource GNU General Public License 3 che ne permette l'uso gratuito.

O.N.O.S. è stato sviluppato usando prevalentemente le librerie build in di python quindi non richiede l'installazione di nessuna libreria aggiuntiva.
I nodi O.N.O.S. sono basati su arduino quindi volendo si possono autocostruire e quindi adattare facilmente alle proprie esigenze.




Se avete delle domande, suggerimenti o opinioni da esprimere lasciate un commento

https://sourceforge.net/projects/onos/


Commenta




Problemi di stabilità e di avvio con linux su amd1090t

2014-02-03 19:41:56




Avendo installato Debian Wheezy 7.3  sul mio pc un amd phenom2 x6 1090t montato su asrock 890gx extreme 3 avevo notato che all'avvio 1 volta ogni 10 il pc si bloccava dicendo rcu_sched detected stalls on CPUs/tasks: 
Non riuscivo a capire proprio a cosa fosse dovuto il problema.
Inoltre alcune volte il pc si bloccava ed ero costretto a riavviare da pulsante.
Alla fine ho scoperto che tra i pacchetti debian è presente un driver chiamato amd64-microcode che fornisce i driver necessari
ai processori amd !!!
Installato quel pacchetto non ho più riscontrato problemi .
Quindi per installare il pacchetto aprite un terminale e digitate:



sudo apt-get update

sudo apt-get install amd64-microcode 



Inoltre conviene mettere nella blacklist il modulo seguente se si utilizz una scheda video ati ma non si usa l'audio attraverso hdmi.
sudo nano /etc/modprobe.d/user-blacklist.conf

inserire nel file che dovrebbe essere vuoto questo:
 
 blacklist snd_hda_codec_hdmi


Spero di esservi stato di aiuto , se è così perfavore lasciatemi un commento.
Commenta




note

2013-11-23 15:32:57




Qualche comando da terminale utile per linux:

comando grep x trovare tutti i file che contengono all'interno una stringa , partendo dalla cartella locale ricorsivamente

grep -r "define string_to_find" "."





per fare la copia compressa:

spostarsi nella cartella da copiare

cd /media/partizione_da_copiare/


sudo tar -cvpzf /destinazione/backup.tar.gz *

per decomprimere:

sudo tar -xvpzf /path/to/backup.tar.gz -C /media/whatever --numeric-owner


---------------------------------------------------------------------------------------------------------------------------


Estrarre tutti i files da cartelle in modo ricorsivo:

find /src/dir -type f -exec mv --backup=numbered -t /dst/dir {} +


The command will find all regular files under /src/dir (including all subdirectories) and move them to the /dst/dir by use of the command mv. Just replace the directories by yours. Files with the same names will be renamed automatically.

Selecting files to move

If you want to move just MP3 files, add -iname "*.mp3" option to the find command after -type f.










-----------------------------------------------------------------------------------------------------------------------




Copiare sistemi linux:

montare le 2 partizioni da un sistema a parte ,live cd ad esempio

sudo cp -rfa -v /media/disk1/* /media/disk2/


esempio:

sudo cp -rfa -v /media/9b3153ba-a4df-4408-b6ac-197893ac8b22/* /media/b4a375f0-3cae-41ec-a130-fd9fa5207b07/home/


-----------------------------------------------------------------------------------------------------------------------------
Formattare partizioni o penne usb:

sudo mkfs.ext4 -O ^has_journal /dev/sdx1
sudo mkfs.ext3 -O ^has_journal /dev/sdx1
sudo mkfs.ext2 -t /dev/sdx1


-----------------------------------------------------------------------------------------------------------------------------
Per vedere gli id delle partizioni dare:
sudo blkid

-----------------------------------------------------------------------------------------------------------------------------

Per vedere lo stato di tutte le partizioni montate dare:

df -h

-----------------------------------------------------------------------------------------------------------------------------

Per vedere i messaggi del bus dare:

tail -f /var/log/messages

-----------------------------------------------------------------------------------------------------------------------------
Per vedere tutti i files e le cartelle con i permessi in una directory dare:
ls -lrt

-----------------------------------------------------------------------------------------------------------------------------
Per montare una iso :
sudo mount -o loop disk1.iso /mnt/disk

-----------------------------------------------------------------------------------------------------------------------------
Per montare cartella condivisa samba:


sudo mkdir /media/server


sudo chmod -R 777 /media/server

sudo chown -R marco /media/server

Poi aprire /etc/fstab e aggiungere:

//ipserver/server /media/server cifs username=miousername,password=miapassword,noauto,user,defaults,rw,noatime 0 0


la condivisione sul server (/etc/samba/smb.conf) si deve chiamare "server"

-----------------------------------------------------------------------------------------------------------------------------
comprimere cartella:

tar -c cartella/ | pbzip2 -c -k -v > myfile.tar.bz2

oppure per usare 2 gb di ram:
tar -c cartella/ | pbzip2 -c -k -v -m2000 > myfile.tar.bz2

estrarre:
pbzip2 -dc -v myfile.tar.bz2 | tar x

-----------------------------------------------------------------------------------------------------------------------------
Programmi da installare:
sudo apt-get update
sudo apt-get install -y vlc mplayer2 comix transmission mencoder ffmpeg arduino chromium-browser gdebi gdebi-core

-----------------------------------------------------------------------------------------------------------------------------
Cache in ram

sudo nano /etc/rc.local


Right above “exit 0″ we’ll add the commands that need to run each time at startup:

mkdir /tmp/ram
mkdir /tmp/ram/cache
chmod 777 /tmp/ram
chmod 777 /tmp/ram/cache


nano /etc/fstab


aggiungi:

none /tmp tmpfs defaults,rw,noatime 0 0


sudo nano /etc/fstab

al file

For Chromium:

rm -rf /home/marco/.cache/chromium


ln -s /tmp/ram /home/marco/.cache/chromium

For Mozilla Firefox:

The cache for Firefox can be found inside your Firefox profile (which includes a big random string in it). As long as you only have one Firefox profile you can do this:

cd ~/.mozilla/firefox/*default


rm -rf Cache

ln -s /tmp/ram/cache Cache
-----------------------------------------------------------------------------------------------------------------------------

creare nuovo utente:
sudo useradd newuser
sudo passwd newuser
sudo mkdir /home/newuser
sudo chown newuser:users /home/newuser


-----------------------------------------------------------------------------------------------------------------------------
lanciare un comando da un altro utente essendo root:

su


/bin/su - newuser -c " mkdir prova"
-----------------------------------------------------------------------------------------------------------------------------
Eseguire script allo spegnimento:

sudo chmod a+x /etc/init.d/smonta.sh


cd /etc/init.d/

sudo update-rc.d smonta.sh start 20 0 6
-----------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------
Commenta




     next >