Magic Reader

Przekazuję do HackerSpace’u dongle’a Magic Reader V2.
Jest to ESP32-S2 z modułem Ebyte E07 (czyli radio CC1101), którym można m.in. czytać telegramy wmbus.

Poniżej YAML z konfiguracją, która pozwala skompilować ESPHome do niego:

dashboard_import:
  package_import_url: github://MariuszWoszczynski/wmbus-reader-v2/wmbus-reader-v2.yaml@main
  import_full_config: true
 
substitutions:
  name: "wmbus-reader-v2"
  friendly_name: "wmbus reader v2"
  status_led: GPIO15
  
esphome:
  name: "${name}"
  friendly_name: "${friendly_name}"
  project:
    name: esphome.wmbus_reader_v2
    version: "1.0"
  # only for RPI 
  #compile_process_limit: 1
  
esp32:
  board: lolin_s2_mini
  framework:
    type: arduino
 
external_components:
  - source: github://SzczepanLeon/esphome-components@version_3
    components: [ wmbus ]
    refresh: 0d
 
 
time:
 - platform: sntp
   id: time_sntp
 
 
# Enable logging
logger:
  level: debug
 
# Enable Home Assistant API
api:
  encryption:
    key: "D0KKR80TBX3z2sx+Pejf1BBJ/+jaj5dQZXNZuwD/s8k="
 
ota:
  - platform: esphome

 
wifi:
  ssid: "XXX"
  password: "XXX"
  output_power: 18dB
#  static IP configuration (instead of data from the secret file)
#  manual_ip:
#    static_ip: 192.168.10.99
#    gateway: 192.168.10.1
#    subnet: 255.255.255.0
 
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "WMBUS Reader v2"
#    password: "password_12345678"
 
# Status LED for connection
status_led:
  pin:
    # Blue LED
    number: ${status_led}

captive_portal:
 
web_server: 
  port: 80
  version: 3
 
wmbus:
  mosi_pin: GPIO35
  clk_pin:  GPIO36 
  miso_pin: GPIO37
  gdo2_pin: GPIO1 
  gdo0_pin: GPIO2
  cs_pin:   GPIO34
#  log_unknown: true
 

text_sensor: 
    #diagnostic info
  - platform: wifi_info                   
    ip_address:
      name: 'IP Address'
      icon: mdi:wifi
    ssid:
      name: 'Connected SSID'
      icon: mdi:wifi-strength-2
      
sensor:   # ############## The following sensors are examples. Adapt the sensors to the meters you have (according to the instructions) and remove the others.############
    # Reports the WiFi signal strength/RSSI in dB
  - platform: wifi_signal 
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"
# first sensor (water)
  - platform: wmbus
    meter_id: 0x00000000
    type: izar
    add_prefix: false
    lqi:
      name: "My lqi"
    rssi:
      name: "My RSSI"
    total_water_m3:
      name: "My cold water"
   #  filters:              #optional
   #    - offset: 123.4567  #the difference between the indications of the radio overlay and the counter (if you have a used overlay)
    last_month_total_water_m3:
      name: "Last month total water"
    current_month_total_water_l:
      name: "Current month total water"
    transmit_period_s:
      name: "Transmit period [s]"
    remaining_battery_life_y:
      name: "Remaining battery life [Y]"
    current_alarms:
      name: "Current alarms"
    previous_alarms:
      name: "Previous alarms"
  # second sensor (water)
  - platform: wmbus
    meter_id: 0x00000000
    type: apator162
    add_prefix: false
    key: "00000000000000000000000000000000"
    lqi:
      name: "My lqi"
    rssi:
      name: "My RSSI"
    total_water_m3:
      name: "My cold water"
  # third sensor (gas)
  - platform: wmbus
    meter_id: 0x00000000
    type: unismart
    add_prefix: false
    key: "00000000000000000000000000000000"
    lqi:
      name: "My lqi"
    rssi:
      name: "My RSSI"
    total_gas_m3:
      name: "My gas"
  # fourth sensor (electricity)
  - platform: wmbus
    meter_id: 0x00000000
    type: amiplus
    add_prefix: false
    mode: T1C1
    rssi:
      name: "My RSSI"
    total_energy_consumption_kwh:
      name: "My consumption in kWh"
      icon: "mdi:power-plug"
    current_power_consumption_kw:
      name: "My current power consumption in kW"
    total_energy_production_kwh:
      name: "My total energy production in kWh"
    current_power_production_kw:
      name: "My current power production in kW"
    voltage_at_phase_1_v:
      name: "My V1"
    voltage_at_phase_2_v:
      name: "My V2"
    voltage_at_phase_3_v:
      name: "My V3"
  # more options on https://github.com/SzczepanLeon/esphome-components

Dyskusję prosiłoby się później wydzielić gdzieś indziej, ale ten przyczłap brzmi jak dobra inspiracja do przeportowania tego softu na któreś TTGO (T-Lora albo T-Beam), SX1278 w wariantach 868MHz powinien również poradzić sobie z odbiorem modulacji używanej w WMBusie. A płytki TTGO są tanie i bardzo łatwo dostępne. Być może spróbuję zreversować to urządzonko, jak znajdę czas.