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

[BK7231N CBU] Czujnik temperatury i wilgotności Tuya WiFi (niebieska płytka drukowana, bez TuyaMCU)

dmcbeing 11 Sty 2024 23:50 3600 15
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • Niedawno kupiłem kilka "Tuya WiFi Temperature and Humidity Sensor".

    Szukałem istniejącego wątku dla tego dokładnie urządzenia, ale znalazłem tylko kilku użytkowników zamieszczających zdjęcia tej płytki.

    Oto zdjęcie PCB: [BK7231N CBU] Czujnik temperatury i wilgotności Tuya WiFi (niebieska płytka drukowana, bez TuyaMCU)
    A oto firmware z nieużywanego urządzenia:
    tuya_r..zip Download (1002.72 kB)
    Tuya JSON:
    Kod: JSON
    Zaloguj się, aby zobaczyć kod

    Nie posiada TuyaMCU i używa I2C do komunikacji z czujnikiem Temp+Humidity CHT8305.

    To urządzenie wymaga głębokiego uśpienia, aby działać na bateriach dłużej niż kilka dni.
    Szczegółowe informacje można znaleźć w powiązanych tematach:
    https://www.elektroda.com/rtvforum/topic4025593.html
    https://www.elektroda.com/rtvforum/topic3945688.html
    https://www.elektroda.com/rtvforum/find.php?q=CHT8305

    Sflashowałem esphome i poza I2C i głębokim uśpieniem, wszystko inne działa.
    
    esphome:
      name: upk2esphome-bk7231n
    
    bk72xx:
      board: cbu
    
    logger:
      baud_rate: 0
    
    # tuya:
    
    web_server:
    
    captive_portal:
    
    mdns:
    
    external_components:
      - source: /soft_i2c
    
    #api:
    #  password: ""
    #  reboot_timeout: 0s
    
    ota:
      password: ""
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
      use_address: 192.168.1.32
      fast_connect: true
      ap:
    
    mqtt:
      broker: mqtt.hlab.host
    
    button:
      - platform: restart
        name: Restart
    
    debug:
      update_interval: 30s
    
    text_sensor:
      - platform: debug
        reset_reason:
          name: Reset Reason
      - platform: libretiny
        version:
          name: LibreTiny Version
    sensor:
      - platform: uptime
        name: Uptime
        update_interval: 15s
        id: uptime_sensor
      - platform: adc
        pin: P23
        name: "Battery Level"
        update_interval: 15s
        on_value:
          then:
            - mqtt.publish_json:
                topic: temp_sensor
                payload: |-
                  root["batt"] = x;
                  root["uptime"] = id(uptime_sensor).state;
                  root["alert"] = id(alert).state;
    
    uart:
      rx_pin: RX1
      tx_pin: TX1
      baud_rate: 115200
    
    light:
      - platform: binary
        name: "Status"
        output: status_output
    
    output:
      - id: status_output
        platform: gpio
        pin: P16
    
    binary_sensor:
      - platform: gpio
        pin: 
          number: P14
          inverted: true
        name: "Button"
      - platform: gpio
        id: alert
        pin: 
          number: P7
          inverted: true
        name: "Alert"
    

    Mam nadzieję, że te informacje wystarczą do "przeportowania"/obsługi openbeken dla tego urządzenia.

    Daj mi znać, jeśli mogę pomóc w jakikolwiek inny sposób.

    Fajne? Ranking DIY
    O autorze
    dmcbeing
    Poziom 3  
    Offline 
    dmcbeing napisał 5 postów o ocenie 3. Jest z nami od 2024 roku.
  • #2 20906573
    p.kaczmarek2
    Moderator Smart Home
    Będę edytował Twój pierwszy post, aby dodać więcej informacji, ale po pierwsze, Twój obecny config jest nieprawidłowy .
    Nie można po prostu:
    Cytat:

    Sflashowałem i poza I2C i deep-sleep , wszystko inne działa.

    To urządzenie musi mieć głębokie uśpienie, w przeciwnym razie rozładuje baterie naprawdę, naprawdę szybko. Mogę pomóc krok po kroku z konfiguracją, flash OBK, aby go uruchomić.
    Pomogłem? Kup mi kawę.
  • #3 20907778
    johnypean
    Poziom 3  

    Działa całkiem dobrze. Zebrałem informacje z wielu wątków na temat tych czujników tutaj. Nawet bateria działa i pokazuje się w HASS.

    Kod: JSON
    Zaloguj się, aby zobaczyć kod


    autoexec.bat:

    // Initial led blink
    SetChannel 1  1
    // hold button to get into safe mode
    // addEventHandler OnHold 20 SafeMode
    PowerSave
    mqtt_broadcastInterval 1
    mqtt_broadcastItemsPerSec 5
    Battery_Setup 2000 3000 1.87 2400 4096
    Battery_Measure
    startDriver CHT8305
    // HADiscovery on every boot doesn't seem necessary
    // scheduleHADiscovery
    SetChannel 1  0
    waitFor WiFiState 4
    // go to deep sleep if mqtt can't connect
    addRepeatingEventID 30 -1 1337 DeepSleep 120
    waitFor MQTTState 1
    cancelRepeatingEvent 1337
    publishChannels
    // Data sent led blink
    SetChannel 1  1
    delay_ms 100
    SetChannel 1  0
    // additional delay to get a chance to manually connect to device, everything else is already done
    delay_s 10
    // Deep sleep led blink
    SetChannel 1  1
    delay_ms 100
    SetChannel 1  0
    // Deep sleep for 30 mins
    DeepSleep 1800


    Flagi:
    2,10,27,35,37

    Flaga 35- Deactivate avty_t rozwiązała problem z HASS pokazując niedostępność na ostatnio pobranych wartościach podczas okresów uśpienia.

    Nie można uzyskać przycisku do wybudzenia urządzenia. Gdyby istniała możliwość jednoczesnego użycia DeepSleep i PinDeepSleep, można by go użyć do wybudzenia i pozostawienia urządzenia w trybie online. Teraz wyciągnięcie i ponowne włożenie baterii daje 10 sekund na edycję pliku autoexec.bat i usunięcie linii DeepSleep. Dodatkowe 10s opóźnienia prawdopodobnie skraca żywotność baterii o połowę, ponieważ init, wifi i mqtt zajmują około 10s wcześniej.
    Myślę, czy istnieje sposób na odczytanie wiadomości mqtt i wyłączenie DeepSleep, jeśli określona wiadomość zostanie odebrana przy następnym wybudzeniu. Może sprawdzenie przycisku podczas uruchamiania i wyłączenie DeepSleep pozwoliłoby pozbyć się 10-sekundowego opóźnienia. Nie znalazłem sposobu, jak to zrobić.
  • #4 20913628
    dmcbeing
    Poziom 3  
    Dzięki za odpowiedzi @p.kaczmarek2 i @johnypean.

    Utknąłem na flashowaniu, ponieważ GUIFlashTool nie działał w Linuksie ... zawieszał się podczas zapisywania pierwszej strony po usunięciu wszystkich bloków flash.
    Instalacja systemu Windows i flashowanie stamtąd w końcu zadziałało, więc mam teraz dwa czujniki flashowane za pomocą OpenBK.

    Wziąłem konfigurację od @johnypean i to w pewnym sensie działa ....

    Jeden z węzłów zgłasza prawidłowe liczby (może wymagać niewielkiego przesunięcia / kalibracji, ale wystarczająco blisko)
    Drugi węzeł zgłasza jednak nieprawidłowe wartości, w szczególności wartości ujemne.

    
    Good data:
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:21.812500C Humidity:56.141357%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:21.781250C Humidity:55.994873%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:21.875000C Humidity:56.187133%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:21.781250C Humidity:55.762939%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:21.781250C Humidity:55.936889%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:21.687500C Humidity:55.381469%
    Bad data:
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.251430C Humidity:53.827342%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.231288C Humidity:31.952011%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.231288C Humidity:31.952011%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.191005C Humidity:88.202865%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.170862C Humidity:66.327537%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.150720C Humidity:69.452583%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.130578C Humidity:31.170747%
    Info:SENSOR:DRV_CHT8304_readEnv: Temperature:-26.090295C Humidity:24.920652%
    


    O dziwo, "dobry" węzeł również początkowo zgłaszał liczby ujemne, ale potem się "naprawił", chociaż nie pamiętam, żebym coś dla niego robił ...
  • #5 20913633
    p.kaczmarek2
    Moderator Smart Home
    Czy konfiguracje urządzeń są takie same? Czy sprzęt urządzenia jest taki sam dla obu urządzeń?
    Pomogłem? Kup mi kawę.
  • #7 20918364
    dmcbeing
    Poziom 3  
    W poprzednich dniach bawiłem się trochę czujnikami i zmieniłem konfigurację, a teraz wszystkie czujniki zwracają prawidłowe odczyty.
    Zacząłem też bawić się z deepsleepem zgodnie z zaleceniami @p.kaczmarek2.
    Jednak nie otrzymuję już napięcia akumulatora od mqtt, mimo że webui pokazuje prawidłowe wartości i nie jestem pewien, dlaczego tak jest.

    Moje flagi to 1092, a to jest mój plik autoexec.bat:

    
    addRepeatingEventID 100 -1 666 DeepSleep 80 // For testing, after testing i will increse DeepSleep to 15mins and decrease the interval to ~40s
    mqtt_broadcastItemsPerSec 20
    mqtt_broadcastInterval 1
    // SetChannel 2 1
    PowerSave 1
    
    startDriver CHT8305
    Battery_Cycle 1
    Battery_Setup 1000 3300 2
    delay_s 1
    
    // Schedule after deepsleep - Never
    CHT_Cycle 100
    Battery_Cycle 100
    
    waitFor MQTTState 1
    publishChannels
    // SetChannel 2 0
    


    Wcześniej otrzymywałem wartości baterii w temacie „temp1/napięcie/get” (temp1 to nazwa węzła), ale teraz w tym temacie nie są publikowane żadne wiadomości…
  • #8 20922847
    johnypean
    Poziom 3  
    Jeśli aktywowałeś Flagę 36 - „[DRV] Dezaktywuj autostart wszystkich sterowników”, musisz dodać
    startBateria sterownika
    do pliku autoexec.bat
    Oby stało się to samo.
  • #9 20925404
    dmcbeing
    Poziom 3  
    @johnypean Nie, nie mam tego włączonego

    Mam włączone:

    Flaga 2 - [MQTT] Własny stan rozgłaszania co N (domyślnie: 60) sekund (opóźnienie konfigurowalne za pomocą poleceń „mqtt_broadcastInterval” i „mqtt_broadcastItemsPerSec”)
    Flaga 6 - [BTN] Natychmiastowa reakcja na dotyk zamiast oczekiwania na zwolnienie (aka SetOption 13)
    Flaga 10 - [MQTT] Własny stan rozgłaszania przy połączeniu MQTT
    Flaga 37 - [WiFi] Szybkie połączenie z Wi-Fi po ponownym uruchomieniu (DO ZROBIENIA: sprawdź, czy to działa i zgłoś na githubie)

    Myślę, że najbardziej istotna jest flaga 10, która, jak sądzę, powinna wysłać stan baterii, gdy mqtt zacznie działać, ale w moim przypadku wydaje się, że tak nie jest.

    Ciekawostka... próbowałem zweryfikować wartość flag (1092) i zrobiłem (1<<2)+(1<<6)+(1<<10)+(1<<37) i wynik jest inny ( 137438954564), ale dzieje się tak po prostu dlatego, że (1<<37) przekracza 32-bitowy limit, nie jestem pewien, czy liczy się to jako błąd :D
  • #10 20935068
    nacxoffw
    Poziom 5  
    Cześć!
    Dziękuję bardzo za ten post i przekazane informacje.

    Mam jedną taką płytkę PCB z chipem CBU.

    Tutaj CV na temat mojej konfiguracji:
    [BK7231N CBU] Czujnik temperatury i wilgotności Tuya WiFi (niebieska płytka drukowana, bez TuyaMCU) [BK7231N CBU] Czujnik temperatury i wilgotności Tuya WiFi (niebieska płytka drukowana, bez TuyaMCU) [BK7231N CBU] Czujnik temperatury i wilgotności Tuya WiFi (niebieska płytka drukowana, bez TuyaMCU)
    Flagi do 1092

    Logi dotyczące MQTT:
    
    Info:MAIN:Time 97, idle 59042/s, free 75040, MQTT 1(1), bWifi 1, secondsWithNoPing 31, socks 2/38 POWERSAVE
    Info:MQTT:Publishing val zzzzzz to homeassistant/humedadAle/ssid retain=0
    Info:MQTT:Publishing val 2 to homeassistant/humedadAle/sockets retain=0
    Info:MQTT:Publishing val -54 to homeassistant/humedadAle/rssi retain=0
    Info:MQTT:Publishing val 97 to homeassistant/humedadAle/uptime retain=0
    Info:MQTT:Publishing val 75040 to homeassistant/humedadAle/freeheap retain=0
    Info:MQTT:Publishing val 192.168.zz.zz to homeassistant/humedadAle/ip retain=0
    Info:MQTT:Channel has changed! Publishing 0 to channel 0 
    Info:MQTT:Publishing val 0 to homeassistant/humedadAle/0/get retain=0
    Info:MQTT:Channel has changed! Publishing 0 to channel 1 
    Info:MQTT:Publishing val 0 to homeassistant/humedadAle/1/get retain=0
    Info:MQTT:Channel has changed! Publishing 218 to channel 2 
    Info:MQTT:Publishing val 218 to homeassistant/humedadAle/2/get retain=0
    Info:MQTT:Channel has changed! Publishing 57 to channel 3 
    Info:MQTT:Publishing val 57 to homeassistant/humedadAle/3/get retain=0
    Info:MQTT:Channel has changed! Publishing 0 to channel 5 
    Info:MQTT:Publishing val 0 to homeassistant/humedadAle/5/get retain=0
    Info:MQTT:Channel has changed! Publishing 0 to channel 6 
    Info:MQTT:Publishing val 0 to homeassistant/humedadAle/6/get retain=0
    Info:MAIN:Time 98, idle 78157/s, free 75040, MQTT 1(1), bWifi 1, secondsWithNoPing 32, socks 2/38 POWERSAVE
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic homeassistant/humedadAle/0/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic homeassistant/humedadAle/1/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic homeassistant/humedadAle/2/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic homeassistant/humedadAle/3/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic homeassistant/humedadAle/5/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic homeassistant/humedadAle/6/get
    


    A problem taki jak ty, bateria się nie publikuje... rozwiązałeś go @dmcbeing?
    Z drugiej strony... jest szansa, aby fizyczny przycisk skrócił czas uśpienia lub zatrzymał go do TESTOWANIA?
  • #11 20935801
    nacxoffw
    Poziom 5  
    Rozwiązany!!

    Ustawienie kanału 4 dla gpio skonfigurowanej baterii wysyła dane MQTT.
    [BK7231N CBU] Czujnik temperatury i wilgotności Tuya WiFi (niebieska płytka drukowana, bez TuyaMCU)

    Dane wyświetlane jako niedostępne w czasie uśpienia zostały rozwiązane po włączeniu opcji flagi 35 i usunięciu elementu MQTT oraz ponownej synchronizacji w HomeAssistant.

    Co więcej, pozostało pytanie o fizyczny przycisk!!! Proszę o pomoc, myślę, że dobrym pomysłem jest sabe baterii.
  • #12 21015579
    crispybeken
    Poziom 2  
    Ja też mam takie urządzenie. Ale nie mogę znaleźć szablonu w aplikacji internetowej. Czy mógłbyś zamieścić tutaj swój szablon?
  • #13 21057398
    mcexmltv
    Poziom 2  
    Jestem nowicjuszem, czy ktoś mógłby być uprzejmy i opublikować instrukcję lub przynajmniej pliki.
    Dzięki z góry.
  • #14 21057906
    p.kaczmarek2
    Moderator Smart Home
    Witaj @mcexmltv , jakiego rodzaju informacji dokładnie potrzebujesz? Czy pytasz o konfigurację urządzenia, czy o flashowanie?
    Jeśli chodzi o flashowanie, zobacz:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    Możesz również sprawdzić nasze ogólne przewodniki po flashowaniu na Youtube:
    https://www.youtube.com/playlist?list=PLzbXEc2ebpH0CZDbczAXT94BuSGrd_GoM
    Pomogłem? Kup mi kawę.
  • #15 21066183
    mcexmltv
    Poziom 2  
    Dzięki @p.kaczmarek2,
    w końcu miałem trochę czasu, aby zrobić trochę badań.
    Oto, czego szukam.
    Mam zainstalowany ESPHome. Jak mogę flashować openBK OTA czy muszę użyć UART?
    Jeśli OTA jest możliwe, jakie są kroki?
    Dzięki.
  • #16 21066328
    p.kaczmarek2
    Moderator Smart Home
    Mają OTA zablokowane przed flashowaniem naszego / Tuya formatu RBL, ale ktoś znalazł obejście (przekonwertowane pliki...):
    https://github.com/BenJamesAndo/OpenBeken_uf2_firmware

    Daj mi znać, jak to działa, chętnie pomogę ci dalej.
    Pomogłem? Kup mi kawę.
REKLAMA