Mycontroller 2.x ideas
IMHO the "TICK" stack is very complex, and therefore maybe not so suitable for a larger audience, the beauty of mycontroller is that it is relatively easy to install and use.
InfluxDB can be setup automatically..
Another thing that needs to be taken into account is that the TICK stack is very resource hungry (ofcourse depending on the load from the sensor network), the OrangePIzero will have a hard time with just 512MB memory... even 1GB is small for the complete stack.
Just my 2 cents..
Maybe you're right. I have not tried to load TICKstack with a lot of data streams from sensors. I installed all parts of TICKstack's and I'm studying the possibilities of this system with one temperature data stream and three relays.The memory capacity of Orange Pi Zero is still sufficient.
Maybe then it makes sense to provide interfaces for the interaction of MyController 2.X with Kapacitors, Cronograf and InfluxDB, and TICKstack itself should be installed as an option?
I want to find a simple and beautiful dashboard with drag and drop programming.
Mycontroller is beautifull
Try influx and grafana4 this will get you a highly customizable dashboard with all the stuff you want.
I did a setup of mysenors --> mycontroller --> influxdb --> Grafana4 and it works, but it is no easy setup. and will definitely not run on one single OPI0... CPU will be continuously in high performance mode and the OPI0 will get very very hot....
In this setup mycontroller is handling the relays....
How is Grafana better than the built-in Dashboard of Cronograf? Cronograf weakly loads the processor and quickly runs on OrangePiZero. He really does not have a mechanism for controlling the relay or other devices. So far I have not figured out how to combine graphics and buttons on the same control panel. It may be necessary to use NodeRed and organize a virtual MQTT node.
Well the minimal system requirements give an indication on what hardware should be used. OPI0 is from a memory perspective a little "light". anyway it all depends on the load. So it might be that for you it works fine.
Thank you!! will have a look!
Thank you for the project. I like MyController a well-developed transport layer, a lot of communication interfaces. I like using the MQTT broker. There is not enough user-friendly dashboard with drag and drop programming, so that the user does not need to delve into the subtleties of html, css, etc. to connect third-party widgets. I want a script editor with direct access to InfluxDB, so that you can make decisions on historical data, including the old one.
I do not know how to write this all at https://github.com/mycontroller-org/mycontroller/projects/1 and what open sourse resources to use. So I write the wishes in this topic.
In general, MyController cool thing!
njbuch last edited by
I think I might suggest that you forget about the dashboards, graphs and gauges, and focus on the data-flow, conversions, notifications and rules.
And dont be fooled by the time it takes to start from scratch. I dont think your timing is right, I dont see any benefits of changing all those frameworks. But a significant re-design of some parts might be cool.
@njbuch You are right! I am not going to start from scratch. I will start 2.x branch from the existing code and do major changes, like support ACK (needs a lot of change on message queue), Rul engine performance improvement, Switch to Angular4 on UI, standardize REST API, ionic mobile application, InfluxDB for metrics(no more RDBMS metrics support) and much more.
zachflem last edited by
The one thing I can say would be nice (from a very early user) is less reliance one scripting based setup.
While I don't mind delving into it, the ability for my non-programming-centric wife to be able to edit the schedule for our watering system would be nice.
There is a button to change the state of my relays, why do I have to script a timer for them?
set the run time in the operation for each zone, set the schedule using the timer, run.
Hope to discuss more with you all as I learn more myself!
@zachflem Thank you for your idea. Could you please elaborate a bit more on this? Do you want to implement readymade widget kind of things to replace script?
zachflem last edited by zachflem
@jkandasa I like the scripting ability, don't get me wrong.
I've got switches setup on the dashboard for 2 relays. It would be nice to add a feature to those switches to automatically turn them off after x seconds/minutes.
As part of the operations tab, have the option to select the sensor (in this case a relay) and set the status to "ON" and the duration to x seconds/minutes. Then setting a reoccuring timer to run, using that operation would result in the sensor (the relay) operating for the defined duration.
I might not be explaining myself very well, I'd just like to see some scheduling into the GUI so my wife could change/setup a new watering schedule if I'm not around.
A little off topic, but is there any documentation about scripting in mycontroller?
@zachflem well, this is a nice request. I will take it to the todo list.
@skywatch I'm adding your idea here,
For V2.0 you might like to think about a page in the settings area with radio buttons to set the 'INFO' / 'DEBUG' etc parameters. Would be easier, especially for people who are new to linux.
Daniele last edited by
@jkandasa , how is it going with the implementation of 2.x release?
Did you have a chance to start working on it?
@daniele Thank you for your patience. No, Still I'm on collecting ideas and coding languages.
For now, for UI I have chosen ReactJS, it has good support for native mobile application too.
Avamander last edited by
I've tested InfluxDB + MyController on my Raspberry Pi 3 for a few months now (thank you so much again for your work @jkandasa). The setup offered super easy way to submit readings into a database but I noticed weird anomalies and after some time I started seeing corrupt data. I'm going to switch everything back to PostgreSQL and see if that could provide more stability.
Although (memory) heavy, I do feel Java runtime provides significant and important cross-platform support with better performance than say Python or Node. What I mean is that current choice to use Java is not a bad one.
The WebUI is as well a bit heavy on browsers, but it can be sped up significantly with modern tech such as HTTP2 (+PUSH) and TLSv1.3 making it absolutely okay to use - some good CSS could fix pretty much everything wrong with it. What I fear is that going with the latest tech here, expecting good cross-platform support and easy code, will end up worse than what we have now, for example HA's webgui. I propose that MyController provides a good API, something uses that API to render a webGUI (the webgui could use say Grafana by-default to display graphs instead of reinventing the wheel) or to display data in a native Android application.
@avamander Great points! I will keep in mind these point for MyController 2.x.
Thank you so much!
skywatch last edited by
@jkandasa Something that would be good is a way to flag aged data or node down on the dashboard display.
As it stands we cannot know 'when' the last data arrived or if the node is still sending data.
It would be good to have a method where by if no data is received after a certain amount of time (setting individually for each node or better still each sensor) then the display on the dashboard can change text colour.
So lets say I have a node or sensor that sends data every 5 minutes. I can have a setting that says 'If no data after 12 mins' then the text turns amber. Next if no data after 30 mins then the text turns red. The times should be individually selectable by user.
Whilst it's relatively easier to see the time of data with graphs, it's still possible to glance at a graph without taking note of the times and assume data is current.