Over a million developers have joined DZone.

Home Automation Design with PLCBUS on the NetBeans Platform

DZone 's Guide to

Home Automation Design with PLCBUS on the NetBeans Platform

· Java Zone ·
Free Resource

I'm in Chile, developing an application for a business in the home automation area. This business focuses on departments (buildings). The application I'm developing uses PLCBUS technology to control hardware devices by using electrical power lines to send data using a specific protocol (PLCBUS protocol). To connect the application to a PLCBUS interface, I'm using the RXTX project, so that I'm able to use serial ports. In addition, webcams are used in my application, via the v4l4j project, which only works on Linux.

Basically, with the application you can build a scene of your department by simply dragging and dropping widgets that represent the devices you want to control.

Right now the widgets are only bulbs and webcams. It is really user friendly, thanks to the Visual Library.

This is a server-client solution:

  • Server.
    • (1) EJB with web services running on Glassfish V3 to expose services to control devices via PLCBUS.
    • (2) A little application that exposes webcams via sockets, works the same as a chat, many connections are allowed and webcams are just resources that can be shared intelligently.

  • Client. An application built over NetBeans Platform 6.8 from where you can control your department easily.


Some more screenshots:


I developed the software as a client-server because I want to develop some other clients for other devices and systems, like Android.

Developing the client on the NetBeans Platform really helps me focus on what I want to do and not to rebuild the wheel. The NetBeans Platform APIs are really complete and helpful. This is my first project using the NetBeans Platform APIs, I like them very much and that is why I already pre-ordered the book of NetBeans Platform 6.9, I can't wait to get hold of it!


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}