Co zamiast Shelly 2.5 do rozdzielni

Mam od 3 lat 8 urządzeń Shelly zamontowane w rozdzielni jak na zdjęciu.

Widać dwa Shelly 2.5, dwa Shelly dimmer i bliżej są jeszcze dwa ESY zajęte przez 4 moduły (Sh2.5, Dimmer i dwa SH2.5). Wszystkie sterują oświetleniem przyciskami monostabilnymi.

Dwa shelly wchodzą do jednej obudowy wydrukowanej na drukarce 3D jak na zdjęciu. Zajmuje to jednego ESA. Pomiędzy urządzeniami są przerwy, niewielkie, bo niewielkie, ale są. Przez ten okres 3 lat zepsuł mi się już drugi, albo trzeci moduł Shelly 2.5. Użytkowane na nim są lampy LED. Jedna lampa ciągnie około 50W (najmocniejsza). Teoretycznie bułka z masłem. Muszę wymienić na jakiegoś innego gotowca i mam 4 typy:

  • Shelly Pro2, pro4 lub pro4 - moduł zaprojektowany na TH35 więc może będzie miał większą trwałość.
  • rocketcontrolers - jakiś moduł na 4 przekaźniki
  • Kikony - jakiś moduł na 4 przekaźniki
  • sonoff 4chpro

Proszę o recenzję, które są warte uwagi pod względem trwałości.

Nie potrzebuję 433Mhz, dodatkowych czujników temp. dodatkowych i2c, DC itd… $ wejścia, 4 wyjścia, zasilanie 230V. W obudowie z montażem na TH35. Nie mam możliwości zamontowanie gdzieś obok, muszę to zmieścić do środka, jak były obecne SH2.5. Nie mam tam ETH i nie mam jak dociągnąć. Jedynie WiFi. Integracja z HomeAssistantem, (natywna w przypadku Shelly, lub poprzez ESPHome - dla innych opartych na ESP32/8265/8266)

Winowajcą jest tu prawdopodobnie prąd rozruchowy przetwornic/zasilaczy tych LED.
Najsensowniej było by użyć dedykowanych przekaźników, zaprojektowanych pod załączanie dużych prądów impulsowych. Ja mam od siedmiu lat działające przekaźniki impulsowe serii iTL 16A od Schneider.

Shelly 2.5 słyną z problemów z kondensatorami i nie grzeszą trwałością. Teoretycznie daje sie je naprawiać.

P.S.
Z Twoich propozycji szedł bym w nową serię od Shelly.
Jeśli miałoby być budżetowo to jest ciekawy sprzęt na Ali z wgranym Tasmota:

1 polubienie

Właściwie to należałoby zacząć od tego co uległo awarii

  • jeśli kondensatory to znaczy, że odprowadzanie ciepła jest niewłaściwe (przy naprawie modułu można użyć lepszego producenta i/lub wyższej kategorii klimatycznej)
  • jeśli przekaźnik to do przemyślenia czy zasilacz do tych LEDów nie jest nadmiarowy (im wyższa obciążalność tym ma większą pojemność na wejściu, przy 200W zasilaczu klękają praktycznie każde przekaźniki miniaturowe), można zastosować dławik - sprzedawane są one jako ograniczniki prądu rozruchowego - poszukaj po niedawnych podobnych wątkach to znajdziesz przykłady.
1 polubienie

Używam modułów przekaźnikowych Denkovi od kilku lat. Polecam.

Nie wiele wniosłeś do dyskusji taką informacją :wink: (mogę podobnie powiedzieć, że używam modułów Kincony). Warto przekazać więcej szczegółowych informacji co dokładnie używasz, z jakimi wejściami/wyjściami, jak zintegrowane jest to z HA itd.

2 polubienia

Zamowilem dzis przed poludniem jeden 4 portowy AC/AC plus expander. Na stronie producenta daja rabat 50% na pierwsza sztuke kupiona u nich. Cenowo wychodzi polowa tego co na ali. Tyle ze dostawa w sierpniu. :wink: Zobaczymy.

Ten ktory obecnie sie psuje. To po resecie (wylaczenie mu zasilania), reaguje na przycisk, zapala swiatlo. Nawet czasami sie zglosi po wifi. A czasami nie. Czasami wylaczy na 0.5s zapalone swiatlo. Raz na kilka dni nie da sie zgasic. Albo nie da sie zapalic. Poprzednio zepsutych nie wyrzucilem jeszcze, z nimi bylo gorzej ale nie mialem czasu aby sie zastanowic czy je naprawiac czy wyrzucic.

Do oświetlenia używam dwóch połączonych ze sobą urządzeń. Pierwsze to SmartDEN IP-16R - moduł przekaźnikowy, a drugie to moduł input z wejściami cyfrowymi smartDEN-IP32IN-BOX. Działają one niezależnie od HA. Sygnał wysyłam na moduł wejściowy a on odpala przekaźnik. Oba moduły są zintegrowane z HA i można sprawdzać stany w module wejść oraz sterować przekaźnikami. Producent dostarcza integrację do HA w postaci skryptów do yaml. Bardzo prosto się to integruje.
Używam też małej płytki z wejściami np do dzwonka oraz modułu 2w1 z wejściami i przekaźnikami i steruję między innymi podlewaniem ogrodu.
Mają naprawdę duży wybór na stronie.

2 polubienia

“Pachnie” niestabilną pracą → podejrzane kondensatory elektrolityczne.
Podobno to częsta usterka.

Najprawdopodobniej chodzi o 100uF/16V kategoria klimatyczna do 105°C Low ESR, tylko nie idź drogą kupowania chinoli tej samej marki, które wymiękają, Jamicon, Panasonic czy Samsung powinny być raczej OK

Sklejony przekaźnik sam by się nie odkleił.

1 polubienie

Bardzo ciekawe produkty, na pierwszy rzut oka całkiem dobrze skrojona też cena.

1 polubienie

Uruchomiłem na biurku pod ESPHome sam moduł oraz później Expander. Expander jest na PCF8574 i podłączany jest po I2C jak na zdjęciu. W zestawie był taki kabelek.

Mam dwa problemy z Expanderem:

  1. Adres ustawiony jest jak na tym zdjęciu (tak był fabrycznie i tak zostawiłem):


    Na stronie producenta nie ma szczegółów, jak z tego odczytać adres. Jest rozpiska do innego expandera ESP32R4: https://rocketcontroller.com/esp32r4-relays-expander-guide/ gdzie oznaczało by to 0x21. Moje ESP nie działało na domyślnym adresie 0x21, wykryło, że jest coś na 0x39. Ktoś, coś? Jakieś wyjaśnienia?

  2. Prawdziwy problem: Expander czasami włącza pierwszy przekaźnik. ESP rzuca błędami jak z tego loga:

INFO ESPHome 2024.7.3
INFO Reading configuration /config/esphome/esphome-web-83abac.yaml...
INFO Starting log output from 192.168.X.X using esphome API
INFO Successfully connected to esphome-web-83abac @ 192.168.X.X in 0.032s
INFO Successful handshake with esphome-web-83abac @ 192.168.X.X in 0.033s
[08:06:40][I][app:100]: ESPHome version 2024.7.3 compiled on Aug  6 2024, 21:04:37
[08:06:40][I][app:102]: Project esphome.web version dev
[08:06:40][C][status_led:019]: Status LED:
[08:06:40][C][status_led:020]:   Pin: GPIO4
[08:06:40][C][wifi:599]: WiFi:
[...]
[08:06:40][C][logger:185]: Logger:
[08:06:40][C][logger:186]:   Level: DEBUG
[08:06:40][C][logger:188]:   Log Baud Rate: 115200
[08:06:40][C][i2c.arduino:071]: I2C Bus:
[08:06:40][C][i2c.arduino:072]:   SDA Pin: GPIO21
[08:06:40][C][i2c.arduino:073]:   SCL Pin: GPIO22
[08:06:40][C][i2c.arduino:074]:   Frequency: 10000 Hz
[08:06:40][C][i2c.arduino:086]:   Recovery: bus successfully recovered
[08:06:40][I][i2c.arduino:096]: Results from i2c bus scan:
[08:06:40][I][i2c.arduino:102]: Found i2c device at address 0x39
[08:06:40][C][pcf8574:021]: PCF8574:
[08:06:40][C][pcf8574:022]:   Address: 0x39
[08:06:40][C][pcf8574:023]:   Is PCF8575: NO
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay R1'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: GPIO25
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay R2'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: GPIO26
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay R3'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: GPIO33
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay R4'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: GPIO32
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay ER1'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: 0 via PCF8574
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay ER2'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: 1 via PCF8574
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay ER3'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: 2 via PCF8574
[08:06:40][C][switch.gpio:068]: GPIO Switch 'Ast Relay ER4'
[08:06:40][C][switch.gpio:091]:   Restore Mode: always OFF
[08:06:40][C][switch.gpio:031]:   Pin: 3 via PCF8574
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Ast SWITCH R1'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: GPIO34
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Ast SWITCH R2'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: GPIO35
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Ast SWITCH R3'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: GPIO36
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Ast SWITCH R4'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: GPIO39
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'PCF8574 Pin #4'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: 4 via PCF8574
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'PCF8574 Pin #5'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: 5 via PCF8574
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'PCF8574 Pin #6'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: 6 via PCF8574
[08:06:40][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'PCF8574 Pin #7'
[08:06:40][C][gpio.binary_sensor:016]:   Pin: 7 via PCF8574
[08:06:40][C][esp32_ble:383]: ESP32 BLE:
[08:06:40][C][esp32_ble:385]:   MAC address: E4:65:B8:83:AB:AE
[08:06:40][C][esp32_ble:386]:   IO Capability: none
[08:06:40][C][esp32_ble_server:200]: ESP32 BLE Server:
[08:06:40][C][esp32_improv.component:261]: ESP32 Improv:
[08:06:40][C][captive_portal:088]: Captive Portal:
[08:06:40][C][web_server:173]: Web Server:
[08:06:40][C][web_server:174]:   Address: esphome-web-83abac.local:80
[08:06:40][C][mdns:116]: mDNS:
[08:06:40][C][mdns:117]:   Hostname: esphome-web-83abac
[08:06:40][C][esphome.ota:073]: Over-The-Air updates:
[08:06:40][C][esphome.ota:074]:   Address: esphome-web-83abac.local:3232
[08:06:40][C][esphome.ota:075]:   Version: 2
[08:06:40][C][safe_mode:018]: Safe Mode:
[08:06:40][C][safe_mode:020]:   Boot considered successful after 60 seconds
[08:06:40][C][safe_mode:021]:   Invoke after 10 boot attempts
[08:06:40][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[08:06:40][C][api:139]: API Server:
[08:06:40][C][api:140]:   Address: esphome-web-83abac.local:6053
[08:06:40][C][api:144]:   Using noise encryption: NO
[08:06:40][C][improv_serial:032]: Improv Serial:
[08:06:50][W][component:157]: Component pcf8574 set Warning flag: unspecified
[08:06:50][D][binary_sensor:036]: 'PCF8574 Pin #4': Sending state ON
[08:06:50][D][switch:020]: 'Ast Relay ER1' Toggling ON.
[08:06:50][W][component:170]: Component pcf8574 cleared Warning flag
[08:06:50][D][switch:055]: 'Ast Relay ER1': Sending state ON
[08:06:50][W][component:237]: Component gpio.binary_sensor took a long time for an operation (1044 ms).
[08:06:50][W][component:238]: Components should block for at most 30 ms.
[08:06:50][D][binary_sensor:036]: 'PCF8574 Pin #4': Sending state OFF
[08:07:38][W][component:157]: Component pcf8574 set Warning flag: unspecified
[08:07:38][W][component:237]: Component gpio.binary_sensor took a long time for an operation (1018 ms).
[08:07:38][W][component:238]: Components should block for at most 30 ms.
[08:07:38][W][component:170]: Component pcf8574 cleared Warning flag
[08:07:39][W][component:157]: Component pcf8574 set Warning flag: unspecified
[08:07:39][W][component:237]: Component gpio.binary_sensor took a long time for an operation (1017 ms).
[08:07:39][W][component:238]: Components should block for at most 30 ms.
[08:07:39][W][component:170]: Component pcf8574 cleared Warning flag

YAML wygląda tak:

substitutions:
  name: esphome-web-83abac
  friendly_name: Ast

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  min_version: 2024.6.0
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: dev


esp32:
  board: esp32doit-devkit-v1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  ap:
    ssid: "xxxx"
    password: "xxxxx"  

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

dashboard_import:
  package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
  import_full_config: true

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
  authorizer: none

# To have a "next url" for improv serial
web_server:

status_led:
  pin:
    number: GPIO4
    inverted: true

i2c:
  sda: GPIO21
  scl: GPIO22
#  scan: true
  id: bus_a
  frequency: 10kHz

pcf8574:
  - id: 'pcf8574_hub'
    address: 0x39
    pcf8575: false

switch:
  - platform: gpio
    name: "$friendly_name Relay R1"
    pin: GPIO25
    id: relayR1
  - platform: gpio
    name: "$friendly_name Relay R2"
    pin: GPIO26
    id: relayR2
  - platform: gpio
    name: "$friendly_name Relay R3"
    pin: GPIO33
    id: relayR3
  - platform: gpio
    name: "$friendly_name Relay R4"
    pin: GPIO32
    id: relayR4
# Individual outputs for expander
  - platform: gpio
    name: "$friendly_name Relay ER1"
    pin:
      pcf8574: pcf8574_hub
      # Use pin number 0
      number: 0
      # One of INPUT or OUTPUT
      mode:
        output: true
      inverted: false
    id: relayER1
  - platform: gpio
    name: "$friendly_name Relay ER2"
    pin:
      pcf8574: pcf8574_hub
      number: 1
      mode:
        output: true
      inverted: false
    id: relayER2
  - platform: gpio
    name: "$friendly_name Relay ER3"
    pin:
      pcf8574: pcf8574_hub
      number: 2
      mode:
        output: true
      inverted: false
    id: relayER3
  - platform: gpio
    name: "$friendly_name Relay ER4"
    pin:
      pcf8574: pcf8574_hub
      number: 3
      mode:
        output: true
      inverted: false
    id: relayER4

binary_sensor:
  - platform: gpio
    pin: 
      number: GPIO34
    name: "$friendly_name SWITCH R1"
    on_press:
      then:
        - switch.toggle: relayR1
  - platform: gpio
    pin: 
      number: GPIO35
    name: "$friendly_name SWITCH R2"
    on_press:
      then:
        - switch.toggle: relayR2
  - platform: gpio
    pin: 
      number: GPIO36
    name: "$friendly_name SWITCH R3"
    on_press:
      then:
        - switch.toggle: relayR3
  - platform: gpio
    pin: 
      number: GPIO39
    name: "$friendly_name SWITCH R4"
    on_press:
      then:
        - switch.toggle: relayR4
  - platform: gpio
    name: "PCF8574 Pin #4"
    pin:
      pcf8574: pcf8574_hub
      number: 4
      mode:
        input: true
      inverted: false
    on_press:
      then:
        - switch.toggle: relayER1
  - platform: gpio
    name: "PCF8574 Pin #5"
    pin:
      pcf8574: pcf8574_hub
      number: 5
      mode:
        input: true
      inverted: false
    on_press:
      then:
        - switch.toggle: relayER2
  - platform: gpio
    name: "PCF8574 Pin #6"
    pin:
      pcf8574: pcf8574_hub
      number: 6
      mode:
        input: true
      inverted: false
    on_press:
      then:
        - switch.toggle: relayER3
  - platform: gpio
    name: "PCF8574 Pin #7"
    pin:
      pcf8574: pcf8574_hub
      number: 7
      mode:
        input: true
      inverted: false
    on_press:
      then:
        - switch.toggle: relayER4


Pierwotnie I2C było na domyślnej prędkości 50kHz, ustawiłem mniej na 10kHz, ale nic się nie zmieniło. Jakieś pomysły? Te warningi powodują co jakiś czas reset urządzenia. Gdy byłem przy biurku, to nawet co kilkanaście minut. Gdy expander odłączyłem, to sam moduł się nie resetował, prawidłowo reagował na wejścia AC. Reklamować moduł expandera? Lutownicę mam, to mogę przylutować jakiegoś PullUP, ale ponoć ESPHOME automatycznie daje do takiego weścia I2C PullUpy. Chyba, że się coś zmieniło i PullUpa trzeba zadeklarować samodzielnie?

Za długi kabelek jak na I2C, wg mnie tu są opóźnienia.

1 polubienie

To zacisnę po południu na RJ11 nowy kabelek.

Jak, to najlepiej wykonać, ze skrętki komputerowej, z kabla do alarmu (nieskręcony). Czy jakoś inaczej np: SDA i SCL owinąć GND i/lub Plusem jako quasi-ekran? Wszystko trafi do rozdzielni elektrycznej.

Jeszcze mnie naszła taka myśl, że przykłady na stronie producenta, zakładały, że przekaźnik odwzorowuje wejścia 1:1. Jeśli na wejściu jest ON, to przekaźnik ON. Ja tymczasem chce to zastosować do oświetlenia, gdzie wszędzie mam włączniki monostabilne/dzwonkowe. Sterownik więc za każdym razem musi znać stan wyjścia w PCF8574, aby go przełączyć na stan przeciwny, a ponoć, to nie takie oczywiste dla tego układu. Pytanie jak ESPHOME wykonało implementacje PCF8574

A jakieś myki z Pullupem dla I2C można zrobić?

A sprawdzałeś w dokumentacji samego IC ekspandera?
Opis przy mysiej klawiaturce jest dość jasny, ale zdjęcie jest nieczytelne i nie widać jaki masz wlutowany układ scalony, zakładam, że to

skąd pomysł, że musi on mieć adres 0x21 skoro na mysiej klawiaturce można ustawić 8 różnych adresów

druga sprawa
w konfiguracji huba zdefiniowałeś jego id/nazwę bus_a (jak dla używania kliku hubów I2C), ale nigdzie się do niej nie odwołujesz później
jeśli definiujesz to jej używaj wszędzie, a jeśli nie używasz i nie chcesz używać (co jest możliwe dla tylko jednego huba) to nie definiuj

można, ale popraw tego huba najpierw

1 polubienie

Mam Kincony z PCF8574 na ESPHome, wszystko na przyciskach dzwonkowych - wejścia DC z optoizolacją, wszystko działa prawidłowo :slight_smile:.

Kabel prosty, nawet telefoniczy 4-żyłowy, max 10 cm (i nie pomyl się bo usmażysz płytkę) i testuj.

Zajrzyj do dokumentacji producenta, wg mnie wszystko jest co potrzebujesz:

1 polubienie

Na stronie producenta nie ma dokumentacji do tego expandera. Jest do podobnego ich produktu.

Wg. ESPHome, taki jest adres domyślny, więc uznałem, że skoro w dokumentacji innego expandera tego samego producenta jest podobny układ, to, konfiguracja zworek może oznaczać to samo. A dodatkowo, tak przyszło z fabryki.

Zajrzałem do PDFa, którego podlinkowałeś (PCF8574 - taki jest układ gdy oglądałem przez lupę scalak) co ciekawe na stronie 13 jest tabelka z adresami i producent podaje inny do odczytu a inny do zapisu. Jeśli w mojej klawiaturze “+” = “H”, to mam adresy 67 i 66 (hex: 43,42), a jeśli kolejność bitów byłaby odwrotna, to 71,70 (47,46) a jeśli “+” oznaczał by “L” to mamy możliwości 73,72(49,48) lub 77,76 (4D,4C). Taka ciekawostka, że nijak się to ma do 0x21 czy 0x39 (które działa).

Ale nie ma co ciągnąć tego wątku, jeśli urządzenie z grubsza działa, to taka ciekawostka.

Usunąłem. Usunąłem definicje częstotliwości.

Co ciekawe w PDF deklarują, że PullUP ma wpływ na prędkość (może ograniczyć, co jest oczywiste) i podają minimalne i maksymalne wartości: (str17) i wynoszą one:

  • dla 50kHz: 23kOM
  • dla 100kHz: 12kOM
  • dla 200kHz: 6kOM
  • dla 400kHz: 4kOM
  • dla 800kHz - nie ma więc chyba nie jest taka prędkość obsługiwana
    Minimalna wartość, zależna jest od napięcia zasilania i dla 3.3 to niecału 1kOM

Wg. strony producenta:https://rocketcontroller.com/product/astra-basic-controller-4-relays-16a-4-ac-input-ac-power-led-br4a4al/
siedzi tam moduł ESP32-D0WDQ6. Wg. specyfikacji expressifa:
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
Na stronie 52 określają, że PullUP/Down są o wartości 45kOM.

Co ciekawe opis na stronie ESPHome pisze, że PullUP wewnętrzny jest 10kOM.

[dodane 2024-08-07 17:24]

Wg. pomiarów zarówno od strony ESP jest rezystancja 4.5kOM na SCL i SDK, jak i oporniki są w expanderze także 4.5kOM. Pomiary robiłem oczywiście gdy wszystko było porozpinane. Dodatkowo wykonałem zdjęcie scalaka. Więc nie jest to PCF8574 a Chiński HT8574:


Karta katalogowa nie podaje jakie wymaga PullUPy, ale zmierzone wydaję się prawidłowe. Pozostaje mi nowy kabelek spróbować.

Kabel wymieniony, co prawda RJ-11 4-pinowy, a gniado jest 6-pinowe, ale nie planuję nic innego poza tym expanderem. Wydaje się, że po paru minutech nie wyrzuca żadnych błędów i może będzie działać. Na poprzedniej wersji wyrzucało po kilku minutach.


Jak do rana się nie zepsuje, to temat możemy uznać za zamkniety. :wink: przynajmniej na etapie uruchamiania. :wink:

Nie mam weny na drążenie, ale adresy ma raczej inne niż oryginał, swoją drogą dlatego pytałem co tam wlutowano, bo życie pokazało, że możliwość wyboru 8 adresów dla niektórych układów I2C jest niewystarczająca, więc czasem są wypuszczane odmiany pracujące w różnych przedziałach adresowania
(i tak jest w przypadku klonów HTCSEMI)

Konkretniej to masz HT8574ARWZ - litera A lub B określa dostępną przestrzeń adresową inne litery sufiksu to np. obudowa).

edit (to tak w odniesieniu do tego co napisałem na samym końcu posta)
tu przykład PCF8574 i PCF8574A produkowanych przez NXP (spin-off Philipsa)

tu jest też fajna tabelka, w której jest wytłumaczone jak 8-bitowy adres z bitem kierunku jest zamieniany na adres 7-bitowy


Kwestię “defaultowego” adresu możesz sprawdzić “organoleptycznie” - przełączając całą mysią klawiaturkę w przeciwną stronę (jeden switch jest i tak donikąd). Adresy urządzeń na magistrali I2C można zmieniać nawet podczas pracy (ale nie w trakcie transferu danych, więc lepiej zrobić to offline).
Zazwyczaj fabryka która faktycznie produkuje sprzęt nie przełącza dipswitchów, więc są one ustawione w pozycji w jakiej zostały wyprodukowane - każdy ruch ręką przez człowieka kosztuje sporo, więc najtańsze jest zmontowanie całej PCB przez maszynę… (bez wykonywania jakichkolwiek czynności przez człowieka jeśli to możliwe).

No nie widzę w tym nic dziwnego - im większa rezystancja tym dłużej się ładują pojemności, więc szyna musi pracować wolniej.
Im mniejsza rezystancja tym większe zużycie energii.
Dodatkowo nie można przegiąć, bo zbyt mocny pullup spowoduje problemy z uzyskaniem stabilnego stanu niskiego.


A i zapomniałem wspomnieć o TI nie pamiętam ze szczegółami, ale…
Adres ma się nijak do tego z datasheeta z tego co pamiętam dlatego, że ESPHome do adresu nie zalicza bitu kierunku, więc adres to bodajże wynik z dzielenia modulo 2 tego co jako adres definiuje fabryka (dzięki temu nie ma znaczenia czy piszesz, czy czytasz).

1 polubienie

Mam jeszcze pytanie o to jak stworzyć YAML, aby zamiast przełączników, mieć encje o cechach LIGHT.

1 polubienie