eHouse4Java eHouse家庭自动化的开放源码软件

eHouse 家庭自动化 eHouse4Java – JAVA(开源)软件包括以下模块( . JAVA – 源代码 , . 类 – 由此产生的类):

  • Ehouse4java . JAVA – 的应用程序的核心和主界面
  • ehousecommunication . JAVA – 通信功能和配置
  • EhouseTCP . JAVA – 通信和配置​​的控制器
  • EventsToSend . JAVA – 次要事件处理
  • EventToSend . JAVA – 一个单一的事件的定义
  • GraphicObject . JAVA – 图形对象定义
  • ISYS . JAVA – 包括对供应商的专用功能
  • RunEvent . JAVA – 从文本的形式发送事件
  • StatusEhouse . JAVA – 类包含一个实例为每个eHouse1控制器
  • StatusEthernet . JAVA – 类包含一个实例为每个以太网eHouse控制器
  • StatusServer . JAVA – 辅助TCP / IP服务器 , 通过LAN发送所有控制器的状态通过TCP / IP客户端板(外部 , 广域网 , 内部网 , 互联网)
  • 可视化 . JAVA – 按照与的eHouse可视化和图形控制标准的可视化/图形控制类

在软件源代码eHouse4Java的描述函数和全局变量 .
该软件包括独立的线程 , 例如: . 通讯 , 这些关系到主应用程序在后台执行的 .
这不阻止或延缓的应用程序的过程要花很长时间 , 导致到一个显着慢下来的应用程序和悬浮液的可能性,同时等待通信(死锁) .
的主要思路是:

  • TCP客户端(接收状态的控制器 , 在局域网上的TCP / IP , 广域网 , 网际网路 , 内联网)
  • UDP监听器(用于收听广播状态,在无连接的UDP) – 仅在局域网内 , 内部网
  • 语音合成器来播放任何声音的短信
  • 多线程的TCP / IP服务器 – 来路由接收到的状态的任何类型的连接的客户端面板(通过局域网 , WIFI , 网际网路 , 内部网 , WAN)

与控制器的通信介质的名称所包含的设置形式选择的连接类型(LAN TCP , LAN UDP , 网际网路 , 关) .
其他线程被激活使用全局变量是在类 ” EhouseTCP ” 或 ” ehousecommunication ” .

该应用程序使用一个可视化的根据eHouse标准 , 从CorelDraw应用程序中使用脚本,使:

  • 进口eHouse系统配置
  • 手动或通过脚本的图形对象的创建
  • 将数据导出为所有面板的可视化方法 , Web浏览器 , 个人计算机 , 片 , 智能手机和其他系统

进一步讨论这个问题的文章:
” ,创建图形可视化和控制eHouse智能家居 ” .
可视化软件是基于一个可伸缩矢量图形(SVG) .
此方法允许您 ” 无损 ” 品质的绘图曲线 , 文本 , 简单的几何图形 , 不论放大的规模的 , 画面位移 , 等 .
它不会有可能使用背景图形图像,如JPG , 位图 , 等 . .
软件可视化已被优化,以减少联机工作时,利用CPU和图形处理时间 , 由于大的数据量处理 . 当接收状态控制器,图形图像缓存分为适当的控制信号和处理 , 并显示在屏幕上要快得多从可视化每个控制器的缓存 .

这使得:

  • 用于可视化处理后的数据的图像的变化显着减少
  • 显着减少闪烁时,改变投影图像
  • CPU和数据可视化的负载显着减少
  • 使用多 ” 弱 ” , 更有效和更昂贵的硬件 , 图形面板 , 片 , 控制面板 , 等 . , 同时保持一个舒适的工作
  • 减少功率消耗,这是特别重要的,在电池和移动设备和长度对电池的工作

这是讨论在文章中的截图:
” 在Java的图形可视化和智能家居控制 ”

EHouse4Java通信控制器 家庭自动化

eHouse1的监督下,PC

在这个版本的应用程序eHouse . exe文件作为接收器的状态的RS – 485(与转换器RS – 485/RS – 232)和发送的状态没有任何变化的两个方法不互相碰撞:

  • eHouse . EXE工程作为一个TCP / IP服务器响应查询的状态面板 , 指连接面板和维护,直到断开以任何理由 . 此试图建立通信通过网络与外部的TCP / IP面板的方法是特别有价值的。 , 诸如因特网,这是不可能接收UDP状态 .
  • eHouse . exe文件发送任意数量的客户端在LAN上的广播无连接的UDP协议 , 内部网 . 这意味着 , 面板没有连接到服务器 , 但监听广播消息 ” eHouse . exe文件 ” 应用程序 . 在这种方式中,没有多少收件人板状态不改变网络负载 , 或计算机上 ” eHouse . exe文件 ” 运行应用程序 . 不幸的是,它是不可能的或是十分困难的,所以在这种情况下,通过因特网发送UDP广播应使用第一种方法 .

监督CommManager eHouse1在

在这个版本中 , CommManager接收传入的状态,通过RS – 485(来自eHouse1控制器),并​​发送该状态没有任何变化的两个方法不互相碰撞:

  • 的CommManager作品为TCP / IP服务器响应查询的状态面板 , 指连接面板和维护,直到断开以任何理由 . 这种方法显得尤为可贵尝试建立通信与局域网以外的面板 , 诸如因特网,这是不可能接收UDP状态 .
  • CommManager发送广播(连接),UDP协议是局域网上的任何数量的客户端 , 内部网 .
    这意味着 , 该小组没有连接到服务器的TCP CommManager , 但听着从CM的广播消息 . 在这种方式中,没有多少收件人面板的状态 , 它不会改变的网络负载或CommManager的CPU利用率 . 广播UDP广播是不可能的 , 或在很大程度上阻碍通过互联网,以便在这种情况下,应使用的第一种方法 .

以太网eHouse(eHouse4Ethernet)

在这个版本的以太网控制器:CommManager , EthernetRoomManager , 等 . , 独立两种方式发送自己的状态 , 不互相碰撞:

  • 每个控制器都可以作为一个TCP / IP服务器响应查询的状态面板 , 指连接面板和维护,直到断开以任何理由 . 此方法是特别有价值的,试图建立通信的LAN外部的与面板 , 诸如因特网 , 它是不可能接收UDP状态 .
    但 , 在多个以太网控制器的情况下,有必要维持一个连接到TCP / IP的每个控制器 , 直接从控制器接了一个完整的系统状态 . 这可能会导致在处理器的控制面板上的更大的负载 , 的通信相关的问题的严重程度 . 在这种情况下 , 优选的是,放置在LAN侧应用程序 , 接收本地UDP状态 , 并转发该TCP / IP上经由因特网 . 这是实现和的应用eHouse4Java讨论 , 这使得这种解决方案 . 其缺点是需要保持额外的硬件执行这些功能 .
  • 每个控制器发送一个广播(无连接)UDP协议是任意数量的LAN上的客户端 , 内部网 . 这意味着 , 面板没有连接到TCP服务器控制器 , 但听的消息广播的所有控制器 . 在这样无论有多少受助板状态不改变网络负载或控制器的CPU利用率 . 广播UDP数据包是不可能的,或通过互联网在很大程度上阻碍 , 所以在这种情况下,应使用第一种方法 . 的UDP传输的可能性,有时是链接的类型可能取决于 , 性能 . 有时有可能获得广播UDP通过VPN正确配置的链路 , 但 , 即使在这种情况下 , 数据包可能会丢失 , 由于缺乏为UDP的安全机制 . 不正确的数据将被自动取消的软件eHouse板的非校验(校验和)