Nest Protect的温度和湿度

时间:2015-01-16 20:33:19

标签: nest-api

Nest Protect(烟雾和CO警报)可以测量温度和湿度,但官方或非官方API似乎都不允许访问此数据。是否有人在努力工作?访问这些数据的任何视线?建议?谢谢!

1 个答案:

答案 0 :(得分:-1)

 $infos = (object) array(
        'current_state' => (object) array(
            'mode' => $mode,
            'temperature' => $this->temperatureInUserScale((float) $this->last_status->shared->{$serial_number}->current_temperature),
            'humidity' => $this->last_status->device->{$serial_number}->current_humidity,
            'ac' => $this->last_status->shared->{$serial_number}->hvac_ac_state,
            'heat' => $this->last_status->shared->{$serial_number}->hvac_heater_state,
            'alt_heat' => $this->last_status->shared->{$serial_number}->hvac_alt_heat_state,
            'fan' => $this->last_status->shared->{$serial_number}->hvac_fan_state,
            'auto_away' => $this->last_status->shared->{$serial_number}->auto_away, // -1 when disabled, 0 when enabled (thermostat can set auto-away), >0 when enabled and active (thermostat is currently in auto-away mode)
            'manual_away' => $manual_away,
            'leaf' => $this->last_status->device->{$serial_number}->leaf,
            'battery_level' => $this->last_status->device->{$serial_number}->battery_level
        ),
        'target' => (object) array(
            'mode' => $target_mode,
            'temperature' => $target_temperatures,
            'time_to_target' => $this->last_status->device->{$serial_number}->time_to_target,

添加:

            'humidity' => $this->last_status->device->{$serial_number}->target_humidity, //added by Rick Ammazzini
            'humidity_enabled' => $this->last_status->device->{$serial_number}->target_humidity_enabled //added by Rick Ammazzini
        ),
        'serial_number' => $this->last_status->device->{$serial_number}->serial_number,
        'scale' => $this->last_status->device->{$serial_number}->temperature_scale,
        'location' => $structure,
        'line_power_present' => $this->last_status->device->{$serial_number}->line_power_present,
        'network' => $this->getDeviceNetworkInfo($serial_number),
        'name' => !empty($this->last_status->shared->{$serial_number}->name) ? $this->last_status->shared->{$serial_number}->name : DEVICE_WITH_NO_NAME,
        'where' => isset($this->last_status->device->{$serial_number}->where_id) ? isset($this->where_map[$this->last_status->device->{$serial_number}->where_id]) ? $this->where_map[$this->last_status->device->{$serial_number}->where_id] : $this->last_status->device->{$serial_number}->where_id : ""
    );

    if($this->last_status->device->{$serial_number}->has_humidifier) {
      $infos->current_state->humidifier= $this->last_status->device->{$serial_number}->humidifier_state;
      $infos->target->humidity = $this->last_status->device->{$serial_number}->target_humidity;
      $infos->target->humidity_enabled = $this->last_status->device->{$serial_number}->target_humidity_enabled;
    }
    return $infos;
}