eHouse4Java Software Open Source per la Home Automation eHouse

eHouse Home Automation eHouse4Java – java (open source), software include i seguenti moduli ( . Giava – codice sorgente , . classe – La classe risultante):

  • Ehouse4java . Giava – Il nucleo dell'applicazione e l'interfaccia principale
  • ehousecommunication . Giava – funzioni di comunicazione e la configurazione
  • EhouseTCP . Giava – comunicazione e la configurazione dei controllori
  • EventsToSend . Giava – gestione degli eventi secondari
  • EventToSend . Giava – la definizione di un singolo evento
  • GraphicObject . Giava – definizioni degli oggetti grafici
  • ISYS . Giava – include funzioni dedicate per i fornitori
  • RunEvent . Giava – L'invio di eventi da forma di testo
  • StatusEhouse . Giava – classe contiene una istanza per ogni controller eHouse1
  • StatusEthernet . Giava – classe contiene una istanza per ogni controller Ethernet eHouse
  • StatusServer . Giava – Ausiliaria TCP / IP del server , l'invio di tutti gli stati di controllo via TCP / IP ai pannelli del cliente (esterno tramite LAN , WAN , Intranet , Internet)
  • visualizzazione . Giava – Visualizzazione / classe di controllo grafico in conformità con visualizzazione eHouse e standard di controllo grafico

Le funzioni e variabili globali sono descritti nel codice sorgente software eHouse4Java .
Il software include thread indipendenti , ad esempio, . Comunicazione , che vengono eseguite in background in relazione all'applicazione principale .
Questo non si fermano o ritardare l'applicazione che i processi troppo lungo , che ha portato ad una significativa discesa lenta di applicazione e la possibilità di sospensione in attesa di comunicazione (serrature morti) .
I fili principali sono:

  • TCP client (per ricevere lo stato del controllore , il tcp / ip sulla LAN , WAN , Internet , Intranet)
  • UDP Listener (per l'ascolto di trasmettere lo stato in UDP senza connessione) – solo all'interno della LAN , Intranet
  • Discorso sintetizzatore per riprodurre tutti i messaggi di testo acustici
  • Multithreading TCP / IP del server – per instradare stato ricevuto ai pannelli client connessi di qualsiasi tipo (via LAN , WIFI , Internet , Intranet , WAN)

I nomi dei mezzi di comunicazione con i controller sono inclusi con le impostazioni del modulo di scegliere il tipo di connessione (LAN TCP , LAN UDP , Internet , Off) .
Altri thread viene attivato utilizzando le variabili globali sono in classi ” EhouseTCP ” o ” ehousecommunication ” .

L'applicazione utilizza una visualizzazione secondo eHouse norma , generato dalle applicazioni CorelDraw utilizzando script che consentono:

  • importazione eHouse configurazione del sistema
  • creazione di oggetti grafici manualmente o con uno script
  • esportare i dati per tutti i metodi di visualizzazione per tutti i pannelli , browser web , pc , compresse , smartphone e altri sistemi

Questo è discusso ulteriormente in questo articolo:
” la creazione di visualizzazione grafica e di controllo eHouse casa intelligente ” .
software di visualizzazione si basa su un Scalable Vector Graphics (SVG) .
Questo metodo consente di ” lossless ” qualità del disegno di curve , testo , semplici figure geometriche , indipendentemente dalla dimensione dell'allargamento , Schermata di spostamento , ecc .
Non sarebbe stato possibile con le immagini di sfondo grafici, quali JPG , bitmap , ecc . .
Software di visualizzazione è stata ottimizzata al fine di ridurre l'utilizzo della CPU e tempo di elaborazione grafica quando si lavora on-line , a causa della grande quantità di dati da elaborare . Immagini grafiche vengono memorizzate nella cache e diviso in opportuni segnali di controllo ed elaborati quando riceve lo stato del controllore , e visualizzati sullo schermo molto più velocemente dalla cache visualizzazione di ciascun controllore .

Questo permette:

  • riduzione significativa dei dati elaborati per la visualizzazione con l'immagine cambia
  • significativamente ridurre il tremolio quando cambiare le immagini proiettate
  • riduzione significativa del carico di CPU e visualizzazione dati
  • l'impiego di molto ” più debole ” , hardware meno efficiente e meno costoso , pannelli grafici , compresse , il pannello di controllo , ecc . , mantenendo un lavoro confortevole
  • riduzione del consumo di energia che è particolarmente importante in attrezzature batteria e mobili e lunghezza di lavoro su batterie

Questo è discusso con gli screenshots in questo articolo:
” Visualizzazione grafica e controllo casa intelligente in Java ”

EHouse4Java comunicazione con i controllori domotico

eHouse1 Sotto la supervisione del PC

In questa versione del eHouse applicazione . exe funziona come uno stato del ricevitore RS – 485 (con convertitore RS – 485/RS – 232) e trasmette lo stato senza alcuna modifica sui due metodi non si scontrano tra di loro:

  • eHouse . exe funziona come un server TCP / IP risponde alle domande circa il pannello di stato , riferendosi ulteriormente collegare i pannelli e mantenerli fino scollegato per qualsiasi motivo . Questo metodo è particolarmente utile con i tentativi di stabilire la comunicazione con il pannello esterno TCP / IP via rete , come Internet dove non è stato possibile ricevere UDP .
  • eHouse . exe invia la connessione protocollo di trasmissione UDP per qualsiasi numero di client della LAN , Intranet . Ciò significa che , che il pannello non si connette al server , ma ascolta i messaggi trasmessi da ” eHouse . exe ” applicazioni . In questo modo, indipendentemente dal numero di destinatari pannelli di stato non cambia il carico di rete , o il computer su cui ” eHouse . exe ” applicazione viene eseguita . Purtroppo non è possibile o è estremamente difficile trasmettere broadcast UDP via Internet, in questo caso il primo metodo dovrebbe essere usato .

eHouse1 Sotto la supervisione del CommManager

In questa versione , CommManager riceve stati in entrata tramite RS – 485 (da eHouse1 controller) e trasmette lo stato senza alcuna modifica sui due metodi non si scontrano tra di loro:

  • CommManager funziona come un server TCP / IP risponde alle domande circa il pannello di stato , riferendosi ulteriormente collegare i pannelli e mantenerli fino scollegato per qualsiasi motivo . Questo metodo è particolarmente preziosi tentativi per stabilire la comunicazione con il pannello esterno della LAN , come Internet dove non è stato possibile ricevere UDP .
  • CommManager invia trasmissioni (senza connessione), il protocollo UDP che, per qualsiasi numero di client della LAN , Intranet .
    Ciò significa che , che il pannello non si connette al server TCP CommManager , ma l'ascolto dei messaggi trasmessi da CM . In questo modo, non importa quanti destinatari pannelli di stato , non cambia il carico della rete o l'utilizzo della CPU CommManager . Broadcasting trasmissione UDP non è possibile , o è fortemente ostacolata attraverso internet così in questo caso il primo metodo dovrebbe essere usato .

Ethernet eHouse (eHouse4Ethernet)

In questa versione di controller Ethernet: CommManager , EthernetRoomManager , ecc . , inviare autonomamente il suo stato in due modi , non si scontrano tra di loro:

  • Ogni controller funziona come un server TCP / IP risponde alle domande circa il pannello di stato , riferendosi ulteriormente collegare i pannelli e mantenerli fino scollegato per qualsiasi motivo . Questo metodo è particolarmente preziosi tentativi per stabilire la comunicazione con i pannelli esterni alla LAN , come Internet , dove non è stato possibile ricevere UDP .
    Tuttavia , nel caso di più controller Ethernet è necessario mantenere una connessione a una rete TCP / IP ogni controllore , a prendere uno stato completo del sistema direttamente dal controller . Ciò può comportare un carico maggiore sul pannello di controllo del processore , gravità dei problemi legati alla comunicazione . In questo caso , è preferibile posizionare sull'applicazione lato LAN , che riceve lo stato locale UDP , e inoltra il tramite TCP / IP via Internet . Questo viene realizzato e discusso in applicazione eHouse4Java , questa soluzione che consente . Lo svantaggio è la necessità di mantenere hardware aggiuntivo che esegue queste funzioni .
  • Ogni controller invia un broadcast (senza connessione) il protocollo UDP che, per qualsiasi numero di client della LAN , Intranet . Ciò significa che , che il pannello non si connette al controller server TCP , ma l'ascolto dei messaggi trasmessi da tutti i controllori . In questo modo, non importa quanti destinatari stato di pannelli non modifica il carico di rete o l'utilizzo della CPU del controller . Broadcasting pacchetti UDP non è possibile o è fortemente ostacolata attraverso internet , quindi in questo caso il primo metodo dovrebbe essere usato . La possibilità di trasmissione del UDP è talvolta possibile a seconda del tipo di collegamento , Performance . A volte è possibile ottenere una trasmissione UDP tramite collegamento VPN configurato , Tuttavia , anche in questa situazione , pacchetti possono essere persi , a causa della mancanza di meccanismi di sicurezza per UDP . Dati non corretti viene annullata automaticamente da pannelli eHouse i software per checksum non (checksum)