fixes to get rid of startup messages

This commit is contained in:
2026-03-17 06:59:06 +01:00
parent da7239d3c5
commit f1967f24cd
5 changed files with 69 additions and 52 deletions
+4 -5
View File
@@ -1,16 +1,15 @@
- sensor:
- name: tesla_kwh_needed
unit_of_measurement: "kWh"
state: >
{% set capacity = 75 %}
{% set soc = states('sensor.snowywhite_battery')|float %}
{% set limit = states('number.snowywhite_charge_limit')|float %}
{% set soc = states('sensor.snowywhite_battery')|float(0) %}
{% set limit = states('number.snowywhite_charge_limit')|float(100) %}
{{ ((limit - soc)/100 * capacity)|round(2) }}
- name: tesla_charge_hours_needed
unit_of_measurement: "h"
state: >
{% set power = 11 %}
{% set kwh = states('sensor.tesla_kwh_needed')|float %}
{{ (kwh / power)|round(2) }}
{% set kwh = states('sensor.tesla_kwh_needed')|float(0) %}
{{ (kwh / power)|round(2) }}
+23 -22
View File
@@ -1,29 +1,30 @@
binary_sensor:
- name: tesla_charge_now
state: >
{% set deadline_raw = states('input_datetime.tesla_charge_deadline') %}
{% set deadline_ts = as_timestamp(deadline_raw) if deadline_raw not in ['unknown','unavailable',''] else none %}
- binary_sensor:
- name: tesla_charge_now
state: >
{% set deadline_raw = states('input_datetime.tesla_charge_deadline') %}
{% set deadline_ts = as_timestamp(deadline_raw) if deadline_raw not in ['unknown','unavailable',''] else none %}
{% set hours_needed = states('sensor.tesla_charge_hours_needed') | float(0) | round(0, 'ceil') %}
{% set hours_needed = states('sensor.tesla_charge_hours_needed') | float(0) | round(0, 'ceil') %}
{% set prices = (state_attr('sensor.energidataservice','today') or [])
+ (state_attr('sensor.energidataservice','tomorrow') or []) %}
{% set prices = (state_attr('sensor.energidataservice','today') or [])
+ (state_attr('sensor.energidataservice','tomorrow') or []) %}
{# Filter valid price entries and apply deadline #}
{% set valid = [] %}
{% for p in prices %}
{% if p.hour is defined and p.hour %}
{% set ts = as_timestamp(p.hour) %}
{% if not deadline_ts or ts <= deadline_ts %}
{% set valid = valid + [p] %}
{# Filter valid price entries and apply deadline #}
{% set valid = [] %}
{% for p in prices %}
{% if p.hour is defined and p.hour %}
{% set ts = as_timestamp(p.hour) %}
{% if not deadline_ts or ts <= deadline_ts %}
{% set valid = valid + [p] %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{% endfor %}
{# Pick cheapest hours #}
{% set cheapest = (valid | sort(attribute='price'))[:hours_needed] %}
{# Pick cheapest hours #}
{% set cheapest = (valid | sort(attribute='price'))[:hours_needed] %}
{# Current hour #}
{% set now_slot = now().replace(minute=0, second=0, microsecond=0).isoformat() %}
{# Current hour #}
{% set now_slot = now().replace(minute=0, second=0, microsecond=0).isoformat() %}
{{ cheapest | selectattr('hour','equalto',now_slot) | list | count > 0 }}
{{ cheapest | selectattr('hour','equalto',now_slot) | list | count > 0 }}