Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- esphome:
- name: efs
- platform: ESP32
- board: esp32dev
- wifi:
- ssid: !secret esphome_ssid
- password: !secret esphome_password
- # Enable logging
- logger:
- # Enable Home Assistant API
- api:
- ota:
- time:
- #- platform: sntp
- # id: my_time
- - platform: homeassistant
- id: homeassistant_time
- on_time:
- - seconds: 57
- minutes: 59
- hours: 23
- then:
- - sensor.template.publish:
- id: template_efs_veille
- state: !lambda return id(daily_efs).state;
- i2c:
- - sda: GPIO21
- scl: GPIO22
- id: i2c_bus1
- switch:
- - platform: restart
- name: "restart_efs"
- sensor:
- - platform: adc
- id: sensor_resistance
- pin: GPIO032
- update_interval: 10s
- attenuation: 0db
- - platform: resistance
- sensor: sensor_resistance
- configuration: UPSTREAM
- resistor: 10.0kOhm
- accuracy_decimals: 2
- name: resistance_efs
- id: resistance_efs
- icon: mdi:resistor
- #- platform: ntc
- # sensor: sensor_resistance
- # #calibration:
- # # b_constant: 3950
- # # reference_temperature: 25°C
- # # reference_resistance: 50kOhm
- # calibration:
- # - 200.720kOhm -> 6.0°C
- # - 57.094kOhm -> 22.0°C
- # - 28.766kOhm -> 37.0°C
- # name: temperature_efs
- # unit_of_measurement: "°C"
- # icon: "mdi:water-percent"
- # accuracy_decimals: 2
- - platform: template
- name: temperature_efs
- unit_of_measurement: "°C"
- icon: "mdi:water-percent"
- accuracy_decimals: 2
- update_interval: 10s
- filters:
- - sliding_window_moving_average:
- window_size: 7
- send_every: 1
- lambda: |-
- float A = -0.0023372161946098318;
- float B = 0.0006789562966514373;
- float C = -1.3022483012452408e-06;
- float LR = log(id(resistance_efs).state);
- return (1.0/(A + B*LR + C*LR*LR*LR) - 273.15);
- - platform: bme280
- i2c_id: i2c_bus1
- temperature:
- name: "temperature_cuisine"
- oversampling: 16x
- id: temperature_cuisine
- pressure:
- name: "pression_cuisine"
- id: pression_cuisine
- unit_of_measurement: "bar"
- accuracy_decimals: 3
- filters:
- - lambda: return x / 1000.0;
- humidity:
- name: "humidite_cuisine"
- id: humidite_cuisine
- address: 0x76
- update_interval: 10s
- - platform: adc
- pin: GPIO34
- name: "pression_efs_amont"
- id: pression_efs_amont
- update_interval: 10s
- unit_of_measurement: "bar"
- icon: mdi:gauge
- accuracy_decimals: 3
- attenuation: 11db
- filters:
- - sliding_window_moving_average:
- window_size: 7
- send_every: 1
- - lambda: return ((x/5.0 - 0.1)*1.333333*10); #((x - 0.1)*1.333333*(10/6.4)); #2 # ((x/5.0 - 0.1)*1.333333*10)
- - platform: adc
- pin: GPIO35
- name: "pression_efs_aval"
- id: pression_efs_aval
- update_interval: 10s
- unit_of_measurement: "bar"
- icon: mdi:gauge
- accuracy_decimals: 3
- attenuation: 11db
- filters:
- - sliding_window_moving_average:
- window_size: 7
- send_every: 1
- - lambda: return ((x/5.0 - 0.1)*1.333333*10); #((x - 0.1)*1.333333*(10/7.5)); #4
- - platform: pulse_counter
- id: water_flow_meter
- pin: GPIO15
- name: "water_flow_meter"
- update_interval: 1s
- icon: mdi:water
- filters:
- - lambda: return (x / 5.48);
- unit_of_measurement: "l"
- - platform: total_daily_energy
- name: "efs_du_jour"
- power_id: water_flow_meter
- unit_of_measurement: "l"
- accuracy_decimals: 2
- id: daily_efs
- - platform: template
- name: "efs_veille"
- id: template_efs_veille
- unit_of_measurement: "l"
- accuracy_decimals: 2
- icon: mdi:water
- update_interval: 10s
- - platform: wifi_signal
- name: "WiFi puissance_efs"
- update_interval: 10s
- - platform: uptime
- name: "up"
- id: uptime_sec
- binary_sensor:
- - platform: status
- name: "efs_status"
- - platform: template
- name: filtre_efs
- lambda: |-
- if (abs(id(pression_efs_aval).state - id(pression_efs_amont).state) < 0.8) {
- // Changement de filtre
- return true;
- } else {
- // filtre ok
- return false;
- }
- text_sensor:
- - platform: template
- name: efs_uptime
- lambda: |-
- int seconds = (id(uptime_sec).state);
- int days = seconds / (24 * 3600);
- seconds = seconds % (24 * 3600);
- int hours = seconds / 3600;
- seconds = seconds % 3600;
- int minutes = seconds / 60;
- seconds = seconds % 60;
- return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
- icon: mdi:clock-start
- update_interval: 113s
Add Comment
Please, Sign In to add comment