CCCPaste
substitutions:
  name: "mwbus"
  friendly_name: "wmBus"
  comment: "wmBus"

esphome:
  name: "${name}"
  friendly_name: "${friendly_name}"
  comment: "${comment}"
  name_add_mac_suffix: false
  project:
    name: wmbus.k3
    version: "1.0"

esp32:
  board: lilygo-t3-s3
  framework:
    type: esp-idf

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
#  use_address: 192.168.50.91
  ap:
    ssid: "wmBus LoRa AP"

captive_portal:

logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200

psram:

time:
  - platform: homeassistant

api:

ota:
  - platform: esphome

web_server:
  version: 3 

spi:
  clk_pin: GPIO5
  mosi_pin: GPIO6
  miso_pin: GPIO3

wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO7
  reset_pin: GPIO8
  irq_pin: GPIO33
#  on_frame:
#    - then:
#        - logger.log:
#            format: "RSSI: %ddBm T: %s (%d) %s"
#            args: [ frame->rssi(), frame->as_hex().c_str(), frame->data().size(), toString(frame->link_mode()) ]
#    - then:
#        - repeat:
#            count: 3
#            then:
#              - output.turn_on: status_led
#              - delay: 100ms
#              - output.turn_off: status_led
#              - delay: 100ms

## Send telegram via MQTT in RTLwMBus format
    # - mark_as_handled: False
    #   then:
    #     - mqtt.publish:
    #         topic: wmbus-test/telegram_rtl
    #         payload: !lambda return frame->as_rtlwmbus();
## Send telegram to another machine in HEX format
    # - mark_as_handled: False
    #   then:
    #     - socket_transmitter.send:
    #         data: !lambda return frame->as_hex();
## Send telegram via MQTT in HEX format
    # - then:
    #     - mqtt.publish:
    #         topic: wmbus-test/telegram_hex
    #         payload: !lambda return frame->as_hex();
## Send telegram to another machine in RTLwMBus format
    # - then:
    #     - socket_transmitter.send:
    #         data: !lambda return frame->as_rtlwmbus();

#wmbus_common:
#    drivers: all
    # or specify specific drivers
#    drivers:
#      - apator162
#      - amiplus

## If You want to send telegram to nother machine and decode it via wmbusmeters.
# socket_transmitter:
#   id: my_socket
#   ip_address: 192.168.1.1
#   port: 3333
#   protocol: TCP # or UDP

## MQTT if You want to send data to broker.
# mqtt:
#   broker: test.mosquitto.org
#   port: 1883
#   client_id: some_client_id

wmbus_meter:
  - id: zw_kuchnia
    meter_id: 10740600
    type: c5isf
    key: "6BD7B8F7B155DBF853021C80476F592F"

  - id: cw_kuchnia
    meter_id: 10527537
    type: c5isf
    key: "4E65699EC4823439175E604BF21F4409"

  - id: zw_lazienka
    meter_id: 10740563
    type: c5isf
    key: "4439A362EC137800F065AA9ADF608AF2"

  - id: cw_lazienka
    meter_id: 10527532
    type: c5isf
    key: "FA8041F1DBE0926EF72FAFD2FCD29855"

sensor:
  - platform: wmbus_meter
    id: zw_kuchnia_sensor
    name: Zimna woda kuchnia
    field: "total_volume_m3"
    parent_id: zw_kuchnia
    device_class: "water"
    icon: mdi:counter
    state_class: "total_increasing"
    unit_of_measurement: "m³"
    accuracy_decimals: 3

  - platform: wmbus_meter
    id: cw_kuchnia_sensor
    name: Ciepla woda kuchnia
    field: "total_volume_m3"
    parent_id: cw_kuchnia
    device_class: "water"
    icon: mdi:counter
    state_class: "total_increasing"
    unit_of_measurement: "m³"
    accuracy_decimals: 3

  - platform: wmbus_meter
    id: zw_lazienka_sensor
    name: Zimna woda lazienka
    field: "total_volume_m3"
    parent_id: zw_lazienka
    device_class: "water"
    icon: mdi:counter
    state_class: "total_increasing"
    unit_of_measurement: "m³"
    accuracy_decimals: 3

  - platform: wmbus_meter
    id: cw_lazienka_sensor
    name: Ciepla woda lazienka
    field: "total_volume_m3"
    parent_id: cw_lazienka
    device_class: "water"
    icon: mdi:counter
    state_class: "total_increasing"
    unit_of_measurement: "m³"
    accuracy_decimals: 3

  - platform: wifi_signal
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: internal_temperature
    name: "Internal Temperature"

  - platform: uptime
    type: seconds
    name: Uptime