[Announce] node-red-contrib-ui-level 0.1.0

Yeah. Maybe. But not practical anyway.
Try this for negative space

[{"id":"1c6b12ea.a2349d","type":"ui_level","z":"37e0d918.b92d36","group":"bbab2560.6f8948","order":2,"width":7,"height":1,"name":"","label":"","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":0,"max":100,"segWarn":"","segHigh":"","unit":"units","layout":"sh","channelA":"","channelB":"","decimals":"2","animations":"reactive","shape":"1","colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"textAnimations":false,"hideValue":false,"peakmode":true,"peaktime":"2350","x":570,"y":460,"wires":[]},{"id":"a7b5c51f.ca8168","type":"inject","z":"37e0d918.b92d36","name":"","topic":"","payload":"","payloadType":"date","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":560,"wires":[["315d72cf.c28d8e"]]},{"id":"73e37ab1.feea34","type":"random","z":"37e0d918.b92d36","name":"","low":"20","high":"100","inte":"false","property":"payload","x":370,"y":460,"wires":[["1c6b12ea.a2349d","8aede00f.93b28"]]},{"id":"a55cc293.063b8","type":"ui_button","z":"37e0d918.b92d36","name":"","group":"bbab2560.6f8948","order":5,"width":0,"height":0,"passthru":false,"label":"change segments","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":300,"y":670,"wires":[["113e4f26.b8f7c1"]]},{"id":"315d72cf.c28d8e","type":"delay","z":"37e0d918.b92d36","name":"","pauseType":"random","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"0","randomLast":"650","randomUnits":"milliseconds","drop":false,"x":220,"y":470,"wires":[["73e37ab1.feea34","9adb18b6.e017a8"]]},{"id":"8aede00f.93b28","type":"ui_level","z":"37e0d918.b92d36","group":"bbab2560.6f8948","order":1,"width":3,"height":3,"name":"","label":"","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":0,"max":100,"segWarn":"","segHigh":"","unit":"units","layout":"sv","channelA":"","channelB":"","decimals":"2","animations":"soft","shape":"2","colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"textAnimations":false,"hideValue":false,"peakmode":true,"peaktime":"2350","x":570,"y":420,"wires":[]},{"id":"1390c4f7.49f16b","type":"ui_level","z":"37e0d918.b92d36","group":"bbab2560.6f8948","order":3,"width":7,"height":2,"name":"","label":"","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":"-90","max":"0","segWarn":"-50","segHigh":"-30","unit":"units","layout":"ph","channelA":"","channelB":"","decimals":"2","animations":"reactive","shape":"3","colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"textAnimations":false,"hideValue":false,"peakmode":true,"peaktime":"6543","x":690,"y":570,"wires":[]},{"id":"f00a2ff1.99de","type":"join","z":"37e0d918.b92d36","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":530,"y":560,"wires":[["1390c4f7.49f16b"]]},{"id":"9adb18b6.e017a8","type":"random","z":"37e0d918.b92d36","name":"","low":"-90","high":"0","inte":"false","property":"payload","x":390,"y":560,"wires":[["f00a2ff1.99de"]]},{"id":"113e4f26.b8f7c1","type":"function","z":"37e0d918.b92d36","name":"","func":"msg = {}\nmsg.control = {seg1:-80, seg2:-30};\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":670,"wires":[["1390c4f7.49f16b"]]},{"id":"a79b2a3.6e834d8","type":"function","z":"37e0d918.b92d36","name":"","func":"msg = {}\nmsg.control = {seg1:-60, seg2:-50};\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":710,"wires":[["1390c4f7.49f16b"]]},{"id":"881da415.789fd8","type":"ui_button","z":"37e0d918.b92d36","name":"","group":"bbab2560.6f8948","order":6,"width":0,"height":0,"passthru":false,"label":"change segments","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":300,"y":710,"wires":[["a79b2a3.6e834d8"]]},{"id":"bbab2560.6f8948","type":"ui_group","z":"","name":"G1","tab":"13731dc0.622ff2","disp":true,"width":"10","collapse":false},{"id":"13731dc0.622ff2","type":"ui_tab","z":"","name":"HOME","icon":"dashboard","disabled":false,"hidden":false}]

The hard question is - should the node be prepared to deal and still behave nicely with all such non practical and misleading use cases? And what is still nice behavior in this kind of therms? To develop protection against it - at one point there is more dead weight in code than actually needed functionality.
Is there some sort of scales of reasonability? I'm a little confused.

I didn't think it was a "non practical and misleading use case", it seems totally natural for flows to be constructed in that manner, but that's maybe because I'm not a proficient coder.
But if you have a different view, that's fair enough - it's your contrib-node, do as you wish!!

I was only offering my comments for you to consider and hopefully improve the usability of your node from a user perspective, and certainly with no intention to be "misleading"...

I'll leave it at that.

This is the point. And your codding skills are not under discussion. You are doing all the best with available tools and the result is perfect. Best feedback ever for my doings. :slightly_smiling_face:

1 Like

v0.1.18 published
Thank you @Paul-Reed to lead me into this. :beers:

V0.1.19 published
Fixed bugs:

  1. Peak reset not working (0.1.18)
  2. Firefox stripe animation starts from low end, not from current position
  3. Value text animation does not work on pair layout (only bottom value is animated)

Just upgraded to 0.1.21 ( Still running on nodered 0.20)
Now none of my levels works anymore and for each I have implemented there is this in the log files:

TypeError: Converting circular structure to JSON
    at JSON.stringify (<anonymous>)
    at HTML (/home/pi/.node-red/node_modules/node-red-contrib-ui-level/ui-level.js:27:27)
    at new LevelNode (/home/pi/.node-red/node_modules/node-red-contrib-ui-level/ui-level.js:748:16)
    at Object.createNode (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/flows/util.js:483:31)
    at Flow.start (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/flows/Flow.js:162:44)
    at start (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/flows/index.js:329:33)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)

Just upgraded to Node 1.0.2 . and the problems went away. So ui-level is no longer compatible with older NodeRed versions from the looks of it.

Glad you mentioned it, sad to hear it.
Tried to figure out the version where it still working - seems to be Node-RED v0.20.5