【问题标题】:Nest API: when is Thermostat 'heating' or 'cooling'?Nest API:恒温器何时“加热”或“冷却”?
【发布时间】:2014-10-16 22:56:40
【问题描述】:

Nest Thermostat 设备会在“制冷”或“制热”状态下显示在屏幕上。如何通过 Nest API 获取此状态?

hvac_mode 属性似乎只是显示用户的恒温器能够控制什么,并且在冷却或加热发生时不会改变。

目前,我使用的是简单但并非完美的逻辑:

if (can_cool && target_temperature < ambient_temperature) --> isCooling
if (can_heat && target_temperature > ambient_temperature) --> isHeating
else --> isDoingNothing

我所说的并非完美无缺,是指我遇到过这种逻辑不正确的情况。例如,在ambient_temperature20 Celsiustarget_temperature21 Celsiuscan_heat 设置为true 的给定情况下,我的用户界面将显示恒温器正在加热,而实际上并非如此.

这可能是因为目标温度和环境温度太接近了,但我不知道阈值是多少。

还有其他或更好的方法来计算加热和冷却状态吗?

【问题讨论】:

    标签: nest-api


    【解决方案1】:

    截至 2015 年 5 月,Nest API 现在正式报告 hvac_state 属性。该值将是“加热”、“冷却”或“关闭”之一。

    数据模型中的新字段: hvac_state。 您将使用 hvac_state 来了解家庭 HVAC 系统是否正在加热、冷却或关闭。

    【讨论】:

    • 你真的能读懂这个 hvac_state 吗?在我的真实恒温器(SW 版本 4.5.1)中,该字段缺失,并且未作为恒温器数据结构的一部分报告。
    • 是的,我已经在我真正的恒温器上使用过它——我的也在 v4.5.1 上
    【解决方案2】:

    查看 API,它们没有提供任何方法来识别恒温器是否真的在加热。您可以识别的最接近的是您当前所写的内容。

    如果设备本身能够显示其正在加热或冷却,则它们必须具有不同的代码或不同的方法(例如内部电子设备)来识别它。

    【讨论】:

    • 不确定 SO 对我的以下提案的政策是什么:在这种情况下,我建议联系开发人员,询问他们是如何做到的......
    • 我认为这是 Nest 策略的一部分,可以将足够的控制权交给开发人员进行修补,但不足以制作替代应用程序 - 当您无法查看或编辑时间表或读取当前状态时,或者从 Nest 本身获得任何类型的 API 支持,你是相当无害的。
    【解决方案3】:

    很遗憾,您是正确的 - API 没有透露此信息。

    my application 中,我实现了与您相同的逻辑,并注意到与边缘情况有关的相同问题。我怀疑当环境温度仅超出目标温度一度或更少时,它可能存在时间因素。

    【讨论】:

      【解决方案4】:

      您需要跟踪 Heat On/off 的状态才能正确计算。我以 1 hz 监控 NEST 并将最后一个状态(开或关)存储为变量。获得此信息后,您可以使用以下逻辑并且它是准确的:

      if lastStatus.Contains("Off"))
      {
          if (temp_current < temp_setpoint)
              status = "Heat On";
          else
              status = "Heat Off";
      }
      else if (lastStatus.Contains("On"))
      {
          if (temp_current > temp_setpoint)
              status = "Heat Off";
          else
              status = "Heat On";
      }
      // Do the work....
      lastStatus=status;
      

      注意:temp_currenttemp_setpoint 从 REST http 帖子返回。 祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-19
        • 2022-09-23
        • 1970-01-01
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多