Integration Solutions using MQTT

yes my pi was rebooted

I went through first post, which explains how to install this. Now I can see MQTT Discovery device in my ‘No room assigned’ - room .

However, when I click on MQTT Discover box, nothing happens. I was hoping it would open and let me set IP of my MQTT server/broker, but nothing happens. I did reboot hub twice, deleted and re-install MQTT Discovery a few times now, but it’s still the same. What am I doing wrong?

I installed following edge driver.

Thanks

Hi there; You should probably describe a bit more exactly what you need to accomplish, so I can recommend the right driver for your needs.

Regarding the MQTT Handler/Discovery driver, have you read the README instructions?

Are you saying you can’t even open up the MQTT Discovery device? Not sure what you mean by ‘nothing happens’, but if you can’t see the Controls screen or go into device settings to configure your broker, then that’s an app issue. Try exiting the SmartThings app and restarting it. Hopefully that will clear things up.

Once you get connected to your broker, keep in mind that with this driver, devices are created via MQTT messages themselves.

Hi @TAustin after a short period time of using the driver, I really think this is awesome work! At one time my RPi was down and The device was picked up again by clicking on the refresh button (on both the master device and the mqtt device iirc).

I have some feature request if this has not been brought up already. Now there are already quite a few device types exposed in this driver, but currently for motion sensor type it only has one capability which is motion_detected. I’m wondering if there is a more general way for the user to customize the capabilities for the mqtt devices instead of selecting from the predefined type list?

If that’s not possible, can you please add illuminance, battery capabilities to the motion sensor type?

Hi Herbert - thanks for the feedback.

In SmartThings, you really can’t have much in the way of dynamically customizing devices. Devices have to pre-defined via a device profile with the specific capabilities they contain. This is different from HA, where they can dynamically build devices based on MQTT messages. Here, I have to have any supported devices already pre-defined.

But I’m happy to add more device types such as illuminance and battery. I will put them on my list and try to get it done sometime in January.

2 Likes

Gotcha, again thanks for your work!

@taustin,

I apologize for not explaining better.

I have bunch of mqtt supporting devices and mqtt broker in local lan which I have been using. I wanted to use your MQTT discovery driver to add into Smartthings.

Regarding the MQTT Handler/Discovery driver, have you read the README instructions?

Yes, I followed it in installed the driver. Scan for available devices and found MQTT discovery which is in ‘N9 room assigned’ assigned room.

saying you can’t even open up the MQTT Discovery device? Not sure what you mean by ‘nothing happens’, but if you can’t see the Controls screen or go into device settings to configure your broker, then that’s an app issue. Try exiting the SmartThings app and restarting it. Hopefully that will clear things up.

Yes, absolutely nothing happens when I click on MQTT Discovery icon. It does not open control screen, so no place for me to add my mqtt broker ip and Auth details.

I have rebooted hub multiple times and restarted device 2 times already.

1 Like

@nayelyz Could use your help on this one; see post above where device is not opening to the Controls screen.

Maybe a little off-topic (I apologize) but hopefully Todd or someone can point me in the right direction. BTW, this MQTT deployment AND the vEdge device creator is outstanding!

As mentioned above, I too use Node-Red as sort of the “Grand Central Station” for integrating devices into ST. I have audio devices that are controlled serially via hex and/or ascii and it has worked perfectly using Node-Red Smartthings webhook and the Node-Red serialport palette. But I fear that the Node-Red ST webhook may be disappearing shortly since it is a smartapp. This week I noticed that the momentary buttons stopped working. My first of the Four Horsemen of the Apocolypse?

Any suggestions on how I can get ST to send serialport commands either directly or through Node_Red in the event the Node-Red webhook app disappears?

Appreciate any insight anyone may have.

Here are my experiences of three days MQTT Devices driver’s testing.
Everything works great!

Two temperature measurements from MQTT broker to SmartThings are operating. Temperature measurements are updated every 15 minutes.

Two Zigbee temperature measurements from SmartThings to MQTT broker are operating. Temperature measurements are updated every time the measurement value changes in SmartThings’ hub. This is implemented using Rules API.

Switch from SmartThings to MQTT broker is operating.

@TAustin Can you also add humidity device to MQTT Devices driver.

1 Like

Yes I’ll add humidity device to the list for the next update.

Thanks for the report!

3 Likes

Would you mind sharing your Rule? Might be of interest to others how you send periodic updates for your zigbee sensors.

2 Likes

Rules API for Zigbee to MQTT sending (when Zigbee temperature measurement changes):

{
  "name": "Temperature Changes - MQTT",
  "actions": [
    {
      "if": {
		"not": {
			"equals": {
			"left": {
            "device": {
              "devices": [
                "id zigbee device"
				],
				"component": "main",
				"capability": "temperatureMeasurement",
				"attribute": "temperature"
				}
			},
			"right": {
            "device": {
              "devices": [
                "id mqtt device"
				],
				"component": "main",
				"capability": "temperatureMeasurement",
				"attribute": "temperature"
				}			
			}
			}
        },
        "then": [
          {
            "command": {
              "devices": [
                "id mqtt device"
              ],
              "commands": [
                {
                  "component": "main",
                  "capability": "partyvoice23922.vtempset",
                  "command": "setvTemp",
                  "arguments": [
                    {
                      "device": {
                        "devices": [
                          "id zigbee device"
                        ],
                        "component": "main",
                        "capability": "temperatureMeasurement",
                        "attribute": "temperature"
                      }
                    }
                  ]
                }
              ]
            }
          }
        ]
	}
	}
	]
}

Copy rule and just change device ids. Don’t change anything else.

3 Likes

Thanks for the hard work! I am running your drivers talking to an local instance of Home Assistant and it works great.

A request if it is possible, can you add a generic string/message device? I have serveral sensors that publish a timestamp and I track that to determine if a sensor has failed/not reporting. So I was looking for a device that could display a string of text.

Thanks again, fantastic driver and really breathed new life into my SmartThings hub.

1 Like

Welcome to the community. And I got a chuckle over your ID :slight_smile:

I’m wondering what kind of automation testing you needed to build around it. As you probably know, you’re a bit limited with what you can do with free form fields like that. Are you sure you’ll be able to actually do something the timestamp in an automation routine or Rule? If you’re confident you can do what you need to do, this shouldn’t be difficult to add. I’ll try to get to it sometime next week.

Rules API for Zigbee to MQTT sending (periodic updates):

{
  "name": "Every 10 min copy temp - MQTT",
  "actions": [
        {
            "every": {
                "interval": {
                    "value": {
                        "integer": 10
                    },
                    "unit": "Minute"
                  },
			  "actions": [
						 {
						"command": {
						  "devices": [
							"id mqtt device"
						  ],
						  "commands": [
							{
							  "component": "main",
							  "capability": "partyvoice23922.vtempset",
							  "command": "setvTemp",
							  "arguments": [
								{
								  "device": {
									"devices": [
									  "id zigbee device"
									],
									"component": "main",
									"capability": "temperatureMeasurement",
									"attribute": "temperature"
								  }
								}
							  ]
							}
						  ]
						}
					  }
					]
	         }
	     }
	]
}

Copy rule and just change device ids. Don’t change anything else.

Zigbee temperature measurement from SmartThings to MQTT broker is also operating using periodic updates.

3 Likes

hi how do i add this to smartthings ?
any help would be great
thanks
martin

Rules API Getting started
Create Automations via computer - Apps & Clients / Features & Feedback - SmartThings Community

More instructions
FAQ: Getting Started with the new Rules API - Developer Programs / Rules API - SmartThings Community

2 Likes

thanks the only bit im stuck on is this bit whats partyvoice23922

we need a mirror routine , would be eisier for less technically minded like me
ie - mirror temperature of zigbee sensor send as mqtt