Need driver for Neo Coolcam Temperature and Humidity Sensor

Anyone who can point me towards the right driver to use for this one?
I have tried just anout all integrated ones plus a bunch of community drivers without luck. Have scoured the forum to no avail..
The box says "ZN291654" and "A5C-10G1-02".
Link to Swedish Amazon

Thanks in advance!

My bet is that it uses custom clusters to report data like Tuya does. If you want, you can try my Tuya Air Sensor driver. Not that it will necessarily work, but in Trace mode it will show the data sent back. From there I could modify a driver to work with it (hopefully).

Although there is the chance it is REALLY weird. Just because something says it is ZigBee does not mean the company actually followed the ZigBee standards and expectations.

1 Like

Thanks @snell !
Just added it, put it i trace mode and got this:
dev:3862021-07-13 18:11:06.608 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:58.551 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:50.485 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:42.420 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:34.355 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:26.295 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:18.233 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:10.169 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:10:02.105 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:09:54.094 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:09:46.042 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

dev:3862021-07-13 18:09:37.937 debugSovrumstemp - Unhandled cluster. 0400 is Luminance measurement, descMap = [raw:9C5D0104000A0000210000, dni:9C5D, endpoint:01, cluster:0400, size:0A, attrId:0000, encoding:21, command:0A, value:0000, clusterInt:1024, attrInt:0]

Please let me know if anything else is needed!

Interestingly... All those are in the illuminance cluster (400) and they all say it is pitch black (value of 0) and were being reported at ~10 second intervals. That definitely does not seem like a great first test but not be a total loss. Is it in a dark place? It did not report temperature or humidity but maybe those have not changed much and this driver does not set regular reporting of those (the Tuya does not appear to react to those commands).

So two other things to try:

  1. What happens if you turn on a light by it?
  2. What happens if you hold it (or breathe on it for a bit) or something else to raise the temperature and humidity?

I will start a more custom driver when I get home tonight and send you a link. At the very least I will have it handle illuminance, temperature, and humidity. Can try to set a regular report as well.

When I breathe into it, it went from 69% to 83% humidity, and yes, it was on my nightstand which was very dark. Putting it in the window sill gives 657 lumen.
Here is a little more info on the device from the device settings:

I found a little more inside the logs:
dev:3862021-07-13 20:06:43.080 errororg.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack: No signature of method: user_driver_Snell_Tuya_Air_Sensor_749.checkEventInterval() is applicable for argument types: () values: [] (checkEventInterval)

1 Like

Ok. That log item is an error in my code. Oops. Have to fix that in the Tuya driver and for when I make the custom.

1 Like

Here is a link to a more specific driver. Right now I am labeling it the YOUPOU Multi Sensor (based on the Amazon page) but this looks like it is actually a Tuya device from the Manufacturer and model info you posted. I tried to make it have the device fingerprint (so if you want to delete it and re-pair it to see if it identifies correctly). I also added in temperature, humidity, the luminance, and battery (not sure if it reports it, but should not hurt). Also trying to allow for performing a refresh of the data, configure, reading the basic device attributes (just dumps those in the log), etc... I thought it was better to try stuff and remove what does not work.

Going to be some trial and error to figure out what gets reported and whether it shows up properly. Tuya's ZigBee devices are "ZigBee" but they definitely do not follow the expected standards and really like their manufacturer-specific stuff instead of the normal ones.

Give this a shot and let me know if/how it works. You can send me logs in PMs so it does not flood this topic. If it seems like we can get it working I will create a separate project topic and post the driver there.

As for that checkEventInterval error... not sure what it is. After reviewing the code I found I do not have anything named that. Not seeing it in the logs for the actual device that driver is for either, so maybe it is just an oddity of using the wrong driver.

Ok, tried it now. Removed the device and re-added, found as YOUPOU Multi Sensor.
Current States

  • Driver Version Status : Up to date
  • Illuminance : Null

Log:
dev:3882021-07-14 08:39:10.967 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:39:02.898 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:54.838 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:47.911 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:47.711 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:43.512 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:F80601E0020810D02000, dni:F806, endpoint:01, cluster:E002, size:08, attrId:D010, encoding:20, command:0A, value:00, clusterInt:57346, attrInt:53264]

dev:3882021-07-14 08:38:43.395 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:F80601E002080FD03002, dni:F806, endpoint:01, cluster:E002, size:08, attrId:D00F, encoding:30, command:0A, value:02, clusterInt:57346, attrInt:53263]

dev:3882021-07-14 08:38:43.279 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:F80601E0020806D03002, dni:F806, endpoint:01, cluster:E002, size:08, attrId:D006, encoding:30, command:0A, value:02, clusterInt:57346, attrInt:53254]

dev:3882021-07-14 08:38:43.174 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:F80601E0020A0ED0291400, dni:F806, endpoint:01, cluster:E002, size:0A, attrId:D00E, encoding:29, command:0A, value:0014, clusterInt:57346, attrInt:53262]

dev:3882021-07-14 08:38:43.044 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:F80601E0020A0DD0295A00, dni:F806, endpoint:01, cluster:E002, size:0A, attrId:D00D, encoding:29, command:0A, value:005A, clusterInt:57346, attrInt:53261]

dev:3882021-07-14 08:38:42.929 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:F80601E0020A0BD0290A00, dni:F806, endpoint:01, cluster:E002, size:0A, attrId:D00B, encoding:29, command:0A, value:000A, clusterInt:57346, attrInt:53259]

dev:3882021-07-14 08:38:42.796 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:F80601E0020A0AD0292800, dni:F806, endpoint:01, cluster:E002, size:0A, attrId:D00A, encoding:29, command:0A, value:0028, clusterInt:57346, attrInt:53258]

dev:3882021-07-14 08:38:42.741 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:40.601 traceSovrumstemp - Device alive/awake

dev:3882021-07-14 08:38:39.718 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:30.649 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:22.658 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:15.523 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:38:06.464 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:37:58.389 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:37:50.337 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:37:42.264 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:37:10.008 traceSovrumstemp - Luminance is nulllx

dev:3882021-07-14 08:35:49.538 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:catchall: 0104 E002 01 01 0040 00 F806 00 00 0000 0B 01 0682, profileId:0104, clusterId:E002, clusterInt:57346, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:F806, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[06, 82]]

dev:3882021-07-14 08:35:49.454 traceSovrumstemp - Luminance is nulllx

Thanks for putting in the effort! :slight_smile:

I just posted a version 0.1.1 that should fix the illuminance being reported as null (called a non-existent variable, oops). You can just import the new one and save over the existing version. Still need more data to decode the manufacturer specific stuff.

However, I thought of something I had seen in the past and did a bit of checking. Is you unit the one THIS thread is about? I think they got it all sorted out with a driver there. Hate to make you sit through my figuring it out if there is one.

If there is not, I will still try to get this one working. Need more samples of what it responds with, that is for sure. Since it is obviously not responding to the normal ZigBee areas for temperature and humidity (but does for illuminance... so odd).

@snell Behavior like yours is why I love this community so much. The fact you jumped in to help a single person writing a driver is possibly one of the nicest things I've seen. Seriously. Keep up the good work!

1 Like

Progress! I now get the luminance shown from the unit! The report is in Lumen while the unit reports in Lux, so unsure about the correctness (shows 199 Lux currently while getting 22990 Lumen from driver).
I looked at that other thread and can confirm that the unit looks the same, but I can't get anything out from that driver.

The planned use was to get Temp, Humidity and Battery to a Simple Multi Tile, then being able to get illuminance for a future motorized shade project.

I can only agree with @rlithgow1 here, absolutely loving the support I'm getting!

When you installed the other driver did you click configure?

Yes. Also tried removing the unit then re-adding to ensure an as clean as possible installation. It did however return to the YOUPOU-driver upon "re-entry".

I get this in the logs with the Tuneway-driver:
dev:3892021-07-14 14:56:54.069 debugReturning empty map

dev:3892021-07-14 14:56:54.068 debugParse returned [:]

dev:3892021-07-14 14:56:54.066 warnNo condition matched: clusterInt: 1024; commandInt: null

dev:3892021-07-14 14:56:54.055 debugdescription: read attr - raw: 8C0C0104000A0000218E5A, dni: 8C0C, endpoint: 01, cluster: 0400, size: 0A, attrId: 0000, encoding: 21, command: 0A, value: 8E5A

Can you provide me at least 2 other readings (not pitch black) so I can work their conversion? I am not performing any calculation on the value so that is purely what they reported.

From what I have looked up you can convert lux to lumens but not the other way around. Either way, they are doing SOMETHING to the value.

Happy to continue to work on this one. When you shine a light on it can you also let me know what the temp & humidity it displays (and send me any log)?

Also... If you get a chance, shoot me a separate log if you run the refresh command. I forgot to uncomment the ReadDevice command to try to see what it returns for that as well. Maybe next one.

Ok:
999 LUX -> 29997 Lumen
1193 LUX -> 30767 Lumen
21 LUX -> 13223 Lumen

New log after refresh command:
dev:3892021-07-14 19:13:23.346 traceSovrumstemp - Luminance is 13223 lx

dev:3892021-07-14 19:13:15.647 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:catchall: 0104 E002 01 01 0040 00 8C0C 00 00 0000 01 01 000086, profileId:0104, clusterId:E002, clusterInt:57346, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8C0C, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 00, 86]]

dev:3892021-07-14 19:13:15.615 traceSovrumstemp - Luminance is 13223 lx

dev:3892021-07-14 19:13:15.469 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:catchall: 0104 E002 01 01 0040 00 8C0C 00 00 0000 01 01 000086, profileId:0104, clusterId:E002, clusterInt:57346, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8C0C, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 00, 86]]

dev:3892021-07-14 19:13:15.440 debugSovrumstemp - Unhandled cluster. E002 is Unknown Manufacturer Specific Cluster, descMap = [raw:catchall: 0104 E002 01 01 0040 00 8C0C 00 00 0000 01 01 000086, profileId:0104, clusterId:E002, clusterInt:57346, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:8C0C, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 00, 86]]

dev:3892021-07-14 19:13:15.274 traceSovrumstemp - Luminance is 13223 lx

dev:3892021-07-14 19:13:11.468 traceSovrumstemp - Sending request to read device attributes

dev:3892021-07-14 19:13:11.457 infoSovrumstemp - Refreshing device...

Currently displaying 19 Lux (12789 Lumen), 29.5 Celsius and Humidity 58.6%.

I just remembered something I read in that other thread, cluster E002 being a combined report for both temp and humidity. Is that something that is helpful for you at this stage?

It does not hurt to mention it but it does not really help. Once I saw it looked like Tuya data I expected that. The 5-in-1 air sensor I have has all 5 items reported in the same cluster (EF00) just with a different identifier at the beginning of the data portion.

The problem I am seeing with this one is there is not nearly enough data being reported in the custom cluster (E002) AND the lux it displays appears to be calculated on some sort of curve but it is not clear what. But it is all a start.

I will just keep building up a list of what it reports from what you send me and hopefully it will report something that helps clue in what it is doing. There does not seem to be much information out there about the E002 cluster (more on Tuya's "normal" EF00, but this does not seem to be reporting on that).