Czyli do T1 klucza nie potrzebuję, do C1 już tak, ale go nie posiadam.
W wersji 3.x można było wybrać ramki za pomocą “mode:”.
Jak w 4.x to zrobić ?
To wszystko zalezy od konfiguracji miernika.
Nie ma takiej opcji - wszystkim zajmuje się driver.
W 3.0 mode pojawiło się tylko dlatego ze obsługa C1 była na pewnym etapie eksperymentalna (bez CRC).
Do konfiguracji wmbus
na ESP32 próbuję dołożyć jeszcze czujnik BME280 wg opisu tutaj i tutaj.
Odczyty się pojawiają, są OK dla wmbus
, ale niestety NOK dla BME280 bez względu na to, czy stosuję bme280_spi
czy bme280_i2c
. Np. temperatura jest -60 st, a spodziewana ok +21.
Gdy instaluję osobno wmbus
i bme280_spi
, odczyty z tych urządzeń są poprawne. Jeszcze dodam dla porządku, że obydwa są wpięte do różnych GPIO.
Czy w ogóle użycie CC1101 i BME280 razem na jednym MCU ma szansę powodzenia? Powinno zadziałać czy nie? Jeśli powinno, to mogę podrzucić konfig i logi. A jeśli się nie da, to poproszę o wskazówkę, dlaczego.
Wygenerowałem sobie problem i mam nadzieję, że znalazłem rozwiązanie.
Sekcję spi
zrobiłem tak:
spi:
id: spi_bme280
interface: spi3
clk_pin: GPIO14
mosi_pin: GPIO12
miso_pin: GPIO13
Natomiast w sensor:
platformę bme280
mam tak:
- platform: bme280_spi
spi_id: spi_bme280
cs_pin: GPIO15
Wzorowałem się na tym opisie. Wydaje mi się, że kluczowe było wymuszenie (hardware’owego) kontrolera spi3
. Teraz w logu startowym wyświetla się
[C][spi:072]: Using HW SPI: HSPI
Przykładowy kawałek odczytów:
[15:28:10][D][mbus:035]: Received T1 A frame
[15:28:10][I][wmbus:092]: Using selected driver apator162 (detected driver was apator162)
[15:28:10][I][wmbus:104]: apator162 [0x03303990] RSSI: -77dBm T: 3E4401069039300305077A4C003085CEE7F079BD2841A272056213B491193EBBA6565749B8A9469B190041AD9D6163D893E5AFAC0C391147BF0AB67D3A2DE3 (63) T1 A
[15:28:10][D][meters.cpp:1980]: (meter) created ESPHome apator162 03303990 encrypted
[15:28:10][D][meters.cpp:909]: (meter) ESPHome(0) apator162 handling telegram from 03303990.M=APA.V=05.T=07
[15:28:10][D][sensor:094]: 'Wodomierz ogrodkowy RSSI': Sending state -77.00000 dBm with 0 decimals of accuracy
[15:28:11][D][sensor:094]: 'Wodomierz ogrodkowy': Sending state 30.15300 m3 with 3 decimals of accuracy
[15:28:11][W][component:237]: Component wmbus took a long time for an operation (90 ms).
[15:28:11][W][component:238]: Components should block for at most 30 ms.
[15:29:10][D][sensor:094]: 'Temperature': Sending state 20.48410 °C with 1 decimals of accuracy
[15:29:10][D][sensor:094]: 'Pressure': Sending state 1006.42487 hPa with 1 decimals of accuracy
[15:29:10][D][sensor:094]: 'Rel. Humidity': Sending state 48.91016 % with 1 decimals of accuracy
Poproszę wypowiedzcie się, bo się na tym znacie , czy skoro są spodziewane dane, to wystarczy do stwierdzenia, że taka konfiguracja jest poprawna. Chodzi mi szczególnie o to, czy nie ma kolizji z wmbus
.
Jak masz inne piny (inny SPI bus) w obu komponentach i dane są poprawne - to wszystko jest OK. Poprostu wykorzystujesz to co ESP32 daje z siebie.
Generalnie na jednej szynie SPI można mieć więcej niż jeden slave, oczywiście musi być spełnionych kilka warunków (przepustowość szyny nie może być przekroczona, każdy slave musi mieć możliwość pracować z daną częstotliwością itd.) nie wiem wprawdzie jak jest w przypadku tutaj opisywanego komponentu - czy CC1101 może się dzielić szyną z czymś innym, czy wymaga maksa jaki da się wycisnąć z szyny…
hmm SPI dla BME280 wydaje mi się strzelaniem z armaty do muchy, skoro te czujniki mogą pracować też jako I2C
@_Szczepan, dziękuję!
hmm SPI dla BME280 wydaje mi się strzelaniem z armaty do muchy, skoro te czujniki mogą pracować też jako I2C
Pewnie masz rację, ale… Próbowałem jakiś podstawowy config I2C, ale z jakiegoś powodu dostawałem takie same niepoprawne odczyty TPH, jak dla SPI bez wskazania interface
. W końcu wczytałem się w SPI, popróbowałem i działa.
Szybkie pytanie, w Gamie 350 po zdekodowaniu pojawiają się takie pola:
“device_date_time”:“2024-10-18 19:13:24”,
“timestamp”:“2024-10-18T17:13:51Z”
Chciałbym pokazać jedno z nich w HA. Pytanie, jakie ustawić Unit of Measure, bo generalnie to pierwsze wg logowania Verbose jest tekstem.
Na chwilę obecną nie da się.
(post usunięty przez autora)