Dianemo-Rpi2 - making programming & customization easy
A New Era in Smart Home Technology
In Dianemo-Rpi2 we didn't just want to build a smaller more efficient Dianemo system we also wanted to make it much more accessible to ordinary users. We wanted to make customizing Dianemo-Rpi2 by adding new code much easier for people who are not experienced at writing code and in parallel we also wanted to make laying out & designing UI's a much richer and more visual experience.
Adding the code for a new device template or scenario will be a simple process dragging, dropping and connecting visual objects together. The objects will be written under the hood in Python, and if you are a Python programmer you can create your own objects and add them to the system (these objects will be shareable between users/systems). The process of creating the code for a Device Template will involve dragging some pre-built objects into the editor and connecting them together to indicate how data should be passed from one object to another. If say your device takes input from an door bell for example and needed to react to the button being pressed you would drag out a 'Switch' object and 'watcher' object and connect the 'watcher' object to the 'Switch' objects output. Now when the 'Switch' object changed state ie someone pressed the door bell your system would be alerted by the 'watcher' object and could react in some way. This is a simple example but it explains the high level visual process of adding code to Dianemo-Rpi2.
If you know Python and your device template needs something special that is not in the object library already then you can create a new object by writing some Python code and adding it to it. Most users will not need to know or code in Python and will simply use the standard Objects. Once you have created the logic of your Device Template then you can then layout any UI screens your template needs visually too. Simply drag & drop buttons, sliders & other UI controls into position and associate the UI screen with the visual code object you created earlier and you have a complete Device Template. Device Templates can be shared with other users easily too.
The same visual editing process will make changing or creating Dianemo-Rpi2 UI skins just as easy. Simply open the UI screen you want to modify in the visual layout editor and make any changes by dragging button objects or any others around, add new objects or adjust the layout visually. When your happy with your changes save them. If you are comfortable editing HTML5/Javascript in a text editor then you can edit UI skins that way too. As with Device Templates UI skins can also be shared easily with other Dianemo-Rpi2 users too.
We hope Dianemo-Rpi2 will provide a powerful and accessible visual environment for customizing and extending the system while also providing a rich Python based coding environment for those who know Python and have coding experience. Hopefully both types of user will find Dianemo-Rpi2 a great environment to build and develop in. Obviously I am only providing a very basic overview here and I hope to be able describe more details and in depth examples in the future.
As ever please if you have questions either email them to us here;
inquiries@ellipticalcurve.com or post your question here in this thread.
All the best
Andy