I've been taking a break working on a "buddy tracker" to keep track of downwind paddling friends when the waves are overhead and it's easy to loose track of one another... I have a bunch of things I need to fix in FlexDash also for myself, but most need some focused time. I do hope to get back into that soonish.
Have you continued to see issues with the chart display? I would not be surprised if there were still some race conditions for the chart display in there...
Bug confirmed.
No, since I restarted node-RED, the charts have displayed consistently OK.
I'm still seeing the Error: uPlot chart created too early
message on the browser developers console.
IMHO
Sliders are the 2th most important things at a house control. (First are buttons.)
- light intensity
- heat
- fanspeed
etc.
What I'm missing at the old UI and would be really great to have "out of the box":
-
Possible Logarithmic scaling
(because there is a huge difference between 0.1%-5% or 85-90% controlling a LED dimmer 0-255)
... maybe that's why you hated those too? -
Having a BIG button at the end of it to turn it on / off
-
Setting min. value (normal 230V Bulbs do not give light under 30-40%)
-
Setting max value (running a LED or bulb at max 80-90% gives 5x longer lifespan)
-
Choose between % and Value
-
Remember "last state" When turning on
-
Soft dimming (instead of "jumping directly to a value)
-
Being compatible with old browsers on old devices too.
(Usually You through away old mobiles and tablets but it's great to reuse those fixed on a walls. Recycle > save the planet. Please. We, coders are mostly responsible for that.)
For example:
{
"vertical": false,
"logScale":2.5, // 0 = off
"onOffButton": "left", // "top", "both", etc..
"minValue": 0,
"maxValue": 255,
"showAsProcent": false,
"rememberLastValue": false,
"turnOnValue": 230,
"minChangeTimeMs": 1000, // for small changes in milliseconds
"maxChangeTimeMs": 4000, // from 0-100%. (From 25%-->100% it will take 3000ms.)
"turnOnTimeMs": 0, // pressing the button to turn on gives immediate light. At "night mode" it may dim in nicely
"turnOffTimeMs": 10000, // turing off can give a nice fadeout.
"showLabel", true,
"text": "Living room LED"
}
... of course all these values should be dynamically changeable during runtime.
You may have missed 🎇 FlexDash alpha release - round 2 - #43 by tve I did add sliders (and they look pretty good, I think).
I miss log scaling on charts, but not sliders... I fear this may be left as an exercise for someone to produce an alternate slider... The code is pretty simple and short: flexdash/src/widgets/slider.vue at main · flexdash/flexdash · GitHub
Min and max are in the existing slider. The button and %/val toggle are things I would suggest to build out of a combination of button+toggle+slider, or toggle+toggle+slider. Using a panel you can organize them how it looks best to you and make them look like one widget.
These would be server-side features (Node-RED flow).
FlexDash uses Vuetify and that requires reasonably modern browsers (my brain actually too...). I'm not able to figure out polyfills for older browsers nor am I able to test them. If someone else wants to take on that task I'd be happy to discuss any changes that need to be made. I sympathize with wanting to use older devices but at the same time if I can't dev FD because of being bogged down in compatibility testing then there's nothing to use the old devices with either .
I have an old Samsung 10" tab that runs Android 7.1.2 with Chromium 76.xx and that doesn't seem to work. But that thing is so slow no matter what app I try that I fear its days have passed anyway. Have you tried FD with the devices you would like to use?
OFF:
Not yet, and I'm already afraid that it won't work. If Android 7 is no-go, Android 4.x won't go either.
I have 5 older tablets and 3 old phones. Only 2 of those devices worked with the "old UI slider". So this is an other step towards creating even more electronic trash.
That's why I was voting for Svelte instead of Vue. It seemed for me, it is more compatible with everything.
Also I trust Svelte more not to hide any "special backdoor" inside their code. (+ it's faster + smaller.)
Don't get me wrong: I'm very glad someone is doing all these things in his free time!
I just feel that NR would be a great tool to save energy + reduce waste by using old devices to control your environment better. (70% of DIY smarthomes use NR already.)
And it's simply up to Us to make it all possible!
Couldn't that also be a server- side feature, and easily created in node-RED?
And of course, uibuilder is there to help!
You know, I could insert a "you could do all this much easier if you used FlexDash" message into almost every UI builder thread
The problem is not whether FD or UIBuilder or Vue or Svelte, the problem is having someone with the time to kill to implement it all... ES5 (and ES6) are pretty game changing in terms of writing and maintaining interesting browser apps.
I appreciate the goal of reusing old devices and have a pile of them myself, but at the same time, I do not believe that the burden should be on volunteer open source programmers to make it happen. I decided not to use some old devices when I informed myself about the security update situation. After 2-4 years no Android devices receive security updates anymore, iDevices are a bit better by a year or so. You can load newer OS versions but you can't update the kernel nor many of the firmware blobs anymore. Yeah, I know, you plan to use them at home and no-one is gonna break in to your network to exploit the devices and of course no-one is going to exploit any of the wifi/bluetooth vulnerabilities either...
If you want to beat on someone beat on manufacturers for not providing updates for more years and on folks that have to buy the latest model every year.
... and if you want to do something concrete: try out some of the older devices and report what is working and what isn't and whether polyfills could work or not...
I changed the wording to "warning". I don't think it causes an issue. There are still some problems in getting the timing for drawing the chart right, but I'll have to do a bigger overhaul to properly fix it. One issue I've discovered is that if I change a chart's payload to empty ([]
) then the chart doesn't get emptied... The code thinks "there's no data yet, I don't need to do anything!". Hrm.
My comment was not a criticism of you. I welcome all input to Node-RED. There is plenty of room for multiple contributions and I, of all people, recognise the amount of time and effort required having published 63 versions of uibuilder over 6 years.
The comment was simply a reminder that, as usual with Node-RED can do things in various different ways to meet different needs. This isn't about whether Flexdash or uibuilder or Dashboard is easier or otherwise, it is about using the right tool for the right job. Dashboard is a great tool and has been fantastic for the Node-RED platform - but we all know that it has its limitations. uibuilder has a different set of limitations, doubtless FlexDash does too.
Believe you me, this is close to me both personally and professionally. And I can assure you that I am not shy when talking to Apple and Google.
My concrete support goes into uibuilder. I don't have spare time to do much either with Dashboard nor any other dashboard type.
Sorry, the second part of my post was a response to @PizzaProgram not to what you wrote.
Just for the record:
- Device: Samsung Tab 10.1 "P7510"
- Released: July 2011 with Android 3.0 (yeah... that was a messed-up version, Google's first attempt at tablets)
- Upgraded to Android 7.1.2 courtesy folks on XDA
- Browser: Chromium 96.0.4664.54 found via XDA
- Runs FlexDash just fiiiiine
- (It's a bit laggy but the std dashboard is way worse)
Now it's your turn to show one of your old devices with FlexDash!
(Getting this working took me less than 15 minutes, BTW...)
Thank you very much for the demonstration!
So the "solution" is to upgrade the device itself, if it's possible.
I've tried it too 1-2 years ago, but sadly my old devices had:
- no XDA ported OSes, or
- it's are too complicated to get root access to. (Like Lumia phone)
One tip I had luck to make an old tablet to work with the old UI and sliders worked too:
- if Chromium is not installable to old android version, there is : Bromite
It is a bit hard to find out which version is the latest you can install to which Android, but it's worth it.
For example: my Android 4.1.1
> Bromite 73.0
Currently I can not test FlexDash myself, because my NR is still 2.x version. I hope I'll have more time for these things from 2023.08+
The real trick is to think ahead and not buy devices that can't be upgraded!
My last two phones have been Pixels 'cause (a) they can easily be flashed with new 'ROM's and (b) they can easily be used without a trace of Google or any other manufacturer spyware.
Don't think that is at all realistic I'm afraid. Many people need to get devices but can't necessarily afford ones that have a long-term outlook such as Apple or Samsung or Pixels. Many of the devices we are talking about are saved from being scrapped by using them in home automation, if they weren't there, people probably wouldn't be able to justify buying something.
We need to acknowledge the problem so that people know the limitations. At the same time, we can't live in the past and as developers we have limited time and need/want to focus on the latest developments.
So lets encourage people to try to look for cost-effective devices that can be reused but not berate people who, for whatever reason, couldn't/didn't do that. That's why we have options in Node-RED, different ways of doing things so that we get the best possible coverage.
I don't know why I'm getting blamed here. I use plenty of old devices and appliances, for example, I'm only on my 4th smartphone since the OG Droid in 2009. And as I showed, FlexDash runs on an 11 year old tablet just fine!
NB: I briefly looked into getting FD to run on the OG Droid but sadly it's impossible to run anything more recent than Android 2.x on that device and with just 256MB of memory, haha...
I don't think it is worth single of penny to even think about supporting old technology with projects like the flexdash is. At the moment it grows up from beta even current soft/hard has first indicators of getting old.
But the idea of having something for creating simple stuff for old screens is interesting and worth it's own topic.
OFF:
I don't think any of us tried to express it that way.
Maybe our (non-native) English skills are not good enough.
Rather we are asking you to consider the possibility to support older devices, if possible, because that would help recycling scrap in this great project.
We would like to help you with that, but even if we would find any errors > it's hard to "remote debug for you".
So If you have some old devices (and you do) than you can install old browsers to them and test it + fix it.
My "other half" is also agreeing with @hotNipi about :
- Currently you are developing for the future.
So if this code will work only on current devices / browsers, than you may consider to keep it compatible for the next 20-30 years from now on.
(Because current devices will be trash of the future.)
Than you for creating FlexDash !
I'm sure for the "correct fee" @tve would support it for you... but I suspect that fee would be greater than the cost of a new device.