Souliss, Domotica e IoT basata su Arduino ed Android

@ legacy

Potremmo discutere per ore, rimanendo ognuno sulle proprie posizioni. Le nostre sono due soluzioni legate a due concetti diversi ed in parte divergenti. Il mondo è bello perché è vario :slight_smile:

Venendo ai tuoi commenti:

Il costo non è solo quello del nodo in se (maggiore di 20 euro), ma il costo degli alimentatori e dell'alimentazione, il maggiore spazio richiesto. Ho sempre creduto nel "quello che non c'è non si rompe" e l'idea di distribuire i compiti tra i nodi è uno degli aspetti principali del progetto.

Suddividere il codice in librerie è già un modo per "imperare", se poi girano su un unico nodo o su nodi diversi, se fatto bene non cambia nulla. Anche io sviluppo il codice da solo, in tempi relativamente lunghi (il progetto è parito a Maggio del 2010) dedicandoci qualche ora la sera. Ultimamente ho ricevuto delle proposte di collaborazione per la parte di interfaccia :slight_smile:

Se consideriamo la funzionalità di un publish/subscribing, gli eventi difficilmente si sovrappongono ed è per questo che uso questa funzionalità in MaCaco :), ma ricorda che sottovalutare Murphy è il primo passo verso il baratro :slight_smile:

L'implementazione parziale del TCP/IP di cui si parlava, era relativa al supporto alla frammentazione dei pacchetti e non all'algoritmo che regola l'occupazione della banda. Tra le righe il W5100 non supporta la frammentazione dei pacchetti (se non ricordo male). Quindi il problema non si pone.

Ritornando al protcollo MaCaco, utilizzare un protocollo derivato e non il Modbus è legato ai motivi già discussi, come tutte le decisioni ha dei pregi e dei vantaggi. Personalmente, non intendo introdurre una compatibilità verso prodotti commerciali.
La compatibilità verso prodotti commerciali proprietari ha senso se si sta progettando prodotto competitiore low cost, ma per un progetto Open Source non ne vedo l'utilità. Inoltre i costi necessari per testare ciò sarebbero fuori dalla mia portata.

Leggendo alcune tue considerazioni, come costo orario e retrocompatibilità, sembra che tu stia lavorando ad un progetto proprietario da immettere sul mercato. In quel caso, utilizzare un numero maggiore di nodi hardware ha un vantaggio diretto in termini di danari, ma è il motivo (a mio avviso) per cui i prodotti commerciali hanno un nodo per il clock, un nodo per gli scenari, un nodo per ogni cosa...

Relativamente a vNet, è un modo per avere tre funzionalità: astrazione, routing e bridging. Queste sono fornite a livello IP, ma non ho intenzione di sviluppare IP su un nodo, quindi uso una soluzione diversa con diverse analogie con IP. Questo mi garantisce delle funzionalità di base anche su interfacce MAC.

Detto questo, spero che da questa discussione nasca la possibilità di migliorare lo sviluppo del mio codice, basandomi su quanto da te fatto e viceversa. Ma tranquillo, non prenderò Apache! :slight_smile:

Saluti,
Dario.

I commerciali venderebbero anche la madre :slight_smile:

Ho una decina di schde, tra arduino e chibiduino che utilizzo di volta in volta con cablaggi temporanei.

Per il CRC, anche aggiungendolo non avrei la compatibilità con il Modbus. Ho functional code diversi per risposta e richesta, questo semplifica tanto la gestione e mi risparmia la gestione di stato dei messaggi.

Saluti,
Dario.

Salve, ho provato a compilare l'esempio 6 di Souliss su Arduino Ethernet. Per non intasare il forum, ho annotato i miei problemi sul wiki del progetto: https://sourceforge.net/p/veseo-souliss/wiki/Home/

Souliss sembra davvero un ottimo lavoro, complimenti, anche se la curva di apprendimento pare ripida! :slight_smile:

Ciao,

il progetto supporta l'IDE 0022, in effetti non è riportato in modo chiaro. I problemi che hai riportato nei commenti al wiki sono tutti legati alla nuova IDE in versione 1. Nel wiki ho riporato alcune risposte.

Ti consiglio di utilizzare l'IDE 0022, il supporto alla versione 1 arriverà in futuro.

Saluti,
Dario.

interessante come per 4 volte ti e' stato detto di usare la versione 022 (anche la 023 va bene), e tu continui come se niente fosse.
Lo scopo principale e' farlo funzionare o farlo funzinare su ide 1.0 ? :slight_smile:

Testato:
interessante come per 4 volte ti e' stato detto di usare la versione 022 (anche la 023 va bene), e tu continui come se niente fosse.
Lo scopo principale e' farlo funzionare o farlo funzinare su ide 1.0 ? :slight_smile:

Colpa mia, sono io ad aver ripetuto quell'informazione più volte giusto per tenerne traccia. Ho risposto a tutte in un colpo.

Per questione di ordine, ho riportato i problemi evidenziati in precedenza come ticket rimuovendo i commenti dal wiki.

Invito chiunque voglia ricevere supporto sul codice ad utilizzare i ticket, segnalando l'apertura anche via messaggio privato sul forum.

Grazie,
Dario.

E' disponibile la release A2.1 su SourceForge http://sourceforge.net/projects/veseo-souliss/, i contenuti sono invariati ma sono stati risolti alcuni bug.

Come suggerito da Dario vi posto il link alla demo del client Android:

è ancora in fase di sviluppo, ma comincia a prendere forma. Scusate l'inglese da televendita, sono un po' arrugginito.

complimenti,
bel lavoro,
mi confermi che per ora si puo' usare solo sul wiz ? niente enc28j60 ?

Testato:
complimenti,
bel lavoro,
mi confermi che per ora si puo' usare solo sul wiz ? niente enc28j60 ?

Ciao,

attualmente vNet supporta W5100 e AT86RF230, ed in questi giorni stiamo valutando l'ipotesi di introdurre anche il supporto per ENC28J60.

Il punto interrogativo più grande è l'utilizzo di RAM, sicuramente maggiore del W5100. Da quello dipenderà il tipo di supporto, ma spero di riuscire nei prossimi mesi a completare l'integrazione.

Saluti,
Dario.

Ciao,

io personalmente non ho mai riscontrato problemi nella gestione di congestione del TCP, inoltre la quantità di dati immessa nella rete è talmente bassa da non creare alcun sospetto al riguardo.
Nelle mie applicazioni ed in Souliss il W5100 non viene mai utilizzato insieme ad una memoria SD, quindi non so dirti se ci siano problemi al riguardo, ma in tal caso, credo siano da imputare alle librerie ad alla gestione SPI.

Relativamente a Souliss, non esiste una "competizione" tra W5100 ed EN26J80. Il punto, come evidenziato, è nella gestione delle socket TCP/IP e del conseguente impatto in RAM.
Attualmente, con l'utilizzo dell'interfaccia JSON, l'utilizzo di TCP/IP è imprenscindibile, ma è in valutazione quante socket riesco a gestire nel 328.

In vNet il W5100 resterà la scelta preferita, ma il supporto al EN26J80 è in valutazione perché ci sono alcune schede Arduino compatibili, adatte alla domotica che utilzzano tale chip.

Saluti,
Dario.

qualcuno ha mai provato lo stack µTCP/IP che c'è su Conitki o TinyOS?

legacy:
tu su 328 sei messo molto peggio, fammi sapere quale e' il tuo consumo di risorse su arduino/Enc. Ho in previsione una xduino board + enc (e' una 328 tipo 2009 con su la enc)

Credo che alla fine riuscirò ad integrarlo senza la possibilità di avere due stack contemporanei e quindi senza la possibilità di fare il bridge Ethernet e Wireless, ma vedremo. Appena ho qualche dettaglio lo pubblico sul forum.

In alternativa al 328, puoi usare il 644 che ha 4Kbyte di RAM in più.

legacy:
ti ho fatto pubblicita' sul forum nel thread dove si parlava di articoli su arduino+wiz perche' il tuo e' un gran bel lavoro.

Grazie mille, il forum è un buon strumento pubblicitario, attraverso il quale Souliss ha alcune collaborazioni, tra le quali quella di Alessandro per il client Android.

Qual'è il link del topic?

Saluti,
Dario.

BrainBooster:
qualcuno ha mai provato lo stack µTCP/IP che c'è su Conitki o TinyOS?

E' un codice molto pulito, infatti sono combattuto nell'utlizzare quello stack con la libreria dell'EN28J60. Lo stack TCP/IP fornito con le librerie dell'EN28J60 non sono il massimo della vita.

Saluti,
Dario.

legacy:
Mi ero dimenticato di rispondert
http://arduino.cc/forum/index.php/topic,94572.0.html

Dove hanno presentato l'articolo e dove abbiamo ricordato i vari problemi.
In quel topic sono citati un pio di link di altri topic dove i sono discussi anche workaround.

Tnk.

Nuova documentazione disponibile al seguente link http://sourceforge.net/projects/veseo-souliss/files/User%20Guide/

E' online il sito del progetto all'indirizzo www.souliss.net, continuerò ad utilizzare questo topic per riportare gli aggiornamenti.

Saluti,
Dario.

grazie :slight_smile:

E' disponibile per il download la versione A2.3, con diverse modifiche al JSON server necessarie per supportare l'applicazione Android sviluppata da shineangelic.

Dai repository è attualmente possibile scaricare sia Souliss, sia l'applicazione Android, i link per entrambi sono disponibili nella sezione download del sito di Souliss.

Saluti,
Dario.