Multiple Same Capability on Register Device Node

Is it possible to add multiple of the same capability to the same virtual device using the register-device node in Node Red and if so what is the wording?

My use case is that I have a boiler with three temperatures (target temp, flow temp, return temp) and all these values are in Node Red (via EBUS/EBUS-Adapter/EBUSD/MQTT). I could create a virtual device for each and have a ‘boiler’ room on the iHost with just those devices but it would be neater to have a single device.

Add multiple of the same capability in one device is not supported for now.
But it’s on our schedule and we are working on it.

Thanks, I would have spent ages trying. Any idea when the ability might be possible? I might create one device per temperature and put them together in a room called “boiler”.

We are aiming to keep the update stable and reliable, so it won’t be released in a short time.
It’s a huge update and involves lot of testing and coding considering all our work basically built on one capability per device.

I just created a 8 capability weather station; some capabilities need settings. Some not. Is that correct?
My sensors don’t appear in put-device-state node though:
Screenshot 2024-11-12 064314.png
is on ihost
Screenshot 2024-11-12 064805.png
categories
Screenshot 2024-11-12 070020.png
setup okay
Screenshot 2024-11-12 064631.png
made second one capability (pressure) sensor; same
incidentally, probably a Node Red thing but on 4k monitor with 175% only could add 5 capabilities as can’t scroll in node setup window

Did you checked the documentation?
Some capabilities needs settings and permissions to work properly.

Yes, I gave all things reading permission but not writing: “01”. Sometimes I wrote settings and sometimes not. I don’t really get which is which, for example Ultraviolet Index I wanted to give settings as the range is 0-16 but couldn’t. Was going to see how it looks but I can’t connect anything as although I have created the device I can’t put any states to it because it is invisible in the put-device-state node. Even when I put a single capability device (pressure) with permissions and settings I can’t see it, or maybe permissions means controlling from Node Red and from the iHost UI? But then I always thought it was just the iHost UI and I have the temperatures. I will check tomorrow. Do I need to say I can write as-well as read: if so is that the permission in the node setting or the one in the setting JS code or both?

not a permissions thing. I gave them read and write in JS and in node.

what does this mean? I had another go

Screenshot 2024-11-12 220457.png
basically copied off manual. only added settings to wind direction guessing
{“windDirectionRange”{
“type”: “numeric”,
“permission”: “01”
“min”: 0,
“max”: 360
}
}

nothing new in NR log when I run node

I agree with you - in this case, wind direction, I found them to be not necessary.

so you just wrote
“{}”
?
I would have thought Wind Direction needed settings: eg.degrees, radians or Enum (“North” etc)

1 Like

What capability came with what setting is quite clear in the documentation.
Like in the rainfall capability and wind-direction capability.
Clearly is rainfall needs settings and wind-direction doesn’t.


Or was a mistake. Are you saying no where in that document is any mistake?

We are open to any issue or correction about the documentation.
It’ll helps user to better make use of open api.

I thought it was a mistake. My 8 things are;
1 temp
2 humid
3 illumination
4 UV index
5 wind-direction
6 wind-speed
7 pressure
8 rainfall
Of those 8 it is only one without settings, but possibly one of the most needed.
deleted it still get error?
Screenshot 2024-11-13 040256.png
what does that mean? I copy document. Added a “value” somewhere. Maybe UV when error message said it was missing. Other than that exact document now.

Can you export your node as a JSON file?
So I can reproduce the situation.

thanks but before I do this I missed the bits were right to left and only realised this third time of reading:


before I do this my permissions are:
1 temp (reporting and configurable) as per API allowing offset)
2 humid (reporting only)
3 illumination (reporting only)
4 UV index (reporting only)
5 wind-direction (reporting only)
6 wind-speed (reporting only)
7 pressure (reporting only)
8 rainfall (reporting only)
I still get error

[
    {
        "id": "f3ab428654e5674a",
        "type": "register-device",
        "z": "29ad46bd804d9cbe",
        "name": "weather station",
        "server": "70e55cf0d53c1c00",
        "device_id": "0dd97923-899a-4b56-8af8-2d7d293cbe4d",
        "device_name": "Weather Station",
        "category": "sensor",
        "capabilities": "null",
        "manufacturer": "v",
        "model": "v",
        "firmware_version": "1",
        "service_address": "182.168.0.238",
        "tags": "{}",
        "state": "{\"barometric-pressure\":{\"barometricPressure\":1000},\"illumination\":{\"illumination\":100},\"humidity\":{\"humidity\":20},\"temperature\":{\"temperature\":20},\"wind-speed\":{\"windSpeed\":0},\"wind-direction\":{\"windDirection\":0},\"rainfall\":{\"rainfall\":0},\"ultraviolet-index\":{\"ultravioletIndex\":0}}",
        "capabilities_v2": "[{\"capability\":\"temperature\",\"permission\":\"0110\",\"settings\":\"{\\\"temperatureCalibration\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"11\\\",\\\"min\\\":-7,\\\"max\\\":7,\\\"step\\\":0.2,\\\"value\\\":0},\\\"temperatureUnit\\\":{\\\"type\\\":\\\"enum\\\",\\\"permission\\\":\\\"11\\\",\\\"value\\\":\\\"c\\\",\\\"values\\\":[\\\"c\\\",\\\"f\\\"]},\\\"temperatureRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":-40,\\\"max\\\":80}}\"},{\"capability\":\"humidity\",\"permission\":\"0100\",\"settings\":\"{\\\"humidityRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":100}}\"},{\"capability\":\"illumination-level\",\"permission\":\"0100\",\"settings\":\"{\\\"illuminationRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":160000,\\\"value\\\":100}}\"},{\"capability\":\"wind-direction\",\"permission\":\"0100\"},{\"capability\":\"wind-speed\",\"permission\":\"0100\",\"settings\":\"{\\\"windSpeedRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":50,\\\"value\\\":0}}\"},{\"capability\":\"rainfall\",\"permission\":\"0100\",\"settings\":\"{\\\"rainfallRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":450,\\\"value\\\":0}}\"},{\"capability\":\"barometric-pressure\",\"permission\":\"0100\",\"settings\":\"{\\\"barometricPressureRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":800,\\\"max\\\":1200,\\\"value\\\":1000}}\"},{\"capability\":\"ultraviolet-index\",\"permission\":\"0100\",\"settings\":\"{\\\"ultravioletIndexRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":16,\\\"value\\\":0}}\"}]",
        "x": 1000,
        "y": 440,
        "wires": [
            [
                "c420e5e75a0a33bc"
            ]
        ]
    },
    {
        "id": "70e55cf0d53c1c00",
        "type": "api-server",
        "name": "ihost",
        "ip": "ihost-1001de90ec.local",
        "ipaddr": "192.168.0.238",
        "token": "1efaafb9-0d76-43e0-acc7-a40f7f28167d"
    }
]
```I forgot to change uuid.

just spotted typo IP is 192 not 182; but corrected with same error.

I’ve checked your node.
Here are some issue I spotted:

  1. illuminationRange are the settings of illumination capability, not illumination level capability.
  2. Some of your settings are come with value, but actually it’s not supported. Please refers to the documentation.

After fixing the problem above, we successfully add it to iHost.

Here are the JSON file of my node.

[
    {
        "id": "1c5197c2cf684376",
        "type": "register-device",
        "z": "f6f2187d.f17ca8",
        "name": "weather station",
        "server": "876224fd614bd00e",
        "device_id": "0dd97923-899a-4b56-8af8-2d7d293cbe4d",
        "device_name": "Weather Station",
        "category": "sensor",
        "capabilities": "null",
        "manufacturer": "v",
        "model": "v",
        "firmware_version": "1",
        "service_address": "182.168.0.238",
        "tags": "{}",
        "state": "{\"barometric-pressure\":{\"barometricPressure\":1000},\"illumination\":{\"illumination\":100},\"humidity\":{\"humidity\":20},\"temperature\":{\"temperature\":20},\"wind-speed\":{\"windSpeed\":0},\"wind-direction\":{\"windDirection\":0},\"rainfall\":{\"rainfall\":0},\"ultraviolet-index\":{\"ultravioletIndex\":0}}",
        "capabilities_v2": "[{\"capability\":\"temperature\",\"permission\":\"0110\",\"settings\":\"{\\\"temperatureCalibration\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"11\\\",\\\"min\\\":-7,\\\"max\\\":7,\\\"step\\\":0.2,\\\"value\\\":0},\\\"temperatureUnit\\\":{\\\"type\\\":\\\"enum\\\",\\\"permission\\\":\\\"11\\\",\\\"value\\\":\\\"c\\\",\\\"values\\\":[\\\"c\\\",\\\"f\\\"]},\\\"temperatureRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":-40,\\\"max\\\":80}}\"},{\"capability\":\"humidity\",\"permission\":\"0100\",\"settings\":\"{\\\"humidityRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":100}}\"},{\"capability\":\"illumination\",\"permission\":\"0100\",\"settings\":\"{\\\"illuminationRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":160000}}\"},{\"capability\":\"wind-direction\",\"permission\":\"0100\"},{\"capability\":\"wind-speed\",\"permission\":\"0100\",\"settings\":\"{\\\"windSpeedRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":50}}\"},{\"capability\":\"rainfall\",\"permission\":\"0100\",\"settings\":\"{\\\"rainfallRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":450}}\"},{\"capability\":\"barometric-pressure\",\"permission\":\"0100\",\"settings\":\"{\\\"barometricPressureRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":800,\\\"max\\\":1200}}\"},{\"capability\":\"ultraviolet-index\",\"permission\":\"0100\",\"settings\":\"{\\\"ultravioletIndexRange\\\":{\\\"type\\\":\\\"numeric\\\",\\\"permission\\\":\\\"01\\\",\\\"min\\\":0,\\\"max\\\":16}}\"}]",
        "x": 1300,
        "y": 640,
        "wires": [
            [
                "d9cf512069014792"
            ]
        ]
    },
    {
        "id": "876224fd614bd00e",
        "type": "api-server",
        "name": "214",
        "ip": "192.168.5.214",
        "ipaddr": "",
        "token": "1b3f4cfc-bf0e-459b-8b6b-4ce14fb412b6"
    }
]
1 Like

thanks. I didn’t realise illumination level and illumination were different things. The “value” additions to the API text were just when debug asked for it. I imported your code and now have device again: if you put a put-device-state node in a flow can you select it?