domotica nella nuova casa

ahhhh... :open_mouth:
adesso comincio a capire qualcosa :smiley:

Grazie per la traduzione simultanea :wink:

BaBBuino:
Ethernet, al di là dei costi, è la soluzione che ai punti vince su tutte le altre, come bene si espresso astroz78.

E attenzione!!!

Da questa primavera i grandi colossi degli elettrodomestici cominceranno a produrre apparecchi con presa RJ45 ethernet, con intefaccian Web interna, per le funzioni dell'apparato (tempertura dei frigoriferii, cicli di lavaggio delle lavatrici, funzioni di risparmio energetico per forni, ecc.

Avete compreso bene la cosa???

Meditate gente, meditate cosa significa... :wink:

Mi sto orientando anche io verso ethernet. Partendo da domotichome sono "costretto" ad avere un nodo su ethernet, che funge da gateway verso l'esterno. A questo punto studiare e implementare un protocollo di comunicazione (tipo basato sugli economici RF22) per far dialogare i nodi domotici mi pare improponibile...Esistono alcune librerie già fatte, ma nessuna (a quanto pare) che gestisca l'addressing e, soprattutto, le connessioni reliable. Concordo con chi dice che utilizzare TCP è un pò eccessivo, ma per le mie attuali competenze è la soluzione più praticabile.

In fondo arduino ethernet costa 40€, poco più della soluzione RF bidirezionale implementata con i transceiver in radiofrequenza, e mi troverei "a gratis" la gestione degli indirizzi e delle collisioni. Da valutare anche i vantaggi energetici/economici del PoE...Con il modulo Arduino costa 54€, però ancora non ho capito se è sufficiente quello o ci vuole uno sitch/router compatibile (IEEE 802.3af) dall'altra parte...

Io al momento ho abbandonato l'idea del PoE perché...
a) ogni modulo PoE costa circa 18 euro
b) uno switch PoE con almeno 6-8 porte alimentate PoE costa oltre 300 euro
c) dovendo fare un impianto nuovo per me è indifferente alimentare da rete ethernet oppure mettere un piccolo alimentatore da 8 euro dentro ogni scatola di derivazione con Arduino.

In ogni caso ritengo vincente l'idea di BaBBuino di fare una rete TCP/IP a stella in modo che ogni Arduino sia totalmente indipendente dall'altro, in caso di crash o qualsiasi malfunzionamento, al massimo va in tilt una stanza/zona, mentre il resto continua a funzionare.
Io ho scelto di installare un Arduino Ethernet per ogni stanza/zona.
In questo modo basta fare un reset di quell'Arduino, oppure in caso di guasto basta avere un Arduino Ethernet di riserva da riprogrammare al volo per ripristinare in pochi minuti la funzionalità di quella zona.
Il mio obiettivo sarebbe quello di non installare alcun server in casa, ma di gestire totalmente via interfaccia web in locale o indifferentemente in remoto via internet.

In realtà, il tuo punto di fallimento diventa il centro stella (cioé lo switch) ovviamente a meno che la rete preveda diversi switch, nel caso si creano delle sotto-stelle.

L'unica soluzione che può non presentare punti di fallimento singoli è il wireless punto punto, come ad esempio quello offerto dalle schede Freakduino.
In quel caso si ottiene anche un risparmio economico, in termini di switch, cavi e prezzo della scheda.

shineangelic:
Mi sto orientando anche io verso ethernet. Partendo da domotichome sono "costretto" ad avere un nodo su ethernet, che funge da gateway verso l'esterno. A questo punto studiare e implementare un protocollo di comunicazione (tipo basato sugli economici RF22) per far dialogare i nodi domotici mi pare improponibile...Esistono alcune librerie già fatte, ma nessuna (a quanto pare) che gestisca l'addressing e, soprattutto, le connessioni reliable. Concordo con chi dice che utilizzare TCP è un pò eccessivo, ma per le mie attuali competenze è la soluzione più praticabile.

In fondo arduino ethernet costa 40€, poco più della soluzione RF bidirezionale implementata con i transceiver in radiofrequenza, e mi troverei "a gratis" la gestione degli indirizzi e delle collisioni. Da valutare anche i vantaggi energetici/economici del PoE...Con il modulo Arduino costa 54€, però ancora non ho capito se è sufficiente quello o ci vuole uno sitch/router compatibile (IEEE 802.3af) dall'altra parte...

Perdonatemi se mi ostino, ma non è vero che non esistano soluzioni RF complete con indirizzamenti e gestione della ritrasmissione. Il già citato Freakduino ha un chip 2.4 GHz con collision detection e gestione ACK in hardware.

Lo sviluppo di un protocollo tra nodi e di un bridge ethernet per l'interfaccia grafica è una delle possibili configurazioni di Souliss.

Saluti,
Dario.

Dario io non dico che la "mia" soluzione sia la migliore, anzi, sono qui per imparare. Freakduino è la seconda volta che lo sento nominare, prometto che stasera studierò.

Tuttavia, nonostante cablare con RJ45 la casa sia una faticaccia, avrei altri vantaggi futuribili, dalla cosiddetta Smart TV alla lavatrice con l'indirizzo IPV6. Inoltre, anche se non conosco Souliss e intendo approfondire, dubito che l'implementazione del suo protocollo possa essere più robusta (e semplice per me da includere) del caro vecchio TCP. In elettronica sono una zappa, ma con i socket tribolo da anni per lavoro e non..Avere almeno una parte del progetto domotico che mi accingo a creare totalmente sotto controllo rappresenta per me un vantaggio che giustifica anche i 40€ della versione eth. E non avrei radiazioni aggiuntive in casa 24x7...

In realtà, il tuo punto di fallimento diventa il centro stella (cioé lo switch) ovviamente a meno che la rete preveda diversi switch, nel caso si creano delle sotto-stelle.

L'unica soluzione che può non presentare punti di fallimento singoli è il wireless punto punto, come ad esempio quello offerto dalle schede Freakduino.
In quel caso si ottiene anche un risparmio economico, in termini di switch, cavi e prezzo della scheda.

scusate ma non mi sembra ci sia storia... uno switch:

  • un modello 8 porte costa 50 euro
  • lo resetti semplicemente spegnendolo e riaccendendolo
  • non ha bisogno di configurazioni
  • l'impianto è tutto cablato e non crea ne subisce interferenze
  • non inonda la casa di radiofrequenze
  • se si guasta scendi al negozio sotto casa e ne compri un'altro in 10 minuti

Se mi dite che il protocollo TCP/IP non è quello più efficiente o più adatto alla domotica vi posso dare anche parzialmente ragione, ma una nrete TCP/IP è certamente più semplice, economica e sicura.... manutenzione e configurazione ZERO, tempi di interventi minimi, costi pressoché irrisori!

Quando si fanno esperimenti con l'Arduino, la breadboard, un sensore e due relè ...è una cosa, quando devi fare un impianto reale... devi innanzitutto pensare alla funzionalità pratica, alla manutenzione e a come poter intervenire in 10 minuti per riparare il guasto. La realtà applicata è ben diversa dalla sperimentazione.
In ogni caso è bene valutare anche altre soluzioni alternative che potrebbero rivelarsi molti interessanti.

Qualcuno qui nel forum ha a casa un impianto di domotica completo e funzionante realizzato in RF???

zuzzurro:
scusate ma non mi sembra ci sia storia... uno switch:

  • un modello 8 porte costa 50 euro

Esagerato!! :stuck_out_tongue:

scherzi a parte, se le porte sul router (4) non dovessero bastarmi credo prenderò uno stupidissimo hub, che di euro ne costa meno di dieci. In fondo i datagram sono piccolissimi e dubito avrò mai più di sei nodi in un bilocale..Solo che vorrei anche contenere i consumi quanto più possibile visto che si tratta di dispositivi sempre accesi

hai ragione... mi è scappato un 5... volevo dire 10 euro! :grin:
(un TP-LInk lo trovi a quel prezzo, un D-LInk a max 15 euro e un Netgear a max 18 euro)

...lo colleghi al router casa.... e vai!

bisognerebbe farlo tutto tcp/ip e vedere, ognuno se lo sviluppa un po' come gli pare. Io parlo solo per esperienza dove un sistema che ha

1a soluzione)
10 nodi = 10 processori + 10 chip per ricevere e trasmettere dati LAN Totale 20 schede e 20 possibili guasti e crash molto probabili

2a soluzione)
32 nodi = 1 processore e 32 piccolissimi slave in bus RS485 con 4 fili (a volte 4 fili qualsiasi non ci sono troppe pretese sul cavo da usare a meno che non fai distanze enormi)

io in 14 anni di utilizzo di sistemi RS485 accesi ancora oggi non ne ho mai riavviato uno
450 schedine circa piazzate ne avrò sostituite per guasto una decina.

Sinceramente il 485 non mi ha mai dato rogne, io mi giocherei una mano che questi shield ethernet usati come nodi mi darebbero troppi problemi e lamentele. Alla fine ci rimetto e perdo la faccia :slight_smile:

Però ripeto ognuno se lo fa un po' come vuole, anzi se qualcuno lo fa lo usiamo come cavia :slight_smile:

ciao

pablos:
bisognerebbe farlo tutto tcp/ip e vedere, ognuno se lo sviluppa un po' come gli pare. Io parlo solo per esperienza dove un sistema che ha

1a soluzione)
10 nodi = 10 processori + 10 chip per ricevere e trasmettere dati LAN Totale 20 schede e 20 possibili guasti e crash molto probabili

2a soluzione)
32 nodi = 1 processore e 32 piccolissimi slave in bus RS485 con 4 fili (a volte 4 fili qualsiasi non ci sono troppe pretese sul cavo da usare a meno che non fai distanze enormi)

io in 14 anni di utilizzo di sistemi RS485 accesi ancora oggi non ne ho mai riavviato uno
450 schedine circa piazzate ne avrò sostituite per guasto una decina.

Sinceramente il 485 non mi ha mai dato rogne, io mi giocherei una mano che questi shield ethernet usati come nodi mi darebbero troppi problemi e lamentele. Alla fine ci rimetto e perdo la faccia :slight_smile:

Però ripeto ognuno se lo fa un po' come vuole, anzi se qualcuno lo fa lo usiamo come cavia :slight_smile:

ciao

Interessante..Ma nella soluzione RS485 i nodi sono arduino mini? Dubito se hanno 14 anni :slight_smile: E il processore? Potresti fornire qualche dettaglio, o qualche link? Grazie!

Non metto in dubbio che, strettamente parlando di domotica, il TCP/IP non sia il protocollo piu adatto. In fondo e nato per connessioni packet-switched chilometriche, quando non intercontinentali. Lo slowstart, l'handshake e altri meccanismi "si pagano" e nel contesto domestico sono pressoche` inutili.

D'altra parte, la connessione ethernet e piu versatile e sono sempre di piu` gli elettrodomestici che la supportano. I componenti sono ampiamente disponibili ed economici; Con Arduino ethernet (50 euro) non sono necessarie due schede..Chiaramente con un numero di nodi simile al tuo esempio la spesa delle schede inizia a crescere, ma il mio progetto riguarda 4, al massimo 5 nodi; anche io se lo facessi per altre persone probabilmente opterei per RS485 (da come lo descrivi, io non lo conosco) ma questo progetto riguarda casa mia.

In un altro topic ( http://arduino.cc/forum/index.php/topic,87468.0.html ) mi chiedevo se l'adozione del PoE (uno switch compatibile, oppure alcuni injector punto-punto) potrebbe portare ulteriori vantaggi a questa soluzione (spt. dal punto di vista dei consumi). Voi avete esperienza in materia?

Ultima domanda: se volessi progressivamente documentare quello che sto facendo, sia per me che per permettere ad altri di migliorarmi/criticarmi mi consigliate il playground?

1a soluzione)
10 nodi = 10 processori + 10 chip per ricevere e trasmettere dati LAN Totale 20 schede e 20 possibili guasti e crash molto probabili

Io immaginavo di utilizzare 10 Arduino Ethernet (chip+shield integrati) quindi Totale 10 schede indipendenti, sono tante ma sono indipendenti, sessun conflitto, nessun albero, nessun elemento a cascata che pregiudica l'altro... li collego al router internet e li gestisco con la massima semplicità tramite pagina web anche se sono dall'altra parte del mondo. Se uno si guasta perdo solo il controllo di una zona... pazienza, prendo un Arduino di riserva lo programmo e in 10 minuti ristabilisco la funzionalità completa.
Inoltre, nel mio caso, facendo un impianto da zero in ogni caso avrei fatto cablare i principali ambienti della casa con cavi di rete Cat 6 o 7.... perché i Pc e il TV viaggiano su rete lan e presto anche i maggiori elettrodomestici.
E' vero che avendo 10 arduino ovviamente aumentano le probabilità di guasto, ma è anche vero se eventualmente se ne guasta uno si ferma solo 1 zona su 10, mentre se hai solo un master, anche se la probabilità di guastarsi è bassa... se si ferma ...si ferma tutto!

2a soluzione)
32 nodi = 1 processore e 32 piccolissimi slave in bus RS485 con 4 fili (a volte 4 fili qualsiasi non ci sono troppe pretese sul cavo da usare a meno che non fai distanze enormi)

Cosa utilizzi come Master e Slave?
come funziona il bus RS485?
come vengono gestite le trasmissioni master-slave e i problemi di conflitto?
se va in tilt il master si blocca tutto il sistema?

E' un bel confronto, non conosco il bus RS485 mi piacerebbe conoscere qualcosa in più...

No non parlo di arduino, parlo di schede Americane, loro erano fissati con sistemi elettronici complessi già molto prima degli Italiani :slight_smile: praticamente abbiamo importato le loro tecnologie, però io sto tentando di colloquiare con i loro protocolli (che in teoria sarebbe furto), ma soprattutto a me interessa ripetere lo schema a blocchi, il principio di funzionamento delle loro apparecchiature che funzionano bene, molto costose direi, studiando i tipi di chip impiegati, perchè vengono usati quelli, le opzioni di configurazione la svariata gamma di interfacce, insomma faccio il cinese, il casino è capire cosa c'e' dentro le eprom, ma quello è il meno forse non è proprio importante saperlo. vedremo mi ci vuole tempo e anche un po' di denaro a fondo perso, ma c'e' crisi e manovra!!.

bye

Aggiornamento:

dopo un breve periodo di apprendimento, mi sono lanciato nello sviluppo di un "framework" per supportare la mia idea di domotica su Arduino. Sono partito dal codice generato da domoticHome, per estenderlo e generalizzarlo.

La mia idea era di creare tre "entità": nodi, devices e messaggi. Ognuno degli "attivatori" o dei "sensori" sarebbe stato un'implementazione del device (is-a device), il cui unico comando di interfaccia avrebbe dovuto essere "processCommand". Il nodo avrebbe dovuto rappresentare ogni arduino "fisico", col suo IP, gateway e subnet. Il ciclo di vita di un nodo avrebbe previsto di ricevere un messaggio, capire se il device destinatario è nella lista del nodo e, nel caso, eseguirlo quindi rispondere (nodo has devices).

Dai primi test i risultati sembravano incoraggianti, ma presto mi sono scontrato con problemi che riconduco alla limitatezza della memoria RAM. Infatti, dopo aver notato dei comportamenti inconsistenti, ho incluso la libreria freemem, constatando che già prima dell'entrata nel loop() avevo a disposizione meno di 500bytes di RAM. Spesso, eseguendo i primi test, freemem restituiva valori negativi o inconsistenti da cui ho dedotto i miei problemi; anche se, a onor del vero, non avrei mai detto di usare tutta quella memoria (in fondo si tratta di "solo" tre classi con poche variabili ognuna)

Ora sono "bloccato", nel senso che non riesco a dire se il mio approccio è fattibile (dopo aver adottato una serie di accorgimenti e ottimizzazioni) o se devo ripiegare su qualcosa di molto più "stupido" (niente superclassi, interfacce nè stringhe). In particolare non sono sicuro che i problemi discendano veramente dall'insufficienza di memoria piuttosto che dalla mia scarsa abilità col C++...Magari ho scazzato qualche puntatore e mi sembra di aver esaurito la RAM??

Se avete suggerimenti sono i benvenuti =(

Ciao
io sto realizzando un ambiente "misto" integrando l impianto tradizionale con l arduino

ciao
abernasc

Potresti postare il circuito usato per il dimming delle luci? E' a 220V ?

Grazie

Il massimo sarebbe prendere in prestito protocolli di comunicazione con le varie interfacce da altre tecnologie anche se ludiche tipo il fermodellismo digitale.
Se qualcuno conosce l'inglese e ha un po' di tempo potrebbe dare un'occhiata a questo standard:
DCC Standards & Recommended
http://www.nmra.org/standards/DCC/standards_rps/DCCStds.html
e leggere i vari documenti.
Con questa tecnologia puoi colloquiare senza problemi con una centrale o più, e varie interfacce che possono comandare luci, motori, relais, feedback di stato, feedback vari analogici o digitali.
Può essere una base di partenza per sviluppare un protocollo ad hoc partendo da questo.
Ciao

Mi ero appassionato al post =(

Per utilizzare direttamente relè a 220V collegati all'Arduino io ho usato questa: http://www.sinergoautomation.it/default.asp?pagina=440
Un po' più grossa ma permette di gestire direttamente un'utenza standard.
(inoltre i relè hanno due posizioni NA/NC e quindi possono essere utilizzati anche come deviatori)