我正在尝试比较两个时间戳,但出现类型错误:
"TypeError: '<' not supported between instances of 'float' and 'str'
模板代码使用 'as_timestamp' 并且文档建议在比较时使用 float()。
我正在尝试获取日期值最接近 now() 的传感器的名称和日期(在 Home Assistant 中)。所以我正在尝试执行以下操作:
{%- set list = ['sensor.1','sensor.2','sensor.3','sensor.4'] -%}
{%- set data = namespace(min_date=float(as_timestamp(now() + timedelta(days = 360))), min_name = '') -%}
{%- for i in list %}
{%- set value = states(i) %}
{%- if float(as_timestamp(value)) < float(data.min_date) %}
{%- set data.min_date = value -%}
{%- set data.min_name = state_attr(i, 'friendly_name') -%}
{% endif %}
{%- endfor %}
{{ data.min_name + ' (' + data.min_date | timestamp_custom('%Y-%m-%dT%H:%M:%S%z') + ')' }}
尽管值是用 float() 和 as_timestamp() 定义的,但为什么 data.min_date 在比较中是一个 str 的任何想法?