Domotica con Arduino...sito del progetto online!!!

Ragazzi, dopo il successo della presentazione del nostro progetto di domotica OpenDomotica all'Arduino Day di Roma, abbiamo finalmente messo on-line il sito del progetto! :slight_smile:

www.opendomotica.it

Noi siamo sempre in cerca di collaborazioni!!!

Ciao
Dario

Ciao Dario,
ottima idea e complimenti per l'evoluzione che il progetto ha avuto in questi 3 anni :slight_smile: :).
Non ti nascondo che la cosa mi affascina e che è un chiodo fisso da quando ho scoperto arduino e la voglia di avere un impianto domotico, premesso questo, che genere di collaborazioni cercate? La mia conoscenza in ambito elettronico é pressoché pari a zero (come sa bene il buon @michelemenniti :D), ma sto cercando di costruirmi almeno le basi, per quanto riguarda l'informatica direi che me la cavo abbastanza bene, soprattutto in ambito web.

Se posso suggerirti dai un'occhiata alle piattaforme http://paraimpu.crs4.it/ e www.lelylan.com

Ciao e bravi veramente.

Congratulazioni astroz78, ricordo ancoa le tue prime incursioni nel forum, quando presentavi il tuo progetto! :grin:

Vi ringrazio a tutti...come ho scritto già in altri post, mi dispiace davvero non riuscire ad essere parte attiva della community di Arduino...ho una tale passione e conoscenza della piattaforma, che commenterei ogni singolo post e avrei tante cose da dire, miglioramenti, consigli, etc...

Ma purtroppo ho una vita così tanto incasinata e frettolosa, che qualsiasi buco riesco a rimediare cerco di dedicarlo al mio progetto...un progetto che funziona e che, secondo noi, ha grandi potenzialità!

@critical: contattaci sulla form del sito e teniamoci in contatto...come collaborare non sò, ma vediamo se riusciamo a trovare un sistema! :slight_smile: Sei di Roma? Chi è di Roma di voi?

Ho seguito,anche senza partecipare al vostro progetto se volete supporto lato software(app android,app pc etc) sono a disposizione :wink:

Ciao e complimenti per il progetto e per il sito, semplice e bello graficamente.
Sono rimasto un po' basito invece sul fatto che, a discapito del nome, non ci sono, sul sito, schemi e/o codice. La parola Open è solo nel titolo del progetto.
Un mio amico mi ha detto: "OpenDomitica, a closed-source project." :astonished:
Spero si sbagli. :~

Mi associo ai complimenti degli altri. Se ho capito bene il progetto si basa su una logica master/slave o sbaglio?
Ti segnalo un altro progetto chiamato souliss che adotta un approccio distribuito. Il sito é www.souliss.net.

@PaoloP:
Dunque il nostro progetto è Open sicuramente nel senso che vogliamo rilasciare le API per interfacciarlo e renderlo il più aperto possibile al mondo esterno...all'interfacciamento con dispositivi esterni, alla revisione di alcune logiche esistenti e alla creazione di nuovi processi/logiche e/o alla revisione/ricostruzione integrale dell'interfaccia utente.

Vogliamo inoltre rendere open-source tutto o una parte del software che fa parte del sistema (firmware e/o software lato server), ma non abbiamo avuto proprio tempo di affrontare la questione nel dettaglio: sostanzialmente dobbiamo ancora decidere quali parti di software rilasciare, eventualmente quali no e con quali licenze gpl...ed organizzarci di conseguenza per proteggere tanto il marchio quanto il lavoro svolto fin ora. Ci dovremo documentare in tal senso.

E a prescindere da quanto sopra, purtroppo, c'è un problema di fondo e, cioè, che essendo solo in due a lavorarci, dovendo cercare di raggiungere il più in fretta possibile i risultati per far funzionare quello che ci serviva e che avevamo in testa, abbiamo prodotto chili e chili di codice senza nessuna documentazione...tra l'altro alcune parti di software sono in uno stato inconsistente ed accroccato, alcune parti mancano del tutto (es. il configuratore). Ci sono troppe cose nelle nostre teste che sarebbe difficile far comprendere senza uno straccio di documento...data sopratutto la complessità del sistema e del network che coinvolge. Anche in tal senso stiamo lavorando e, cioè: documentare quello che c'è e portare il software in uno stato di consistenza dove chi lo legge possa capire il vero perchè c'è scritta quella riga di codice, invece di chiedersi "ma perchè è stato fatto così?" (su una parte di software che apparentemente non ha senso) o "qui manca un pezzo!!"...quando avremo chiarito questi due aspetti compariranno le voci sul sito per accedere alle wiki tecniche e al software sui sistemi di versionamento online esistenti.

@freedomotic:
Ci siamo già scritti via E-Mail...il mio sistema ha un approccio distribuito...ogni nodo è tanto master quanto slave. L'impianto ha perfetta funzionalità anche con uno o più nodi spenti (ovviamente non funziona quella parte di impianto che gestiscono) e senza server (ovviamente spariscono le funzionalità "avanzate" di cui si occupa il server).

Grazie a tutti comunque per i complimenti...ci tengo ad aggiungere la seguente considerazione, anche a seguito del giustissimo intervento di PaoloP. Noi vorremmo assolutamente coinvolgere una community, vorremmo creare un prodotto che possa intraprendere una sua strada oltre che a casa degli "smanettoni", perchè no, anche nel mercato consumer...però vogliamo evitare di perdere tempo e trovarci in uno stato confusionario come successe quando, tempo fa (e chi qui c'è da molto sa a cosa mi riferisco), s'era creato un gruppo di discussione che però passava il 90% del suo tempo a fare discorsi filosofici e astratti...provammo pure a progettare qualcosa insieme, call conference su SkyPe e quant'altro...ma si girava sempre a vuoto! Io sono per il: fare...senza troppe chiacchiere. Per questo, in questa fase, cerco collaborazioni dirette...con cui potermi sentire al telefono, ancora meglio vedere e portare avanti la cosa insieme...per poi arrivare a: hardware, software (magari ancora incompleto in quanto a numero di funzionalità, ma quelle che ci sono senza buchi), documentazione sul software, sulla API e e insomma tutti gli strumenti da dare in mano alla community per far crescere ulteriormente il progetto.

se serve programmazione in PHP ci sono io se mi accettate :wink:

invece volevo chiedervi:
in questo progetto uno dovrà procurarsi un host di per se giusto?
perchè non proponete una soluzione voi?

intendo ormai server dedicati si trovano a basso prezzo (parliamo di 40€ ale mese per un quad core con 16GB di ram completamente dedicato) e con dei banner pubblicitari ed eventuali donazioni mantenerlo non sarebbe difficile.
insomma sarebbe comodo che la gente facesse accesso ad un sito comune con proprio username e propria password.

inoltre non ho capito se il server deve essere interno alla lan oppure può essere esterno.
perchè nel caso fosse interno bisognerebbe aprire le porte sul router che per molti non è il massimo visto che non sanno ciò che fanno (ho visto troppe reti in cui per aprire una porta è stato disabilitato TUTTO il firewall, compreso quello software del PC purtroppo)

Stupendo progetto!
Sono nella stessa situazione, solo che ho circa 2 anni di ritardo, al momento arduino comanda solo garage e cancelletto e stavo appunto lavorando all'accensione dei punti luce esterni, poi verrà temperatura ambiente, pannelli solari, termocamino.....
Poco per volta aggiungo anche perché con tester e saldatore ci convivo da tempo, ma in quanto a programmazione sono fermo allo Z80, di volta in volta cerco e provo.

Se dovesse servirvi un manovale eccomi!

Ciao
TEo!

Ciao a tutti, sono l'altro matto che si sta occupando del progetto :smiley:

superlol:
invece volevo chiedervi:
in questo progetto uno dovrà procurarsi un host di per se giusto?
perchè non proponete una soluzione voi?

Attualmente serve un host in casa ma abbiamo già pensato di mettere il server in ASP per la gestione del sistema (abbiamo già anche acquistato il server). Questo, però, necessita di alcune rivisitazioni tanto lato server quanto lato firmware Arduino per cui c'è bisogno di tempo nello sviluppo e, soprattutto, dovendo necessariamente usare DHCP e DNS in Arduino, siamo molto vicini al limite della flash di un Uno. L'idea è anche quella di creare una appliance che funga da server che non richieda installazione e manutenzione se non l'accortezza di aprire le porte sul router che, comunque, è una cosa che, spero, chiunque voglia un sistema domotico sappia fare, quantomeno seguendo una guida :smiley: Quindi le soluzioni finali per il server sarebbero tre, ognuno si sceglie quella che più gli piace:

  • server proprio con installati i servizi OpenDomotica (per chi vuole smanettare e crearsi nuovi plugin o nuove funzionalità)
  • appliance (per chi vuole il server in casa ma non vuole un pc da tenere sempre acceso e non vuole combattere con installazioni varie)
  • server in ASP (per chi non vuole "sporcarsi le mani" e non dover stare dietro ad aggiornamenti del sistema)

Come diceva astroz in un altro post, le idee e le cose da fare sono tante e, dovendo pensare comunque a far funzionare l'impianto che già è installato, cerchiamo prima di chiudere tutte le funzionalità più essenziali per poi in seguito metterci i fiocchetti, soprattutto perché entrambi riusciamo a dedicare poche ore a settimana al progetto.

OsMoSiS:
Ciao a tutti, sono l'altro matto che si sta occupando del progetto :smiley:

superlol:
invece volevo chiedervi:
in questo progetto uno dovrà procurarsi un host di per se giusto?
perchè non proponete una soluzione voi?

Attualmente serve un host in casa ma abbiamo già pensato di mettere il server in ASP per la gestione del sistema (abbiamo già anche acquistato il server). Questo, però, necessita di alcune rivisitazioni tanto lato server quanto lato firmware Arduino per cui c'è bisogno di tempo nello sviluppo e, soprattutto, dovendo necessariamente usare DHCP e DNS in Arduino, siamo molto vicini al limite della flash di un Uno. L'idea è anche quella di creare una appliance che funga da server che non richieda installazione e manutenzione se non l'accortezza di aprire le porte sul router che, comunque, è una cosa che, spero, chiunque voglia un sistema domotico sappia fare, quantomeno seguendo una guida :smiley: Quindi le soluzioni finali per il server sarebbero tre, ognuno si sceglie quella che più gli piace:

  • server proprio con installati i servizi OpenDomotica (per chi vuole smanettare e crearsi nuovi plugin o nuove funzionalità)
  • appliance (per chi vuole il server in casa ma non vuole un pc da tenere sempre acceso e non vuole combattere con installazioni varie)
  • server in ASP (per chi non vuole "sporcarsi le mani" e non dover stare dietro ad aggiornamenti del sistema)

Come diceva astroz in un altro post, le idee e le cose da fare sono tante e, dovendo pensare comunque a far funzionare l'impianto che già è installato, cerchiamo prima di chiudere tutte le funzionalità più essenziali per poi in seguito metterci i fiocchetti, soprattutto perché entrambi riusciamo a dedicare poche ore a settimana al progetto.

per quanto asp sia molto più comodo per interazioni con programmi scritti in C# io vi consiglierei davvero un host su PHP.

inanzitutto PHP gira anche su un server linux quindi costa di meno ed è meggiormente performante (più ottimizzato nelle risorse).
se volete anche l'interfaccia grafica magari installa centos 5 con sopra la server GUI.

inoltre potete utilizzare comandi quali exec che vi permettono un'ottima interazione e la possibilità di far aggiungere plugin agli utenti senza contaminare il sistema:
esistono mod per apache che permettono la divisione per utenti, quindi ad ogni utente registrato viene attivato un utente nella macchina linux in un certo gruppo con permessi limitati, ognuno potrà caricare un massimo di files ed anche se li esegue nessuno potrà eseguire script che incasinino o rallentino la macchina. e poi voi dal vostro pannello di controllo potrete visualizzare i processi per tutti gli utenti.

anche se sinceramente non lascerei mai ad un utente un controllo simile, pittosto dei plugin si ma creati da voi o comunque visionati da voi prima dell'attivazione

EDIT:
dimenticavo perchè usate i DNS? mettete direttamente l'ip del server, finchè è uno non ci sono problemi, altrimenti comprate i server su OVH e mettete il KVM over ip :wink:

@superlol:
C'è stato evidentemente un misunderstanding...ASP inteso come Application Service Provider...non come ASP.net...cioè il progetto in PHP è e in PHP resta...intendevamo come infrastruttura ASP! :smiley:
Per la questione IP fisso...l'IP va registrato direttamente nella EEPROM del nodo...se configuro X nodi con quell'IP e poi decido di cambiare hosting o insomma provider che può provocare la sostituzione dell'indirizzo IP, tutti quei nodi andrebbero riconfigurati...si può fare da remoto la riconfigurazione della EEPROM, ma è comunque più problematica la cosa...con il DNS saremmo garantiti sempre e comunque...

Abbiamo appena inserito una piccola form nella pagina contatti del sito per poter lasciare il proprio indirizzo E-Mail per essere mantenuti sempre aggiornati sullo stato del progetto...se volete lasciateci il vostro indirizzo!

Inoltre, mi rivolgo a coloro che ci hanno risposto proponendo la loro collaborazione sia in risposta a questo topic che via mail/mp, vi risponderemo al più presto...scusate se magari passerà qualche giorno, ma purtroppo siamo davvero oberati di lavoro e a volte anche fare le cose più banali come scrivere una mail diventa difficile!!! :slight_smile:

Grazie per la spiegazione del progetto. :wink:

astroz78:
Per la questione IP fisso...l'IP va registrato direttamente nella EEPROM del nodo...se configuro X nodi con quell'IP e poi decido di cambiare hosting o insomma provider che può provocare la sostituzione dell'indirizzo IP, tutti quei nodi andrebbero riconfigurati...si può fare da remoto la riconfigurazione della EEPROM, ma è comunque più problematica la cosa...con il DNS saremmo garantiti sempre e comunque...

Perché non inserite un file di configurazione su una SD. E' facile da rimuovere, riprogrammare, reinserire in modo da riavviare il nodo con un'altra configurazione.

PaoloP:
Grazie per la spiegazione del progetto. :wink:

astroz78:
Per la questione IP fisso...l'IP va registrato direttamente nella EEPROM del nodo...se configuro X nodi con quell'IP e poi decido di cambiare hosting o insomma provider che può provocare la sostituzione dell'indirizzo IP, tutti quei nodi andrebbero riconfigurati...si può fare da remoto la riconfigurazione della EEPROM, ma è comunque più problematica la cosa...con il DNS saremmo garantiti sempre e comunque...

Perché non inserite un file di configurazione su una SD. E' facile da rimuovere, riprogrammare, reinserire in modo da riavviare il nodo con un'altra configurazione.

oppure mettete in tutti nodi l'ip del master di arduino che invia a tutti l'ip del server remoto XD

così si cambia uno e cambiano tutti..

@PaoloP:
Allora perchè non usare il DNS? Ci avevamo pensato a mettere la configurazione in SD anzichè sulla EEPROM, ma se devo far questo per togliere la parte della libreria Ethernet che si occupa del DNS per risparmiar spazio di programma (flash) e poi devo aggiungere la libreria SD (che mi pare occupi persino di più) non ho risolto il problema... :slight_smile:

@superlol:
Non c'è un nodo master, ogni nodo è tanto master quanto slave! Quindi la tua proposta è inapplicabile...stiamo valutando di trasferire il server (quello di cui parlava il mio collaboratore OsMoSiS) su una appliance...presumibilmente basata su RasperryPI...proprio per risolvere alcuni problemi tra cui questo! :slight_smile:

32K... questo è il problema. :roll_eyes:

superlol:
anche se sinceramente non lascerei mai ad un utente un controllo simile, pittosto dei plugin si ma creati da voi o comunque visionati da voi prima dell'attivazione

Se l'utente vuole creare e installare dei plugin è libero di farlo sul SUO server di casa e può fare tutti i casini che vuole, di certo non sul server "pubblico" che metterà a disposizione solo le funzionalità predefinite del sistema XD

OsMoSiS:

superlol:
anche se sinceramente non lascerei mai ad un utente un controllo simile, pittosto dei plugin si ma creati da voi o comunque visionati da voi prima dell'attivazione

Se l'utente vuole creare e installare dei plugin è libero di farlo sul SUO server di casa e può fare tutti i casini che vuole, di certo non sul server "pubblico" che metterà a disposizione solo le funzionalità predefinite del sistema XD

esattamente ciò che intendevo, piuttosto create un form per farvi inviare plugin e quelli da voi "certificati" saranno selezionabili no? in tal modo avrete sicurezza e flessibilità per gli utenti :wink:

comunque la programmazione lato serve mi interessa molto (soprattutto la parte PHP visto che ci lavoro ogni giorno)