Mycontroller 2.x ideas
wanvo last edited by
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.