Open Source Home Automation (Raspberry)
-
A little late to the thread here, but as I'm constantly looking at open source automation software, thought I'd chip in.
My first forays into HA were with an RFXTRX and domotiga - it's a great system with plenty of interfaces. The downside for me was that it needs (maybe doesn't any more) a linux host to run the UI - I use a windows PC and the extra step of having to run a Linux VM to make any changes got in the way.... that said the vast number of options gave me a lot of ideas about what and how I want to automate things.
I spent around 18 months running AgoControl - I was impressed with this from the outset, and persevered for sometime with it's quirky interface (web gui isn't intuitive for building scenes and doesn't resize for tablet/mobiles). The deal breaker recently for me was one of reliability - I found the RPi needed to be rebooted every 4-5 days due to a memory leak issue with the AMPQ engine, a daily cron reboot of the RPi seemed to improve things, but then for some reason certain events wouldn't reload. I think (not sure) there were some issues with the openzwave wrapper which caused a few issues and slowness with the response times. The second issue I had was that the majority of the plugins are written in perl, which seemed to dramatically slow down the system when more than a couple were running.
I haven't given up on it - I still have an RPi set aside for AgoControl, and will look into it again when I have more time.
It was time to investigate issues which led me to purchase a veralite a couple of months ago, and while not in itself not quirky (multiple lua restarts needed to pick up changes etc), it has been faultlessly reliable in that two months.
I have looked at OpenHAB, it's vast number of interfaces (bindings?) and mature looking interface being the appeal. Unfortunately, despite being technically minded, I'm not a hardcore developer - and having looked at the documentation for OpenHAB, it looks hellishly complicated just to set up, let alone build scenes and so on for.
I've also played around with NodeRed and a few jeenodes and am considering/planning to use nodered and the mqtt gateway for mysensors to re-use some of the code I built to send sensor data to emoncms.org.
Cheers
James@jdr0berts Yes, it is unfortunate that both domoticz and agocontrol are such dinosaurs since they are the only ones doing C++. If PIDOME wasn't making such progress I'd probably have to give up on MySensors. At least mothball it for six months and see if something has changed. Sad truth of the day.
There are two things I wish I had realized from the beginning. One being how literally everyone is using a Vera (and z-wave devices as well) and is happy with that and secondly that the controller is responsible for more than just receiving and sending messages so mimicking the Vera is not entirely easy. Like the automatic nodeIDs? I had been a tad more skeptical as to the outcome had I known this. I'm not griping, I've just suddenly gotten a better understanding of what a 3rd party developer has to go through.
@andriej Slim chance of that happening. They're also looking for someone to write a C++ MQTT implementation. The current one is some sort of node.js to lua. With the lua missing. I've asked in their forums and at the guy's github about where to find the file. No reply. I understand the implementation was also quite slow so it might not matter. I.e. the antitheses of the quick C++ core.
@John Perhaps you could set up a dedicated PIDOME thread for some q&a and troubleshooting? It would probably also get PIDOME some more visibility for people ending up in the Raspberry forum looking for a solution.
-
@bjornhallberg
I think i've missed your mention. Yeah it would be a good idea, albeit not for exposure but for helping out if there are any issues with it (i already find my mailbox filling up with mysensors questions). So yeah i think it is handy to have a dedicated thread. But only if @hek agrees with having such a dedicated thread.If PIDOME wasn't making such progress...
It still is going to slow (in my personal opinion).. especially with not having enough hardware to test with ;).
-
@bjornhallberg
I think i've missed your mention. Yeah it would be a good idea, albeit not for exposure but for helping out if there are any issues with it (i already find my mailbox filling up with mysensors questions). So yeah i think it is handy to have a dedicated thread. But only if @hek agrees with having such a dedicated thread.If PIDOME wasn't making such progress...
It still is going to slow (in my personal opinion).. especially with not having enough hardware to test with ;).
-
I stumbled upon HouseMon the other day ... anyone here try that? Seems pretty damn great, but a bit obscure and very hard (for me at least) to make heads or tails of. Uses a slew of catchy, modern tech (Dataflow, MQTT, LevelDB, WebSockets, AngularJS, CoffeeScript/Jade/Stylus, Go) all across the board and, most importantly, is quicker on the Raspberry than I would have ever imagined possible, including the web front-end. At least for the test setup. Probably because it uses a pre-compiled binary.
Installation:
http://aka-lightbulb.com/2014/04/28/housemon-0-9-x-on-linux-binary-installation/Not exactly ready for public consumption yet but not so unlike OpenHAB in its design and complexity either.
-
Perhaps this discussion should be taken to a more rudimentary level, trying to figure out which automation software we actually want to bet on. And what software will actually run WELL on the resource limited RPi. It would take some convincing before I ever installed java-based solutions for instance, like openHab.
Has anyone actually tried Ago Control? Is it any good? Does it work well with the Pi? The installation is 130MB no less. A ton of dependencies. Makes you wonder about RAM and CPU usage.
It feels like this entire market is a bit premature at the moment.
@bjornhallberg I installed AGO and the Mysensor plugin on my RPI/b and after much head scratching and picking out little tidbits here and there on how to get this to load I have a MySensor sending data to it. -- The webgui is reasonably fast, but for the world I can't figure out what you actually can do with it or how you could use the GUI to configure any action to be taken depending on a Sensor reading. The Documentation is totally missing any hints as to how to use the thing.
Without any clue as to how to make this do anything useful I will format the Rpi's SD card again...
-
@bjornhallberg I installed AGO and the Mysensor plugin on my RPI/b and after much head scratching and picking out little tidbits here and there on how to get this to load I have a MySensor sending data to it. -- The webgui is reasonably fast, but for the world I can't figure out what you actually can do with it or how you could use the GUI to configure any action to be taken depending on a Sensor reading. The Documentation is totally missing any hints as to how to use the thing.
Without any clue as to how to make this do anything useful I will format the Rpi's SD card again...
@GaryStofer Haven't used Ago Control in a long time. I wouldn't have recommended it in the past. Didn't like the AMQP deal. And there were other nuisances. However with version 1.0 coming up perhaps they have made enough improvements to warrant a new look. Support for the ImperiHome Android app is a big deal for instance since their own Android app was pretty basic. If you're not using 1.0 from their testing repository I can understand your frustration.
Personally I'm quite content with Domoticz for the time being. Easy to use and just works.
-
Hello I am new to all of this but I was so happy that this library worked out of the box. I went with MySensors and AgoControl and was elated until I saw that my servo would not move. It reported the distance sensor and switches worked, but "drapes" and "dimmer" did not. It was not difficult to find out how to add support and now my servos turn but I have not submitted code.
https://github.com/mce35/agocontrol/blob/master/devices/MySensors/agoMySensors.cpp#L732
Actually MySensors seems to have an enormous amount of supported types, and AgoControl seems to have a good amount but the glue, seriously probably the easiest part, is missing. -
@GaryStofer Haven't used Ago Control in a long time. I wouldn't have recommended it in the past. Didn't like the AMQP deal. And there were other nuisances. However with version 1.0 coming up perhaps they have made enough improvements to warrant a new look. Support for the ImperiHome Android app is a big deal for instance since their own Android app was pretty basic. If you're not using 1.0 from their testing repository I can understand your frustration.
Personally I'm quite content with Domoticz for the time being. Easy to use and just works.
@bjornhallberg I like to give Domoticz a try, but I can't find any mention of a MySensor plug-in anywhere in their Documentation nor on the Wiki. The only mentioning I see is on the MySensor.org controller page saying that it's supported.
How are your MySensors talking to it?
gary
-
@bjornhallberg I like to give Domoticz a try, but I can't find any mention of a MySensor plug-in anywhere in their Documentation nor on the Wiki. The only mentioning I see is on the MySensor.org controller page saying that it's supported.
How are your MySensors talking to it?
gary
@GaryStofer Take a look at topic, you need the Domoticz beta feed. The Domoticz Wiki pages are not updated for the MySensors implementation. @hek was there any new documentation?
-
No, I haven't seen any new MySensors documentation on their wiki yet. Rob is on a business trip so I doubt there will be any the coming couple of weeks.
-
It also has to be real AUTOMATION in the sense that you can build long and complicated scenes that can respond to changing condition in and around the house, preferably in some nice graphical interface where you just drag and drop the building blocks (Blockly).The perfect solution to build such scenarios is to use Matlab/Simulink/Stateflow and model based design. In this way you can graphically develop control algorithms, state machines and simulate them in PC before you ever start testing them on real home. This is much faster, and it is also industry standard in automation, cars, avionics and space. Afterwards with just few clicks you can generate C code, which will run on any hardware. The code is totaly hardware independent - they have targets for Raspberry, Arduino, Lego Mindstorms etc.
The only problem - it costs some good money.
So finally all you need - is an automation software, which can execute C code. -
Supported connection method in boldface (i.e. SERIAL, ETHERNET, MQTT, GPIO). Programming language in [brackets].
..........................................................................................................................
Free / Open source:
- Ago Control [C++/PYTHON] (SERIAL)
- Calaos [C++] (SERIAL/ETHERNET)
- DomotiGa [GAMBAS] (SERIAL/ETHERNET/MQTT)
- Domoticz [C++] (SERIAL/ETHERNET/MQTT) #RECOMMENDED#
- EasyIoT [C# = REQUIRES MONO] (GPIO)
- FHEM [PERL] (SERIAL/ETHERNET)
- Freedomotic [JAVA] (SERIAL/MQTT)
- Heimcontrol.js [NODE.JS]
- Home Assistant [PYTHON] (SERIAL/ETHERNET)
- Home Genie [C# = REQUIRES MONO] (MQTT)
- HouseMon [GO] (MQTT)
- ioBroker [NODE.JS] (MQTT)
- Jeedom [NODE.JS] (SERIAL/ETHERNET)
- MajorDoMo [PHP] (MQTT)
- MisterHouse [PERL] (SERIAL/ETHERNET)
- MyController.org [JAVA] (SERIAL/ETHERNET/MQTT)
- OpenRemote [JAVA]
- PiDome [JAVA] (SERIAL/MQTT/GPIO) #RECOMMENDED#
- Pimatic [NODE.JS] (SERIAL/GPIO) [link]
- Pytomation [PYTHON]
- The Thing System [NODE.JS] (MQTT)
- homA [NODE.JS]
- home.pi [NODE.JS] (MQTT)
- openHAB [JAVA] (MQTT)
- openLuup [LUA] (ETHERNET)
..........................................................................................................................
Commercial Software
- Homeseer [?] (SERIAL)
..........................................................................................................................
Currently not on the Raspberry. Might work with Windows10 and RPi2 in the future?
- HoMiDoM [?] (SERIAL)
- zVirtualScenes
- Opensourceautomation
..........................................................................................................................
Misc
- pymysensors - Python code for interacting with the network
- pymys - Another python solution
..........................................................................................................................
Personally, I'm still looking around for the perfect home automation software. And I have a fairly steep list of requirements, among them being a meaty and stylish Android app and notifications using Pushover (and Pushbullet for images?). It also has to be real AUTOMATION in the sense that you can build long and complicated scenes that can respond to changing condition in and around the house, preferably in some nice graphical interface where you just drag and drop the building blocks (Blockly). Not to mention taking advantage of the state of the art charting libraries that are available these days. I'd also like for it to interact with the Raspberry Pi camera module in an intelligent way, so it probably needs to be able to be able to allow extensive scripting, like being able to run raspivid, raspimjpeg and/or raspistill when motion sensors trigger or whatnot.
Finding the right controller software can be confusing and you seldom see the whole picture right away. Some automation software solutions are easy to install and boot up quickly but may slow down under the load of many sensors and rules. Some others may be a real hassle to install in terms of dependencies and slow to boot but may hold up better in the face of more complex home automation. Some are user-friendly but offer little control while others offer extensive control over interface and function but might drive you mad while you figure them out. It is safe to say that there is no obvious choice as of now and that the market is still far from mature. One should also note that the Raspberry Pi 1 is NOT a very fast platform and will not be ideal for many of the JAVA implementations above, unless the developers have had such platforms in mind when modelling their software (PiDome being the notable exception). Personally I am not very keen on software that will take minutes to boot up and effectively bog down the Pi in the meantime.
As for a faster hardware platform to replace the aging RPi I'm still looking around. The Pi has a support community that none of these other, newer platforms can claim after all. It would have to be a significantly faster system at basically the same price point for another ARM platform to make any sense. It's lucky that the Raspberry Pi 2 was announced at last then. Its IoT support for Windows 10 should provide more possibilities if it runs OK and most of the software above should continue to run on regular Raspbian or whatnot with little or no changes. Whether we ever get any multi-threaded support though for a real performance boost is another issue. Still waiting for the final verdict on the ODROID platforms, particularly the C1, but in my mind, the price including the eMMC module quickly approaches that of some cheaper x86 NUCs or one of those other Atom-powered boxes that keep turning up and are relatively quickly bridging the price gap.
@bjornhallberg @hek Can you add MyController.org in to Free / Open Source list as it is supporting for Raspberry PI?
MyController.org [JAVA] (SERIAL/ETHERNET/MQTT)
-
Why isn't ETHERNET listed with Fhem? I've been using eth-gw perfectly for two months now.
-
@m26872 Ok. Changed!
-
Hi @bjornhallberg,
We have been updating our website from wordpress to a self hosted platform on http://pidome.org, This means the url pidome.wordpress.com will be obsoleted and http://pidome.org is the new location.
Could you update the url?
Thanks in advance and cheers,
John. -
@bjornhallberg Thanks for the change!
P.S. i recently also added support for local /dev/tty* serial ports which weans that also the GPIO gateway solution is available (http://forum.mysensors.org/topic/2389/added-support-for-local-mysensors-rpi-direct-radio-connection). I know changes are a bit scattered but also is my implementation schedule, sorry ;).
Cheers!