mtconnect / cppagent

C++ Agent toolkit - Pre-built binaries, visit: https://github.com/mtconnect/cppagent/releases Docker images available at https://hub.docker.com/repositories/mtconnect
http://mtcup.org/
Apache License 2.0
141 stars 91 forks source link

MQTT Device list topic #373

Open wsobel opened 11 months ago

wsobel commented 11 months ago

Create a topic that lists all the devices as a JSON array of name, uuid, and relates topic.

What should the topic be?

Does the payload make sense?

robot-ranger commented 11 months ago

maybe im missing something...but isnt this what probe is for?

wsobel commented 11 months ago

This is what the probe is for. The MQTT implementation breaks the document into separate devices.

We could have a single probe payload, that would be an option. Or we can provide a separate device list. If you subscribe to MTConnect/Probe/#, you will effectively get all the devices.

robot-ranger commented 11 months ago

i think im following you now. the agent could be configured with user-customized topic prefixes. So youre suggesting a topic with payload like the following to inform client apps of where to look for their device of interest; is that right?

{
    "myDeviceA_UUID":{
        "id": "deviceA_ID",
        "name": "deviceA_NAME",
        "topics":{
            "probe": "MTConnect/Probe/myDeviceA_UUID",
            "current": "MTConnect/Current/myDeviceA_UUID",
            "sample": "MTConnect/Sample/myDeviceA_UUID"
        }
    },
    "myDeviceB_UUID":{
        "id": "deviceB_ID",
        "name": "deviceB_NAME",
        "topics":{
            "probe": "MTConnect/Probe/myDeviceB_UUID",
            "current": "MTConnect/Current/myDeviceB_UUID",
            "sample": "MTConnect/Sample/myDeviceB_UUID"
        }
    }
    # ... rest of devices
}
emvarunp commented 4 months ago

Hi @wsobel. The payload makes sense.

We usually subscribe to probe/# to get the UUID of a device. But having a seperate topic like mtconnect/devices or mtconnect/probe/devices which gives a list of devices info would be very helpful.

Thank you.