diff --git a/esphome/epaperframe.yaml b/esphome/epaperframe.yaml index 9116313..2fbd45b 100644 --- a/esphome/epaperframe.yaml +++ b/esphome/epaperframe.yaml @@ -118,24 +118,19 @@ sensor: - platform: homeassistant entity_id: sensor.serveraum_temperatur id: temp_serverroom - + text_sensor: - platform: homeassistant - entity_id: sun.sun - id: sun_state - internal: True - + name: "Sun Rising ESP" + entity_id: sensor.sun_rising_template + id: sun_rising + internal: true + - platform: homeassistant - entity_id: sun.sun - id: sun_rise - attribute: next_rising - internal: True - - - platform: homeassistant - entity_id: sun.sun - id: sun_set - attribute: next_setting - internal: True + name: "Sun Setting ESP" + entity_id: sensor.sun_setting_template + id: sun_setting + internal: true - platform: homeassistant entity_id: sensor.moon @@ -325,33 +320,9 @@ display: int sleepingroom_pm25 = int(id(pm25_sleepingroom).state); float sleepingroom_co2 = id(co2_sleepingroom).state; float serverroom_temp = id(temp_serverroom).state; - char sunrise[5] = ""; - char sunset[5] = ""; int offsetX = 0; int offsetY = 0; - /* - This is Commander1024 doing awful string / time fuckerey full of - desperation to format sunrise / sunset times. - Don't be like Commander1024 - - Format: 2021-10-08T05:40:47.467076+00:00 -> 7:40 (dst) - */ - int dst = id(homeassistant_time).now().is_dst; // returns 1 for dst, otherwise 0 - struct tm tm; - memset (&tm, 0, sizeof (tm)); - strptime(id(sun_rise).state.c_str(), "%Y-%m-%dT%H:%M:%S", &tm); - time_t rawtime = mktime(&tm); - struct tm* ltm = localtime(&rawtime); - sprintf(sunrise, "%d:%02d", ltm->tm_hour + dst, ltm->tm_min); - - memset (&tm, 0, sizeof (tm)); - strptime(id(sun_set).state.c_str(), "%Y-%m-%dT%H:%M:%S", &tm); - rawtime = mktime(&tm); - ltm = localtime(&rawtime); - sprintf(sunset, "%d:%02d", ltm->tm_hour + dst, ltm->tm_min); - - /* OUTSIDE */ it.print(10, 10, id(sensor_unit), "Umwelt"); /* @@ -598,15 +569,14 @@ display: it.print(80 + offsetX, 200, id(big_sensor_font), TextAlign::BASELINE_LEFT, "Lüften!"); } - if(id(sun_state).has_state()) { - ESP_LOGI("Sun", "State of the sun: %s, sunrise: %s, sunset: %s", - id(sun_state).state.c_str(), sunrise, sunset); + /* ESP_LOGI("Sunrise: %s, Sunset: %s", + id(sun_rising).state.c_str(), id(sun_setting).state.c_str()); + */ - it.print(10 + offsetX, 250, id(mdi_small), TextAlign::BASELINE_LEFT, "󰖜"); // sun-up - it.printf(50 + offsetX, 250, id(sensor_unit), TextAlign::BASELINE_LEFT, "%s", sunrise); - it.print(135 + offsetX, 250, id(mdi_small), TextAlign::BASELINE_LEFT, "󰖛"); // sun-down - it.printf(175 + offsetX, 250, id(sensor_unit), TextAlign::BASELINE_LEFT, "%s", sunset); - } + it.print(10 + offsetX, 250, id(mdi_small), TextAlign::BASELINE_LEFT, "󰖜"); // sun-up + it.printf(50 + offsetX, 250, id(sensor_unit), TextAlign::BASELINE_LEFT, "%s", id(sun_rising).state.c_str()); + it.print(135 + offsetX, 250, id(mdi_small), TextAlign::BASELINE_LEFT, "󰖛"); // sun-down + it.printf(175 + offsetX, 250, id(sensor_unit), TextAlign::BASELINE_LEFT, "%s", id(sun_setting).state.c_str()); /* Serverroom */ offsetY = 247; diff --git a/sensors.yaml b/sensors.yaml index b8532d2..7c9761a 100644 --- a/sensors.yaml +++ b/sensors.yaml @@ -2,6 +2,7 @@ - platform: time_date display_options: - 'time' + - 'date' # Raspberry Pi CPU temp - platform: command_line name: "CPU Temp" @@ -37,17 +38,17 @@ - platform: template sensors: - internet_speed_in: - friendly_name: 'Internet Speed IN' - value_template: '{{ ((states.input_number.internet_traffic_delta_in.state | float ) / 1000000 ) | round(2) }}' - unit_of_measurement: 'Mbps' + internet_speed_in: + friendly_name: 'Internet Speed IN' + value_template: '{{ ((states.input_number.internet_traffic_delta_in.state | float ) / 1000000 ) | round(2) }}' + unit_of_measurement: 'Mbps' - platform: template sensors: - internet_speed_out: - friendly_name: 'Internet Speed OUT' - value_template: '{{ ((states.input_number.internet_traffic_delta_out.state | float ) / 1000000 ) | round(2) }}' - unit_of_measurement: 'Mbps' + internet_speed_out: + friendly_name: 'Internet Speed OUT' + value_template: '{{ ((states.input_number.internet_traffic_delta_out.state | float ) / 1000000 ) | round(2) }}' + unit_of_measurement: 'Mbps' - platform: statistics name: 'WAN Traffic In' @@ -56,3 +57,15 @@ - platform: statistics name: 'WAN Traffic Out' entity_id: sensor.internet_speed_out + + - platform: template + sensors: + sun_rising_template: + friendly_name: "Sun Rising Template" + value_template: "{{ as_timestamp(states.sun.sun.attributes.next_rising) | timestamp_custom ('%H:%M') }}" + + - platform: template + sensors: + sun_setting_template: + friendly_name: "Sun Setting Template" + value_template: "{{ as_timestamp(states.sun.sun.attributes.next_setting) | timestamp_custom ('%H:%M') }}"