logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zmienić nazwę openBK Switch Entity i oddzielić zewnętrzny przełącznik w HASS za pomocą BK7231N?

brazoayeye 17 Cze 2025 12:21 1020 7
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21581787
    brazoayeye
    Poziom 4  
    Posty: 19
    Sflashowałem bez problemu urządzenie takie jak ten .
    Chcę używać urządzenia z HASS w najbardziej elastyczny sposób, ustawiłem domyślne parametry i działają one bez problemów, ale nie jestem w stanie zrozumieć, czy niektóre funkcje mogą być używane z openBK lub jeśli firmware tego nie obsługuje
      "pins": {
        "6": "TglChanOnTgl;1",
        "7": "Rel;1",
        "23": "Btn_Tgl_All;0",
        "26": "WifiLED_n;0"
      },
      "command": "PowerSave 1",


    Ponieważ nie może działać z HASS Api (czy się mylę?) skonfigurowałem MQTT i otrzymuję następujące informacje w HASS:

    Jak zmienić nazwę openBK Switch Entity i oddzielić zewnętrzny przełącznik w HASS za pomocą BK7231N?

    Oto moje pytania:
    1. Czy istnieje sposób na zmianę nazwy "1" przełącznika z openBK na bardziej przyjazną? Wewnątrz cfg_name widzę tylko nazwę urządzenia (krótką, pełną).
    2. Czy istnieje sposób, aby zobaczyć zewnętrzny przełącznik jako oddzielną tożsamość, zachowując funkcję przełącznika na przekaźniku?

    Użyłem innego identycznego urządzenia z EspHome z następującą konfiguracją:
    esphome: 
      name: "aubess-switch-4"
    bk72xx: 
      board: generic-bk7231n-qfn32-tuya
    
    # Enable Home Assistant API
    api:
    logger:
    ota:
      platform: esphome
    
    wifi:
      power_save_mode: HIGH
      networks:
        - ssid: "Dim-GB"
          password: !secret wifi_password
    
      # Enable fallback hotspot (captive portal) in case wifi connection fails 
      ap: 
    
    binary_sensor: 
      - platform: gpio
        pin: 
          number: P23 
          mode: 
            input: true 
            pullup: true 
          inverted: true
        name: "PB_reset" 
        on_press: 
          - switch.toggle: relay
    
      - platform: gpio 
        pin: 
          number: P6 
          mode: 
            input: true 
            pullup: True 
          inverted: true
        name: "PB_ext"
        on_press: 
          - switch.toggle: relay
        on_release: 
          - switch.toggle: relay
    
      - platform: status 
        name: "Status"
    
    sensor: 
      - platform: wifi_signal 
        update_interval: 30s 
        name: "signal"
      - platform: uptime
        name: "Uptime" 
    
    output: 
      - platform: gpio 
        pin: P26
        id: led
    
    switch: 
      - platform: gpio 
        name: "relay" 
        pin: P7 
        id: relay
        restore_mode: RESTORE_DEFAULT_OFF
        on_turn_on: 
          then: 
            - output.turn_on: led 
        on_turn_off: 
          then: 
            - output.turn_off: led
    
    captive_portal: 


    Ale czytałem w internecie, że nawet przy power_save_mode: HIGH zużycie espHome jest znacznie wyższe niż openBK z uruchomieniem "PowerSave 1".
    Czy ktoś ma dowód lub przetestował to zużycie (i jak można to zmierzyć)?

    Wreszcie, czy istnieje dobrze znane urządzenie z monitorem mocy, które mogę kupić i flashować, aby było używane lokalnie bez chmur?

    Dzięki
  • REKLAMA
  • #2 21581797
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14515
    Pomógł: 651
    Ocena: 12518
    Co to jest HASS API? Mamy HASS Discovery w OBK.

    1. Oczywiście, użyj SetChannelLabel
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/commands.md
    2. Możesz ustawić oddzielny indeks kanału dla swojego przycisku lub cokolwiek chcesz, możesz również ustawić przełączanie typu kanału dla tego w aplikacji internetowej i powinno działać dobrze, wraz z HASS Discovery

    Nie polecam niesprawdzonego oprogramowania, ostatnim razem, gdy sprawdzałem, nie mieli nawet oszczędzania energii, ale wydaje mi się, że pamiętam, że jeden z naszych użytkowników właśnie skopiował do nich część oszczędzania energii OBK, może nie niezawodnie, ponieważ oszczędzanie energii OBK wymaga rzadszego tikowania, aby dynamiczne uśpienie zaczęło działać.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 21581825
    brazoayeye
    Poziom 4  
    Posty: 19
    Wykrywanie HASS działa, ale jest to pakiet MQTT wysyłany do HASS w celu opisania urządzenia.
    API HASS jest opisane tutaj i tam też są wypisane główne zalety. Dla mnie główną zaletą jest to, że nie trzeba nic konfigurować, ale też MQTT działa dobrze


    1. Idealnie, napisałem w app -> Log -> Console "SetChannelLabel 1 switch". Przydałby się link, który podałeś bezpośrednio w interfejsie użytkownika w pobliżu konsoli (próbowałem pomóc bez rezultatów).
    2. Ustawiłem jak pokazano powyżej, ale w hass widzę tylko przełącznik

    Jak zmienić nazwę openBK Switch Entity i oddzielić zewnętrzny przełącznik w HASS za pomocą BK7231N?

    Ustawiając dInput widzę wartość w HASS, ale nawet jeśli jest w porządku, gdy podłączam przycisk bistabilny, nie jest to dobre dla przycisku naciskanego bardzo szybko. Lepiej byłoby mieć zmienną, która przełącza się między włączaniem i wyłączaniem wraz z naciśnięciem, dzięki czemu mam pewność, że wykryję naciśnięcie nawet z opóźnieniem sieci.

    Wielkie dzięki
  • #4 21582177
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14515
    Pomógł: 651
    Ocena: 12518
    Interesujące, pomyślę o tym.

    2. Nie jestem pewien, co masz na myśli, jeśli masz przełącznik w HA, to nadal możesz go używać w automatyzacjach. Czy naprawdę chcesz wymusić, aby był tylko do odczytu? Po prostu zezwolić na zmiany z OBK i zabronić zmian z HA? W takim razie może spróbuj ustawić typ kanału.... Tylko do odczytu. Może. Lub wyjaśnij szczegółowo, a ja postaram się pomóc dalej.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #5 21582535
    brazoayeye
    Poziom 4  
    Posty: 19
    Przepraszam, jeśli nie wyrażam się jasno, ale flashuję wszystkie posiadane urządzenia i chcę mieć pewność, że rozumiem możliwości oprogramowania układowego.

    Oto przykład:
    moduł 1
    przekaźnik -> lampa1
    w <- przycisk1 (monostabilny)
    moduł 2
    przekaźnik -> lampa2
    w <- przycisk2 (monostabilny)

    przyciskiem 1 chcę włączyć lampę1
    za pomocą przycisku 2 chcę wyłączyć lampę 1 (muszę przekazać informacje do HASS, ale jeśli używam dInput, sygnał przesyłany jest jako 1 po naciśnięciu przycisku, ale bardzo szybkie kliknięcie może zostać pominięte z powodu opóźnienia sieci)
    Włączam i wyłączam lampę 2 z aplikacji (przekaźnik z HASS)

    Czy istnieje sposób na utworzenie zmiennej (niepowiązanej z wyjściem), która obraca się za każdym naciśnięciem przycisku?

    Dzięki
  • REKLAMA
  • #6 21582612
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14515
    Pomógł: 651
    Ocena: 12518
    Czy to klasyczna sytuacja typu "żarówka i przełącznik"? Myślę, że mamy wiele możliwości...

    1. można użyć Tasmota Device Groups i będzie działać bez HA, ustawić tę samą grupę na obu urządzeniach, ustawić kanał 1 do użycia
    2. Możesz użyć tylko pinu Btn dla przycisku monostabilnego na urządzeniu 2, pin Btn przełączy połączony kanał, ustaw typ połączonego kanału na ReadOnly i użyj tego kanału (po wykryciu ha) w HA, aby skonfigurować automatyzacje
    3. Możesz użyć tylko Btn pin i zrobić niestandardową publikację i złapać ją w HA:
    
    // Btn_ScriptOnly is set on P26
    // remaining events do MQTT publishes
    // NOTE: publish [topicName] [payload]. Final topic will be like obk0696FB33/[Topic]/get
    addEventHandler OnClick 26 publish myClickIs singleClick
    addEventHandler OnDblClick 26 publish myClickIs doubleClick
    addEventHandler On3Click 26 publish myClickIs tripleClick
    addEventHandler On4Click 26 publish myClickIs quadraClick
    addEventHandler On5Click 26 publish myClickIs pentaClick
    

    4. Możesz wysłać TOGGLE bezpośrednio w zdarzeniu kliknięcia:
    
    addEventHandler OnClick 26 SendGet http://192.168.0.112/cm?cmnd=Power0%20TOGGLE
    

    Wymaga to statycznego adresu IP na urządzeniu docelowym.
    5. Można wysyłać komendy ze zmiany kanału i pozwolić przyciskowi automatycznie przełączać kanał lokalny, wysyłać na kanał docelowy:
    
    addChangeHandler Channel1 == 0 SendGet http://192.168.0.112/cm?cmnd=Power0%20TOGGLE
    addChangeHandler Channel1 == 1 SendGet http://192.168.0.112/cm?cmnd=Power0%20TOGGLE
    

    6. Dla bardziej zaawansowanej logiki, można użyć...
    https://www.elektroda.com/rtvforum/topic4117238.html
    PS:
    Cytat:

    Czy istnieje sposób na utworzenie zmiennej (niepowiązanej z wyjściem), która będzie się obracać po każdym naciśnięciu przycisku?

    Czy nie odbywa się to automatycznie? Do przycisku można przypisać do 60 kanałów. Po naciśnięciu (kliknięciu) roli Btn, kanał jest odwracany. Następnie możesz użyć addChangeHandler na OBK, aby coś zrobić lub po prostu obserwować ten kanał pod kątem przełączania na HA....
    Pomogłem? Kup mi kawę.
  • #7 21582774
    brazoayeye
    Poziom 4  
    Posty: 19
    Dziękujemy za cenną pomoc.

    1. Gdzie mogę znaleźć samouczek lub informacje o grupach tasmota? Widzę tylko tę konfigurację i wydaje mi się ona tajemnicza
    Jak zmienić nazwę openBK Switch Entity i oddzielić zewnętrzny przełącznik w HASS za pomocą BK7231N?

    2. To było pierwsze, ale nie widzę tego kanału w HASS.
    Przy takim ustawieniu:
      "pins": {
        "6": "TglChanOnTgl;2",
        "7": "Rel;1",
        "23": "Btn;1",
        "26": "WifiLED_n;0"
      },

    Po opublikowaniu w hass widzę tylko następujące informacje
    Message 6 received on homeassistant/sensor/openBK_4_ip/config at 11:56:
    {"dev":{"ids":["openBK_4"],"name":"openBK_4","sw":"1.18.111","mf":"Beken Corporation","mdl":"BK7231N","cu":"http://192.168.32.147/index"},"name":"IP","~":"openBK_4","avty_t":"~/connected","uniq_id":"openBK_4_ip","qos":1,"stat_t":"~/ip","entity_category":"diagnostic","icon":"mdi:ip-network"}
    
    Message 5 received on homeassistant/sensor/openBK_4_ssid/config at 11:56:
    {"dev":{"ids":["openBK_4"],"name":"openBK_4","sw":"1.18.111","mf":"Beken Corporation","mdl":"BK7231N","cu":"http://192.168.32.147/index"},"name":"SSID","~":"openBK_4","avty_t":"~/connected","uniq_id":"openBK_4_ssid","qos":1,"stat_t":"~/ssid","entity_category":"diagnostic","icon":"mdi:access-point-network"}
    
    Message 4 received on homeassistant/sensor/openBK_4_build/config at 11:56:
    {"dev":{"ids":["openBK_4"],"name":"openBK_4","sw":"1.18.111","mf":"Beken Corporation","mdl":"BK7231N","cu":"http://192.168.32.147/index"},"name":"Build","~":"openBK_4","avty_t":"~/connected","uniq_id":"openBK_4_build","qos":1,"stat_t":"~/build","entity_category":"diagnostic"}
    
    Message 3 received on homeassistant/sensor/openBK_4_uptime/config at 11:56:
    {"dev":{"ids":["openBK_4"],"name":"openBK_4","sw":"1.18.111","mf":"Beken Corporation","mdl":"BK7231N","cu":"http://192.168.32.147/index"},"name":"Uptime","~":"openBK_4","avty_t":"~/connected","uniq_id":"openBK_4_uptime","qos":1,"dev_cla":"duration","stat_t":"~/uptime","unit_of_meas":"s","entity_category":"diagnostic","stat_cla":"total_increasing"}
    
    Message 2 received on homeassistant/sensor/openBK_4_rssi/config at 11:56:
    {"dev":{"ids":["openBK_4"],"name":"openBK_4","sw":"1.18.111","mf":"Beken Corporation","mdl":"BK7231N","cu":"http://192.168.32.147/index"},"name":"RSSI","~":"openBK_4","avty_t":"~/connected","uniq_id":"openBK_4_rssi","qos":1,"dev_cla":"signal_strength","stat_t":"~/rssi","unit_of_meas":"dBm","entity_category":"diagnostic","stat_cla":"measurement"}
    
    Message 1 received on homeassistant/sensor/openBK_4_temp/config at 11:56:
    {"dev":{"ids":["openBK_4"],"name":"openBK_4","sw":"1.18.111","mf":"Beken Corporation","mdl":"BK7231N","cu":"http://192.168.32.147/index"},"name":"Temperature","~":"openBK_4","avty_t":"~/connected","uniq_id":"openBK_4_temp","qos":1,"dev_cla":"temperature","stat_t":"~/temp","unit_of_meas":"°C","entity_category":"diagnostic","stat_cla":"measurement"}
    
    Message 0 received on homeassistant/switch/openBK_4_relay_1/config at 11:56:
    {"dev":{"ids":["openBK_4"],"name":"openBK_4","sw":"1.18.111","mf":"Beken Corporation","mdl":"BK7231N","cu":"http://192.168.32.147/index"},"name":"relay","~":"openBK_4","avty_t":"~/connected","pl_on":"1","pl_off":"0","uniq_id":"openBK_4_relay_1","qos":1,"stat_t":"~/1/get","cmd_t":"~/1/set"}

    Ale nic odnośnie kanału 2

    3. Bardzo ładnie, działa dobrze. Czy istnieje lista wszystkich zdarzeń? Czy można publikować z QoS 1 zamiast 0?

    Wolę unikać żądań get, ponieważ są one dość powolne (w porównaniu do innych opcji udp).
    Pogłębię Berry

    Dzięki
  • #8 21583265
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14515
    Pomógł: 651
    Ocena: 12518
    1. po prostu ustaw tę samą nazwę grupy i sprawdź, co chcesz zsynchronizować. Mimo to, tutaj jest jakiś tutorial:



    2. Jeśli dany kanał nie jest opublikowany, należy ustawić żądany typ kanału w aplikacji internetowej i ponownie wykonać wykrywanie:
    Jak zmienić nazwę openBK Switch Entity i oddzielić zewnętrzny przełącznik w HASS za pomocą BK7231N?
    3. Myślę, że 1 jest domyślnie, ale może mqtt z lwip nie obsługuje tego dobrze, nie pamiętam w tej chwili
    Jak zmienić nazwę openBK Switch Entity i oddzielić zewnętrzny przełącznik w HASS za pomocą BK7231N?
    Nie mamy jeszcze pełnej listy zdarzeń, ale próbki autoexec.bat powinny obejmować większość z nich https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/autoexecExamples.md
    Pomogłem? Kup mi kawę.

Podsumowanie tematu

✨ Dyskusja dotyczy konfiguracji urządzenia z układem BK7231N z firmware openBK w integracji z Home Assistant (HASS) za pomocą MQTT. Poruszono kwestie zmiany nazwy przełącznika (kanału) na bardziej przyjazną poprzez komendę SetChannelLabel oraz możliwości oddzielenia zewnętrznego przycisku jako osobnej encji w HASS, zachowując jednocześnie funkcję przełącznika na przekaźniku. Wskazano, że można ustawić oddzielny indeks kanału dla przycisku i typ kanału w aplikacji webowej, co umożliwia wykrywanie i automatyzacje w HASS. Omówiono także problem szybkich kliknięć przycisku monostabilnego, które mogą być pomijane z powodu opóźnień sieciowych, oraz propozycję utworzenia zmiennej przełączającej stan przy każdym naciśnięciu. Zaproponowano wykorzystanie grup urządzeń Tasmota do synchronizacji oraz niestandardowe publikacje MQTT zdarzeń kliknięć przycisku (singleClick, doubleClick itd.). Podkreślono konieczność odpowiedniej konfiguracji typu kanału i ponownego wykrywania urządzenia w HASS, aby kanały były widoczne. Udostępniono linki do dokumentacji openBK dotyczącej komend, autoexec.bat oraz przykładów konfiguracji. Wskazano, że HASS Discovery działa poprzez MQTT, a pełne API HASS nie jest bezpośrednio obsługiwane przez openBK.
Wygenerowane przez model językowy.
REKLAMA