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

Jak uwolnić miernik energii PJ-MGW1103 od chmury i połączyć z Home Assistant?

p.kaczmarek2 10 Maj 2024 21:49 2457 18
  • Stół roboczy z projektami elektronicznymi, w tym żarówka i moduły elektroniczne
    Zapraszam na analizę miernika prądu/napięcia/mocy współpracującego normalnie z ekosystemem Tuya. Tutaj przetestuję go z aplikacją producenta, dokonam analizy jego protokołu komunikacji MCU z modułem WiFi, a potem spróbuję zmienić mu wsad na OpenBeken, którego odpowiednio w tym celu skonfiguruję.

    Ale najpierw...

    Powiązane tematy
    To urządzenie opiera się o TuyaMCU, tj. w środku jest osobno moduł WiFi (tutaj na BK7231N) oraz osobno MCU, który komunikuje się z nim przez UART. Nie będę tu omawiać podstaw TuyaMCU, gdyż przytaczałem je już w tych tematach:
    Protokół TuyaMCU - komunikacja pomiędzy mikrokontrolerem a modułem WiFi
    Analizator TuyaMCU - dekoder pakietów UART dla urządzeń Tuya - dpID detektor
    Przewodnik flashowania, instalacji i konfiguracji TuyaMCU - skonfiguruj dpID dla Home Assistant
    Polecam zapoznać się z nimi przed lekturą treści poniżej.

    Zakup, zawartość zestawu, pierwsze wrażenie
    Całość kosztuje około 120 zł, zależy gdzie kupujemy:
    Licznik energii z przekładnikiem 80A WiFi TUYA z aplikacją na smartfonie.
    Wymiary:
    Miernik prądu TuyaMCU z czujnikiem prądu
    Montaż:
    Schemat instalacji urządzenia do pomiaru energii elektrycznej z oznaczeniem zacisków.
    Specyfikacja:
    Jednofazowy licznik energii elektrycznej z funkcjami pomiaru napięcia, prądu i mocy.
    W praktyce otrzymujemy takie pudełeczko:
    Kartonowe pudełko miernika energii elektrycznej PJ-MGW1103 z etykietą Pudełko miernika PJ-MGW1103 z etykietą
    Zawartość:
    Zawartość pudełka z miernikiem prądu/napięcia/mocy Miernik prądu/napięcia/mocy w otwartym pudełku z przewodami i etykietami.
    Tym razem nie wgrywam od razu firmware, lecz i tak zacznę od zaglądnięcia do środka...

    Wnętrze PJ-MGW1103
    Zdejmujemy pokrywę:
    Wnętrze układu z widocznymi komponentami elektronicznymi, w tym BL0942.
    Wnętrze urządzenia pomiarowego z układem PS i oznaczeniami elementów elektronicznych.
    W środku widać BL0942 służący do pomiaru energii, ale on jest podłączony nie do modułu WiFi, lecz do pobliskiego MCU - tutaj STC 381-TSSOP20 8G1K17.
    Zbliżenie na płytkę PCB z elementami elektronicznymi i oznaczeniami.
    Oznaczenie PCB:
    20221109
    PJ-CS01
    [] 1203
    [] 1103
    Rzut oku z wierzchu:
    Widok zbliżony na wnętrze urządzenia do pomiaru prądu z modulem WiFi CB2S. Moduł elektroniczny z elementami na płytce PCB, w tym mały moduł WiFi.
    Widać wolne miejsce po przekaźniku, ten produkt nie ma przekaźnika, on tylko wykonuje pomiar.
    Moduł WiFi tutaj to CB2S, opiera się on na BK7231N:
    Płytka drukowana z modułem elektronicznym i złączami śrubowymi. Moduł WiFi CB2S oparty na BK7231N na płytce drukowanej z czerwoną diodą LED i różnymi komponentami. Elementy elektroniczne na płytce drukowanej z modułem niebieskim i zielonym złączem śrubowym
    Widać tu też wlutowany poprzecznie w główne PCB moduł KP3210SG.
    Strona katalogowa KP3210SG - przełącznik PWM
    Czyli mamy tutaj przetwornicę nieizolowaną:
    Przykładowy schemat aplikacji z układem KP3210SG

    Test z aplikacją Tuya
    Przechwytywanie komunikacji TuyaMCU jest omówione we wspomnianym na początku osobnym temacie. Cały proces wymaga zachowania dużego stopnia ostrożności, gdyż nie można po prostu podłączyć UART z tego urządzenia do naszego komputera, jest wtedy ryzyko zwarcia. Można natomiast zastosować izolacje galwaniczną dla UART, są do tego dostępne do kupienia różne moduły w sieci.
    Proces wymaga dwóch konwerterów USB na UART, gdyż podsłuchujemy i TX->RX i RX->TX (dwie linie), całość polega na wykonywaniu operacji w aplikacji Tuya i podglądaniu co się dzieje.
    A więc zaczynamy od parowania:
    Ekran aplikacji do dodawania urządzeń z listą kategorii i typów mierników. Ekran aplikacji z listą dostępnych urządzeń do sparowania, z wybranym jednym urządzeniem.
    Dzięki Bluetooth nie trzeba nawet ręcznie parować tak jak w czasach ESP, telefon sam wykrywa nowe urządzenie.
    Podajemy dane naszego WiFi, itd:
    Ekran ustawień Wi-Fi aplikacji, pokazujący pole do wprowadzenia informacji o sieci.
    Parowanie:
    Ekran aplikacji z dodawanym urządzeniem WiFi Digital Meter. Ekran dodawania urządzenia z napisem
    Po całości wita nas dość nietypowy i skromny panel. Aż dziwnie tak bez przekaźnika:
    Ekran aplikacji
    Na panelu pokazuje się pomiar mocy, prądu i napięcia:
    Ekran aplikacji
    Ale komunikacji nie muszę tutaj umieszczać, gdyż została ona już przechwycona w powiązanym temacie:
    https://www.elektroda.com/rtvforum/topic3946128.html


    Wgrywanie OpenBeken
    Port UART1 służy i do programowania i do komunikacji z MCU, więc trzeba wylutować moduł WiFi:
    Zbliżenie na płytkę drukowaną z modułem WiFi CB2S na układzie BK7231N. Płyta drukowana z mikrokontrolerem STC i elementami elektronicznymi Odsłonięta elektronika i moduł WiFi CB2S na stole roboczym
    Lutujemy zasilanie, RX i TX, zgodnie z instrukcjami naszego flashera:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    Elementy elektroniczne na płytce prototypowej połączone kablami z USB. Zbliżenie na moduł elektroniczny z oznaczeniami i pinami.
    Flasher nie odkryje konfiguracji tego urządzenia, gdyż opiera się ono o TuyaMCU. Musimy napisać autoexec.bat, gdzie zmapujemy dpID z TuyaMCU na kanały OBK. O poszukiwaniu dpID jest mowa w powiązanych tematach, chociaż ja tutaj użyłem tuyaMcu_sendQueryState, a dokładniej to ręcznie wysłałem ten sam pakiet (uartSendHex 55AA0008000007):
    Info:MAIN:Time 152, idle 193677/s, free 73136, MQTT 0(9), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:CMD:[WebApp Cmd 'uartSendHex 55AA0008000007' Result] OK
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 12 02 00 04 00 00 00 4D 76 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 18, dataType 2-DP_TYPE_VALUE and 4 data bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 77
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 13 02 00 04 00 00 00 B1 DB 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 19, dataType 2-DP_TYPE_VALUE and 4 data bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 177
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 14 02 00 04 00 00 09 63 97 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 20, dataType 2-DP_TYPE_VALUE and 4 data bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 2403
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    

    Z powyższego logu można wyczytać jakie dpID (identyfikatory danych) wraz z typami i wartościami zostały wysłane do nas przez MCU. Stąd wiem, że dpID 18 ma wartość 77 (pewnie to prąd), dpID 19 177 (moc?) a dpID 20 to 2403 (tu z góry wiadomo, że napięcie). Tylko trzeba dobrać mnożniki i zmapować to na kanały w OBK...
    Zatem napisałem skrypt:
    
    startDriver TuyaMCU
    tuyaMCU_setBaudRate 115200
    tuyaMcu_defWiFiState 4
    
    // request full state from time to time (every 10 seconds, -1 repeats - forever)
    addRepeatingEvent 10 -1 uartSendHex 55AA0008000007
    
    // dpID 20 is voltage * 0.1
    setChannelType 1 Voltage_div10
    linkTuyaMCUOutputToChannel 20 val 1
    
    // dpID 18 is current * 0.001
    setChannelType 2 Current_Div1000
    linkTuyaMCUOutputToChannel 18 val 2
    
    // dpID 19 is power * 0.1
    setChannelType 3 Power_Div10
    linkTuyaMCUOutputToChannel 19 val 3
    

    Powyższy skrypt tworzy trzy kanały (moc, prąd i napięcie), mapuje dpID z TuyaMCU na te kanały, dodatkowo wymusza stan WiFi 0x04 (symulujemy podłączenie do chmury) oraz dodatkowo okresowo wysyła zapytanie o odświeżenie stanu aby zapewnić nam najświeższe pomiary.
    Rezultat:
    Interfejs OpenBK7231N z wyświetlanymi odczytami napięcia, prądu i mocy
    UWAGA - bez default WiFi state 0x04 najpierw dioda znajdująca się na urządzeniu była na czerwono, a potem migała, ale urządzenie nie chciało dawać pomiarów. Po ustawieniu default WiFi state na 0x04 ta dioda zgasła i pojawiły się pomiary.
    Oto przykładowy log z Web App OpenBeken, pokazuje on też odbierane dpID:
    
    
    bT obk1FFC6D06/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT bekens/ subT bekens/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/obk1FFC6D06/ subT cmnd/obk1FFC6D06/+
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/bekens/ subT cmnd/bekens/+
    Info:MQTT:MQTT_RegisterCallback called for bT obk1FFC6D06/ subT obk1FFC6D06/+/get
    Info:CMD:CMD_StartScript: started autoexec.bat at the beginning
    Info:MAIN:Main_Init_After_Delay done
    Info:MAIN:Started TuyaMCU.
    Info:MAIN:Time 1, idle 276756/s, free 78120, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    Info:MAIN:Time 2, idle 466680/s, free 78120, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 01 00 2A 7B 22 70 22 3A 22 64 6A 66 65 70 39 73 36 73 33 62 32 71 6B 38 39 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 2C 22 6D 22 3A 32 7D 63 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 1 (QueryProductInformation) with 49 bytes
    Info:TuyaMCU:TuyaMCU_ParseQueryProductInformation: received {"p":"djfep9s6s3b2qk89","v":"1.0.0","m":2}
    Info:MAIN:Time 3, idle 186861/s, free 78120, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 02 00 00 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 2 (MCUconf) with 7 bytes
    Info:TuyaMCU:TuyaMCU_ProcessIncoming: TUYA_CMD_MCU_CONF, TODO!
    Info:MAIN:Time 4, idle 181710/s, free 78120, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 12 02 00 04 00 00 00 4B 74 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 18, dataType 2-DP_TYPE_VALUE and 4 data bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 75
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 13 02 00 04 00 00 00 AF D9 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 19, dataType 2-DP_TYPE_VALUE and 4 data bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 175
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 14 02 00 04 00 00 09 55 89 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 20, dataType 2-DP_TYPE_VALUE and 4 data bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 2389
    Info:MAIN:Time 5, idle 187156/s, free 78120, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:ssid:ELEKTRODA_WIFI key:REDACTED
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    Info:MAIN:Time 6, idle 161327/s, free 72656, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Boot complete time reached (5 seconds)
    Info:CFG:####### Set Boot Complete #######
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 03 00 00 05 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 3 (WiFiState) with 7 bytes
    Info:MAIN:Time 7, idle 174407/s, free 72656, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 8, idle 87090/s, free 72760, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 9, idle 0/s, free 72760, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    Info:MAIN:Time 10, idle 0/s, free 72760, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/38 
    Info:GEN:dhcp=0 ip=0.0.0.0 gate=0.0.0.0 mask=0.0.0.0 mac=fc:67:1f:fc:6d:06 
    Info:GEN:sta: 0, softap: 0, b/g/n
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTING - 1
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTED - 4
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTED - 4
    Info:MAIN:Time 11, idle 88454/s, free 73088, MQTT 0(0), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 12, idle 183454/s, free 72912, MQTT 0(0), bWifi 1, secondsWithNoPing -1, socks 3/38 
    Info:MQTT:mqtt_host empty, not starting mqtt
    Info:MAIN:Time 13, idle 192457/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 13 02 00 04 00 00 00 B4 DE 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 19, dataType 2-DP_TYPE_VALUE and 4 data bytes
    Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 180
    Info:MAIN:Time 14, idle 190254/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 15, idle 181946/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 16, idle 189477/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 17, idle 189969/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    Info:MAIN:Time 18, idle 185606/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 19, idle 187869/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 20, idle 188410/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:GEN:dhcp=0 ip=192.168.0.161 gate=192.168.0.1 mask=255.255.255.0 mac=fc:67:1f:fc:6d:06 
    Info:GEN:sta: 1, softap: 0, b/g/n
    Info:GEN:sta:rssi=-46,ssid=ELEKTRODA_WIFI,bssid=28:87:ba:a0:f5:6d ,channel=3,cipher_type:CCMP
    Info:MAIN:Time 21, idle 194897/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    Info:MAIN:Time 22, idle 197878/s, free 72912, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 3/38 
    Info:MAIN:Time 23, idle 188471/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 24, idle 186461/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:MAIN:Time 25, idle 189066/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 0 (Hearbeat) with 8 bytes
    Info:MAIN:Time 26, idle 190211/s, free 73128, MQTT 0(1), bWifi 1, secondsWithNoPing -1, socks 2/38 
    

    Dodatkowo warto we flagach uruchomić TuyaMCU queue oraz dopisać do autoexec.bat powersave 1.

    Podsumowanie
    Po zmianie firmware i wgraniu mojego autoexec.bat można już parować te urządzenie z Home Assistant poprzez automatyczne Discovery w OBK. Całość działa już lokalnie, bez chmury.
    Urządzenie działa zadowalająco, ale mogłoby chociaż nieco więcej danych pokazywać. Nie znalazłem więcej ciekawych dpID, urządzenie nic więcej nie raportuje.
    Można by rozważyć próbę przepięcia BL0942 bezpośrednio do modułu WiFi, MCU w takiej sytuacji trzeba by usunąć. Pozwoliłoby to również dokonać samodzielnej kalibracji już w samym OBK, ale trudno mi nawet określić czy to plus czy minus - fabryczna kalibracja nie jest aż taka zła, chociaż nie wykonywałem w tym konkretnym przypadku żadnych pomiarów porównawczych.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
  • #2 21078268
    gregor_pn
    Poziom 16  
    Hej, bardzo fajnie rozwiązany temat.
    mam pytanie odnośnie właśnie zmiany Tuya na OBK. Mam TO-Q-SY2-JWT i zmiana na OpenBeken wychodzi bardzo ładnie, działa poprawnie, pokazuje napięcia, natężenie i wszystko jak trzeba jednak zauważyłem, że jedna dioda i jeden tranzystor w obwodzie po zmianie na OBK strasznie się zaczęły grzać - do pomad 95oC. Przy wsadzie Tuya tak się nie dzieje. Masz pomoże pomysł co może być z tym źle? Gdzie szukać? ofc google nie pomogło, za "nowy" sprzęt.
  • #3 21078277
    p.kaczmarek2
    Moderator Smart Home
    W jakim obwodzie te elementy?
    Są dwie możliwości. Albo po prostu brakuje Ci powerSave 1 w autoexec.bat, czyli dynamicznego snu, oszczędzania energii, albo coś na GPIO jest nie tak.
    Jeśli powersave nie pomożę, to sprawdź multimetrem na jakim GPIO modułu WiFi jest ta dioda i tranzystor. Może trzeba go ustawić na AlwaysLow lub AlwaysHigh...
    Pomogłem? Kup mi kawę.
  • #4 21078487
    gregor_pn
    Poziom 16  
    Miałeś rację. PowerSave 1 nie rozwiązuje problemu ale szukanie po GPIO to była dobra rada. W tym właśnie wyłączniku jest przekaźnik bistabilny sterowany GPIO 24 i 26 na przemiennie + o - zaleznie od tego jaki stan chcemy uzyskać. Ja miałem konfigurację z czegoś co trzymało stan podtrzymując na tym wejściu zasilanie i stąd ten problem.

    I teraz pytanie - jeśli znasz rozwiązanie to byłoby super. Jak to rozwiązać? Jak zmusić go aby po wciśnięciu przycisku (programowo z menu też) na chwile tylko podał impuls na odpowiednie GPIO?

    Informacji jest wiele o tym projekcie ale dla przykładu kiedy chciałem znaleźć opis jaka jest różnica między Rel a Rel_n to... no musiałem się domyślać o co autorowi chodziło. ;)
  • #5 21078532
    p.kaczmarek2
    Moderator Smart Home
    gregor_pn napisał:
    W tym właśnie wyłączniku jest przekaźnik bistabilny sterowany GPIO 24 i 26 na przemiennie + o - zaleznie od tego jaki stan chcemy uzyskać. Ja miałem konfigurację z czegoś co trzymało stan podtrzymując na tym wejściu zasilanie i stąd ten problem.

    Jest na to sterownik:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/drivers.md
    Tabela przedstawiająca sterowniki, na której uwzględniono sterownik przekaźnika
    Należy ustawić odpowiednie role GPIO:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/ioRoles.md

    Zrzut ekranu z dokumentacji przedstawiający wiersze dla GPIO z opisami ról


    gregor_pn napisał:
    Jak zmusić go aby po wciśnięciu przycisku (programowo z menu też) na chwile tylko podał impuls na odpowiednie GPIO?

    Jak chcesz skryptować ręcznie to masz przykłady tutaj;
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/autoexecExamples.md

    Zrzut ekranu z przykładem skryptu do automatycznego wyłączenia przekaźnika po 10 sekundach.

    gregor_pn napisał:

    jaka jest różnica między Rel a Rel_n to... no musiałem się domyślać o co autorowi chodziło. ;)

    Wytłumaczenie jest tutaj:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/ioRoles.md

    Zrzut ekranu dokumentacji ról GPIO w projekcie OpenBK7231T_App.

    Swoją drogą, skoro masz urządzenie z przekaźnikiem bistabilnym, to czy możesz mi pokazać JSON Tuya z tego urządzenia? Instrukcja: https://www.youtube.com/watch?v=WunlqIMAdgw&ab_channel=Elektrodacom
    Pomogłem? Kup mi kawę.
  • #6 21078587
    gregor_pn
    Poziom 16  
    Podziwiam Twój zasób wiedzy.
    Oba sposoby właśnie przetestowałem i podziałały. Genialne.
    Co do JSON Tuya z urządzenia to niestety poszedł "w kanał" bo jak widać nie jestem najmądrzejszy.... mam kopię flashu.
    Ale będę teraz zamawiał jeszcze kilka sztuk to przy podmianie oprogramowania podrzucę Tobie wszystko co będę miał.
    Nawiasem mówiąc urządzenie wykonane bardzo ładnie i przemyślanie.
  • #7 21078653
    p.kaczmarek2
    Moderator Smart Home
    Ale chwila, przecież JSON Tuya nie traci się po wgraniu firmware. On jest cały czas, nawet po wgraniu OpenBeken. Chyba, że wykonałeś na układzie erase all?
    Pomogłem? Kup mi kawę.
  • #8 21078689
    gregor_pn
    Poziom 16  
    Jeśli mi powiesz jak go ściągnąć to chętnie to wykonam.
    Nie robiłem EraseAll
  • #9 21078739
    p.kaczmarek2
    Moderator Smart Home
    p.kaczmarek2 napisał:
    czy możesz mi pokazać JSON Tuya z tego urządzenia? Instrukcja: https://www.youtube.com/watch?v=WunlqIMAdgw&ab_channel=Elektrodacom

    Zrzut ekranu interfejsu użytkownika OpenBeken do sterowania oświetleniem LED RGB. Zrzut ekranu z interfejsu OpenBeken do pobierania konfiguracji Tuya
    Pomogłem? Kup mi kawę.
  • #11 21080257
    p.kaczmarek2
    Moderator Smart Home
    Z tego co widzę jednak automatyczne wykrywanie ról GPIO z mojego flashera sobie poradziło:
    
    Device configuration, as extracted from Tuya: 
    - Button (channel 1) on P17
    - LED (channel 1) on P9
    - Bridge Relay On (channel 1) on P24
    - Bridge Relay Off (channel 1) on P26
    - WiFi LED on P15
    Device seems to be using CBU module, which is using BK7231N.
    And the Tuya section starts at UNCOMMON POSITION 0
    

    czyli jakby wykonać to na początku to byśmy wiedzieli, że tu jest bridge relay
    Pomogłem? Kup mi kawę.
  • #12 21080264
    gregor_pn
    Poziom 16  
    To jest Twój flasher? Jestem pełen podziwu.
    Ale przyznam, że nie jestem pewien czy tak jest. Plik ten wydaje mi się, że wyglądał inaczej w momencie samego procesu flashowania. Pewien na 100% nie jestem ale potwierdzę w momencie gdy będę miał świeże urządzenia do zrobienia - już płyną do mnie.
  • #13 21080269
    p.kaczmarek2
    Moderator Smart Home
    Rób temat dla każdego urządzenia jakie masz, pomogę z ich uruchomieniem. Tworzymy listę urządzeń tutaj:
    https://openbekeniot.github.io/webapp/devicesList.html
    Mamy już 570 wpisów, chcemy dobić do 600. Chyba muszę dopisać tam TO-Q-SY2-JWT....

    Flasher jest mojego autorstwa, tu masz historię jego tworzenia:
    https://github.com/openshwprojects/BK7231GUIFlashTool/commits/main/

    Flasher wykrywa role GPIO na podstawie konfiguracji Tuya która siedzi w urządzeniu już w momencie wgrywania OpenBeken, więc ta konfiguracja na 100% od początku u Ciebie była, dlatego warto zawsze to sprawdzać, bo może oszczędzić nieco czasu. OpenBeken nie zawiera kodu który by tą konfigurację w ogóle ruszał, więc to co tam we flash jest to bylo tam od początku.

    Jedyne na co warto uważać to to, że starsze wersje flashera mogą nie wykrywać poprawnie wszystkich ról, na bieżąco dodaję tam rzeczy
    Pomogłem? Kup mi kawę.
  • #14 21203940
    adrianpanella
    Poziom 4  
    >>21078268 Cześć, gdzie udało Ci się ustalić chip pomiarowy?
    Mój nie ma etykiety na górze. Jestem ciekawy, czy jest taki sam jak w SY1. SY2 jest reklamowany jako posiadający zabezpieczenie przed zbyt niskim lub zbyt wysokim napięciem oraz zabezpieczenie nadprądowe.
    Gdzie można to skonfigurować?

    Ma również pomiar temperatury. Czy mógłbyś sprawić, by działał? Z json wydaje się, że jest w pinie 28:
    "temp_mea_pin": "28",
  • #15 21204573
    p.kaczmarek2
    Moderator Smart Home
    Witaj, skąd wziąłeś klucz temp_mea_pin? Czy możesz opublikować pełny zestaw obrazów i pełny JSON?
    Nie ma jeszcze innych wzmianek o temp_mea_pin na naszym forum.
    https://www.elektroda.com/rtvforum/find.php?q=temp_mea_pin
    Pomogłem? Kup mi kawę.
  • #16 21205202
    adrianpanella
    Poziom 4  
    Nie zostało to wspomniane w poście, ale znajduje się w pliku JSON przesłanym przez @gregor_pn kilka postów wyżej.

    Mam urządzenie, ale chipy nie mają żadnych oznaczeń na górze, więc nie mogłem znaleźć zbyt wiele.

    Ale wyraźnie SY2 jest reklamowany jako posiadający czujnik temperatury.

    Nie wiem też, co to jest chip licznika energii i czym różni się od SY1, aby mieć reklamowaną ochronę napięcia / prądu. A może to tylko oprogramowanie układowe?
  • #18 21205358
    p.kaczmarek2
    Moderator Smart Home
    Co jest podłączone do P28?
    https://www.elektroda.com/rtvforum/topic3951016.html#gallery-2

    Chwileczkę, ale to urządzenie ma CB2S jak w pierwszym poście? Więc P28 nie jest poprowadzony? Huh.
    Pomogłem? Kup mi kawę.
  • #19 21206481
    adrianpanella
    Poziom 4  
    Urządzenie, o którym mówię, to TO-Q-SY2-JWT i ma moduł CBU.
    Zostało wspomniane w wątku, ale nie jest tym samym, co w pierwszym poście.
    Ale to jedyny wątek, jaki znalazłem (na jakimkolwiek forum), który wspomina o tym urządzeniu.

    Uważam, że jest bardzo podobny do SY1, który ma następujące mapowanie:
    ```
    ## P17: przycisk czujnika
    ## P15: niebieska dioda - status
    ## P9: czerwona dioda - przekaźnik
    ## P24: on_signal
    ## P26: off_signal
    ## uart1: licznik energii bl0942
    ```

    A P28 prawdopodobnie jest podłączony do czujnika temperatury, który ta wersja dodaje nad SY1.
    Nie jestem jednak pewien co do bl0942.
    To są moje pytania do @gregor_pn, który najwyraźniej go sflashował i sprawił, że działa.
REKLAMA