Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited

Nest Smoke Detector


I am thinking of buying a NEST smoke detector, because it can be used with ARC (and yes, also for safety reasons :)).
I have seen the example for the thermostat, but nothing about the smoke/CO detector.
Does anyone know what kind of variables can be recover in ARC with the smoke detector ?


Upgrade to ARC Pro

Experience the latest features and updates. You'll have everything that is needed to unleash your robot's potential.

Look at the variable watched when the control is added. There's a lengthy list
I don't have any NEST product yet, so when I add the control, I don't see any related variables in the variable watcher. Unless I miss something...
Same results for me. I think you need a nest account defined to gwt it to connect and populate the varuables.

Yeah, I thought that too, so I have signed for an account and made the link with ARC. I have also run the script cc nest runonce. But, still no variable...
Yeah - you will need to connect ARC to it and run once. Maybe this is because your account does not have a Nest assigned to it. You will have to assign the thermostat to the ARC skill plugin when you get the Nest setup.

There is a "nest simulator" that you can run.. Either way, here's the variables to make it easier:)

The prefix_ is the name of the thermostat that you assign with Nest when it's setup. For example "Living Room", "BAsement", "My House", etc..


Scripting.VariableManager.SetVariable(prefix + "temp_c", thermostat.Value.ambient_temperature_c);
Scripting.VariableManager.SetVariable(prefix + "temp_f", thermostat.Value.ambient_temperature_f);
Scripting.VariableManager.SetVariable(prefix + "temp_high_c", thermostat.Value.away_temperature_high_c);
Scripting.VariableManager.SetVariable(prefix + "temp_high_f", thermostat.Value.away_temperature_high_f);
Scripting.VariableManager.SetVariable(prefix + "temp_low_c", thermostat.Value.away_temperature_low_c);
Scripting.VariableManager.SetVariable(prefix + "temp_low_f", thermostat.Value.away_temperature_low_f);
Scripting.VariableManager.SetVariable(prefix + "humidity", thermostat.Value.humidity);
Scripting.VariableManager.SetVariable(prefix + "is_online", thermostat.Value.is_online);
Scripting.VariableManager.SetVariable(prefix + "target_temp_c", thermostat.Value.target_temperature_c);
Scripting.VariableManager.SetVariable(prefix + "target_temp_f", thermostat.Value.target_temperature_f);
Scripting.VariableManager.SetVariable(prefix + "target_temp_high_c", thermostat.Value.target_temperature_high_c);
Scripting.VariableManager.SetVariable(prefix + "target_temp_high_f", thermostat.Value.target_temperature_high_f);
Scripting.VariableManager.SetVariable(prefix + "target_temp_low_c", thermostat.Value.target_temperature_low_c);
Scripting.VariableManager.SetVariable(prefix + "target_temp_low_f", thermostat.Value.target_temperature_low_f);
Scripting.VariableManager.SetVariable(prefix + "battery_health", smoke.Value.battery_health);
Scripting.VariableManager.SetVariable(prefix + "co_alarm", smoke.Value.co_alarm_state);
Scripting.VariableManager.SetVariable(prefix + "is_online", smoke.Value.is_online);
Scripting.VariableManager.SetVariable(prefix + "smoke_alarm", smoke.Value.smoke_alarm_state);
Thank you @DJ,. Really interresting....
This smoke detector is expensive, but I am really tempted.
Nest is generally really expensive - i don't actually have one. I use the simulator. The price of a Nest is far too high to justify:)