Skip to content

Commit

Permalink
added and updated with ota default
Browse files Browse the repository at this point in the history
  • Loading branch information
mhendriks committed Aug 25, 2024
1 parent 82f41ff commit a5d6f3e
Show file tree
Hide file tree
Showing 4 changed files with 538 additions and 16 deletions.
308 changes: 308 additions & 0 deletions p1-dongle-pro-h2o-dsmr22.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,308 @@
substitutions:
device_name: p1-dongle-pro-h2o
device_description: "P1 Dongle Pro + H2O counter"
friendly_name: P1 Dongle Pro H2O
prj_version: "2024.08.01"

esphome:
name: ${device_name}
comment: "${device_description}"
name_add_mac_suffix: false
project:
name: "smartstuff.p1_dongle_pro_h2o"
version: ${prj_version}
platformio_options:
upload_speed: 1500000

esp32:
board: esp32-c3-devkitm-1

improv_serial:
next_url: http://{{ip_address}}

api:
services:
- service: p1_dongle_reboot
then:
- button.press:
id: reboot
- service: set_water_total
variables:
set_value: int
then:
- globals.set:
id: totalWaterUsage
value: !lambda 'return set_value;'

globals:
- id: totalWaterUsage
type: int
restore_value: true # aanpassen naar no indien de nieuwe waarde onder de oude ligt
initial_value: '0'

ota:
platform: esphome

captive_portal:
web_server:
wifi:
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${device_name}
ap_timeout: 15s

dashboard_import:
package_import_url: github://mhendriks/esphome-p1/p1-dongle-pro-h2o-dsmr22.yaml@main

# Enable logging
logger:
level: ERROR

dsmr:
crc_check: false

uart:
rx_pin:
number: 10
inverted: true
rx_buffer_size: 1700
baud_rate: 9600
data_bits: 7
parity: EVEN
stop_bits: 1

light:
- platform: status_led
name: "status led"
output: status_output
internal: true
- platform: neopixelbus
variant: WS2812
pin: 8
num_leds: 1
name: "_Status LED"
id: esp32c3_rgb_led
entity_category: config
restore_mode: ALWAYS_OFF
internal: true
# method:
# type: esp32_rmt
# channel: 0

switch:
- platform: template
id: status_led_switch
# name: "Status LED Switch"
optimistic: true
on_turn_on:
- light.turn_on:
id: esp32c3_rgb_led
red: 0%
green: 0%
blue: 100%
brightness: 40%
transition_length: 50ms
on_turn_off:
- light.turn_off:
id: esp32c3_rgb_led
transition_length: 50ms

output:
- platform: template
id: status_output
type: binary
write_action:
- if:
condition:
lambda: return state > 0;
then:
- if:
condition:
switch.is_off: status_led_switch
then:
switch.turn_on: status_led_switch
else:
- if:
condition:
switch.is_on: status_led_switch
then:
switch.turn_off: status_led_switch

button:
- platform: restart
name: "_Restart device"
id: reboot
- platform: factory_reset
name: "_Restart with Factory Default Settings"

binary_sensor:
- platform: gpio
pin:
number: 9
inverted: true
mode:
input: true
pullup: true
name: _PushButton
on_press:
then:
- switch.toggle: status_led_switch

sensor:
- platform: pulse_meter
name: "Watermeter pulse"
pin:
number: 0
mode:
input: true
pullup: true
id: h2o_pulse
state_class: measurement
unit_of_measurement: 'L'
device_class: water
internal_filter: 13us
internal_filter_mode: EDGE
icon: mdi:flash-outline
accuracy_decimals: 0
# total:
# name: "Water Total"
# id: h2o_total
# state_class: total_increasing
# icon: mdi:water
# unit_of_measurement: L
# accuracy_decimals: 0
- platform: template
name: "Watermeter total"
state_class: "total_increasing"
device_class: "water"
icon: mdi:water
update_interval: 1s
unit_of_measurement: L
accuracy_decimals: 0
lambda: |-
if (id(h2o_pulse).state > 0) id(totalWaterUsage) += 1;
return id(totalWaterUsage);
- platform: dsmr
# energy_delivered_lux:
# name: "Energy Consumed Luxembourg"
# state_class: total_increasing
energy_delivered_tariff1:
name: "Energy Consumed Tariff 1"
state_class: total_increasing
energy_delivered_tariff2:
name: "Energy Consumed Tariff 2"
state_class: total_increasing
# energy_returned_lux:
# name: "Energy Produced Luxembourg"
# state_class: total_increasing
energy_returned_tariff1:
name: "Energy Produced Tariff 1"
state_class: total_increasing
energy_returned_tariff2:
name: "Energy Produced Tariff 2"
state_class: total_increasing
power_delivered:
name: "Power Consumed"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned:
name: "Power Produced"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
electricity_failures:
name: "Electricity Failures"
icon: mdi:alert
electricity_long_failures:
name: "Long Electricity Failures"
icon: mdi:alert
voltage_l1:
name: "Voltage Phase 1"
voltage_l2:
name: "Voltage Phase 2"
voltage_l3:
name: "Voltage Phase 3"
current_l1:
name: "Current Phase 1"
current_l2:
name: "Current Phase 2"
current_l3:
name: "Current Phase 3"
power_delivered_l1:
name: "Power Consumed Phase 1"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_delivered_l2:
name: "Power Consumed Phase 2"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_delivered_l3:
name: "Power Consumed Phase 3"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned_l1:
name: "Power Produced Phase 1"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned_l2:
name: "Power Produced Phase 2"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned_l3:
name: "Power Produced Phase 3"
unit_of_measurement: "W"
state_class: "measurement"
accuracy_decimals: 0
filters:
- multiply: 1000
gas_delivered:
name: "Gas Consumed"
state_class: total_increasing
gas_delivered_be:
name: "Gas Consumed Belgium"
state_class: total_increasing
- platform: uptime
name: "_Uptime"
- platform: wifi_signal
name: "_Wi-Fi Signal"
update_interval: 60s

text_sensor:
- platform: dsmr
identification:
name: "DSMR Identification"
p1_version:
name: "DSMR Version"
p1_version_be:
name: "DSMR Version Belgium"
- platform: wifi_info
ip_address:
name: "_IP Address"
ssid:
name: "_Wi-Fi SSID"
bssid:
name: "_Wi-Fi BSSID"
- platform: version
name: "_ESPHome Version"
hide_timestamp: true
4 changes: 3 additions & 1 deletion p1-dongle-pro-h2o.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ substitutions:
device_name: p1-dongle-pro-h2o
device_description: "P1 Dongle Pro + H2O counter"
friendly_name: P1 Dongle Pro H2O
prj_version: "2023.12.1"
prj_version: "2024.08.01"

esphome:
name: ${device_name}
Expand Down Expand Up @@ -41,6 +41,8 @@ globals:
initial_value: '0'

ota:
platform: esphome

captive_portal:
web_server:
wifi:
Expand Down
Loading

0 comments on commit a5d6f3e

Please sign in to comment.