I am currently restructuring ORControl to make it more modular.
It seems to have morphed into a configurable socket server that can control a large range of home automation devices. It controls the devices either directly over IP or via wireless transeivers. The transceivers are connected by USB or other serial connections.
It receives and executes commands in a language that I am provisionally calling “Housish”.
It does not directly provide user interfaces, but supports a wide variety of user interfaces, including:
- OpenRemote Android, iOS and web console interfaces
- An Android voice control app
- A simple text chat interface
- The AutomateIt Android app via an HTTP interface
- LightwaveRF remotes, and potentially other IR or RF remotes
- Anything else that can be configured to send socket or HTTP commands
I plan to add a gesture interface and eventually a direct brain interface. Open microphone interfaces may also be useful for voice control, so you can just speak from anywhere in the house. I am also considering a 2D or 3D graphical layout interface where you can interact with a model of the house. It would be good if I could project a hologram of it, and interact with that.
I need a better name for ORControl, as it now supports a lot more than just OpenRemote. I am provisionally calling it HouseControl.
As I said at the beginning of this post, I am restructuring the Java code. I have defined a set of interfaces and the configuration file tells me which classes to load to support each interface. This gives great flexibility in which products and device interfaces that I can support.
The interfaces that I have currently defined are
- LightControl – to control lights
- Socket Control – to control sockets
- Appliance Control – to control individual appliances monitors
- CameraControl – to control IP cameras including my home made one based on a Raspberry Pi
- SensorControl – to control wireless sensors, including my Jeenode based ones
- PowerControl – to monitor power and energy, e.g. bia the OpenEnergyMonitor emonTx
- RobotControl = for controlling mobile robots
- AVControl – for controlling Audio-Video devices such as TVs, receivers and set top boxes
- PlantControl – for monitoring plants
- MusicControl – for controlling music servers
- PhoneControl – for monitoring a mobile phone
- IPControl – for monitoring local internet devices
- SpeechControl – for text to speech generation
- HeatingControl – for control of central heating
- AlarmControl – for control of timer alarms
- CalendarControl – for calendar integration
- EmailControl – for sending emails
- BlindsControl – for controlling motorised blinds
- BellControl – for monitoring the door bell
- WeatherControl – for getting local weather data
- CosmControl – for sending data to COSM
There are lots more to add, if I want to control all the devices in my house.