Medição do consumo de água - Método RF (433, 868MHz)

Desculpem a confusão na publicação anterior, mas já estou a ver que sem ajuda não vou lá.
Muito obrigado pela atenção dispensada.

1 Curtiu

Ok, vamos simplificar as coisas; admito que não sou fã do método utlizado que ‘enfia’ tudo para o esphome.

Não é ideal, mas… vamos tentar de outra forma.

Imagino que seja a primeira configuração que estás a fazer para o device e ainda não tenhas o id e o type do meter, certo?
Se for o caso, cria um novo device no ESPHome e utiliza esta configuração - alterando os valores em “XXXX”, em ap, ota, api que são criados (copia esses valores e insere-os nesta configuração) quando crias o novo device:

esphome:
  name: watermeter
  friendly_name: watermeter

esp32:
  board: az-delivery-devkit-v4
  framework:
    type: arduino

logger:
  id: appslogger
  level: DEBUG
  baud_rate: 0
  logs:
    wmbus: DEBUG
    wMBus-lib: WARN
    sensor: WARN
    sensor.filter: WARN
    text_sensor: WARN
    api.service: ERROR
    json: ERROR
    mqtt: WARN
    scheduler: ERROR
    wifi: WARN
    component: ERROR
    api: WARN

time:
  - platform: sntp
    id: time_sntp
    timezone: Europe/Lisbon
    servers:
      - 0.at.pool.ntp.org
      - 0.pool.ntp.org
      - 1.pool.ntp.org

api:
  encryption:
    key: "XXXX" #altera valor

ota:
  - platform: esphome
    password: "XXXX" #altera valor

wifi:
  networks:
  - ssid: "XXXXX" #coloca o SSID do teu WIFI
    password: "XXXXX" #coloca a password

  ap:
    ssid: "Watermeter Fallback Hotspot"
    password: "XXXX" #altera valor


captive_portal:

    
external_components:
  - source: github://SzczepanLeon/esphome-components@main


wmbus:
  mosi_pin: GPIO23  ## SI:   braun   3: MOSI Attached to Hardware SPI controller MOSI SPI Interface
  miso_pin: GPIO19  ## SO:   grün    5: MISO Attached to Hardware SPI controller MISO SPI Interface
  clk_pin: GPIO18   ## SCLK: violett 4: SCK  Attached to Hardware SPI controller CLK
  cs_pin: GPIO05    ## CSN:  orange  8: CSN  Attached to Hardware SPI controller
  gdo0_pin: GPIO16  ## GD00: gelb    7: RX Clock output. High Impedance !
  gdo2_pin: GPIO17  ## GD02: weiss   6: TX FIFO status signals. High Impedance !


  all_drivers: True
  log_all: True

Se tudo correr bem, irá surgir no log algo assim:

[12:07:35][D][mbus:035]: Received T1 A frame
[12:07:35][I][wmbus:085]: izar [0xXXXXXXX] RSSI: -76dBm T: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (26) T1 A
[12:07:39][D][mbus:035]: Received T1 A frame
[12:07:39][I][wmbus:085]: izar [0xXXXXXXX] RSSI: -83dBm T: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (26) T1 A

Daí podemos descobrir o type; que neste caso é “izar”, e o id do meter que é o valor seguinte [0xXXXXXX]. Mas como vês surgem 2 meters - podem até aparecer mais, e daí eu dizer que não é o método ideal, pois a forma de descobrir qual será o teu será pela força do sinal RSSI: quando maior, mais perto estará do teu device.

Mas de qualquer forma, pode-se depois confirmar com a criação dos sensores e confirmar se o valor total que o contador apresenta bate certo, ou ir alterando o id do meter até ter o mesmo valor do contador.


Estando isso feito apenas tens de acrescentar os sensores/switches à configuração:

sensor:
  - platform: wmbus
    meter_id: 0xXXXXXXX #altera pelo id do teu contador
    type: izar #altera pelo type do teu contador
    sensors:
      - name: "my hot water RSSi"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"

      - name: "Watermeter Display"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:counter"


switch:
  - platform: restart
    name: "Restart Device"
    id: restart_switch
    icon: mdi:restart
2 Curtiram

:ok_hand:
Tens toda a razão, visto assim fica tudo muito mais claro, vou testar e depois já comento.
Mais uma vez muitíssimo obrigado pela atenção.

1 Curtiu

Olá, tenho este log, devo ter algo mal:

INFO ESPHome 2024.9.1
INFO Reading configuration /config/esphome/watermeter.yaml...
WARNING GPIO5 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Starting log output from 192.168.17.48 using esphome API
INFO Successfully connected to watermeter @ 192.168.17.48 in 0.122s
INFO Successful handshake with watermeter @ 192.168.17.48 in 0.063s
[21:58:08][I][app:100]: ESPHome version 2024.9.1 compiled on Sep 27 2024, 21:14:48
[21:58:08][C][logger:185]: Logger:
[21:58:08][C][logger:186]:   Level: DEBUG
[21:58:08][C][logger:188]:   Log Baud Rate: 0
[21:58:08][C][logger:189]:   Hardware UART: UART0
[21:58:08][C][logger:193]:   Level for 'wmbus': DEBUG
[21:58:08][C][logger:193]:   Level for 'wMBus-lib': WARN
[21:58:08][C][logger:193]:   Level for 'sensor': WARN
[21:58:08][C][logger:193]:   Level for 'sensor.filter': WARN
[21:58:08][C][logger:193]:   Level for 'text_sensor': WARN
[21:58:08][C][logger:193]:   Level for 'api.service': ERROR
[21:58:08][C][logger:193]:   Level for 'json': ERROR
[21:58:08][C][logger:193]:   Level for 'mqtt': WARN
[21:58:08][C][logger:193]:   Level for 'scheduler': ERROR
[21:58:08][C][logger:193]:   Level for 'wifi': WARN
[21:58:08][C][logger:193]:   Level for 'component': ERROR
[21:58:08][C][logger:193]:   Level for 'api': WARN
[21:58:08][C][captive_portal:089]: Captive Portal:
[21:58:08][C][sntp:048]: SNTP Time:
[21:58:08][C][sntp:049]:   Server 1: '0.at.pool.ntp.org'
[21:58:08][C][sntp:050]:   Server 2: '0.pool.ntp.org'
[21:58:08][C][sntp:051]:   Server 3: '1.pool.ntp.org'
[21:58:08][C][sntp:052]:   Timezone: 'WET0WEST,M3.5.0/1,M10.5.0'
[21:58:08][C][mdns:116]: mDNS:
[21:58:08][C][mdns:117]:   Hostname: watermeter
[21:58:08][C][esphome.ota:073]: Over-The-Air updates:
[21:58:08][C][esphome.ota:074]:   Address: 192.168.17.48:3232
[21:58:08][C][esphome.ota:075]:   Version: 2
[21:58:08][C][esphome.ota:078]:   Password configured
[21:58:08][C][safe_mode:018]: Safe Mode:
[21:58:08][C][safe_mode:020]:   Boot considered successful after 60 seconds
[21:58:08][C][safe_mode:021]:   Invoke after 10 boot attempts
[21:58:08][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[21:58:08][C][wmbus:299]: wM-Bus v4.0.5-1.17.1-b8f4a945:
[21:58:08][C][wmbus:316]:   MAC: CDF9D108
[21:58:08][C][wmbus:317]:   CC1101 frequency: 868.950 MHz
[21:58:08][C][wmbus:318]:   CC1101 SPI bus:
[21:58:08][E][wmbus:320]:    Check connection to CC1101!
[21:58:08][C][wmbus:322]:     MOSI Pin: GPIO23
[21:58:08][C][wmbus:323]:     MISO Pin: GPIO19
[21:58:08][C][wmbus:324]:     CLK Pin:  GPIO18
[21:58:08][C][wmbus:325]:     CS Pin:   GPIO5
[21:58:08][C][wmbus:326]:     GDO0 Pin: GPIO16
[21:58:08][C][wmbus:327]:     GDO2 Pin: GPIO17
[21:58:08][C][wmbus:333]:   Available drivers: wme5, weh_07, watertech, waterstarm, vario451mid, vario451, vario411, unknown, unismart, ultrimis, ultraheat, tsd2, topaseskr, supercom587, sontex868, sharky774, sharky, sensostar, rfmtx1, rfmamb, qwater, qualcosonic, qsmoke, qheat_55_us, qheat, qcaloric, q400, pollucomf, piigth, omnipower, nemo, munia, multical21, mkradio4a, mkradio4, mkradio3, minomess, microclima, lse_08, lse_07_17, lansenth, lansensm, lansenrp, lansenpu, lansendw, kampress, kamheat, izar, iwm
[21:58:08][E][component:082]:   Component wmbus is marked FAILED
[21:58:40][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[21:58:40][D][esp32.preferences:114]: Saving 1 preferences to flash...
[21:58:40][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed

Olá, já verifiquei todas as ligações e parecem-me bem, pela foto podem-me confirmar que está tudo ok?

A seguir ao GND é o 19.

Edit:

Bem depende.

Tenta trocar no yaml o 19 com o 23

1 Curtiu

já troquei o 19 com o 23 e dá o mesmo erro.

À primeira vista as conexões anteriores parecem estar certas.
Experimenta, ainda assim, fazer um teste de continuidade entre a solda nas traseiras do CC1101 e os pins inferiores do ESP32.

Em último caso pode até ser um problema de um dos componentes; daí eu gostar de ter sempre mais do que um - pelo sim, pelo não.

Edit:
No github vês, em issues, muita gente a queixar-se de boards CC1101 defeituosas…
Eu comprei esta.

1 Curtiu

OK, Marco, quase de certeza que deve ser a placa CC1101 com defeito, vou tentar comprar de outro fornecedor.
obg.

Por baixo facilmente fazem shunt com o ground plane, basta calor a mais.

Pelo preço provavelmente há muitos defeituosos.

1 Curtiu

Olá, já recebi o novo CC1101 de outro fornecedor e este já funciona,

[21:06:53][D][mbus:035]: Received T1 A frame
[21:06:53][I][wmbus:091]: izar [0x21xxxxxxx] RSSI: -79dBm T: 1944304CE3B14F214404B131180013E6C41CD3CCFEC69E2B6004 (26) T1 A
[21:07:02][D][mbus:035]: Received T1 A frame

Mais uma vez obrigado pela ajuda.

2 Curtiram

Isto é bastante pequeno…

1000043353

Talvez com uma barra de pins: 1.27mm. :thinking:

Esse são 2.54mm?

Azuis são.

É para soldar como SMD. Não sei o que é pior :sweat_smile:

Easy HAN RF900 wmbus 868 izar arrow

1 Curtiu

Janz / Arrow (maddalena)

  • 19 44 2434 8207 AABBCCDD 1FC0
  • A2 CD4F0013 98 00E8784E
  • F9CD13D1 0B04 157E

19 - packet size
44 - tipo T1
2434 - fabricante “MAD”
8207 - versao etc
DDCCBBAA - ID
1FC0 - crc
A2 - Cl bloco2
CD4F0013
98 - algum marcador
00E8784E - leitura encriptada
F9CD13D1 - leitura do ultimo mes encriptada
0B04 - data da ultima leitura encriptada
157E - crc


2024-11-12

A encriptação do Janz/Arrow é semelhante ao Izar.

Estranho, nos Izar que experimentei não encontrei nenhum com os dados encriptados.

1 Curtiu

Porque existe duas chaves internas no driver.

1 Curtiu

Pois, foi o que imaginei.

Actualmente o meu fork,
ou suporta Izar ou suporta Arrow.


Na Figueira da Foz é um sistema mesh 868mhz proprietário criado (ou modificado) na Universidade de Coimbra.

Em Coimbra é um sistema espanhol nos 169mhz.
Talvez proprietário ou wmbus modo N.

Apesar do oms/wmbus ser um standard europeu, há muita variação não muito standard.

Oms = Open Metering System.

https://oms-group.org/en/


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade