eHouse4Java öppen källkod för eHouse Home Automation

eHouse Home Automation eHouse4Java – java (Öppen källkod) programvaran innehåller följande moduler ( . java – källkod , . klass – Den resulterande klass):

  • Ehouse4java . java – Kärnan i ansökan och de viktigaste gränssnittet
  • ehousecommunication . java – kommunikationsfunktioner och konfiguration
  • EhouseTCP . java – kommunikation och konfigurering av regulatorer
  • EventsToSend . java – sekundär händelsehantering
  • EventToSend . java – definitionen av en enskild händelse
  • GraphicObject . java – grafiska objektdefinitioner
  • ISYS . java – innehåller dedikerade funktioner för leverantörer
  • RunEvent . java – Sända händelser från textform
  • StatusEhouse . java – klass innehåller en instans för varje eHouse1 styrenhet
  • StatusEthernet . java – klass innehåller en instans för varje Ethernet-eHouse styrenhet
  • StatusServer . java – Auxiliary TCP / IP-server , sända alla styrenheter status via TCP / IP till kundens paneler (extern via LAN , WAN , Intranät , Internet)
  • visualisering . java – Visualisering / grafisk kontroll klass i enlighet med eHouse visualisering och grafisk kontroll standard

De funktioner och globala variabler beskrivs i programmet källkod eHouse4Java .
Programvaran innehåller självständiga trådar , t.ex. . Kommunikation , som utförs i bakgrunden i förhållande till huvudprogrammet .
Detta stannar inte eller försenar program som processerna tar för lång tid , vilket ledde till en betydande avmattning av ansökan och möjligheten till tillfällig i väntan på kommunikation (döda lås) .
Huvudteman är:

  • TCP-klient (för att få status som regulatorn , TCP / IP på LAN , WAN , Internet , Intranät)
  • UDP lyssnare (för att lyssna på sända status i förbindelselösa UDP) – endast inom LAN , Intranät
  • Talsyntes för att spela alla akustiska textmeddelanden
  • Multithreaded TCP / IP-server – att dirigera den mottagna status till de anslutna klient paneler av något slag (via LAN , WIFI , Internet , Intranät , WAN)

Namn på kommunikationsmedia med styrenheter ingår med inställningarna på formuläret väljer du vilken typ av anslutning (LAN TCP , LAN-UDP , Internet , Off) .
Andra trådar aktiveras med globala variabler i klasser ” EhouseTCP ” eller ” ehousecommunication ” .

Programmet använder en visualisering enligt eHouse standard , genereras från CorelDraw program med hjälp av skript som gör:

  • import eHouse systemkonfiguration
  • skapandet av grafiska objekt manuellt eller med ett skript
  • exportera data för alla visualiseringsmetoder för alla paneler , webbläsare , st , tabletter , smartphones och andra system

Detta diskuteras vidare i artikeln:
” skapa grafisk visualisering och kontroll eHouse smarta hem ” .
visualisering programvara är baserad på en skalbar vektorgrafik (SVG) .
Denna metod gör att du ” förlustfri ” av kvalitet ritning kurvor , text , enkla geometriska figurer , oavsett storleken på utvidgningen , Skärm skift , etc .
Det skulle inte ha varit möjligt att använda bakgrunden grafiska bilder som jpg , bitmappar , etc . .
Programvara visualisering har optimerats för att minska användningen av processorn och grafikprocessorn när arbetar online , grund av den stora mängd data att bearbeta . Grafiska bilder cachas och indelad i lämpliga styrsignaler och behandlas vid mottagande av statusen av styrenheten , och visas på skärmen mycket snabbare från visualisering cache för varje styrenhet .

Detta tillåter:

  • betydande minskning av de uppgifter som behandlas för visualisering med bilden ändras
  • avsevärt reducera flimmer vid byte projicerade bilder
  • signifikant reduktion i belastningen av CPU och datavisualisering
  • användning av mycket ” svagare ” , mindre effektiv och mindre dyr hårdvara , grafiska paneler , tabletter , kontrollpanelen , etc . , samtidigt som en bekväm arbetsställning
  • minskad energiförbrukning som är särskilt viktigt i batteri och mobil utrustning och längd arbete på batterier

Detta diskuteras med skärmdumpar i artikeln:
” Grafisk visualisering och intelligenta hem kontroll i Java ”

EHouse4Java kommunikation med styrsystem hemautomation

eHouse1 Under överinseende av PC

I denna version av programmet eHouse . exe fungerar som en mottagare ställning av RS – 485 (med omvandlare RS – 485/RS – 232) och överför status utan några förändringar på de två metoderna inte kolliderar inte med varandra:

  • eHouse . exe fungerar som en TCP / IP-server svarar på frågor om statuspanelen , hänvisar vidare ansluta panelerna och behålla dem tills frånkopplad av någon anledning . Denna metod är särskilt värdefullt med försök att etablera kommunikation med utsidan TCP / IP-panelen via nätverk , såsom Internet där det inte är möjligt att ta emot UDP-status .
  • eHouse . exe skickar sändningen anslutningslöst UDP-protokollet för ett obegränsat antal klienter på LAN , Intranät . Detta innebär att , att panelen inte ansluta till servern , men lyssnar sända meddelanden från ” eHouse . exe ” applikationer . På detta sätt oavsett hur många mottagare paneler status inte ändrar belastningen på nätet , eller datorn på vilken ” eHouse . exe ” programmet körs . Tyvärr är det inte möjligt eller är mycket svårt att överföra UDP-broadcast via Internet så i detta fall den första metoden bör användas .

eHouse1 Under överinseende av CommManager

I denna version , CommManager tar emot inkommande status via RS – 485 (från eHouse1 styrenheter) och sänder status utan några förändringar på de två metoderna inte kolliderar inte med varandra:

  • CommManager fungerar som en TCP / IP-server svarar på frågor om statuspanelen , hänvisar vidare ansluta panelerna och behålla dem tills frånkopplad av någon anledning . Denna metod är särskilt värdefulla försök att etablera kommunikation med panelen utanför LAN , såsom Internet där det inte är möjligt att ta emot UDP-status .
  • CommManager skickar sändningar (anslutningsfritt) UDP-protokollet är för ett obegränsat antal klienter på LAN , Intranät .
    Detta innebär att , att panelen inte ansluter till servern TCP CommManager , men lyssna på de meddelanden som sänds från CM . På detta sätt oavsett hur många mottagare paneler av status , Det ändrar inte belastningen på nätet eller CommManager processorutnyttjande . Broadcasting UDP-broadcast är inte möjligt , eller är kraftigt försvåras via Internet så i detta fall den första metoden bör användas .

Ethernet eHouse (eHouse4Ethernet)

I denna version av Ethernet-styrenheter: CommManager , EthernetRoomManager , etc . , självständigt skickar sin status på två sätt , inte kolliderar inte med varandra:

  • Varje styrenhet fungerar som en TCP / IP-server svarar på frågor om statuspanelen , hänvisar vidare ansluta panelerna och behålla dem tills frånkopplad av någon anledning . Denna metod är särskilt värdefulla försök att etablera kommunikation med panelerna utanför LAN , såsom Internet , där det inte är möjligt att ta emot UDP-status .
    Men , i fallet med flera Ethernet styrenheter är nödvändigt att upprätthålla en förbindelse till ett TCP / IP varje styrenhet , att plocka upp ett komplett system status direkt från styrenheter . Detta kan resultera i en större belastning på processorn kontrollpanelen , allvarliga problem relaterade till kommunikation . I detta fall , är det att föredra att placera på LAN sidan ansökan , som mottar lokala UDP status , och vidarebefordrar den över TCP / IP via Internet . Detta realiseras och diskuteras i ansökan eHouse4Java , vilket tillåter denna lösning . Nackdelen är att det är nödvändigt att upprätthålla extra hårdvara som utför dessa funktioner .
  • Varje styrenhet sänder en sändning (anslutningsfritt) UDP-protokollet är för ett obegränsat antal klienter på LAN , Intranät . Detta innebär att , att panelen inte ansluta till TCP-server controller , men lyssna på de meddelanden sänds från alla styrenheter . På detta sätt oavsett hur många mottagare paneler status inte ändrar belastningen på nätet eller controller processorutnyttjande . Broadcasting UDP-paket inte är möjligt eller är kraftigt försvåras via Internet , så i detta fall den första metoden bör användas . Möjligheten för överföring av UDP är ibland möjligt, beroende på typen av länk , Prestanda . Ibland är det möjligt att erhålla en sändning UDP via VPN korrekt konfigurerad länk , Men , även i denna situation , paket kan gå förlorade , grund av brist på säkerhetsmekanismer för UDP . Felaktiga uppgifter avbryts automatiskt av panelerna programvara eHouse för icke kontrollsumma (se summan)