✨ FlexDash alpha release - round 3

Can you update again? You should be getting node-red-flexdash 0.4.154 and then node-red-vue 0.1.15 as a dependency.
Thanks for flagging this!!

All good now, thanks for the quick response :+1:

We'd prefer if you followed our naming guidelines and didn't publish modules with the node-red- prefix that didn't make clear they are a contrib package. Particularly if you're going to go with such a generic name like that.

Oh, I had forgotten the specifics, I'll add a scope with the next release...

@tve I realise how valuable log entries are, especially in the early stages of a node's development, but as flexdash moves from alpha to beta, could you kindly consider cutting down the logging to the node-RED log, as it produces pages of information at start-up, making it difficult to spot other non-flexdash error/issue log entries.
We had a similar situation with node-red-contrib-google-smarthome and it was overcome by having a checkbox in the node config to enable/disable logging, which allows users to enable verbose logging if they had any issues, otherwise keep it disabled.

For consideration...

debug

Man, I can't wait to get back to some of my Node-Red projects to have an opportunity to try out FlexDash.

I look forward to welcoming you to the club :rofl:

I'm currently trying to get my greenhouse watering controls implemented with FlexDash, as well as polishing the Motus station software (world-wide bird migration tracking) which also use FlexDash...
Can't wait to work on FD itself again, time to add a last feature and then move on to a hopefully short beta and 1.0 release. I already have 1.1 planned, aka full rewrite, but fully compatible... :laughing:

Makes total sense, thanks for bringing it up!

I didn't succeed using the custom widget as array. It works flawless without, but disapeares when defined as array.

[
    {
        "id": "62a03b0578e1991f",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "9e00f73ed906e7a7",
        "type": "inject",
        "z": "62a03b0578e1991f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "title",
                "v": "SSROut",
                "vt": "str"
            },
            {
                "p": "label",
                "v": "off",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "0",
        "payloadType": "num",
        "x": 200,
        "y": 150,
        "wires": [
            [
                "f5470e30cfff160e"
            ]
        ]
    },
    {
        "id": "7ad6d551fcbeaf32",
        "type": "inject",
        "z": "62a03b0578e1991f",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "1",
        "payloadType": "num",
        "x": 200,
        "y": 195,
        "wires": [
            [
                "c26a2c4778e7d07e"
            ]
        ]
    },
    {
        "id": "48feeb03597e2f0c",
        "type": "flexdash custom",
        "z": "62a03b0578e1991f",
        "name": "Led",
        "title": "LED",
        "sfc_source": "<template>\r\n    <!-- For classes see the entire styles section of https://next.vuetifyjs.com/en/styles/border-radius/ -->\r\n    <div class=\"flex-grow-1 w-100 pa-2 d-flex flex-row align-center justify-space-around\">\r\n        <div>{{ label }}</div>\r\n        <div :class=\"`led bg-${color}`\" />\r\n    </div>\r\n</template>\r\n\r\n<style scoped>\r\n    div.led {\r\n        height: 80%;\r\n        aspect-ratio: 1;\r\n        width: min-content;\r\n        border-radius: 50%;\r\n        box-shadow: 0px 0px 15px 0px v-bind(color), rgba(0, 0, 0, 0.17) 0px -3px 2.5px 0px inset, rgba(0, 0, 0, 0.15) 0px -5px 4px 0px inset, rgba(0, 0, 0,\r\n                0.1) 0px -11px 5px 0px inset;\r\n    }\r\n</style>\r\n\r\n<script>\r\n    export default {\r\n    props: {\r\n        payload: { default: undefined }, // type is \"any\"\r\n        label: { default: \"state\", type: String }\r\n    },\r\n    computed: {\r\n        color() {\r\n            // use any material-design color: https://vuetifyjs.com/en/styles/colors/#material-colors\r\n            // (warning, it's link to the old docs 'cause that page is broken in the new ones...)\r\n            if (this.payload == 0) return \"green\"\r\n            else if (this.payload == null) return \"grey\" // null or undefined\r\n            else return \"red\"\r\n        }\r\n    }\r\n}\r\n</script>",
        "fd_container": "a96ede31d15e8fcc",
        "fd_cols": 1,
        "fd_rows": 1,
        "fd_array": true,
        "fd_array_max": 10,
        "x": 525,
        "y": 195,
        "wires": [
            []
        ]
    },
    {
        "id": "17c70a1589f45f67",
        "type": "inject",
        "z": "62a03b0578e1991f",
        "name": "",
        "props": [
            {
                "p": "label",
                "v": "sce",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "x": 200,
        "y": 245,
        "wires": [
            [
                "b5e12c1521237afa"
            ]
        ]
    },
    {
        "id": "f5470e30cfff160e",
        "type": "function",
        "z": "62a03b0578e1991f",
        "name": "makeArray",
        "func": "msg.payload = [msg.payload, msg.payload];\nmsg.topic   = [msg.topic, msg.topic + \"sce\"];\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 350,
        "y": 150,
        "wires": [
            [
                "48feeb03597e2f0c"
            ]
        ]
    },
    {
        "id": "c26a2c4778e7d07e",
        "type": "function",
        "z": "62a03b0578e1991f",
        "name": "makeArray",
        "func": "msg.payload = [msg.payload, msg.payload];\nmsg.topic   = [msg.topic, msg.topic + \"sce\"];\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 350,
        "y": 195,
        "wires": [
            [
                "48feeb03597e2f0c"
            ]
        ]
    },
    {
        "id": "b5e12c1521237afa",
        "type": "function",
        "z": "62a03b0578e1991f",
        "name": "makeArray",
        "func": "msg.payload = [msg.payload, msg.payload];\nmsg.topic   = [msg.topic, msg.topic + \"sce\"];\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 350,
        "y": 245,
        "wires": [
            [
                "48feeb03597e2f0c"
            ]
        ]
    },
    {
        "id": "a96ede31d15e8fcc",
        "type": "flexdash container",
        "name": "Repro",
        "title": "",
        "kind": "StdGrid",
        "fd_children": ",48feeb03597e2f0c",
        "tab": "1e908252f3517797",
        "min_cols": "6",
        "max_cols": "20",
        "unicast": "ignore",
        "parent": "",
        "solid": false,
        "cols": "1",
        "rows": "1"
    },
    {
        "id": "1e908252f3517797",
        "type": "flexdash tab",
        "name": "Repros",
        "icon": "mdi-view-dashboard",
        "title": "Repro",
        "fd_children": ",a96ede31d15e8fcc",
        "fd": "26bf919f14de42c9"
    }
]

What am I doing wrong? Claus

I wonder what I am doing wrong... :laughing:

The dynamic loading stuff that the custom widget uses needs a full rewrite, now that I understand things better. I'll take a look, but it may not be practical to make custom widgets work in an array. TBD.