Architettura di Freedomotic

Componenti:

Freedomotic é un framework di programmazione realizzato in primo luogo per ridurre drasticamente il time-to-market e gli sforzi necessari per lo sviluppo di applicazioni per la domotica e il controllo di ambienti. Tutto ciò é possibile considerando che qualsiasi sistema di automazione richiede delle funzionalità di base indipendentemente dal proprio ambito di utilizzo (domestico, business, industriale, medico ecc).

L’architettura modulare di Freedomotic prevede un core (framework) e una serie di estensioni (plugins).

 

Framework:

  • include delle strutture dati interne per la rappresentazione degli ambienti (topologia, stanze, connessioni ecc), degli oggetti presenti e del relativo stato (on, off, open, closed ecc).
  • rende disponibili tali dati ai client esterni utilizzando formati come XML, JSON, RESTlet, in modo da poter utilizzare un tipo di logica come “accendi la luce della cucina” invece di “invia alla porta COM1 la stringa #*A01AON##”. Gli sviluppatori non devono conoscere i dettagli di basso livello relativi all’hardware, ma possono servirsi di un qualsiasi linguaggio di programmazione per connettersi al framework e scambiare semplici messaggi di testo.
  • fornisce un motore per la generazione di regole (rules) con un sistema di elaborazione del linguaggio naturale che consente all’utente di scrivere automazioni in plain english come “if outside is dark turn on livingroom light” (“se fuori é buio accendi la luce del soggiorno”). Si possono aggiungere, modificare o cancellare automazioni a runtime attraverso una semplice interfaccia grafica senza scrivere alcuna riga di codice.

Plugins:

Device plugins

I plugin permettono di estendere le funzionalità del framework e possono essere sviluppati e distribuiti come pacchetti indipendenti attraverso il marketplace ufficiale. Di solito sono creati per comunicare con specifiche tipologie di hardware come X10, KNX ecc. ma anche gli stessi client (grafici o web) sono a tutti gli effetti dei plugin.

 

Object plugins

Questi plugin modellano gli oggetti del mondo reale (come lampade, porte, tv, sensori ecc) con tutte le loro proprietà “istruendo” opportunamente il framework. Ad esempio un plugin per una lampada indica al framework che l’oggetto ha una proprietà (behavior) chiamata powered e un’altra dimmed che può assumere valori interi tra 0 e 100. Una lampada può essere accesa (turn on) o spenta (turn off) e la sua luminosità regolata opportunamente (set brightness). Se la proprietà dimmed assume il valore 0 allora la lampada é spenta (powered=false) altrimenti é accesa (powered=true).

 

 

Interazione tra le componenti:

Questo diagramma mostra le interazioni tra plugin, eventi-trigger-comandi e le API di Freedomotic.

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi