I had a discussion with a friend of mine on "Why the hell are you designing a new PCB instead of buying one" ?
And he is right, there is a lot of great cheap boars like Moteino, Anarduino, Jeenode...
But on the hardware side:
- I like to learn
- Some of them are not so cheap
- It is not so difficult: in fact there is just an ATmega, a RF chip, an optional voltage regulator and some passives selected to optimize power consumption
- Adapted to my needs (RFM69hw, dedicated footprint for some sensors, form factor, regulator, connectors...)
- I am not reinventing the wheel, so I will use some libraries from these guys
- Regarding firmware side they have done a great job, but I not found it flexible enough or too complicated.
For software and IHM side : a lot of big softwares like (Jeedom, Domoticz, OpenHAB, ...). This time too, I see pros and cons:
- Good GUI design, looks pretty
- Only use of MySQL, not really adapted for storing sensors data on a small embedded Linux card
- Open-source but commercial aspects are really intrusive
- Not so easy to add a module
- Seems more open and lightweight than Jeedom
- Bad GUI design
- Seems to be based on SQLite, lightweight but some old test on a Gumstix gave me bad results after few months
- Created to be linked to any modules or database
- Not lightweight, might be related to the use of Java
- Bad GUI design for version 1, the v2 seems great.
- The v2 will be too late for me
Also, I discovered Nod-Red which is really easy to use, and created "for wiring together hardware devices, APIs and online services in new and interesting ways", exactly what I am doing. The main drawback is that all is asynchronous but it can be bypassed.
On database side I wanted to try some time series databases which are made to collects metrics, and NoSQL
- MongoDB with or without cube layer : I heard good things but never tried.
- Graphite : I tried on a Raspberry Pi, it works but it is a complete solution : too big for me, lot of dependencies and components
- InfluxDB : I like the approach, the v0.9 add 'tags' which are good for my application, performs well on the rPi. Maybe a too unstable but I will give a try :)
On the GUI side, I did not found what I want yet, so I am testing Grafana to display data and might use some links inside to start actions until I find something great.
I might also do it myself, but I am far away from being a designer so it can be really ugly....