Hass.io Add-on: room-assistant

been playing around with room-assistant, attempt to hook up sparkfuns qwiic grid-eye via i2c and have had inconsistent results, persons detected range any where from 0 to 8 (I’m the only one in the room), only “heat source” in view is my pc monitor. Any one try this integration in room-assistant, and anyone have a different experience? I’m trying to determine if it’s me or the sensor (maybe noise?) and where to start trouble shooting!
thanks
-rich

I have been having good service with room-assistant running on a Pi Zero W. I use its Bluetooth Classic integration because I always carry my smartphone with me.
When inside the room, the presence state changes to “away” briefly every 10-20 minutes, and I suspect it is my iPhone putting its BT radio to sleep to conserve battery power. But when I’m not in the room, it is solidly “away”, which is expected.
It’s been great for automations like: “If this is the first time I’ve entered the room today, then do <some_action>”, which is a proxy for “It’s morning and I just woke up”.

I had mixed results with the module you’re using initially, although I have to say that with the current implementation for thermopiles in room-assistant the results were pretty good as well. Overall, the Grid-EYE is a bit more prone to noise than the D6Ts - but the resolution also allows multi-person detections much better on the Grid-EYE. In general it helps to check there are no other heat sources in direct view close to the sensor and playing around with the deltaThreshold. I also have a debouncing feature in my local code that will be in the next release that helps for these cases.

Plus, there is a feature request open for implementing a heat map camera that you can then view in Home Assistant. Would maybe help with debugging these issues.

woah, yeah the heatmap would be awesome for debugging! (I was looking into some other folks software to do something similar to troubleshoot, but hadn’t pulled the sdcard to load a version of raspbian w/ a desktop to get the headmap ui). I went with the Grid-EYE partly b/c of the increased resolution but mostly b/c the D6T version that’s supported is out of stock most places except Arrow and they want over 2 times the price for it???

good to know about the debounce feature you’re testing! any (hardware?) recommendations to clean up the sensor noise? I’ll google around too.

I also happened to see your (unrelated) gist using the D6T’s w/ esphome when googling around, also cool! lastly, is there a better place for more room-assistant specific chat?

thanks @mKeRix

Oh wow, you’re right… the supply chain for the D6Ts is probably also impacted from the virus atm.

I hope to add the heatmap functionality soon, if you follow the releases or the ticket on GitHub you’ll be notified once that’s out. The debouncing was released as part of 2.7.0 today (docs). Apart from that I don’t have any denoising tips left - room-assistant already uses the sensor with a slower frame rate, which was something that improved results dramatically for me during testing. Maybe we can also improve the algorithm to calculates the person count a bit once we can actually see what’s going on.

There is no specific place for room-assistant chat yet, I try to check the discussions across GitHub, reddit and this forum regularly. In the future I would like to use the GitHub Discussions feature for questions and so on.

1 Like

I have been running room-assistant the last couple of months and was/is running fine with bluetooth classic, but I decided to go over to BLE instead so I bought two tiles.

I just configured one of the without any problem. So now my cluster with 3 nodes is up and running, but… ( there is always a but :slight_smile: ) right now I get a lot of not_home for just seconds.

I’m wondering if anyone have the experience with room assistant configuration and BLE to make it more “stable” because as it is, I cannot really use it for automations.

image

yeah I’ve deployed BLE radbeacons and tracking with OwnTracks. i like it.
yes they flap more so i wrote two logic sequences in node red.
one is a trigger that reacts when the beacon is seen for the first time in a long time. eg. I just arrived home.
the other is a scoring system that determines presence after the score passes a threshold value. when i walk away the score decays. this is good for “i went to bed” presence.

Ok I thought that was going to be more reliable than bluetooth classic and would be easier to have some automations that actually reacts in less time than other presence detections.

I would appreciate if you could share your node red sequences,

Another idea to tackle the random not_home states would be to increase the timeout setting of the integration. The defaults are more geared towards proper iBeacon devices - I think the Tiles have a bit more considerate update interval.

Already have it on 8 should I increase it even more?

EDIT: I changed it to 15 and I think that got even worse. Strange also that there is a not_home of 4 hours during the night.

image

It seems that some time the tiles stops updating, and maybe it has to do with the tile app.

I guess that the tiles was not the best choice. Anything else out there that works better with room-assistant?

@mKeRix
Add-on Configuration

global:
  instanceName: livingroom
  integrations:
    - homeAssistant
    - bluetoothClassic
homeAssistant: null
bluetoothClassic:
  addresses:
    - 'SB:AC:80:BD:32:EB'
    - '00:AL:20:VD:A2:OV'
    - 'NB:AT:70:BD:42:OB'

LOG

6/2/2020, 11:59:13 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/2/2020, 11:59:19 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/2/2020, 11:59:25 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/2/2020, 11:59:31 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/2/2020, 11:59:37 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/2/2020, 11:59:43 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/2/2020, 11:59:49 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/2/2020, 11:59:55 PM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:00:01 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:00:07 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:00:13 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:00:19 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:00:25 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:00:31 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:00:37 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:00:43 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:00:49 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:00:55 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:01:01 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:01:07 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:01:13 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:01:19 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:01:25 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:01:31 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:01:37 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:01:43 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:01:49 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:01:55 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:02:01 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:02:07 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

6/3/2020, 12:02:13 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "SB:AC:80:BD:32:EB" && hcitool -i hci0 rssi "SB:AC:80:BD:32:EB"
Invalid device: Network is down

6/3/2020, 12:02:19 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "NB:AT:70:BD:42:OB" && hcitool -i hci0 rssi "NB:AT:70:BD:42:OB"
Invalid device: Network is down

6/3/2020, 12:02:25 AM - error - BluetoothClassicService: Command failed: hcitool -i hci0 cc "00:AL:20:VD:A2:OV" && hcitool -i hci0 rssi "00:AL:20:VD:A2:OV"
Invalid device: Network is down

For BLE detection, I’ve found it’s not any faster than Bluetooth Classic, but faster than wifi. Usually under 5 secs. I need BLE beacons because I don’t have power in all areas. My phone travels with me. I use either Pi Zero W room-assistant (in powered areas) or beacons (unpowered areas).

Here’s the node red sequence that is triggered when I approach the house. I call it Mailbox presence because there’s a beacon in my mailbox:

[{"id":"5ce3563e.767548","type":"server-state-changed","z":"bfbf53.2cf9e0b","name":"Entered Mailbox region/zone","server":"6493570e.9de338","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"device_tracker.owntracks_iphone","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"Mailbox","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":140,"y":180,"wires":[["9b110f90.4fede"],[]]},{"id":"9b110f90.4fede","type":"switch","z":"bfbf53.2cf9e0b","name":"did_leave_home?","property":"did_leave_home","propertyType":"flow","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":180,"wires":[["a9584a00.988088"],[]]},{"id":"a9584a00.988088","type":"api-current-state","z":"bfbf53.2cf9e0b","name":"Get in_test bool","server":"6493570e.9de338","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.in_test_mailbox","state_type":"habool","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":275,"y":260,"wires":[["9b6a9001.1b6b3"]]},{"id":"9b6a9001.1b6b3","type":"switch","z":"bfbf53.2cf9e0b","name":"in test mode?","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":455,"y":260,"wires":[["3269fd53.cd0592","de9958ea.e049f8"],["2865862.66b057a","de9958ea.e049f8"]]},{"id":"3269fd53.cd0592","type":"api-call-service","z":"bfbf53.2cf9e0b","name":"Hall light Turn ON","server":"6493570e.9de338","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.shelly_shsw_25_98f4abf2df4b_2","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":765,"y":320,"wires":[[]]},{"id":"de9958ea.e049f8","type":"change","z":"bfbf53.2cf9e0b","name":"Unset inky did_leave_home","rules":[{"t":"set","p":"did_leave_home","pt":"flow","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":260,"wires":[[]]},{"id":"2865862.66b057a","type":"time-range-switch","z":"bfbf53.2cf9e0b","name":"","lat":"37.433","lon":"-122.138","startTime":"sunset","endTime":"23:59","startOffset":"0","endOffset":0,"x":475,"y":320,"wires":[["3269fd53.cd0592"],[]]},{"id":"6493570e.9de338","type":"server","z":"","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Here’s the sequence that sets the flow variable, did_leave_home, which relies on wifi presence and sets did_leave_home=True after 15 minutes. Everyone has their own way of setting this, I use wifi:

[{"id":"24678649.9b490a","type":"server-state-changed","z":"bfbf53.2cf9e0b","name":"not_home Unifi tracker iphone","server":"6493570e.9de338","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"device_tracker.iphone_2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"not_home","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":120,"y":480,"wires":[["780fe6b9.ab4758"],[]]},{"id":"780fe6b9.ab4758","type":"api-current-state","z":"bfbf53.2cf9e0b","name":"Get in_test bool","server":"6493570e.9de338","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.in_test_mailbox","state_type":"habool","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":275,"y":540,"wires":[["bcc898ec.e88f78"]]},{"id":"bcc898ec.e88f78","type":"switch","z":"bfbf53.2cf9e0b","name":"in test mode?","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":455,"y":540,"wires":[["d94e0eb.f8eedf"],["b295b70d.236fc8"]]},{"id":"d94e0eb.f8eedf","type":"stoptimer","z":"bfbf53.2cf9e0b","duration":"5","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":642,"y":500,"wires":[["960be873.3e25d8"],[]]},{"id":"b295b70d.236fc8","type":"stoptimer","z":"bfbf53.2cf9e0b","duration":"15","units":"Minute","payloadtype":"num","payloadval":"0","name":"","x":642,"y":554,"wires":[["960be873.3e25d8"],[]]},{"id":"960be873.3e25d8","type":"change","z":"bfbf53.2cf9e0b","name":"Set inky did_leave_home","rules":[{"t":"set","p":"did_leave_home","pt":"flow","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":912,"y":500,"wires":[[]]},{"id":"a2f547e6.8033f8","type":"change","z":"bfbf53.2cf9e0b","name":"output \"stop\"","rules":[{"t":"set","p":"payload","pt":"msg","to":"stop","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":382,"y":596,"wires":[["b295b70d.236fc8"]]},{"id":"5c701b5d.a2c1a4","type":"server-state-changed","z":"bfbf53.2cf9e0b","name":"home Unifi tracker iphone","server":"6493570e.9de338","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"device_tracker.iphone_2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"home","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":112,"y":600,"wires":[["a2f547e6.8033f8","8e98316a.4fdaa"],[]]},{"id":"8e98316a.4fdaa","type":"delay","z":"bfbf53.2cf9e0b","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":427,"y":640,"wires":[["8248147b.a59b88"]]},{"id":"8248147b.a59b88","type":"change","z":"bfbf53.2cf9e0b","name":"Unset inky did_leave_home","rules":[{"t":"set","p":"did_leave_home","pt":"flow","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":625,"y":640,"wires":[[]]},{"id":"6493570e.9de338","type":"server","z":"","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
1 Like

Thanks I’ll check it out.

That’s unfortunate - I hoped that the extra time would help gap the times where room-assistant would not find any info. I remember reading a while back that Tiles stop advertising (or change how they do it?) while connected to a phone. Maybe that could be the cause of long outage during the night? Apart from that it’s a good idea to check the room-assistant status sensors for any abnormalities during that time.

As for other BLE devices: most tags sold specifically as iBeacons should do very well. I personally had good experiences with the ones sold by Radius Networks, but there are plenty of other choices (also many cheap ones if you’re comfortable with ordering on AliExpress).

Yes I read that too somewhere and I’ve been trying with both my BT on and off on my phone. But I didn’t really any difference. I read even that tiles connects to other phones that have the app, so if one of neighbours have the app even if I have mine BT off, the tile can be connected on their phone.

I don’t really see a pattern on the update frequency either, sometimes updates within seconds and sometimes takes even minutes.

I’m starting to think that I have to go for another tag that is more reliable. So you don’t have any false not_home with the ones from Radius Networks?

EDIT: I have been following the publish events since this morning and made some changes in the configuration, but i still get some false not_home states. Right now I’m added in the configuration the following and I’m wondering if I should use debounce too?

bluetoothLowEnergy:
  timeout: 15
  updateFrequency: 5
  maxDistance: 7
  whitelist:
    - 1x2x3x4x5x6x
  tagOverrides:
    1x2x3x4x5x6x:
      name: Keys

EDIT 2:

I tried the following settings too and I’m getting a lot better results in the device_tracker than I did before (the new settings was applied after 8:25 pm yesterday and between 10:30 to 12:20 was out so that away period showing that I’m away is right too). But I still get some false not_home that are between 0 to 7 seconds (about 10 times in 19 hours). Any idea what should I change?

bluetoothLowEnergy:
  timeout: 15
  updateFrequency: 5
  maxDistance: 15

image

EDIT 3: :slight_smile:

@mKeRix I just realised that MQTT device_tracker doesn’t take the consider_home into consideration, if it was i wouldn’t have these false not_home in the device_tracker at least. (that’s a HA problem)
But is it possible to add something similar as a variable for the room presence sensor? Should I add that as a feature request on github?

Without a maxDistance the timeout value should already be your consider_home in theory. As a radical approach I would try to remove the maxDistance and set timeout to 30. That would cause a delay of at least 30 seconds before a device is considered not_home. With maxDistance set room-assistant may still register the keys, but consider them to be too far away to be home. In general maxDistance is mostly useful if you want to dial in room presence perfectly, but shouldn’t make too much of a difference for home/not home tracking.

If I misunderstood the use case feel free to open an issue on GitHub though - makes it easier to track. :slight_smile:

As the error says - it’s an issue with Bluetooth on your system. You can list the available Bluetooth adapters by executing hciconfig on your system via SSH, and then you can restart the adapter with e.g. hciconfig hci0 down && hciconfig hci0 up. If you’re running HassOS you should be able to do this via the SSH add-on.

Ok great I’ll open an issue on github instead. I have some more findings to share :slight_smile:

Hello
I search any beacon than work whith roomassistant.
I have bought one , but this have a problem to pubblish in background.
Please share me any device that you use preferably AliExpress , or amazon or ebay thank

@mKeRix Hi, I’d like to get this working with thermal cameras. I’m thinking of using 2x RPI Zero W (one per room), but haven’t done any DIY with GPIO in the past.

I’m a bit confused regarding the hardware I will need to do this. I read here that D6T and Grid-Eye are supported, I’m thinking of going with Grid-Eye as I can still find those for sale on some shops (as compared to the D6T which is sold out everywhere), would any of the AMG8833 products from Adafruit work with the RPI Zero W? (i see 3 variations for sale, all of them include a Panasonic Grid-Eye as far as i can tell, but other then that I can’t really understand the difference between these 3 products)

Also, would only one PI and Grid-Eye be enough per room? I can’t seem to find relevant info regarding their supported range and field of view.

Thanks in advance.

Edit: To be more specific, the products I’ve found for sale are:

  • AMG8833 Grid-EYE 8x8 Infrared Array Breakout
  • AMG8833 IR Thermal Camera FeatherWing
  • AMG8833 IR Thermal Camera, 5V

A recommendation of which of these would be better to buy would also be greatly appreciated.