CC1101 ESPHome SzczepanLeon

Witam, czy ktoś mógłby zweryfikować połączenie i konfigurację. Testowałem na 2 modułach, na 2 nodemcu, z oddzielnym zasilaniem i zawsze dostaję błąd połączenia z CC1101. Nie mam już pomysłów.

[16:04:13][C][wmbus:390]:   CC1101 SPI bus:
[16:04:13][C][wmbus:391]:     MOSI Pin: GPIO5
[16:04:13][C][wmbus:392]:     MISO Pin: GPIO14
[16:04:13][C][wmbus:393]:     CLK Pin:  GPIO4
[16:04:13][C][wmbus:394]:     CS Pin:   GPIO15
[16:04:13][C][wmbus:395]:     GDO0 Pin: GPIO13
[16:04:13][C][wmbus:396]:     GDO2 Pin: GPIO12
[16:04:13][E][wmbus:409]:   Check connection to CC1101!
[16:04:13][E][component:082]:   Component wmbus is marked FAILED```

Moja konfiguracja:

esphome:
  name: nodemcu-water-meter
  friendly_name: nodemcu-water-meter

esp8266:
  board: nodemcuv2

# Enable logging
logger:
  level: VERBOSE

# Enable Home Assistant API
api:
  encryption:
    key: "kyd7sKWbAxRkDin3C766uYhj8aO3FQ3+VMq9nc6dqs0="

ota:
  - platform: esphome
    password: "dc4bc89e70fa4cfb1711ee55b0f1b683"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Nodemcu-Water-Meter"
    password: "txw28WUyNri8"
  
  use_address: 192.168.1.89

captive_portal:

time:
  - platform: sntp
    id: time_sntp

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    components: [ wmbus ]

wmbus:
  mosi_pin: GPIO5
  clk_pin:  GPIO4
  miso_pin: GPIO14
  gdo2_pin: GPIO12
  gdo0_pin: GPIO13
  cs_pin:   GPIO15
  

  led_pin: GPIO0
  led_blink_time: "1s"

  clients:
    - name: "wmbusmeters"
      ip_address: "10.0.0.1"
      port: 7227
# sensor:
#   - platform: wmbus
#     meter_id: 0xXXXXXXXX
#     type: izar
#     add_prefix: false
#     total_water_m3:
#       name: "Licznik wody"
#       icon: "mdi:water"
#       device_class: "water"
#       accuracy_decimals: 3

Podłączenie:


Niedawno to robiłem, potraktuj więc jako projekt referencyjny
https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-szczepanleon-wersja-3-x-watek-ogolny/11577/178

a co do YAMLa to wywal (w sensie zakomentuj) konfigurację wmbusmeters, jak odpalisz na API to potem się możesz pobawić w dodawanie innych rozwiązań, najpierw odbiornik musi cokolwiek słyszeć, a na dobry początek to zawsze i bezwzględnie proponuję najmniej udziwnioną konfigurację, potem się dokłada wodotryski.

i jeszcze jedno - to nie ma prawa działać (pomijając kwestię problemu z cc1101), bo sieć jest źle skonfigurowana - jeśli się decydujesz na statyczny adres IP, to wtedy nie wystarcza sam IP - musi być cała kompletna konfiguracja sieci (bramka, maska, DNS…) - zauważ że głębokość wcięć definiuje co do czego należy, więc ten IP co podałeś z palca nie dotyczy trybu AP, tylko konfiguracji AP-klienta (konfiguracji WiFi)

to

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Nodemcu-Water-Meter"
    password: "txw28WUyNri8"
  use_address: 192.168.1.89

jest równoważne temu (zmieniłem kolejność żeby lepiej było widać)

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.1.89
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Nodemcu-Water-Meter"
    password: "txw28WUyNri8"

czyli konfiguracja klienta jest niepełna, bo sam IP to za mało

gdybyś chciał konfigurować IP AP, to wtedy wcięcie musi sięgać głębiej (tylko po co to komu? 192.168.4.1 jest raczej OK jak na jednorazową konieczność konfiguracji)

[…]
  ap:
    ssid: "Nodemcu-Water-Meter"
    password: "txw28WUyNri8"
    use_address: 192.168.1.89
1 polubienie

Dzięki @szopen, mamy połączenie z CC1101 :slight_smile: jak przepiałem i zmieniłem konfigurację pinów na tą z linka to od razu zatrybił moduł. W skrócie nie wiedziałem że piny MISO, MOSI, SCK, CS muszą się pokrywać z ESP.

Jeśli chodzi o use_address to statyczny adres przypisałem na routerze a to jest tylko na potrzeby znalezienia urządzenia podczas połączenia do ota/logów bo inaczej szukało mi po adresie domenowym nodemcu-water-meter.local zamiast IPku przydzielonym przez router.

Nie wiem czy niepełna konfiguracja nie spowoduje wadliwego działania klienta DNS w tym ESP, a tym samym wadliwego działania klienta sntp

Natomiast odniosę się do weryfikacji pinów

a na zdjęciu widać, że podłączyłeś zupełnie inaczej, to jak to by miało działać (poza tym że ja podejrzewam, że D0 nie jest do wykorzystania, ale nie miałem nigdy czasu na zabawę w sprawdzenie)

Czemu nie korzystasz z aliasów czyli np. D5 zamiast GPIO14 wtedy jest życie o wiele łatwiejsze (ale i tak trzeba pamiętać o potencjalnie trefnych pinach), aliasy działają tylko jeśli definicja płytki pasuje do sprzętu, ale tu powinna pasować.

Nie wiedziałem że piny MISO, MOSI, SCK, CS muszą się pokrywać z ESP. W innych projektach korzystałem z gotowych modułów lub na tasmocie i to pierwszy “projekt” na ESPHome.
Odnośnie aliasów to doczytam bo nie wiedziałem że są :slight_smile:

Dzięki wielkie za pomoc :slight_smile:

Jedne muszą inne nie muszą, akurat w ESP8266 nie wszystkie piny ma “wędrujące”, a magistrala SPI nie jest w nim “wędrująca” (ale ma dostępne bodajże 2 lub 3 kontrolery SPI tylko jeden już zajęty na komunikację z flashem).

W ogóle wiele MCU ma pewne ograniczenia do tego gdzie są dostępne jakie magistrale, nawet RP2040 (np. rpi pico w) który ma wszystkie magistrale wędrujące wymaga wykorzystywania określonych pinów z podzbiorów możliwych do użycia.

To wynika z budowy wewnętrznej krosownicy i multiplekserów wejść/wyjść w danej konstrukcji MCU.

2 posty zostały scalone z istniejącym tematem: Wodomierz Pronaqua