-1

I am developing an ARM based device to control zwave home devices. I want to interact my controller using facebook, email and similar technologies or methods. This controller will have zwave software and ip based camera software. Each software has own APIs. i need a central system to receive messages and send messages. for example: i send message thru facebook or email to my home automation zwave device to turn a specific device ON or OFF. this central system must be able to understand and converts the message/events to understandable format or generic API so then all other technologies which are attached to the controller can be able to understand and performs.

can you suggest ant backbone system runs on linux or what is the system name? What can i use to bind different technologies and get them to speak each other? i am looking for a non JVM solution.

uraimo
  • 19,081
  • 8
  • 48
  • 55
  • 1
    The question is too broad and I am not sure what are you actually looking for here? You should probably rephrase it. – bosnjak Mar 14 '14 at 12:55
  • different technologies need to speak each other. all using command classes to perform an action. Lets say if i have a backbone system and i can attach any technology and control from one center. one language talks and understands and communicate with any technology. for example email can not turn my light on but home automation controller does. so when i send email to my home automation and this backbone system can translate this message and sends to my home automation software to perform the action. – Benjamin Bilgehan Mar 14 '14 at 13:15
  • "Any technology" doesn't really mean anything. Technology can be anything. Once you have the means of connection, for example WebSockets, you can use any protocol to exchange the information, even your own protocol. You can use JSON, XML, whatever, once you find the way to exchange the information between "different technologies" – bosnjak Mar 14 '14 at 13:18
  • So for example, one module can connect to a WebSocket and get some data, and send it to the central module via Ethernet or WiFi. Anything is possible, thus the question is too broad... – bosnjak Mar 14 '14 at 13:19
  • like for example zeromq.org or spread.org can i use those 2 to bind different technologies.? or do you suggest any other solution? – Benjamin Bilgehan Mar 15 '14 at 01:44
  • Those two are message queues. If you are talking about IPC, there are multiple choices, and those two are ok. You can check [wikipedia](http://en.wikipedia.org/wiki/Inter-process_communication) for more, but to select a solution suitable for you would require some more extensive research.. – bosnjak Mar 15 '14 at 01:59
  • http://www.opennet.ru/opennews/pics_base/0_1346012548.png above diagram shows what i am trying to do actually. openhab.org is a home automation software which combines more than 40+ technologies on event bus. So i am actullay looking for a non java solution. – Benjamin Bilgehan Mar 15 '14 at 04:10

1 Answers1

2

If you want to use something that already exists and is open source, I suggest looking at OpenHAB. It has a plugin for ZWave devices (that uses OpenZWave) and many connectors to receive messages from different places. You might have to write your own custom connector, but there are a lot of examples and documentation for how to do that. However, OpenHAB is a JVM solution.

If you want to create your own system entirely, you need to adopt a messaging standard, such as MQTT. Then you'll need to write something that converts ZWave events into MQTT messages and vice-versa and run an MQTT broker in the background. Then you'll need to write different components that also listen to MQTT messages and act upon them, such as a Web page that displays information about devices, status, etc.

Alternatively, you can purchase something like HomeSeer, but you'll still probably have to write some connector for Facebook, etc.

swmcdonnell
  • 1,381
  • 9
  • 22