1. I am able to connect to the Nest and adjust the temperature, but when I ask for the current temperature, it always reports back 17.01 degrees. Any ideas on this?
It should work if you first say "Update Nest data".
You can also revise the existing "Get current temperature" command by adding an action at the beginning that will automatically refresh the Nest data. I have done this for your target temp command below. You can use the same VC.TriggerEvent action at the beginning of your "Get current temperature" command
2. Is it possible to request the 'target temperature'?
The existing "Show status of thermostat X" command does include target temperature. However, the command below should tell you
just the target temp, without all the other stuff.
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.6-->
<command id="1279" name="Get target temperature of {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>dev</param>
<param>{PF.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>nestUpdate</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Read</cmdType>
<params>
<param>Nest\Nest_dev_status.txt</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.Replace</cmdType>
<params>
<param>_</param>
<param><![CDATA[ ]]></param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>shared".*?"{1}".*?timestamp":(.*?)}}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>,"target.temperature":(.*?),</param>
<param />
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>The target temperature for {var.dev} is:</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.AddText</cmdType>
<params>
<param>{Match.1} degrees</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<params>
<param>The target temperature for {var.dev} is: {Match.1} degrees</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Get target temperature of</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">Nest\thermoList.xml</payloadFromXML>
</command>
EDIT: I had to correct a problem with the xml above. Revised xml posted 2-March-2016.
I need to look again at the json feedback to see if there's a more elegant solution that can return low and high target temps for thermostats that are set to heat-cool mode, or just the one target temperature for those that are set to a solo (either heat or cool) mode. The above command assumes your thermostat has just one target temp.