| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- esphome:
- name: livingroom
- platform: ESP8266
- board: esp01_1m
- # board: esp12e
- includes:
- - MySunTextSensor.h
- # Enable logging
- logger:
- # Enable Home Assistant API
- api:
- ota:
- substitutions:
- #Shift sunset and sunrisen on minute
- shift_sunset: '+17'
- shift_sunrise: '+6'
- # At least one time source is required
- time:
- - platform: homeassistant # sntp
- timezone: "Europe/Berlin"
- id: esptime # sntp_time
- # - minutes: !lambda 'return id(heating_on_time_1_minutes).state;'
- # hours: !lambda 'return id(heating_on_time_1_hours).state;'
- # At WiFi setup
- wifi:
- ssid: "WLAN-LX"
- password: "SP-RAXX749x7"
- # Enable fallback hotspot (captive portal) in case wifi connection fails
- ap:
- ssid: "Livingroom Fallback Hotspot"
- password: "R8ZKoXbtquSv"
- # Example configuration entry
- web_server:
- port: 80
- # determine Sunrise and Sunset based on geographical location
- sun:
- latitude: 48.77034
- longitude: 8.34306
- on_sunrise:
- - then:
- - logger.log: Good morning!
- # Custom elevation, will be called shortly after the trigger above.
- #- elevation: 5°
- # then:
- # - logger.log: Good morning 2!
- on_sunset:
- - then:
- - logger.log: Good evening!
- captive_portal:
- # Example configuration entry
- text_sensor:
- - platform: sun
- name: Sun Next Sunrise
- type: sunrise
-
- - platform: sun
- name: Sun Next Sunset
- type: sunset
- - platform: version
- name: Platform
- on_value:
- then:
- - lambda: |-
- ESP_LOGD("main", "The current version is %s", x.c_str());
- - platform: template
- name: "Template Text Sensor"
- lambda: |-
- char str[17];
- time_t currTime = id(esptime).now().timestamp ;
- strftime(str, sizeof(str), "%Y-%m-%d %H:%M", localtime(&currTime));
- return {str};
- update_interval: 60s
- - platform: template
- name: "Sunrise"
- id: sunrise_shift
- lambda: |-
- auto sunrise = id(sun_sun).sunrise();
- auto time = id(esptime).now();
- sun_sun->set_latitude(48.77034);
- sun_sun->set_longitude(8.34306);
- if (!sunrise.has_value())
- return {"NaN"};
- int sunrise_min = sunrise.value().hour * 60 + sunrise.value().minute + ${shift_sunrise} ;
- int sunrise_hour = int(sunrise_min / 60);
- int sunrise_minute = sunrise_min % 60;
- ESP_LOGD("sunrise_shift", "sunrise.value.()hour is %i , sunrise.value().minute is %i ", sunrise.value().hour , sunrise.value().minute);
- ESP_LOGD("sunrise_shift", "sunrise_min is %i , sunrise_hour is %i ,sunrise_minute is %i ", sunrise_min , sunrise_hour , sunrise_minute);
- char buffer[6];
- sprintf(buffer,"%02i:%02i", sunrise_hour , sunrise_minute);
- return {buffer};
- # ESP_LOGD("sunset_shift", "state relay is %i ", id(relay).state );
- # if((sunrise_hour == time.hour) and (sunrise_minute == time.minute))
- # if(id(relay).state)
- # id(relay).turn_off();
- # ESP_LOGD("sunset_shift", "change relay is OFF" );
- - platform: template
- name: "Sunset"
- id: sunset_shift
- lambda: |-
- auto sunset = id(sun_sun).sunset();
- auto time = id(esptime).now();
- if (!sunset.has_value())
- return {"NaN"};
- int sunset_min = sunset.value().hour * 60 + sunset.value().minute + ${shift_sunset};
- int sunset_hour = int(sunset_min / 60);
- int sunset_minute = sunset_min % 60;
- ESP_LOGD("sunset_shift", "sunset.value.()hour is %i , sunset.value().minute is %i ", sunset.value().hour , sunset.value().minute);
- ESP_LOGD("sunset_shift", "sunset_min is %i , sunset_hour is %i ,sunset_minute is %i ", sunset_min , sunset_hour , sunset_minute);
- char buffer[6];
- sprintf(buffer,"%02i:%02i", sunset_hour , sunset_minute);
- return {buffer};
-
- # ESP_LOGD("sunset_shift", "state relay is %i ", id(relay).state );
- # if((sunset_hour == time.hour) and (sunset_minute == time.minute))
- # if(!id(relay).state)
- # id(relay).turn_on();
- # ESP_LOGD("sunset_shift", "change relay is ON" );
- - platform: template
- name: "Sunset Algo"
- lambda: |-
- int sunrise;
- int sunset;
- auto sunSensor = new MySunTextSensor();
- App.register_component(sunSensor);
- auto sun_sensor = sunSensor->sun;
- auto time = id(esptime).now();
- sun_sensor->setPosition(48.77034, 8.34306, 1);
- sun_sensor->setCurrentDate(2021, 03, 05);
- sunrise = static_cast<int>(sun_sensor->calcSunrise());
- sunset = static_cast<int>(sun_sensor->calcSunset());
- char buffer[100];
-
- sprintf(buffer, "Sunrise at %.2d:%.2dam, Sunset at %.2d:%.2dpm", (sunrise/60), (sunrise%60), (sunset/60), (sunset%60));
- return {buffer};
- # sun_sensor->setCurrentDate(time.year(), time.month(), time.day());
- #text_sensors:
- # name: "My Custom Text Sensor"
|