Skip to content

Commit

Permalink
p1 dongle pro + h2o config
Browse files Browse the repository at this point in the history
  • Loading branch information
mhendriks committed Dec 31, 2023
1 parent 4c1f90d commit f20883f
Showing 1 changed file with 284 additions and 0 deletions.
284 changes: 284 additions & 0 deletions p1-dongle-pro-h2o.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,284 @@
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"

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:
- pulse_meter.set_total_pulses:
id: h2o_pulse
value: !lambda 'return set_value;'

ota:
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.yaml@main

# Enable logging
logger:
level: ERROR

dsmr:
uart:
rx_pin:
number: 10
inverted: true
baud_rate: 115200
rx_buffer_size: 1700

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: 30%
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: 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

0 comments on commit f20883f

Please sign in to comment.