Does anyone know how to put in a feature request to make the Nest humidity trait writable? - nest-api

This is linked to this previous question: Set Nest target humidity via API

The field reflects the value from the thermostat's built-in humidity sensor, the thermostat doesn't have any capability of controlling a humidifer.

Related

How to implement AoA/currentLocation with Bluetooth?

I have developed an app where the executing device acts as a beacon. As a scan result, different BLE devices appear with their respective RSSI value.
Is it possible to use these RSSI values to determine the own current position with AoA? I have already read some documentation on this, but I have not found anything like an algorithm.
How can AoA be implemented?
Can someone tell me the necessary steps to do this?
Is triangulation also possible if the referenced 3 points are moving or do you only search for the 3 nearest points??

Can one set the humidity trait on a thermostat with the new Device Access Console?

I'm looking at the Thermostat/device traits available and the humidity trait appears to be read-only. Is there any way to set the humidity level via the API?
I have looked in the google Device Access documentation, and all I can find is a read-only humidity trait (developers.google.com/nest/device-access/traits/device/humidity) but no way to set it... wondering if anyone else knows of a way...
We just have a humidity sensor and there is no way to set the humidity.

What does custom0_subscribe() function do in InvenSense SensorStudio?

I am writing a custom sensor in InvenSense SensorStudio and noticed the custom0_subscribe() function? How does it work and when would I want to use it?
custom0_subscribe() works like other subscribe functions. It is used when you want to get data from a custom sensor from another custom sensor (eg: custom sensor 1 connected to custom sensor 0).

Can I decouple the Thermostat UI and temperature control functions?

I have a house with three floors plus a finished basement. There are three A/C units and two furnaces. The thermostat units are placed in locations chosen by the installer that are not the rooms we use most. Moving the thermostats would be very expensive.
I have abundant embedded computing power in the house (4 servers are on permanently) and the house currently has two Nest Protect devices. My plan is to install a Nest Protect in each of the rooms we want to have temperature monitored and then work out some way to control the furnace so that the temperature in the rooms being used is being controlled.
This will obviously require the UI functions of the NEST to be decoupled from the control functions in some way. One option would be to drop an Arduino into the system and have that do the actual control but that seems unnecessary when the thermostat is already capable.
I took a look at the Nest documentation but it seems to be based on a model where all the intelligence is happening in the Google cloud. That isn't a model that I am going to tolerate. I don't see the need to connect up to a Google server to mediate communications between devices in my own house. And I didn't see anything about the control functions.
It doesn't look like the Protect provides temperature data. That's unfortunate as if it did you could indeed make this work.
One method would be to place the Protects into groups that correspond to your heating / cooling zones. Whenever a Protect in one of your groups moves out of your target temperature range you could raise or lower the target temperature of the Nest that controls that zone to some extreme, just to get the heating / cooling cycle to turn on. As soon as all of the Protects in the group are back in the target zone, move the Nest back to the target temperature as well.
Nest could support this directly by making the Protect act as a remote temperature sensor, but I'm not sure if the hardware even has this capability, let alone being exposed to the API.
You could still achieve the same effect by adding your own temperature sensors, but that would require additional research into what sensors are available.

Search for all iBeacons and not just with specific UUID

Is it possible to search for all iBeacons which are nearby? I know it's possible to search iBeacons by UUID. But i want to find all iBeacons nearby.
An iBeacon is a region, and has as defining property the UUID. Therefore, you can only search for the ones matching a UUID.
After you find one or more with a specific UUID, you can figure out which is closest using the delegate callbacks, where the beacons are stored in an array ordered by distance.
There is great sample code on this and also a pretty detailed WWDC video session: "What's new in Core Location"
iBeacons are higher-level constructs than regular BLE peripherals. From what can be determined from the Apple docs, beacons are tied to their service UUID. i.e., a family of beacons is a "region" and a you go into and out of a region based on the range and visibility of a beacon to YOU, not the other way around. Unfortunately Apple has used the term region, which most of us probably associate with MapKit, so this is adding to the general confusion
Here's the bad news: You can only scan for ProximityUUIDs that you know, there is no "wildcard" proximityUUID. Additionally, CLBeacons don't expose the much in the way of lower level CoreBluetooth guts so if you want to find all beacons that happen to be near you, you'll have to use CoreBluetooth, scan for peripherals, then look though the returned peripheries and query each one them to find beacons. Of course Apple has neither registered (with the Bluetooth SIG) or (yet) published the iBeacon characteristics so, you'll need a BT sniffer to reverse engineer what constitutes an iBeacon from any other BLE device.
each APP would use it's own specific UUID, using the "major" and "minor" integer values to differentiate between beacons.
for example, the UUID would be associated with a chain of shops, major would identify the shop, and minor the aisle, or even a group of products.
scanning for unknown UUID's would not be very useful, as your app would not know what to do with the information.
the UUID is generated once and for all, using the "uuidgen" command in the terminal.
sadly there is no protocol to actually communicate with beacons, hence there is no standard to get the location of a beacon, or any other useful info.
it would have been so much better if we could open a connection to a beacon, usually the closest one, and obtain additional data from it, without having to be on the same WIFI network.
you either have to use bonjour to communicate with the device over WIFI, or use the major and minor id to obtain data from a webservice of some kind.
Unfortunately you cannot at this time search for an arbitrary iBeacon without first knowing the proximityUUID value. I've tried writing directly to COREBluetooth and, although you can discover and connect to transmitting beacons in your area, what you get back is jibberish with no relation to the BLE UUID. So you can't even confirm that the peripheral you have connected to is in fact an iBeacon.
This does not appear to be a limitation of the BLE spec, rather it is a limitation that has been imposed by Apple. It also appears that this limitation does not exist for the Android platform.
Until this gap is closed, Android will have a significant advantage over iOS in this area.
I disagree with previous comments that scanning for UUIDs would be useless. On the contrary, if you knew the beacon UUID, you could create a map of beacon/location/subject in the cloud and use it to navigate (assuming the beacon was fixed) using a web service. You could crowd-source the data so that eventually a very rich database of beacon UUID/location pairs would be available to all who wanted to write location apps. Perhaps this is why Apple is hiding the info; they may be holding this back for their own purposes.
According to Radius Networks (authors of the AltBeacon spec and the android-beacon-library it's not possible to identify a beacon using CoreBluetooth

Resources