(Ci vuole un Fiore)

It takes a Flower

Tomorrowdata's Blog

SD and micro-SD management with linux dd

If you play with IoT, sooner or later, you’ll need to flash, backup and restore SD or micro-SD.

Linux offers the dd command to deal with binary dumps of devices:
https://en.wikipedia.org/wiki/Dd_(Unix)
http://manpages.ubuntu.com/manpages/lucid/man1/dd.1.html

The full backup process results in:

  • insert the SD (of course …)
  • find the mount point with dmesg, let’s say it is /dev/sdX
  • unmount the SD mount points:
    umount /dev/sdX1
    umount /dev/sdX2
    umount /dev/sdX...
  • dump the SD content to file:
    sudo dd bs=4M if=/dev/sdX of=[dump file name].img
    pay attention to of parameter: if you wrongly set it to some /dev/sd[your hard drive] you’ll wipe the content of your disk!
    bs is the size of blocks to be read and written one at a time, in bytes

The full flash (or restore) process goes like:

  • insert the SD (of course …)
  • find the mount point with dmesg, let’s say it is /dev/sdX
  • unmount the SD mount points:
    umount /dev/sdX1
    umount /dev/sdX2
    umount /dev/sdX...
  • dump the SD content to file:
    sudo dd bs=4M if=[image file name].img of=/dev/sdX
    pay attention to of parameter: if you wrongly set it to some /dev/sd[your hard drive] you’ll wipe the content of your disk!
    bs is the size of blocks to be read and written one at a time, in bytes

Now, consider the following case:

  • SD size = 16GB
  • image size = 8GB
  • you can flash the 8GB image onto the 16GB SD, of course all the previous data will be wiped out (not the ones in the second half of SD, but chances are that you won’t be able to access them anyway)
  • When you backup the 16GB SD with the previous process … your backup image is 16GB, as the SD physical size, not as the image you flashed on it.
  • if you want the image back to 8GB (maybe you want to flash it onto another 8GB SD) you can use the count parameter of dd command:
    count is expressed in number of blocks as they are defined in the bs parameter
    so you would say, if bs=4M, count = 8*1024*1024*1024/(4*1024*1024) = 2048 … NO!!
    because 8GB is not 8*1024*1024*1024, in fact 8G (without B) == 8*1024*1024*1024,
    while 8GB == 7948206080 bytes
    and so the correct count setting is count = 7948206080/(4*1024*1024) = 1895

Hope you can find it helpful!

Un progetto a supporto della IoT Openness

Internet in pochi anni ha cambiato radicalmente il modo di vivere e di lavorare delle persone e delle aziende, mettendo inizialmente in collegamento tra loro i computer, e successivamente permettendo l’incontro globale tra e con le persone (accessibilità delle informazioni, social networks, servizi on line, etc).
Ora è il turno della connessione tra e con le infinite “cose” o per meglio dire “oggetti” che ci circondano e con cui interagiamo nella vita quotidiana. Questo cambiamento, chiamato IoT acronimo di “Internet of Things” (o “Internet delle Cose”), secondo l’opinione di molti esperti, si preannuncia ancora più dirompente.
Possiamo affermare che “IoT” è permettere alle persone e alle aziende di comunicare, controllare, gestire, utilizzare oggetti in remoto quando questo sia veramente utile e profittevole, creativo o semplicemente divertente.
La realizzazione di progetti IoT avviene utilizzando apposite piattaforme, di cui stiamo assistendo al fiorire di una grande quantità di proposte, alcune delle quali promosse dai grandi player di Internet come Google, Facebook, Oracle e Cisco: sistemi chiusi o proprietari, sistemi parziali o industriali. Tutti sistemi interamente gestiti da terzi o per i quali occorrono competenze iperspecialistiche per essere utilizzati.

In questo contesto, se l’Internet delle Cose permetterà al nostro frigo di essere connesso, a nostro avviso questo dovrà servire a poterlo aggiornare via internet per migliorarne l’efficienza energetica o per ripararlo rapidamente, prima che per avvertirci della mancanza del latte con una notifica sponsorizzata da un supermercato.
Dato il carattere dirompente di questa tecnologia, è indispensabile lavorare fin da subito per renderla accessibile alla più vasta platea di persone possibili, con strumenti caratterizzati da interoperabilità, fruibilità, etica e ecologia.

Questo impegno collettivo noi lo definiamo “IoT Openness”.

Il progetto IOTTLY è nato con l’intento di contribuire alla realizzazione della IoT Openness, con due passi significativi:
* Creando una piattaforma strutturata come una distribuzione software Open Source (Distro) che supporti la creazione e lo sviluppo di progetti IoT, rendendo più semplice connettere, gestire e programmare via Internet schede elettroniche come Arduino, Raspberry Pi, Udoo.
* Promuovendo e sostenendo una comunità che collabori sia all’ulteriore sviluppo della distro, sia con la condivisione di progetti IoT di prototipazione industriale o di creatività digitale.

Il carattere completamente Open Source di IOTTLY consentirà di affrontare le principali problematiche che stanno emergendo nello scenario IoT: l’interoperabilità, la sicurezza e la privacy. Infatti, per raggiungere una reale interoperabilità è necessario che ogni mattone di questa costruzione possa essere condiviso da produttori e programmatori, per poterli applicare alle soluzioni, piattaforme o dispositivi più differenti. A sua volta, una diffusione così ampia del codice sorgente aumenterà la sicurezza, rendendo possibile un processo di test incrociati, effettuati da soggetti indipendenti, in contesti applicativi potenzialmente molto diversi. Inoltre, rispetto alla domanda di privacy, la pubblicazione del codice che gestisce i dati potrà costituire una risposta più incisiva, che non limitarsi a chiedere all’utente di accettare un regolamento formale.

IOTTLY vuole permettere a professionisti, educatori e maker di realizzare progetti di Internet of Things nello stesso modo in cui le distribuzioni come Ubuntu hanno reso più semplice l’utilizzo di Linux per milioni di persone. Utilizzando una distribuzione, sia gli esperti, sia gli utenti non tecnici potranno concentrarsi sul cuore funzionale o creativo dei loro progetti IoT, affidando a IOTTLY gli aspetti di integrazione e ottimizzazione degli strumenti open esistenti e dei nuovi pacchetti specifici.

Arrivare a realizzare progetti IoT complessi con pochi click è un percorso che richiede una ricca esperienza delle esigenze dell’utente e competenze specifiche sui delicati aspetti della comunicazione tra gli oggetti. Insieme è anche indispensabile una vasta comunità di tecnici e Maker che sostenga e verifichi il progetto dal lato dello sviluppo, e ne promuova le sue applicazioni nel mondo creativo del fai da te tecnologico. Il moltiplicarsi di realizzazioni concretamente utilizzabili nella vita quotidiana potrà essere il fattore determinante nel diffondere la percezione di questa tecnologia nel grande pubblico.

L’idea del progetto IOTTLY è maturata nell’ambito del lavoro che il team sta portando avanti in TomorrowData (www.tomorrowdata.io), una nascente start-up che realizza soluzioni verticali di infrastrutture IoT e applicazioni predittive di Machine Learning alla portata delle PMI.

La presentazione del progetto è avvenuta con il lancio di una campagna su Kickstarter (http://kck.st/1Pze4IG) che si concluderà il 4 Ottobre, ma che è intenzione dei promotori portare avanti indipendentemente dall’esito della raccolta.
Maggiori informazioni tecniche su questo progetto si possono trovare nella pagina della campagna e sul sito www.iottly.org.

Stefano Terna, Daniele Grieco

Un progetto a supporto della IoT Openness

Internet in pochi anni ha cambiato radicalmente il modo di vivere e di lavorare delle persone e delle aziende, mettendo inizialmente in collegamento tra loro i computer, e successivamente permettendo l’incontro globale tra e con le persone (accessibilità delle informazioni, social networks, servizi on line, etc).
Ora è il turno della connessione tra e con le infinite “cose” o per meglio dire “oggetti” che ci circondano e con cui interagiamo nella vita quotidiana. Questo cambiamento, chiamato IoT acronimo di “Internet of Things” (o “Internet delle Cose”), secondo l’opinione di molti esperti, si preannuncia ancora più dirompente.
Possiamo affermare che “IoT” è permettere alle persone e alle aziende di comunicare, controllare, gestire, utilizzare oggetti in remoto quando questo sia veramente utile e profittevole, creativo o semplicemente divertente.
La realizzazione di progetti IoT avviene utilizzando apposite piattaforme, di cui stiamo assistendo al fiorire di una grande quantità di proposte, alcune delle quali promosse dai grandi player di Internet come Google, Facebook, Oracle e Cisco: sistemi chiusi o proprietari, sistemi parziali o industriali. Tutti sistemi interamente gestiti da terzi o per i quali occorrono competenze iperspecialistiche per essere utilizzati.

In questo contesto, se l’Internet delle Cose permetterà al nostro frigo di essere connesso, a nostro avviso questo dovrà servire a poterlo aggiornare via internet per migliorarne l’efficienza energetica o per ripararlo rapidamente, prima che per avvertirci della mancanza del latte con una notifica sponsorizzata da un supermercato.
Dato il carattere dirompente di questa tecnologia, è indispensabile lavorare fin da subito per renderla accessibile alla più vasta platea di persone possibili, con strumenti caratterizzati da interoperabilità, fruibilità, etica e ecologia.

Questo impegno collettivo noi lo definiamo “IoT Openness”.

Il progetto IOTTLY è nato con l’intento di contribuire alla realizzazione della IoT Openness, con due passi significativi:
* Creando una piattaforma strutturata come una distribuzione software Open Source (Distro) che supporti la creazione e lo sviluppo di progetti IoT, rendendo più semplice connettere, gestire e programmare via Internet schede elettroniche come Arduino, Raspberry Pi, Udoo.
* Promuovendo e sostenendo una comunità che collabori sia all’ulteriore sviluppo della distro, sia con la condivisione di progetti IoT di prototipazione industriale o di creatività digitale.

Il carattere completamente Open Source di IOTTLY consentirà di affrontare le principali problematiche che stanno emergendo nello scenario IoT: l’interoperabilità, la sicurezza e la privacy. Infatti, per raggiungere una reale interoperabilità è necessario che ogni mattone di questa costruzione possa essere condiviso da produttori e programmatori, per poterli applicare alle soluzioni, piattaforme o dispositivi più differenti. A sua volta, una diffusione così ampia del codice sorgente aumenterà la sicurezza, rendendo possibile un processo di test incrociati, effettuati da soggetti indipendenti, in contesti applicativi potenzialmente molto diversi. Inoltre, rispetto alla domanda di privacy, la pubblicazione del codice che gestisce i dati potrà costituire una risposta più incisiva, che non limitarsi a chiedere all’utente di accettare un regolamento formale.

IOTTLY vuole permettere a professionisti, educatori e maker di realizzare progetti di Internet of Things nello stesso modo in cui le distribuzioni come Ubuntu hanno reso più semplice l’utilizzo di Linux per milioni di persone. Utilizzando una distribuzione, sia gli esperti, sia gli utenti non tecnici potranno concentrarsi sul cuore funzionale o creativo dei loro progetti IoT, affidando a IOTTLY gli aspetti di integrazione e ottimizzazione degli strumenti open esistenti e dei nuovi pacchetti specifici.

Arrivare a realizzare progetti IoT complessi con pochi click è un percorso che richiede una ricca esperienza delle esigenze dell’utente e competenze specifiche sui delicati aspetti della comunicazione tra gli oggetti. Insieme è anche indispensabile una vasta comunità di tecnici e Maker che sostenga e verifichi il progetto dal lato dello sviluppo, e ne promuova le sue applicazioni nel mondo creativo del fai da te tecnologico. Il moltiplicarsi di realizzazioni concretamente utilizzabili nella vita quotidiana potrà essere il fattore determinante nel diffondere la percezione di questa tecnologia nel grande pubblico.

L’idea del progetto IOTTLY è maturata nell’ambito del lavoro che il team sta portando avanti in TomorrowData (www.tomorrowdata.io), una nascente start-up che realizza soluzioni verticali di infrastrutture IoT e applicazioni predittive di Machine Learning alla portata delle PMI.

La presentazione del progetto è avvenuta con il lancio di una campagna su Kickstarter (http://kck.st/1Pze4IG) che si concluderà il 4 Ottobre, ma che è intenzione dei promotori portare avanti indipendentemente dall’esito della raccolta.
Maggiori informazioni tecniche su questo progetto si possono trovare nella pagina della campagna e sul sito www.iottly.org.

Stefano Terna, Daniele Grieco

A project to support IoT Openness

As we all know, the Internet changed everything by connecting computers at first, and then by connecting people, thus affecting the way we live and how we do business. Now the time has come to connect with the infinite number of “things” that make up our daily lives. And this change is going to impact our world in a much more dramatic way.
We can say, “IoT” is all about enabling individuals and businesses companies to control, manage, and communicate with remote objects in a creative and productive way, whether it be for profit or just for fun.
Right now “IoT Platform” is a label associated with all kinds of systems, some of which have been sponsored by big Internet players such as Google, Facebook, Oracle, and Cisco: from closed or proprietary systems, industrial systems, systems entirely operated by third parties, or systems that require a set of highly specialized technical skills.
If the Internet of Things is going to allow our fridge to be connected, then it should involve ways to remotely upgrade it, enhance its energy efficiency, and repair it. It should generate much more than a simple alert telling you when the milk is expired, accompanied by supermarket ads.

Because of the disruptive nature of this technology, it is essential that we work towards making it accessible to the largest possible number of people, with the help of tools that share the following qualities: interoperability, usability, ethical transparency and environmental safety.

We define this community commitment the “IoT Openness”.

The IOTTLY project is being developed with the aim of contributing to the IoT Openness, with two significant steps:
By creating an IoT platform designed as an Open Source Software Distribution (Distro) that supports the creation and development of Internet of Things projects, making it easy to connect, manage and program boards like Arduino, Raspberry Pi, Udoo via Internet.
By supporting a community that is going to collaborate to further develop this Distro, and share IOT projects which can be for professional prototyping or for DIY.

IOTTLY will be fully Open Source, enabling itself to address the main issues arising in the IoT scenario: interoperability, security and privacy. A true interoperability can be achieved only if the building blocks can be shared by producers and developers among the different solutions, platforms and devices. In turn, such a wide spreading of the same code base will increase security, by enabling cross testing processes, performed by multiple independent parties in different application contexts. Moreover publishing the code that handles the data will result in a much stronger answer to the privacy demand than just asking the user to accept formal policies.

IOTTLY will enable professionals, educators and makers to implement IoT projects in the same way that distributions like Ubuntu have made it easy for millions of people to use Linux. With the value provided by a distribution approach, it will be easier for both technical experts and average users to focus on the core functional or creative aspects of their IoT projects, while entrusting IOTTLY with the integration and optimization aspects of existing open tools and new packages.

The realization of complex IoT projects through just a few clicks requires both a deep understanding of the user’s needs and also the kind of technical competence that enables objects to communicate efficiently with each other and with the end user. Therefore, a wide base of technicians and makers must have the opportunity to collaborate, support and test the project during the development phase. The same community will then be able to promote new applications following the established practices of the world of digital creations. The future of this technology will depend on a growing number of custom real-life applications, shared among do-it-yourselfers and the public in general.

The founders aim is to establish a seamless educational and professional community around IOTTLY that would grow according to the functional challenges posed by IoT technologies.

More details about this fascinating project, as well as additional technical information, can be found on the Kickstarter campaign’s page http://kck.st/1Pze4IG.

iottly remote control & telemetry l’origine

[edited 2018] L’idea di Iottly (iottly.com) nasce nella primavera del 2015. Eravamo convinti (a ben ragione vedendolo oggi) che introdurre sul mercato una soluzione per progetti IoT sostenuta da una comunità, che non richiedesse competenze di alto livello e dedicata in particolare ai maker e per gli ambienti educativi, rappresentasse un passaggio fondamentale.

Preparammo e lanciammo con grande entusiasmo una campagna su Kickstarter (questo il link) che aveva da pochi giorni aperto la possibilità di lanciare progetti anche dall’Italia. La campagna non raggiunse il traguardo economico, ma fu un successo per i riscontri e i contatti che si generarono, al punto che decidemmo (caso unico crediamo tra le campagne di Kickstarter) di realizzare comunque quanto avevamo previsto finanziando autonomamente il progetto e rispettando poi la scadenza di consegna che ci eravamo dati.
Questa pagina è la traduzione in italiano del testo della campagna.
Stefano e Daniele

La prima Distro per IoT Open Source

IOTTLY for Makers aiuta ad entrare nel mondo dell’Internet delle Cose.

Rende semplice realizzare progetti di creatività da controllare via internet,

per il fai da te tecnologico e per scopi educativi.

 

IOTTLY for Makers – Il progetto in breve

IoT è l’acronimo di Internet of Things, in italiano Internet delle Cose:

  • Una via di mezzo tra un walkie-talkie e un telecomando universale via internet per le cose che usiamo ogni giorno
  • Un insieme di tecnologie che renderà possibile controllare e usare via internet qualsiasi oggetto della vita quotidiana, anche quelli che non sono stati realizzati per avere questa possibilità
  • Una rivoluzione tecnologica alla quale vorremmo potesse prendere parte adesso il più ampio numero di persone possibile, perché ciascuno, capendo come funziona, possa esserne protagonista

Il primo passo è disporre di un sistema Open Source per realizzare progetti di Internet of Things in modo facile e immediato e senza competenze specifiche (per davvero e non solo a parole).

  • IOTTLY for Makers permette agli appassionati di fai da te tecnologico di controllare via internet la propria scheda Arduino, Raspberry Pi e UDOO attraverso una intuitiva web app di controllo.
  • IOTTLY for Makers scrive automaticamente il codice necessario per “spiegare” alla scheda quali comandi deve capire e quali risposte deve inviare: in Wiring per Arduino, in Python per Raspberry Pi e UDOO.
  • IOTTLY for Makers è accessibile in rete (o installabile dove vuoi tu).

Inoltre, proprio per l’importanza che l’Internet of Things avrà sempre più nei prossimi anni, IOTTLY for Makers è lo strumento ideale per programmi educativi negli istituti scolastici tecnici e scientifici che vogliano favorire la nascita e la crescita di competenze adeguate riguardo alla comunicazione via internet con e tra gli oggetti.

IOTTLY-for-Makers

La slide rappresenta tecnicamente cosa ci proponiamo di offrire con il goal di questa campagna.

Ma questo è solo il primo passo di un progetto molto più ampio.  Ti chiediamo pertanto un po’ di pazienza e di scorrere tutto il nostro progetto. Sarebbe fantastico per noi conoscere la tua opinione!

 

Il progetto IOTTLY

Rendere l’Internet delle Cose un sistema accessibile e sostenibile (IoT Openness)

Cercando Internet of Things (IoT) su Google otteniamo una marea di risultati. Anche senza ricorrere ai report di previsione delle principali società di analisi e ricerca del mondo IT [1], possiamo affermare che è un argomento di cui si parla molto, con autorevoli visioni,  innumerevoli definizioni e infiniti commenti.

Meno immediato è cogliere però cosa veramente si intenda con questa parola “magica”, certi però che sarebbe un errore pensare che si tratti di un argomento solo per specialisti perché i suoi sviluppi sono destinati ad entrare sempre più nella società e nell’economia reale.

Per noi  “IoT” è permettere alle persone e alle aziende di comunicare, controllare, gestire, utilizzare oggetti in remoto quando questo sia veramente utile e profittevole, creativo o semplicemente divertente.

Internet è nato inizialmente per mettere in collegamento i computer. Poi si è sviluppato per permettere l’incontro globale tra e con le persone (social, acquisti on line, etc) cambiando radicalmente il modo di vivere e di fare business. Adesso è il turno della connessione tra e con le infinite “cose” della vita di tutti i giorni, e questo cambiamento sarà ancora più dirompente.

Ma come avviene questa connessione?

Tornando su Google, per “IoT Platform” escono milioni di risultati: sistemi chiusi, sistemi proprietari, sistemi parziali, sistemi industriali. Tutti sistemi interamente gestiti da terzi o per i quali occorrono competenze iperspecialistiche per essere affrontati.

Noi siamo assolutamente convinti che, proprio per il carattere dirompente di questa tecnologia, sia invece indispensabile lavorare fin da subito per renderla accessibile alla più vasta platea di persone possibili, con strumenti caratterizzati da interoperabilità, fruibilità, etica e ecologia.

Fino ad oggi, quando si parla di innovazione tecnologica, i temi della consapevolezza dell’utente e dell’impatto reale sulla vita quotidiana, sono sempre stati affrontati in ritardo rispetto al grado di diffusione e di pervasività.

Per la prima volta crediamo sia possibile invece realizzare un approccio di divulgazione e informazione in contemporanea allo sviluppo della tecnologia stessa.

Perché pensiamo che se l’Internet delle Cose permetterà al nostro frigo di essere connesso, questo debba servire a poterlo aggiornare via internet per migliorarne l’efficienza energetica o per ripararlo rapidamente, prima che per avvertirici della mancanza del latte con una notifica sponsorizzata da un supermercato.

Per questo è nato il progetto IOTTLY.

Il progetto IOTTLY vuole contribuire alla IoT Openness[2], in due direzioni:

  • Realizzando una Software Distribution (distro[3]) Open Source per la realizzazione di progetti IoT, efficiente e affidabile, focalizzata sull’utente e sulla facilità di utilizzo (IoT for Human Beings), e capace di integrare e ottimizzare specifici strumenti open esistenti con nuovi pacchetti.
  • Promuovendo una comunità che collabori alla realizzazione della distro, e allo sviluppo di progetti da condividere.

IOTTLY vuole favorire la realizzazione di progetti IoT, nello stesso modo in cui le distribuzioni come Ubuntu hanno reso facile a milioni di persone l’uso di Linux. Facile per i tecnici, che così possono concentrarsi sullo specifico dei loro progetti ICT (e affidare a Iottly i dettagli della comunicazione), e, ancora di più, facile per i non-tecnici perché uno dei pilastri della nuova rivoluzione tecnologica sia davvero accessibile per tutti.

Ma prima di arrivare ai dettagli tecnici della IOTTLY distro, occorre qualche altra informazione.

Cosa significa fare un progetto di “Internet delle Cose”?

Per fare IoT innanzitutto servono delle cose, degli oggetti, animati o inanimati.

Gli esempi comuni possono essere: un irrigatore che innaffi quando serve, un cancello di casa da aprire, un portaombrelli che avverta se piove, una scarpa che racconta dove è stata, un termostato intelligente,  etc. Stiamo dunque parlando di cose che per un qualunque motivo, si vogliono gestire a distanza via internet.

Queste possono essere:

  • “Native smart things” (oggetti nati intelligenti  perché sono esse stesse un device  (come Nest, Peeple[4], etc.) o lo diventano collegate es. ad uno smartphone (come Parrot Flower Power, AwareCar[5], etc.). Normalmente sono già corredate di un sistema/app di controllo/gestione.
  • “Adoptive smart things” (oggetti resi intelligenti) perché vengono collegate ad una Scheda, oppure a sensori (es. di umidità per capire se il tuo giardino ha bisogno di essere irrigato, di presenza per rilevare quando ti avvicini al tuo cancello) e/o attuatori (per attivare il tuo irrigatore, per aprire il tuo cancello), a loro volta collegati ad una Scheda.

native-adoptive-smart-things

        Rientrano in queste casistiche sia gli ambiti di fai da te tecnologico che ambiziosi progetti industriali.

Per far parlare le “Adoptive smart things” (che è il caso di cui ci occupiamo) ci occorre dunque una Scheda:

  • una Microcontroller Board (come Arduino, Teensy, Touch Board, Particle Core, WiPy, etc.)
  • un Single Board PC (come Raspberry Pi, UDOO, CHIP, Arduino Yun, etc.)
  • una Scheda proprietaria per gli svariati usi industriali (realizzate da Siemens, ST, Oregon Scientific, etc.)

The-making-of-an-IoT-project

La Scheda permette di “conversare” con le “cose” e per farlo:

  • deve essere collegata ad internet via LAN, WiFi o rete cellulare (naturalmente nel caso di IoT project)
  • occorre insegnarle una serie di regole di scambio dei messaggi chiamate “protocollo di comunicazione” (come MQTT, COAP, XMPP, HTTP,  etc).
  • occorre insegnarle una “lingua” per definire il significato dei messaggi che scambierà con un Software di comunicazione.

Per voler fare un esempio, è come immaginare una lettera spedita per via aerea (internet) che è contenuta in un apposito tipo di busta (protocollo di comunicazione) e che contiene un messaggio che per essere compreso deve essere nella lingua di chi lo legge.

La lingua e il protocollo di comunicazione vengono insegnati alla Scheda caricando un apposito Firmware.

Nel Firmware, oltre alla componente comunicazione, deve esserci anche la componente di logica (capacità di eseguire funzioni). Questo è molto importante perché una Thing che parla via internet è IoT ma se non ha niente da fare è Internet of no-thing…

Generalmente le piattaforme IoT sul mercato lasciano all’utilizzatore il compito di programmare e eseguire questa operazione per la quale spesso occorrono particolari competenze specifiche.

A questo punto la Scheda è capace di far “parlare” la nostra “cosa” via internet con il software di comunicazione,  che può essere installato nel cloud, su un server o nel tuo pc.

Il tutto gestito da una applicazione web o residente che è quella con la quale si gestiscono le “cose” via internet.

 

IOTTLY  – IoT Open Source Distro

Progettato per l’industria (anche avanzata), per i makers (anche quelli che lo diventeranno) e qualunque cosa nel mezzo.

Perché un progetto IoT è impegnativo?

Perché Open Source?

Perché una Distro?

Il nostro obbiettivo di fondo, come detto, è realizzare una Distro Open Source per la realizzazione di progetti IoT, efficiente e affidabile, focalizzata sull’utente e sulla facilità di utilizzo (IoT for Human Beings), e capace di integrare e ottimizzare specifici strumenti open esistenti con nuovi pacchetti.

IOTTLY-continuous-integration

  • La creazione di un nuovo progetto IoT inizia selezionando una scheda da una lista preimpostata. Con la selezione IOTTLY permette di scaricare il firmware “IOTTLY-enabled” che viene caricato sulla scheda (via USB solo per la prima volta).
  • Non appena la scheda viene accesa, si connette automaticamente a IOTTLY. Da questo momento in avanti, è abilitata la funzione di aggiornamento firmware Over-The-Air
  • Usando il Message Designer è possibile definire e annotare (semanticamente) i messaggi. IOTTLY genera automaticamente il codice firmware per gestire tutti i messaggi in ingresso e in uscita dalla scheda.
  • Attrverso il code editor l’utente può modificare il codice generato e aggiungere la logica desiderata. IOTTLY è integrato con git e GitHub, consentendo lo sviluppo collaborativo del sorgente del firmware direttamente dall’editor.
  • IOTTLY si occupa di compilare il firmware sul server, gestendo le differenti configurazioni per i compilatori di ciascuna scheda.
  • La Console di Amministrazione dei Dispositivi viene configurata automaticamente con i messaggi definiti in precedenza. Le nuove funzionalità firmware appena implementate possono essere rapidamente caricate sulla scheda e testate, grazie alla funzione di aggiornamento firmware.

Key features of the solution:

  • Iottly explicitly addresses and solves the point about the communication with the boards, taking care of all the communication details (protocols, security, project specific message semantics)
  • Iottly supports developers/makers in the full cycle of coding – building – deploying over the air
  • Iottly features true bidirectional communication with the boards

The solution is found on top of a secure and reliable communication and management layer: the Iottly core.

The-design-of-an-IoT-platform

Lo sappiamo. Un famoso protagonista odierno della rivoluzione tecnologica (e non solo lui) vedendo lo schema qui sopra potrebbe affermare che “looks like every other IOT stack out there”.

Nel dettaglio degli aspetti tecnici siamo convinti sia possibile cogliere la completezza del progetto.

 

IOTTLY Technical Insights

Qui trovi gli approfondimenti tecnici.

Oggetto della campagna (Il primo passo del progetto IOTTLY)

Un progetto come quello che abbiamo descritto è intuibile di quanto sia molto ambizioso. Da solo però non potrebbe raggiungere il suo profondo obbiettivo di contribuire alla costruzione della Iot Openness.

Per questo è indispensabile che a fianco della soluzione software possa crescere una comunità che cresca, collabori e sostenga questo percorso.

Internet ha già dimostrato che la community crea innovazione. Noi siamo certi del grande potenziale dalla comunità dei baker di Kickstarter e abbiamo assoluta necessità nel vostro aiuto, del vostro supporto e dei vostri commenti. Avete suggerimenti, idee, critiche? Inviatecele senza problemi.

Senza il vostro supporto gran parte del nostro impegno sarebbe inutile.

Se raggiungeremo il nostro obbiettivo useremo la raccolta per realizzare:

IOTTLY for Makers, il primo passo del progetto IOTTLY

  • IOTTLY for Makers è un sistema Open Source per realizzare progetti di Internet of Things in modo facile e immediato e senza competenze specifiche (per davvero e non solo a parole).
  • IOTTLY for Makers permette agli appassionati di fai da te tecnologico di controllare via internet la propria scheda Arduino, Raspberry Pi e UDOO attraverso una intuitiva web app di controllo.
  • IOTTLY for Makers scrive automaticamente il codice necessario per “spiegare” alla scheda quali comandi deve capire e quali risposte deve inviare: in Wiring per Arduino, in Python per Raspberry Pi e UDOO.
  • IOTTLY for Makers è accessibile in rete (o installabile dove vuoi tu).

Inoltre, proprio per l’importanza che l’Internet of Things avrà sempre più nei prossimi anni, IOTTLY for Makers è lo strumento ideale per programmi educativi negli istituti scolastici tecnici e scientifici che vogliano favorire la nascita e la crescita di competenze adeguate riguardo alla comunicazione via internet con e tra gli oggetti.

Con questa campagna ci proponiamo quindi di realizzare:

  • prima di tutto… IOTTLY for Makers!!!
  • libreria IOTTLY per Arduino IDE
  • librerie Python per Raspberry PI e UDOO
  • Iottly customized Raspbian image
  • distro IOTTLY for Makers utilizzabile in cloud su iottly.org
  • pubblicazione dei sorgenti di IOTTLY for Makers su GitHub

 

IOTTLY for Makers Community

La nostra vera ambizione è creare intorno a IOTTLY una comunità, formativa e professionale allo stesso tempo, che possa crescere di pari passo al ritmo di innovazione che caratterizzano le tecnologie IoT.

Supporteremo la comunità con lo sviluppo di un sito web dove trovare:

  • tutte le informazioni per l’utilizzo del sistema IOTTLY e per il suo sviluppo futuro, adatte a vari livelli di competenza degli utenti
  • una galleria di esempi pratici di progetti IoT che gli utenti potranno condividere
  • gli strumenti utili per attività formative ed esercitazioni per docenti e studenti degli istituti tecnici e scientifici.

 

FOUNDERS,

Stefano Terna, 43 anni, una moglie, quattro figli e un gatto.
Dottorato in Fisica, e appassionato della Combinatorial Innovation.
Lavoro come software architect and developer, progettando e realizzando soluzioni principalmente per Internet of Things, Machine Learning e Database Systems (e possibilmente ogni combinazione delle tre). I miei principali progetti sono nei settori bancario, comunicazione, automotive, farmaceutico, energie rinnovabili e sicurezza sul lavoro.
Vivo con la mia famiglia a Buttigliera Alta, vicino Torino.

Daniele Grieco, 45 anni, una moglie, tre figli e due pappagalli.
Lavoro come consulente commerciale e agente di vendita. Seguo progetti con importanti clienti industriali. Opero per conto di principali aziende nei settori industria, edilizia e sicurezza sul lavoro.
Entusiasta di Internet, non perdo mai l’occasione di promuovere l’uso delle nuove tecnologie (con i miei clienti e con i miei amici).
Vivo con la mia famiglia a Pistoia.

Advisors

Pietro Terna
Retired professor of Economics – Università di Torino

Dmitriy Ofman
BS in Computer Engineering
Embedded software engineers and web developer

Grazie, grazie, grazie!!!

Un ringraziamento di cuore a tanti nostri amici per il loro preziosi suggerimenti. Siamo in debito con loro di molti boccali di birra: Giancarlo Capella per la sua competenza e intuizione nell’affrontare e risolvere i problemi di firmware; Raffaele Passannanti per la sua creatività e capacità di visione nello sviluppo del front-end  e nelle architetture scalabili. Piermassimo Aversano, il nostro salvagente nei burrascosi mari delle questioni fiscali. E inoltre a tanti nostri amici e fratelli che, nonostante non capissero un acca su cosa stavamo lavorando, ci hanno sempre incoraggiato. Se siamo riusciti a rendere questo progetto almeno un po’ comprensibile, molto è merito loro.

Sopra a tutto e a tutti però, noi amiamo le nostre famiglie (ciascuno la sua…): Elena, Lorenzo, Francesco, Elisa, Leonardo e Alessia, Mariachiara, Francesco, Tommaso. Ci hanno  curato, sostenuto e sopportato in ogni modo, soprattutto in questi ultimi tre mesi in cui siamo scomparsi dalla vita quotidiana per preparare la campagna. Siete la migliore famiglia che si possa avere!

Infine vorremmo ringraziarci di cuore a vicenda, perché, comunque andranno le cose nei prossimi tempi, ideare, pensare, sognare, preparare la campagna è stata una delle più entusiasmanti esperienze della nostra vita e della nostra amicizia.

Stefano e Daniele

RISCHI E SFIDE

Grazie alle competenze sviluppate e alle esperienze maturate nei tanti progetti di IoT/Machine Learning realizzati con successo fino ad oggi, possiamo sinceramente affermare che il team, con il coinvolgimento dell’abituale staff di consulenti esterni, è in grado di realizzare la Distro IOTTLY for Makers nei tempi previsti.

Tutti gli aggiornamenti sui progressi saranno notificati a tutti i nostri bakers, incluso ogni possibile imprevisto dovessere realizzarsi nella nostro piano di realizzazione.

 


[1] http://www.brookings.edu/blogs/techtank/posts/2015/06/9-future-of-iot-part-2

[2] http://blog.vdcresearch.com/embedded_sw/2015/03/will-patents-hinder-iot-openness.html

[3] Con distribuzione software (abbreviato distro) si intende una collezione di programmi relativi ad uno o più campi di applicazione, selezionati e distribuiti come unico pacchetto. Caratteristica del software di una distribuzione è quella di essere stato configurato in modo da realizzare un ambiente di lavoro più o meno omogeneo secondo una o più proprietà comuni. https://it.wikipedia.org/wiki/Distribuzione_(software)

[4] https://www.kickstarter.com/projects/1544392549/peeple-caller-id-for-your-front-door

[5] link a ks

 

REWARDS LEVEL

Reward #1 – Offerta di € 5 o più
IOTTLY Friend!

Menzione come backer sul sito iottly.org +
una nostra foto con un ringraziamento personale scritto a mano.

Consegna: Ottobre 2015

Reward #2 – Offerta di € 25 o più
IOTTLY Supporter

Reward #1 +
Accesso a IOTTLY for Makers in cloud su iottly.org.
Speciale per i backers di Kickstarter:
connessione fino 5 “cose” e messaggi illimitati* per 1 anno
(*) non per uso professionale

Consegna: Febbraio 2016

Reward #3 – Offerta di € 99 o più
IOTTLY Pioneer

Reward #1 + #2 +
Accesso anticipato a IOTTLY for Makers e al Community Forum,
per seguire attivamente lo sviluppo del progetto e prendere parte ai test di prova di IOTTLY for Makers

Consegna: Dicembre 2015

Reward #4 – Offerta di € 299 o più
IOTTLY Expert

Reward #1 +#2 +#3 +
IOTTLY WORKSHOP mezza giornata in classi da max 10 partecipanti
Incontriamoci e impara a realizzare il tuo progetto IoT con IOTTLY for Makers
nella nostra sede di Torino (spese di viaggio e soggiorno a tuo carico), oppure on line.

Consegna: Marzo 2016

Reward #5 – Offerta di € 299 o più
IOTTLY Scholar

Reward #1 + #2 +
IOTTLY WORKSHOP per studenti di Istituti tecnici o scientifici
Lezione interattiva per una classe di studenti per scoprire come si realizza un progetto IoT con IOTTLY for Makers.
Estimated delivery: Mar 2016

Consegna prevista: Aprile 2016

Reward #6 – Offerta di € 499 o più
IOTTLY Project Partner

Reward #1 +#2 + #3 + #4
Speciale per i Project Partner backers di Kickstarter:
connessione fino 5 “cose” e messaggi illimitati* per 3 anni
+ Inserimento del tuo nome nei crediti del IOTTLY source code
(*) non per uso professionale

Consegna: Febbraio 2016

Reward #7 – Offerta di € 4.900 o più (max 3 bakers)
IOTTLY Main Sponsor

Reward #1+#2+#3+#4+#6 +
Banner su iottly.org home page per un anno con il tuo nome o logo personale o aziendale come sponsor principale del progetto IOTTLY.
Consegna: Marzo 2016

 

Why IoT Open Source Distro

 


[full_width]

Why IoT projects are so hard

Because they are made up from hardware, firmware, communication and useful functions for the users.

Moreover, we know logic and useful functions cannot just “live in the cloud”.

They should be implemented “on the field”, near to whatever relevant is happening out there:

  • to benefit from real-time high frequency data captured by sensors
  • to build reliable solutions for critical industrial applications
  • to reduce action latency and bandwidth consumption
  • to make the data actionable even if the connection is discontinuous

But maintaining and changing useful functions while they live on the field, raises important issues:

  • what happens if the device won’t reboot?
  • what happens if firmware is corrupted during transfer?

Ultimately we know that an IoT project will stuck against firmware issues as soon as it matures from a prototype to a critical application and … putting it on the cloud won’t just be enough.

And even if a prototype is enough … well you’ll need to get involved with firmware development anyway.

[/full_width]

 


[full_width]

Why Open Source

open source plays a key role in building a truly interoperable IoT solution

  • and we know that any really useful IoT solution will have to be interoperable

open source enables collaboration and collective creativity

  • on IOTTLY’s own development
  • on IoT projects built with IOTTLY

open source puts the user and his freedom at the center of sw dev

  • but freedom is not real if the tools are left inaccessible
  • and so we are committed in contributing a step forward in the direction of accessibility

“Not only cloud”

  • freedom to use IOTTLY on our cloud, or to deploy it on your cloud, or install it wherever you like (on premise)

[/full_width]

 


[full_width]

Why Distro

many open source tools already exists to build IoT solutions, but:

  • recurrent problem of choosing the right ones and “glue” them together
  • IoT scenario is generating new tech issues which are not addressed by existing tools

IOTTLY distribution:

  • elegantly orchestrating existing tools together
  • address original IoT issues developing new specific components

To achieve:

  • ease of use
  • security
  • scalability

[/full_width]

Iottly project technical insights

The-design-of-an-IoT-platform

[two_third]

Contents

  • IOTTLY overall specifications Implementation details.
  • IOTTLY Brokers are server-side physical implementations of communication protocols.
  • IOTTLY DATA MODEL Model describes the fundamental entities involved in the design and management of IoT projects, and the relationships among such entities.
  • IOTTLY Reliable Message Queue All the building blocks of the IOTTLY Distribution will communicate using IOTTLY’s Reliable Message Queue.
  • IOTTLY Polyglot implements the interaction between IOTTLY Core and each IOTTLY broker.
  • IOTTLY History storage is the physical database where incoming messages from the devices are stored.
  • IOTTLY Trust is the integrated security layer responsible for authenticating and authorizing every single actor communicating within IOTTLY.
  • IOTTLY RESTful APIs are the way IOTTLY exposes its core functionalities to third-party applications and IOTTLY tools.
  • IOTTLY Message designer is an editor which helps project creators draft and annotate the messages which will be exchanged with the devices.
  • Device admin console provides real-time administrative control of the devices.
  • Config tools are the pages used to configure specific data for Organizations and Projects.
  • Ready-to-use control app IOTTLY provides a ready-to-use web Control App, available on both desktop and mobile devices.
  • Custom logic flows provide server side programming and execution of event driven logics

[/two_third]

 


[two_third]

Iottly overall specifications

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

The first release of IOTTLY will run on top of Linux

  • other operating systems will be supported in future releases

IOTTLY source code will be hosted on Github

IOTTLY overall architecture will follow the pattern of micro-services

  • each component will run as an independent service
  • services will communicate through IP protocols depending on the specific needs
  • docker images for each service and a docker-composer script for the overall distro will be managed

IOTTLY messages format will be JSON, including:

  • messages exchanged with devices (the JSON structure will be free and customizable)
  • internal messages
  • messages exchanged with third parties applications

Further implementation details will be specified in the following for each architectural component.

[/two_third]

[one_third_last]
[/one_third_last]

 


[two_third]

Iottly Brokers

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

IOTTLY Brokers are server side physical implementations of communication protocols.

IOTTLY will run multiple broker instances at the same time.

  • This will allow to support different protocols through the implementation of different brokers
  • It will also allow the community to contribute different implementations of the same protocol or new and different protocols

IOTTLY will use docker to run each broker instance in a sandboxed environment

  • different organizations or projects will have separated broker instances for scalability and security purposes
  • IOTTLY will take care of automating all the required docker management tasks

The first release of IOTTLY will ship MQTT and HTTP support

  • MQTT is a standard, ligthweight, bi-directional protocol which implements a powerful publish-subscribe paradigm
  • HTTP has to be regarded as a “fallback” protocol to support legacy devices; in this case commands will be implemented by means of polling

[/two_third]

[one_third_last]

implementation details

IOTTLY MQTT support will be based on Mosquitto Mosquitto

Brokers sandbox environment will be based on Docker

Broker automation tasks will be developed on top of docker-py


[/one_third_last]

 


[two_third]

Iottly Data model

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

IOTTLY Brokers are server side physical implementations of communication protocols.

The IOTTLY Data Model describes the fundamental entities involved in the design and management of IoT projects, and the relationships among such entities.

Project creators will work in IOTTLY either privately or within the scope of an organization

The Project entity will support creators in taking care of the overall technical details:

  • the communication protocol with devices
  • the kind and properties of devices to be used
  • the kind of messages to be exchanged with devices and third parties applications

Hence devices belong to a project which in turn belongs to an organization (or to a private project creator)

  • devices can be declared as private or public with respect to the scope of the organization
  • public devices are accessible from any organization with different degree of controls (read and/or write)
  • furthermore, private devices can be shared among different organizations

The Application entity takes care of the interaction relationships of devices with third parties applications.

[/two_third]

[one_third_last]

implementation details

The physical RDBMS of choice will be postgresql

Database access APIs will be developed with sqlalchemy

iottly-data-model


[/one_third_last]

 


[two_third]

IOTTLY Reliable Message Queue

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

All the building blocks of the IOTTLY Distribution will communicate using IOTTLY’s Reliable Message Queue.

This leads to asynchronous and scalable interaction among each IOTTLY component.

Data model relationships will be enforced on top of the IOTTLY Reliable Message Queue in order to implement secure communication policies.

Queue model design will target:

  • data streams to enable event-driven manipulation of devices data
  • job orders to enable execution of on-demand tasks on data
    • Reliability of the queue resides on the consumer ability to acknowledge the producer about the job being correctly processed
  • From this point of view, for example, Polyglot behaves like a consumer when it has to send a command to a device, and it behaves like a producer when it has to dispatch an event received from a device, for further processing
  • the History Storage behaves like a consumer when it has to store a value received from a device, while being a producer when it is required to retrieve some data by the RESTful APIs

[/two_third]

[one_third_last]

implementation details

The choice of which Message Queue to adopt is still under investigation.
Disque is among the main options.

The queue model will be designed and constrained by means of an API each producer / consumer will have to derive from.


[/one_third_last]

 


[two_third]

Iottly Polyglot

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

IOTTLY Polyglot implements the interaction between IOTTLY Core and each IOTTLY broker.

Each broker instance will have a Polyglot client counterpart running in IOTTLY Polyglot.

IOTTLY Polyglot will define the interface and the API which will be implemented by each Polyglot client.

Each Polyglot client will have to properly register on the Message Queue to exchange messages from/to the message queue to/from the broker.

Polyglot Clients will be responsible of mapping the producer-consumer internal paradigm of IOTTLY onto each of the implemented brokers

  • for brokers natively supporting publish-subscribe (like MQTT) this will be a pass-through mapping
  • for other brokers the relative client will map internal IOTTLY communication paradigm to the specific protocol

[/two_third]

[one_third_last]

implementation details

MQTT Polyglot Client will be developed on top of paho

HTTP Polyglot Client will be developed in python

Interaction with the Message Queue will be specified by means of an API definition and making use of a proper Message Queue client.


[/one_third_last]

 


[two_third]

Iottly History storage

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

History storage is the physical database where the incoming messages from devices are stored.

A partitioned history space will be reserved to each project in Iottly

  • projects space will be limited by quotas defined at the Organization / Project levels

Device messages will be stored in raw JSON format

  • Raw data will follow retention policies based on Organization / Project History quotas

Iottly History Storage will automatically extract raw time-series from the more complex incoming JSON structures

  • Raw time-series will be stored in flat, per project, per dimension tables
  • Raw time-series exposure to RESTful APIs will be bounded in time
  • future releases of Iottly will support time-series replication into off-line big-data databases, such as HBase

A set of standard time aggregations (mean, max/min, median) will be performed on raw time-series and stored on History storage for long-time reporting of data.

[/two_third]

[one_third_last]

implementation details

The physical RDBMS of choice for History storage will be postgresql

  • Native support for JSON

JSON flattening to time-series will be performed in real-time within the History storage job responsible for persisting raw JSON messages.

Workers will be implemented to perform time aggregations asynchronously


[/one_third_last]

 


[two_third]

IOTTLY Trust

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

IOTTLY Trust is the integrated security layer responsible for authenticating and authorizing every single actor communicating within IOTTLY.

  • Authorization logics and communication policies are derived from the data model

It acts on devices

  • enforcing devices authentication (specific of the particular protocol)
  • managing the communication encryption
  • preventing fake devices to impersonate real ones
  • preventing devices data leakage

It acts on RESTful APIs

  • enforcing APIs calls to be authenticated and verifying in real-time the caller effective rights
  • enforcing the relationships between applications, users and devices, thus preventing the possibility of a user to take control over a device he is not authorized to

Authentication tokens are managed at the Organization / Project level, thus preventing by design data leakages between organizations

Reliable device provisioning

  • When provisioned a device is required to know (fabric settings):
    • the organization IOTTLY Broker end-point
    • the IOTTLY project global device token
  • The first time it connects the device will start the handshaking to receive its unique auth. token
  • This procedure makes it easy to preserve device security while not requiring to hard code the specific auth token for each device

[/two_third]

[one_third_last]

implementation details

MQTT authentication is SSL based (both client and server auth)

APIs authentication is implemented by means of http headers tokens


[/one_third_last]

 


[two_third]

IOTTLY RESTful APIs

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

RESTful APIs are the way IOTTLY exposes its core functionalities to third-party applications and IOTTLY tools.

History APIs

  • they provide access to IOTTLY History storage (raw JSON messages, time-series raw and aggregated data)

Configuration APIs

  • they enable the automation of IoT management tasks, providing read-write access to IOTTLY data model

Commands APIs

  • they provide full control of devices, allowing applications and users to send remote commands to them

Real-time Webhooks APIs

  • applications may register specific callback to receive real-time events from devices

[/two_third]

[one_third_last]

implementation details

RESTful HTTPS APIs

Payload is JSON


[/one_third_last]

 


[two_third]

Iottly Message designer

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

The Message designer is an editor which helps project creators draft and annotate the messages which will be exchanged with the devices.

Coherently with its open nature, IOTTLY will be payload agnostic with respect to devices messages.

  • defining a wide message semantic would result in a naive attempt, always leaving out some cases

The Message designer easily allows to annotate JSON tags, binding them with specific semantic.

Thus messages will be interpreted in order to

  • properly being routed through the APIs
  • properly being represented on Device admin console
  • properly build the GUI command controls both in the Device admin console and in the ready to use sample app.

[/two_third]

[one_third_last]

implementation details

A dynamic JSON parser will be developed in python. Each project will have its own parser.

  • Parser binding with message semantic will be persisted on database at project level

Semantically meaningful functions will be dynamically mapped to JSON tags.

Message designer will generate such functions in python snippet which will then be compiled into the specific project parser.


[/one_third_last]

 


[two_third]

Iottly Device admin console

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

The Device admin console provides real-time administrative control of the devices.

  • customized on payload semantic

near-real time charts of time-series device data

Over the air firmware upgrades

Geo-location of devices

iottly-device-admin-console

[/two_third]

[one_third_last]

implementation details

The back-end APIs are History, Commands and Webhooks APIs.

Client side MVC is developed with AngularJS

Responsive GUI is developed with Bootstrap Bootstrap

Time-series charts are developed with Bokeh Bokeh

real-time: web sockets


[/one_third_last]

 


[two_third]

Iottly Config tools

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

Config tools are the pages used to configure specific data for Organizations and Projects.

Organizations

  • list of users (project creators, technicians, end users)
  • list or projects
  • list of end user third parties applications

Projects

  • Project protocol

list of available firmwares

  • global project device token
  • list of devices

Devices

  • deviceid and token

Applications

  • RESTful APIs tokens
  • Applications webhooks

[/two_third]

[one_third_last]

implementation details

The back-end APIs is Configuration APIs.

Client side MVC is developed with AngularJS

Responsive GUI is developed with Bootstrap Bootstrap


[/one_third_last]

 


[two_third]

Iottly Ready-to-use control app

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

IOTTLY provides a ready-to-use web Control App, available on both desktop and mobile devices:

  • to support rapid prototyping
  • to make IoT instant projects

The Control App is customizable:

  • Just drag a device message onto the App designer
  • then select a control (switch, value selector, bar)
  • choose an icon to complete your IoT App

iottly-ready-to-use-control-app

[/two_third]

[one_third_last]

implementation details

The back-end APIs are Commands and Webhooks.

Client side MVC is developed with AngularJS

Responsive GUI is developed with Bootstrap Bootstrap

real-time: web sockets

Graphical controls are binded to each message whithin the IOTTLY Project.


[/one_third_last]

 


[two_third]

Iottly Custom logic flows

[/two_third]
[one_third_last]
The-design-of-an-IoT-platform
[/one_third_last]

[two_third]

Custom logic flows provide server side programming and execution of event driven logics:

  • When cross device logic is needed, server side is the right place to put it
  • For example if you want to send an e-mail based on some device message content.

IOTTLY will integrate a customized fork of Node-RED:

  • since IOTTLY lets you to customize device messages at the project level, a node-red instance will be run for each project
  • your custom device messages will appear as input nodes in the inputs pane
  • simply dragging a specific message node will make the flow trigger when the specific message is received without the hassle of writing js code to parse the message
  • flows will be persisted on IOTTLY database on a per project basis

[/two_third]

[one_third_last]

implementation details

Custom logic flows will be implemented by integrating Node-RED Node-RED into IOTTLY.

Single Node-red instances (client and server) will be run separately for each IOTTLY project, on top of Docker
Node-red instances automation tasks will be developed on top of docker-py


[/one_third_last]