Open Source Home Automation (Raspberry)
-
@John-Sirach
Nice project you got going! Let me know if you need help interpreting the protocol while developing the MySensors plugin.
-
@hek Thnx! We're doing the best we can. If i have any questions i will drop you a line. When i take a look at the devices it's all fairly simple. The only thing i notice is that there are variable types, but no data types. Is this correct?
-
Instead of every project reinventing the wheel I would hope we would come to a common MQTT gateway so at least part of the code to support MySensors can be reused and ... you can have multiple Domotica solutions in parallel working with MySensors.
Every Domotica project can then focus on how to handle the different devices the best but at least the interface talking to the MySensor network is standardized.
@Yveaux has already posted a script above not 100% sure how far this is off for a complete solution.
-
@John-Sirach
Yes, that is correct. There are both device- and variable types. You can report multiple variables on one device.
When to use a specific variable type for a device is really a silent agreement between sensor and controller. Today you could actually report a temperature variable to a humidity device. It would not make any sense, but noting prohibits this. A good example where multiple variables is reported for one device is POWER-device where you usually report both KWH and WATT.
If we can find a more general way of handling this in the future (and not over complex from the sensors point of view) it would be good. We had an discussion going about this but the thread disappeared in an crash.
- I might split this into a new topic -
-
@daulagari One of the features of PiDome is the json-rpc api which is standardized for every device added. Every device is being reported in the same manner (data, structure, etc...). One of the features on our todo list is MQTT and not only for device communication, but next to the json-rpc api and to be used between multiple PiDome server instances. This would also of course make it possible to chain different type of domotica solutions. We are not yet done with defining the MQTT structure, but it will eventually certainly be done.
-
@hek Having multiple kind variables posted to a single device is no problem, it's more about the datatype handling because of possible automatic graph creations. It would be nice of there was a table somewhere telling what kind of data a variable is for the internal mappings used. But this would an other topic.
-
@John-Sirach said:
It would be nice of there was a table somewhere telling what kind of data a variable is for the internal mappings used.
Yes, agree, and it would be even nicer if that table was in a machine readable format so that again not everybody has to reinvent the wheel.
-
@John-Sirach said:
It would be nice of there was a table somewhere telling what kind of data a variable is for the internal mappings used. But this would an other topic.
You can start the yourself topic and publish the table
It is in the Vera files on Github...
-
@marceltrapman The internal mappings was meant for my project ;). When i take a look at the github code they all seem to be handled as strings? I meant in the case of a variable to be intepreted as a string,boolean,int,float,etc..
-
@marceltrapman said:
You can start the yourself topic and publish the table
It is in the Vera files on Github...I checked out the Vera repository and do not really see a table, what comes most close are the tDeviceTypes and the tVarTypes definitions in L_Arduino.lua.
Any better definition/source?
-
@John-Sirach said:
I meant in the case of a variable to be intepreted as a string,boolean,int,float,etc..
@daulagari said:
I do not really see a table...
OK, now I understand
What I was trying to say is that many rely on @hek to do this work but we can contribute ourselves as well.
In case you think a table is what helps you to do the job it might be a good exercise to assemble that table yourself.
Apologies for not being more clear on that.
-
The table is also represented here.
http://www.mysensors.org/build/sensor_api#the-serial-protocol(an updated table will be created for 1.4 once we decide to make it official)
If your using the serial protocol to communicate with the sensor network everything coming to the controller is represented as a string. Some values might might have decimals where applicable like temperature. But this is really up to the sensor to decide.
Boolean values is represented by 1/0.
Some sensor values is represented with percentage 0-100 (e.g. DIMMER, LIGHT_LEVEL, BATTERY_LEVEL).
Yet is some values (or modes) is represented by a string (like for HEATER). But is uncommon and mostly a legacy from Vera.
-
@hek said:
If your using the serial protocol to communicate with the sensor network everything coming to the controller is represented as a string. Some values might might have decimals where applicable like temperature. But this is really up to the sensor to decide.
Ok, this is making things more clear, i will let the datatype the be decided by the user creating a device.
Thnx.
-
@bjornhallberg
I'm currently using OpenHAB with a couple Arduino sensor nodes. It works great. It does everything you've put in your required list and then some: rules engine, slick android app and browser interface, email / push notifications, data collection and charts. The only missing piece is the GUI for scene creation, but it's in the works. Also, great active community.Here's some videos and tutorial of what I've got working:
I was in the same boat as you. All these "Home Automation" platforms take a lot of digging into to find out where their shortcomings are, what they're capable of. Although I did not do an exhaustive survey of everything out there, I did look at a few on your list, and ended up with OpenHAB.
-
See thread http://forum.mysensors.org/topic/248/generalizing-mysensors for some very related thoughts about making MySensors more easily and cleanly adaptable to different controllers, cloud storage, MQTT, radio networks, etc.
(For once, I had the self discipline to start another thread rather than embed that discussion in this related one, yay!)
-
Here are some benchmarks that also happen to include certain ARM platforms, like the Cubieboard, Raspberry as well as x86 Atom and NUC solutions. It also has the N40L Microserver that I run as a storage server (but am reluctant to run 24/7).
https://s1.hoffart.de/7zip-bench/
http://www.7-cpu.com/Perhaps not entirely applicable to JAVA or node.js or whatever but nevertheless a good guide.
I bought my N40L for about €100 a while back (has since been deprecated by the N54L, don't know if it's still around?). Still stands up as pretty much the cheapest x86 board you can get, especially if you get the 4GB model and consider the performance which is better than a lot of fusion and atom platforms. Not super energy efficient though, even with the picoPSU mod and Dell powerbrick, and a bunch of 4TB drives obviously makes it even less so.
If this whole Raspberry thing doesn't work out I'd definitely look into Intel's NUC line-up. The newer i5 Haswell model (D54250WYK) can allegedly run as lean as 3.7-4.6W idle. I figure they might get pretty cheap once the next generation comes out.
-
I have put some support for mysensors in the software i'm using/creating. It is in early stage and there is some manual labor needed.
Still need to add:- Automatic node addresses
- Automatic create node devices based on node presentations
- And other stuff that can be added, etc...
A penny for your thoughts:
http://pidome.wordpress.com/2014/08/10/added-partly-mysensors-org-wireless-devices-support-api-1-4-beta/
-
@John I did a quick install on my RPi to see how it would work out. I must say I'm impressed. Server web interface was up and running in under 40 seconds or so (openhab = 4 minutes). Very snappy and the interface seems like a good basis for a powerful controller. Shows real promise! Renewed faith in Java
-
@bjornhallberg
Disable the ssl in config/system.default.properties or copy and paste the below line in config.properties (default has precedence)server.enablessl = false
And it will be even faster, it then disables the certificate generation(at least 5 seconds), ssl websocket, http and raw socket instances (couple seconds per instance type).
I'm glad you got it up and running quite quickly if i understood correct because the downloads are still in alpha state (snapshots). I wish i already had some example sensors in the DB so it could by tried out without having to create XML definition files yourself.
-
@John
Your project looks great! I'm looking around for an home automation controller and was tossing between domoticz, openhab and FHEM.My criteria are:
- MySensors support (whether directly or through a gateway)
- Z-Wave support
- Visual floor plan
- Runnable on a Pi
May have to add yours to the mix to trial.
How difficult would it be to compile openzwave and integrate it by some mechanism to PiDome, do you think?
-
- MySensors support: Almost completely done with todo's as including AUTO addressing and datatype assignments.
- Visual Floor plan: Available in the server and desktop client.
- Runnable on a Pi: This is the primary target.
- Z-Wave support: On our todo list: https://bitbucket.org/pidome/pidome-server/issue/70/add-zwave-support
OpenZWave is the best candidate to use but has not yet been completely looked into yet because the internal pidome device, web interface, and package management bindings api is not completely finished yet and grows with supporting protocols etc.. It is possible it takes between two and three months before it is included by default if i follow my roadmap.
MQTT is planned to be implemented after MySensors and other stuff, so if there is an MQTT interface for OpenZWave it should be possible somewhere in the end of September/begin October.
-
@bjornhallberg said:
TTS caught my eye the first time around, but I sort of dismissed it because it was node.js, immature, unheard of, and seemed reluctant to show much of its web gui. Seemed more like a concept and a bunch of techno babble.
The spiel on The Thing System about having "magic" in place of user visible control raises my caution flags. It remind me of the frustrations that Microsoft's software sometimes generates - when what you want it to do matches what they expected you to want, it automagically just does it behind the scenes and you say "wow, cool" -- but when you step off the paved path and want to do something different, the branbles can become very complex and difficult if not impossible.
So if your water leak detector activates, the system should "just know" what the most appropriate actions are - without the user needing to specify or configure or any of that difficult stuff. But in many decades of dancing with computers, the software has never (in any complex system) done exactly what I want. I don't trust that there is one size that fits all when it comes to "automagically" doing what I want, that adapts to all varieties of systems and all preferences. I need the option (1) to clearly know what actions will be triggered by some event by default, and (2) to be able to override or customize that action.
The Ignite video "the Trouble with Things" linked from their site does not inspire confidence. They show a wireless keyboard television control and a three button remote control and suggest that the latter is much to be preferred. Yeah, I love using up/down/left/right screen keyboards for finding youtube videos, it's so much more intuitive than typing.
When I worked on dedicated word processor systems many years ago, we used to talk about the need for a DWIM button on the keyboard (Do What I Mean). But at least we knew that we were joking. I'm not sure TTS knows when they are blowing smoke in thinking they can design some kind of hidden smarts that magically and accurately does what the user means.
I am much more interested in user interfaces where the effort has been making complex things clear to understand and easy to control, than those that think they know what I need better than I do and want me not to worry my pretty little head about what they are going to do or how on my behalf.
(And I do get that their target market is not people who are willing to solder together and program their own wireless sensor network. They want to attract people who want home automation to be as easy as using a microwave oven or driving a go-kart. But I've seen misguided and arrogant implementations of DWIM frustrate and confuse non-technical users many, many times as well).
That said, they may come up with something worthwhile in some niches. But my warning flags are up.
-
@Zeph Yeah, it almost seems like a trend these last couple of years. I agree completely with what you say. I don't know how or why this came about, perhaps we are all experiencing the consequences of the Iphone boom and all that it ushered in. Windows 8, Windows Phone and even Android seem to be creeping towards this goal. A desire to reach out to tech illiterate people (and ultimately profit from them).
I just realized it's hard not to sound like a complete elitist though when talking about these things. Haha.
"Magic" wouldn't be so bad if it just didn't strip away user control and choice, dumbing things down, but it always seems to be the case. Like it is some ideological tenet. I can't shake the feeling that more often than not (in the case of Microsoft for instance) there are murkier reasons for doing what they do. Just like with the rise of "the cloud". takes off tinfoil hat
-
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
-
Domoticz crew is looking for someone to implement (in C++) the MySensors api/gateway…
Here's the ticket if anyone is interested.
-
@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 ;).
-
I have created a "Controller" section and moved all relevant threads I've found.
@John
Please create a new PIDome thread here.
-
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.
-
EasyIoT, Homeseer and Pimatic added to the list of supported controllers on the main site.
-
MajorDoMo added to main site
-
@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.
-
@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.
-
@hek @AWI Ahhh beta feed! Yes, that helped. Now I need to figure out Why I get LUA / Blockly errors on all events. Something about a nil utilitidevice . Thanks !
-
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.
-
@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.
-
Please add Calaos and openLuup to the list.
-
@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!
-
-
Include ioBroker. We support mySensors over MQTT protocol.
ioBroker has over 80 adapters/drivers and all of them developed with Javascript (node.js)
-
@bjornhallberg (+ others in this thread),
Interesting thread, great discussion about the pros and cons of various systems. I think we all go through these thoughts in our own heads at one point or another, some of us jumping in and trying different systems one after the other (which is sometimes the only way to REALLY know the system, as you correctly point out) and others (like me, and some others) prefer to read and read and plan a lot before jumping into something.
At any rate, the longer I keep evaluating different technology solutions (and this applies in general, could be anything from an email client, to a Home Automation solution) the more and more I keep going in the direction of evaluating a project more and more on their merits as an overall project, which largely is a function of who is leading the project and their stated goals, as well as the friendliness, talent, and numbers of the community that coalesces around that project. Also I think the lack of a profit motive (or at least, not so much of a greedy, overwhelming one) tends to end up benefiting the end user. I think all of these factors together will insure the ultimate success (or failure) of any given project (and most especially, how well it will end up benefiting THE END USER (i.e., you and I) )!
And so, after running into the various roadblocks (as have been described in this thread, which seem to usually be the results of financial interests of some company pushing proprietary, disparate systems, and/or the seeming trend of oversimplification of technology, as brought on by the introduction of the iPhone to the unwashed masses, etc...) I keep moving more and more in the direction of free and open source software. Which in and of itself is not enough. You also must have the good leadership, vision, and community as I mentioned above.
I find all of these criteria here in spades at MySensors, which is why I have decided to become a part of this wonderful, talented community!
Which brings me to my point. If you then go on and evaluate Controllers using the same criteria (and I have), I feel that OpenHab is the logical conclusion, and natural kindred spirit for a Controller for your MySensors network.
That is not to disparage any other communities or projects that anyone here is involved in. I think that, to a certain extent, and in a more general sense, that competing systems are good for everyone. However, in the Home Automation space, which I have been watching for a very very long time, there are TOO many different competing (and more importantly, non-interoperable) systems. What we have always needed is One System To Rule Them All (OK, perhaps rule is too strong a word, so instead let's say, allow for universal interoperability ). That way, the end users are free to pick and choose from all the various solutions available on the market, and know that they will have one system that will be able to tie everything together should they need to get something they really like from company A and make it work with some other thing from company B , or add some other functionality down the road, etc.
I have read a lot already, and I have more to read still, but it seems to me that (based on what I know right now) ultimately, OpenHab should be the project that those who feel as I do should throw their weight behind, and support into (hopefully) becoming that One System To Rule Them All (or Universal Glue, if you prefer).
This is just my 2 cents as someone who has been looking into Home Automation on and off for many many years and never fully took the plunge, as the stuff was too expensive and/or there were always a number of disparate, often proprietary, systems (that would not work together). I feel that all of the factors are coming together (inexpensive components, open source hardware and software, the maker movement and growing size of community) to finally allow the dream I think we have all had for a very long time to finally be fully realized. And I am very excited about that.
Sorry for such a long first post, I am just very excited to be here, and to see where we are at now and where we are going with inexpensive, open source Home Automation. And hopefully to eventually contribute something useful to the community, and in turn help the general state of DIY Home Automation move forward.
-
Please add the HoMiDoM controller. Supports MySensors through the serial interface.
http://www.homidom.com/driver-MySensors-c89.html
-
Home Assistant now support ethernet gateway
-
I just committed a controller module for Misterhouse if you want to update the list. Supports both serial and Ethernet gateways.
-
Thank you for creating a MySensors Misterhouse module!
-
Actually, now that I think about it, Misterhouse also has support for MQTT so you can probably list all three gateways for Misterhouse. Sorry for forgetting about that one in my initial post.
-
The question is if it recognize MySensors topics and do things like hand out ids over MQTT.
-
@hek said:
The question is if it recognize MySensors topics and do things like hand out ids over MQTT.
Hmmm... good point. Hand out IDs, no, not out of the box, but set/req should work. For now I am fine to leave MQTT off and I will look at what would need to be done to add basic MYS specific internal support.
-
This list seems the most complete list of available Home Automation Software and not only open-source and not only for MySensors.
I have some proposals:- is it possible to add voting here to see, who has selected what software and see what is the most popular HA platform?
- OpenRemote seems to be more commercial, than open source. In free version it's so limited, that almost unusable.
- You can add some more Commercial Software in the list, but not sure how they can support mysensors:
--Eve Server http://www.ilevia.com/eve-server/
-- Iridium Server http://www.iridiummobile.net/server/
Regards