& character in things name makes thing unusable

Hi there,

I just spend a day troubleshooting why my motion sensor does not report any motion to OH3 and discovered that the “&” character in my Thing name seems to caused the issue.
No errors were reported, but the Items of the thing never got updated and had no values.

After I changed “Aqara Motion & Light 01” with “Aqara Motion and Light 01” it worked without any issues.
Is this a known restriction? I could not find anything in the docs.

Does not work:

	//Motion & Light Sensors
	//AQARA MotionLight Sensor
	Thing topic motionlight01 "Aqara Motion & Light 01" {
	Channels:
	  Type switch : occupancy 					[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.occupancy", on="true", off="false" ]
	  Type number : temperature 				[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.temperature" ]
	  Type number : voltage							[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.voltage" ]
	  Type number : illuminance_lux			[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.illuminance_lux" ]
	  Type number : illuminance					[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.illuminance" ]
	  Type number : linkquality					[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.linkquality" ]
	  Type number : battery							[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.battery" ]
	}

Does work:

	//Motion & Light Sensors
	//AQARA MotionLight Sensor
	Thing topic motionlight01 "Aqara Motion and Light 01" {
	Channels:
	  Type switch : occupancy 					[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.occupancy", on="true", off="false" ]
	  Type number : temperature 				[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.temperature" ]
	  Type number : voltage							[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.voltage" ]
	  Type number : illuminance_lux			[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.illuminance_lux" ]
	  Type number : illuminance					[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.illuminance" ]
	  Type number : linkquality					[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.linkquality" ]
	  Type number : battery							[ stateTopic="zigbee2mqtt/0x00158d0007e0fbd1", transformationPattern="JSONPATH:$.battery" ]
	}

Have a look at this thread with a similar question :

The & is used as a separator in web requests. So that one is definitely forbidden.

I see, however not sure if the thread is related to this issue.
The thread is about the <thing_id>, there I totally understand that you cannot use some characters.

In my case the is always “motionlight01”, but the description of the thing “Aqara Motion & Light 01” breaks things.

Seems the friendly names also have some restrictions or someone needs to escape characters.
Need to remember this…

Yes, I think it’s a bug.
Did you check whether changing the label back to "Aqara Motion & Light 01" breaks the thing again?

It still works then…
But I noticed after this thing started working again another thing stopped working also having an & in the description. Now I am not sure if it is really because of the & in the description, the mqtt binding or something else…

Thing topic XHTP04 "Xiaomi Temperature, Humidity & Pressure Sensor 04"

Now I also changed this to

Thing topic XHTP04 "Xiaomi Temperature, Humidity and Pressure Sensor 04"

and it is working now again…