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

EARU EAEMP3C-100-TY-W - Pokaż kotku co masz w środku

halinka1125 26 Sty 2025 15:44 3762 26

TL;DR

  • Rozebrano EARU EAEMP3C-100-TY-W, trójfazowy licznik/przekaźnik 3P+N 1–100A z WiFi Tuya i kolorowym LCD.
  • W środku siedzą RENERGY RN8302B, CMS32L051 z Cortex-M0+, TM1622B, 24C64 oraz demontowalny moduł CB3S/BK7231N na goldpinach.
  • Urządzenie mierzy napięcie, prąd, moc, power factor, energię pobraną i oddaną oraz prąd upływu; pobiera około 1W, a z WiFi 1,3–1,5W.
  • Po flashowaniu OpenBK7231N działa odczyt faz, energii, temperatury i reset WiFi, ale część dPID nadal wymaga dopracowania; zalecana wersja to co najmniej 1.18.30.
  • Brakuje pełnego harmonogramu pracy, a częstotliwość sieci jest kopiowana przez MCU na pozostałe fazy, więc L2 i L3 nie pokazują rzeczywistego pomiaru.
Wygenerowane przez model językowy.
📢 Słuchaj (AI):
  • Witam
    Krótka relacja z demontażu urządzenia EARU EAEMP3C-100-TY-W.
    Widok na urządzenie elektroniczne bez przedniej obudowy, z wyświetlaczem LCD z kolorowym podświetleniem.
    Rys 1. Urządzenie pozbawione frontowej obudowy uruchomione bez modułu CB3S
    Poszczególne moduły urządzenia można rozdzielić bez użycia lutownicy, są osadzone na golpinach.
    Układem pomiarowym urządzenia jest RENERGY RN8302B, do niego przyłączone są cewki pomiarowe, całością zarządza układ CMS32L051 który to zawiera w sobie rdzeń ARM® Cortex®-M0+ 32bit, do wyświetlania parametrów służy wyświetlacz LCD z kolorowym podświetlaniem/filmem pod częścią ekranu - wygląda całkiem fajnie.
    Dostępne są 2 ekrany pomiarów do wyboru z ustawień urządzenia. Nominalne urządzenie współpracuje z TUYA i przez ich aplikację je się konfiguruje. Całość skonfigurować jest dosyć łatwo i działa "od strzała", ALE DUŻO USTAWIEŃ DOSTĘPNYCH JEST TYLKO Z POZIOMU APLIKACJI.
    Do urządzenia można podłączyć cewkę pomiarową w celu pomiaru upływności. Wymiary cewki są dosyć duże ok. 76mm średnicy zew., oporność ok 90 Ohm, indukcyjność ok 76H (pomiar indukcyjności niepewny bo jakimś starym miernikiem ze słabą baterią), opisywane jako AC2000:1 na aliex.. .
    Urządzenie po podłączeniu zasilania (zasilane jest TYLKO z fazy L1 i N), pobiera 1W, po skonfigurowaniu WiFi ok 1,3-1,5W przy włączonych przekaźnikach.
    Moduł WiFi CB3S jest łatwo demontowalny, na fotografii widoczny jest pinout z tym że jeśli chcemy urządzenie flashować musimy podłączyć się bezpośrednio do modułu zasilaniem 3,3V - zasilanie z goldpinu sterowane jest tranzystorem.
    Urządzenie dosyć ciekawe ze względu na możliwość ochrony przed zbyt wysokim, zbyt niskim napięciem, brakiem jednej z faz, ma także możliwość ustawienia minimalnego i maksymalnego prądu oraz pracę czasową, czas wyzwalania się ochrony możemy ustawić, także czas powrotu do pracy jest konfigurowalny. Urządzenie opisane jest jako 3P+N 1-100A - co pewnie się zgadza 100/4=25A lub 100/3=33A to raczej max co przekaźniki wytrzymają;). Urządzenie potrafi dwukierunkowo zliczać energię, podstawowo wyświetla sumę energii zużytej i wyprodukowanej, klikając przyciski strzałek możemy zobaczyć poszczególne składniki sumy.
    Tyle dało się ustalić, zanim urządzenie zostało "zepsute", podczas korzystania z programu BK7231GUIFlashTool-v5 był problem z połączeniem się aby zgrać oprogramowanie, i podczas jednej z prób zanim soft wylądował na dysku udało się wcisnąć klawisz Write zamiast Read i to oczywiście poszło od tak za pierwszym razem. Swoją drogą dziwny program przy próbie odczytu wyskakuje kilka okienek utrudniających prosty odczyt. Nie da się najpierw odczytać pamięci do bufora potem zapisać pliku, zapis natomiast po prostu odpala bez żadnego pytania.
    Jako że oprogramowanie OpenBK7231N_QIO_1.18.23 zostało zainstalowane dużo mi nie zostało... Metodą prób i błędów udało się znaleźć kilka dpid, niestety tylko część. Obecnie większość dpID jest przechwytywana i opisana. zalecany firmware to przynajmniej OpenBK7231N_1.18.30.

    Poniżej podaje autoexec który udało się sklecić, jednakże na pewno jest on do poprawy (miło by było jakby ktoś go poprawił), działa odczyt parametrów faz pomiaru poboru energii, power factor, i prąd upływu, temperatur i kilka parametrów konfiguracji.
    Podany kod potrafi się jednak zawiesić i nie podawać żadnego innego pomiaru, oprócz ostatniego/startowego. Nie działa przynajmniej na tej wersji OpenBK przechwytywanie dpid komendą "tuyaMcu_sendQueryState" (albo ja nie umiem sobie z tym poradzić).
    Klawisz resetu ustawień wifi nie działa poprawnie - chociaż w logach widać że jest obsługiwany - pojawia się polecenie WiFi reset, fajnie by było jakby resetował wifi do ustawień fabrycznych, jak to miało miejsce w oryginalnym sofcie.
    Po wybraniu więcej niż 32 dpid następne da się zapisać, ale żeby je usunąć należy sformatować całe urządzenie.
    Obecnie dzięki nieocenionej pomocy p.kaczmarek2 autoexec jest praktycznie ukończony.
    Część ustawień pojawia się logu debug tylko po zapisaniu ustawień na mierniku - ciekawe czy jakaś komenda może wywołac taki raport - TAK zapis dpID18? Poniżej taki komunikat:
    
    00 18 12 00 00 14  01 01  *03 2A*  03 01 *01 04*  04 01 *00 B2*  0200 00 14 05 00 00 00 51 
    00 18 12 00 00 14  01 01  *03 2A*  03 01 *01 06*  04 01 *00 B3*  0200 00 14 05 00 00 00 54 
    			01=ON*MAX_C*	 03=ON*VH VH*	04=ON*VL VL*	02=OFF-3PhaseCurrent inbalance 05=OFF- Lack of 1 Phase disabled
    
    

    Nigdzie nie widzę częstotliwości sieci - miernik podaje ją po przecinku np. 49,9Hz... dpID113-115 zawierały te informacje.
    Dumpa oprogramowania na razie nie będzie, była próba zrobienia Frankensteina z softem z EAEMP3-100-TY-W (przeniesione ustawienia i rf region), ale moduł CB3S wtedy nie startował. Jeśli ktoś ma taki miernik niech podrzuci dumpa proszę - będzie łatwiej dopracować skrypt startowy.
    Pozdrawiam!

    To działa: odczyt napięcia,natężenia,mocy,powerfactor i czestotliwości dla wszystkich 3 faz. Tu uwaga - pomiar częstotliwości jest oszukany częstotliwość fazy zasilania jest kopiowana w MCU na pozostałe fazy.
    Działa odczyt prądu upływu, odczyt energii wyprodukowanej i pobranej, oczczyt temperatury urządzenia, reset WiFi. Znane są dpID ustawień alarmów, jednak są złożone i można je konfigurowac na razie tylko w linii komend - w autoexec są przykłady, znane są kody błędów - w tym temacie sa wyszczególnione.
    Brak tylko harmonogramu pracy - na 90% odpowiada za niego dpID117.
    Poniżej widok z interfejsu.
    Zrzut ekranu interfejsu ustawień urządzenia EAMP3C-100-TY-W.
    
    // EAMP3C-100-TY-W ver.109 autoexec, min.ver. OpenBK7231N_1.18.30 needed!
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 9600
    startDriver NTP
    ntp_timeZoneOfs 1 //optional
    
    // This one is better than tuyaMcu_defWiFiState 4;  MQTTState 1 = WiFiState 4
    // issuing of tuyaMcu_defWiFiState 4 continues the script,
    // but doesnt report to MQTT since there is still no connection.
    // if you didn't setup MQTT connection then issue tuyaMcu_defWiFiState 4
    // and comment waitFor MQTTState 1
    
    // waitFor MQTTState 1
    tuyaMcu_defWiFiState 4
    
    // Main Relay - Dpid 16 "switch" -> Channel 1
    linkTuyaMCUOutputToChannel 16 bool 1
    setChannelType 1 toggle
    setChannelLabel 1 "Main power switch"
    
    // Total energy Used - Dpid 1 "Energy Used" -> channel 2
    linkTuyaMCUOutputToChannel 1 val 2
    setChannelType 2 EnergyTotal_kWh_div100
    setChannelLabel 2 "Total Energy used"
    
    // Dpid 110 "Dpid 110" Energy Produced-> channel 3
    linkTuyaMCUOutputToChannel 110 val 3
    setChannelType 3 EnergyTotal_kWh_div100
    setChannelLabel 3 "Produced Energy kWh"
    
    // Total Power Dpid 111 -> channel 4
    linkTuyaMCUOutputToChannel 111 val 4
    setChannelType 4 ReadOnly
    setChannelLabel 4 "Total Connected Power W"
    
    // Fault - Dpid 9 "fault" -> channel 5
    linkTuyaMCUOutputToChannel 9 BITMAP 5
    setChannelType 5 ReadOnly
    setChannelLabel 5 "Fault (mapa bitów)"
    
    //------------------------------------------------------------
    // dpID short Voltage Current Power IDs can be used alternative full VCPPfF IDs 113,114,115
    // linkTuyaMCUOutputToChannel 6 RAW_TAC2121C_VCP 7
    // setChannelType 7 Voltage_div10
    // setChannelLabel 7 "Voltage A"
    // setChannelType 8 Current_div1000
    // setChannelLabel 8 "Current A"
    // setChannelType 9 Power
    // setChannelLabel 9 "Power A"
    //
    // linkTuyaMCUOutputToChannel 7 RAW_TAC2121C_VCP 10
    // setChannelType 10 Voltage_div10
    // setChannelLabel 10 "Voltage B"
    // setChannelType 11 Current_div1000
    // setChannelLabel 11 "Current B"
    // setChannelType 12 Power
    // setChannelLabel 12 "Power B"
    //
    // linkTuyaMCUOutputToChannel 8 RAW_TAC2121C_VCP 13
    // setChannelType 13 Voltage_div10
    // setChannelLabel 13 "Voltage C"
    // setChannelType 14 Current_div1000
    // setChannelLabel 14 "Current C"
    // setChannelType 15 Power
    // setChannelLabel 15 "Power C"
    // -------------------------------------------------------------
    linkTuyaMCUOutputToChannel 113 RAW_VCPPfF 7
    setChannelType 7 Voltage_div10
    setChannelLabel 7 "Voltage L1"
    setChannelType 8 Current_div1000
    setChannelLabel 8 "Current L1"
    setChannelType 9 Power_div10
    setChannelLabel 9 "Power L1"
    setChannelType 10 PowerFactor_div1000
    setChannelLabel 10 "PowerFactor L1"
    setChannelType 11 Frequency_div1000
    setChannelLabel 11 "Frequency L1"
    
    linkTuyaMCUOutputToChannel 114 RAW_VCPPfF 12
    setChannelType 12 Voltage_div10
    setChannelLabel 12 "Voltage L2"
    setChannelType 13 Current_div1000
    setChannelLabel 13 "Current L2"
    setChannelType 14 Power_div10
    setChannelLabel 14 "Power L2"
    setChannelType 15 PowerFactor_div1000
    setChannelLabel 15 "PowerFactor L2"
    setChannelType 16 Frequency_div1000
    setChannelLabel 16 "Frequency L2"
    
    linkTuyaMCUOutputToChannel 115 RAW_VCPPfF 17
    setChannelType 17 Voltage_div10
    setChannelLabel 17 "Voltage L3"
    setChannelType 18 Current_div1000
    setChannelLabel 18 "Current L3"
    setChannelType 19 Power_div10
    setChannelLabel 19 "Power L3"
    setChannelType 20 PowerFactor_div1000
    setChannelLabel 20 "PowerFactor L3"
    setChannelType 21 Frequency_div1000
    setChannelLabel 21 "Frequency L3"
    
    // Device temperature - Dpid 103 "Device temperature" -> channel 23
    linkTuyaMCUOutputToChannel 103 val 23
    setChannelType 23 Temperature
    setChannelLabel 23 "Device temperature [C]"
    
    // Leakage tripping - Dpid 15 "leakage_tripping" -> channel 24
    linkTuyaMCUOutputToChannel 15 val 24
    setChannelType 24 ReadOnly
    setChannelLabel 24 "Earth Leakage value [mA]"
    
    // Dpid 17 "Dpid 17" -> channel 25
    linkTuyaMCUOutputToChannel 17 RAW 25
    // setChannelType 25 ReadOnly
    // setChannelLabel 25 "SETUP TempAlarm/Leakage Current dpID17"
    // tuyaMcu_sendCmd 0x06 11000008050000550400001D - TempDevAL=DISABLED=85C, LeakageEarth alarm=DISABLED=29mA
    // tuyaMcu_sendCmd 0x06 11000008050100410401001D - EANBLE TempDev=65C, EnableLE=29mA
    
    // Alarm temperature - Dpid 118 "Power Factor L1 - or maby overall PF?" -> channel 26
    // linkTuyaMCUOutputToChannel 118 val 26
    // setChannelType 26 PowerFactor_div1000
    // setChannelLabel 26 "Power Factor L1"
    
    // Dpid 18 "Dpid 18" -> channel 27
    linkTuyaMCUOutputToChannel 18 RAW 27
    // setChannelType 27 ReadOnly
    // setChannelLabel 27 "SETUP Dpid 18 SETUP_MaxP_MaxV_Min_V/UnbalanceC/Lack_of_Phase"
    //
    // uartSendHex 55AA00060018120000140101026203010109040100A0020000140500000077 - no 3Phase alarms
    // uartSendHex 55AA00060018120000140101026203010109040100A0020100140501000078 - 
    // MaxCurrEN=63A,MaxVolEN=265V,MinVolEn=160V,inbalanced 3Phase current EN=20%,lack of Phase EN
    
    //Delay to switch off by Under/Over Voltage - Dpid 123 "Delay to switch off by Under/Over Voltage" -> channel 31
    linkTuyaMCUOutputToChannel 123 val 31
    setChannelType 31 TextField
    setChannelLabel 31 "SETUP Delay to switch off by Under/Over Voltage"
    
    // Bad Voltage recovery time - Dpid 120 "Bad Voltage Recovery Time" -> channel 32
    linkTuyaMCUOutputToChannel 120 val 32
    setChannelType 32 TextField
    setChannelLabel 32 "SETUP recovery time from bad Voltage [s]"
    
    // Delay to switch off by Under/Over Current- Dpid 124 "Delay to switch off by Under/Over Current" -> channel 33
    linkTuyaMCUOutputToChannel 124 val 33
    setChannelType 33 TextField
    setChannelLabel 33 "SETUP to switch off by Under/Over Current"
    
    // Recovery time from Under/Over current - Dpid 121 "Recovery time from under/over current" -> channel 34
    linkTuyaMCUOutputToChannel 121 val 34
    setChannelType 34 TextField
    setChannelLabel 34 "SETUP recovery time from under/over current"
    
    // Dpid 131 "Dpid 131 - 0" -> channel 35
    linkTuyaMCUOutputToChannel 131 val 35
    setChannelType 35 ReadOnly
    setChannelLabel 35 "How many times OverCurrent has triggered since startup"
    
    // Dpid 127 "Dpid 127 - 0" -> channel 36
    // linkTuyaMCUOutputToChannel 127 val 36
    // setChannelType 36 ReadOnly
    // setChannelLabel 36 "Is Load on L1/A (1=yes/0=no)"
    
    // Dpid 128 "Dpid 128 - 0" -> channel 37
    // linkTuyaMCUOutputToChannel 128 val 37
    // setChannelType 37 ReadOnly
    // setChannelLabel 37 "Is Load on L2/B (1=yes/0=no)"
    
    // Dpid 129 "Dpid 129 - 0" -> channel 38
    // linkTuyaMCUOutputToChannel 129 val 38
    // setChannelType 38 ReadOnly
    // setChannelLabel 38 "Is Load on L3/C (1=yes/0=no)"
    
    // Dpid 136 "Dpid 136 - 1" -> channel 39 - for tests only
    // linkTuyaMCUOutputToChannel 136 val 39
    // setChannelType 39 TextField
    // setChannelLabel 39 "SETUP Voltage multiplier RW Dpid 136=1"
    
    // Dpid 137 "Dpid 137 - 1" -> channel 40 - for tests only
    // linkTuyaMCUOutputToChannel 137 val 40
    // setChannelType 40 TextField
    // setChannelLabel 40 "SETUP Current multiplier RW Dpid 137=1"
    
    // ______________________________________________ACCEPTED_________TILL_____THIS___LINE
    //  Dpid 12 "Dpid 12 - 1" -> channel 43 Not quite if no load, 0 clear something
    // linkTuyaMCUOutputToChannel 12 val 43
    // setChannelType 43 ReadOnly
    // setChannelLabel 43 "RO Dpid 12=1"
    
    // Dpid 13 "Dpid 13 - 1" -> channel 44
    // linkTuyaMCUOutputToChannel 13 val 44
    // setChannelType 44 ReadOnly
    // setChannelLabel 44 "RO Dpid 13=1"
    
    // Dpid 102 "Dpid 102 - 30" -> channel 45
    // linkTuyaMCUOutputToChannel 102 val 45
    // setChannelType 45 TextField
    // setChannelLabel 45 "RW Dpid 102=30"
    
    // Dpid 104 "Dpid 104 - 1" -> channel 46
    // linkTuyaMCUOutputToChannel 104 val 46
    // setChannelType 46 ReadOnly
    // setChannelLabel 46 "RO Dpid 104=1"
    
    // Dpid 112 "Dpid 112 - 0" -> channel 47
    // linkTuyaMCUOutputToChannel 112 val 47
    // setChannelType 47 ReadOnly
    // setChannelLabel 47 "RO Dpid 112=0"
    
    // Dpid 122 "Dpid 122 - 20" -> channel 48
    // Probably Lost Current Recovery Delay Time:1-9999s (Adjustable) (Default:20s) what it is???
    // linkTuyaMCUOutputToChannel 122 val 48
    // setChannelType 48 TextField
    // setChannelLabel 48 "RW Dpid 122=20"
    
    // "Dpid 125-10" -> channel 49
    // Probably Time Threshold of Lost Flow Event:1-999s (Adjustable)(Default:10s) what it is???
    // linkTuyaMCUOutputToChannel 125 val 49
    // setChannelType 49 TextField
    // setChannelLabel 49 "RW Dpid 125=10"
    
    // Dpid 132 "Dpid 132 - 0" -> channel 50
    // linkTuyaMCUOutputToChannel 132 val 50
    // setChannelType 50 ReadOnly
    // setChannelLabel 50 "RO Dpid 132=0"
    
    // Dpid 133 "Dpid 133 - 0" -> channel 51
    // linkTuyaMCUOutputToChannel 133 val 51
    // setChannelType 51 ReadOnly
    // setChannelLabel 51 "RO Dpid 133=0"
    
    // Dpid 134 "Dpid 134 - 2" -> channel 52
    // linkTuyaMCUOutputToChannel 134 val 52
    // setChannelType 52 ReadOnly
    // setChannelLabel 52 "RO Dpid 134=2"
    
    // Dpid 135 "Dpid 135 - 0" -> channel 53
    // linkTuyaMCUOutputToChannel 135 val 53
    // setChannelType 53 TextField
    // setChannelLabel 53 "RW Dpid 135=0"
    
    // Dpid 105 "Dpid 105" -> channel 54
    // linkTuyaMCUOutputToChannel 105 val 54
    // setChannelType 54 ReadOnly
    // setChannelLabel 54 "Dpid 105"
    
    // Dpid 106 "Dpid 106" -> channel 55
    // linkTuyaMCUOutputToChannel 106 val 55
    // setChannelType 55 ReadOnly
    // setChannelLabel 55 "Dpid 106 - j....EwAAAAAAAAAAAA=="
    
    // Dpid 109 "Dpid 109" -> channel 56
    // linkTuyaMCUOutputToChannel 109 val 56
    // setChannelType 56 ReadOnly
    // setChannelLabel 56 "Dpid 109 - AAA8"
    
    // Dpid 109 "Dpid 117" -> channel 57
    linkTuyaMCUOutputToChannel 117 RAW 57
    // setChannelType 57 ReadOnly
    // setChannelLabel 57 "Dpid 117-Probably scheduler"
    
    waitFor NTPState 1 // wait for NTPState 1 second
    tuyaMcu_sendCurTime //Send time to tuyaMCU
    
    // every 30 seconds, request update from TuyaMCU
    addRepeatingEvent 30 -1 tuyaMcu_sendQueryState
    //tuyaMcu_sendQueryState


    Układ RN8302B na płytce z widocznym układem pomiarowym.
    Rys 2. Płyta przekaźnika, z widocznym układem pomiarowym ReEnergy RN8302B
    Płyta przekaźników z widocznymi cewkami pomiarowymi.
    Rys 3. Widok na same przekaźniki z góry, widoczne cewki pomiarowe na poszczególnych fazach, tor neutralny nie jest przerywany.
    Płyta zasilacza z różnymi komponentami elektronicznymi.
    Rys 4. Druga strona płyty przekaźników widoczny zasilacz oparty na układzie z opisem "8231H Q24A1006"
    Płyta główna z układami CMS32L051, TM1622B i EEPROM 24C64
    Rys 5. Płyta z MCU CMS32L051, kontrolerem wyświetlacza TM1622B, oraz eepromem 24C64.
    Zbliżenie na płytkę drukowaną z różnymi komponentami elektronicznymi, w tym układami scalonymi.
    Rys 6. Ta sama płyta pod innym kątem widoczne oznaczenia układów.
    Płytka z wyświetlaczem LCD i przyciskami kontrolnymi.
    Rys 7. Płyta z wyświatlaczem widoczne również przyciski służące do obsługi.
    Moduł WiFi CB3S oparty na układzie BK7231N z widocznymi oznaczeniami pinów.
    Rys 8. Moduł komunikacyjny WiFi CB3S oparty na układzie BK7231N (ekran nie był zdejmowany).
    Urządzenie EARU EAEMP3C-100-TY-W bez przedniej obudowy i cewki pomiarowej.
    Rys 9. Przekaźnik wraz z cewką pomiarową upływu prądu.
    Instrukcja obsługi urządzenia EARU EAEMP3C-100-TY-W z widocznym wyświetlaczem i tabelami ustawień.
    Skan instrukcji instalacji i użytkowania urządzenia
    Rys 10-11. Skan instrukcji
    Długi zrzut ekranu przedstawiający różne widoki i specyfikacje urządzenia pomiarowego EARU EAEMP3C-100-TY-W.
    Rys 12. Zrzut widoku aukcji.

    Gadżety dotarły dzięki!

    Długopis obok karty microSD Goodram 128GB.

    Fajne? Ranking DIY
    O autorze
    halinka1125
    Poziom 22  
    Offline 
    halinka1125 napisał 531 postów o ocenie 30, pomógł 49 razy. Mieszka w mieście Lublin. Jest z nami od 2002 roku.
  • #2 21411365
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    Dzięki za prezentację. Co do polepszenia konfiguracji, to zacząłbym od tego, czy ten miernik korzysta z UART (TuyaMCU) do raportowania połączenia z chmurą, czy też może z innego pinu?
    Jak sprawić, by urządzenie TuyaMCU wysyłało więcej danych? Dlaczego dpID nie są wysyłane?
    Ja w przypadku tego urządzenia za nic nie dostawałem pełnych dpID dopóki nie ustawiłem odpowiedniego stanu na danym pinie...


    halinka1125 napisał:

    Podany kod potrafi się jednak zawiesić i nie podawać żadnego innego pomiaru, oprócz ostatniego/startowego. Nie działa przynajmniej na tej wersji OpenBK przechwytywanie dpid komendą "tuyaMcu_sendQueryState" (albo ja nie umiem sobie z tym poradzić).

    Może wywoływać to co jakiś czas?
    
    // every 10 seconds, request update from TuyaMCU
    addRepeatingEvent 10 -1 tuyaMcu_sendQueryState
    



    halinka1125 napisał:

    Klawisz resetu ustawień wifi nie działa poprawnie - chociaż w logach widać że jest obsługiwany - pojawia się polecenie WiFi reset, fajnie by było jakby resetował wifi do ustawień fabrycznych, jak to miało miejsce w oryginalnym sofcie.

    Jak to w logach wygląda? Jaki komunikat to był z TuyaMCU?



    halinka1125 napisał:

    Po wybraniu więcej niż 32 dpid następne da się zapisać, ale żeby je usunąć należy sformatować całe urządzenie.

    W tym momencie nie jestem pewny czy wiem o co chodzi, może o to, że typy kanałów są pamiętane? Je można zmienić w Web App

    halinka1125 napisał:

    Część ustawień pojawia się logu debug tylko po zapisaniu ustawień na mierniku - ciekawe czy jakaś komenda może wywołac taki raport? Poniżej taki komunikat:

    A które to dpID?


    Można też włączyć flagę TuyaMCU queue we flagach.
    Pomogłem? Kup mi kawę.
  • #3 21411416
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    >>21411365
    Dzięki za wsparcie!
    Dodałem mechanizm wymuszania pobierania danych, jak poniżej
    i część dpID faktycznie pobiera ... Muszę potestować dokładniej...
    Z modułu CB3S wyprowadzony jest tylko UART, dodatkowy podłączony pin steruje zasilaniem układu. Dioda led sterowana jest z MCU nie z CB3S.
    
    // every 10 seconds, request update from TuyaMCU
    addRepeatingEvent 10 -1 tuyaMcu_sendQueryState


    Odnośnie resetu WiFi, jest on realizowany przez przyciski podłączone do MCU, po wybraniu opcji z menu (net-rs) wysyłane jest polecenie do modułu CB3S,to pojawia w logu debug:
    
    Info:MAIN:Time 1552, idle 195122/s, free 55336, MQTT 0(97), bWifi 1, secondsWithNoPing 1482, socks 2/38 
    Info:TuyaMCU:Received: 55 AA 03 04 00 00 06 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 4 (WiFiReset) len 7
    Info:TuyaMCU:ProcessIncoming: 0x04 replying
    Info:TuyaMCU:Received: 55 AA 03 05 00 01 00 08 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 5 (WiFiSelect) len 8
    Info:MAIN:Time 1553, idle 187514/s, free 55336, MQTT 0(97), bWifi 1, secondsWithNoPing 1483, socks 2/38 
    Info:MAIN:Time 1554, idle 190035/s, free 55336, MQTT 0(97), bWifi 1, secondsWithNoPing 1484, socks 2/38 
    

    Naprawione w OpenBK7231N_QIO_1.18.26
    Właśnie o Web App mi chodzi dostępne jest 32 "pola wyboru" jak dodamy więcej niż 32 to następnych nie da się skasować jak ich użyjemy, zawsze zostają widoczne na stronie z wartością 0. (pomimo, że przestaniemy ich używać).
    Cytat:

    Po wybraniu więcej niż 32 dpid następne da się zapisać, ale żeby je usunąć należy sformatować całe urządzenie.


    No właśnie nie ma dpID urządzenie podczas zapisu ustawień wysyła komunikat 00181200.... - jest on widoczny tylko w logu. Jest tam na pewno prąd maks. napięcie min i max, reszty nie rozszyfrowałem.
    
    Info:TuyaMCU:Received: 55 AA 03 00 00 01 01 04 
    ... info o wifi
    Info:TuyaMCU:Received: 55 AA 03 00 00 01 01 04 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 0 (Hearbeat) len 8
    00 18 12 00 00 14 01 01  03 2A  03 01 01 04  04  01 00 B2  02  00 00 14 05 00 00 00 51 
    

    Cytat:

    Część ustawień pojawia się logu debug tylko po zapisaniu ustawień na mierniku - ciekawe czy jakaś komenda może wywołac taki raport? Poniżej taki komunikat:
    A które to dpID?


    I mam jeszcze pytanie o aktywność WiFi to normalne, że moduł wykonuje tyle operacji związanych z wifi?
    często pojawia się tez komunikat
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 43 (NetworkStatus) len 7
    Info:TuyaMCU:ProcessIncoming: (test for S09 calendar/IR device) received TUYA_CMD_NETWORK_STATUS 0x2B 

    To zdaje się status WiFi jest wywoływany?

    Poniżej zaktualizowany autoexec, wydaje się być bardziej stabilny.
    Nadal brak odczytu PF_L2,PF_L3, poszczególnych częstotliwości, energii całościowej. Zaktualizowana lista dpID o te które pojawiły się po ustawieniu flagi Query (łącznie 3szt 105,106,109), Rozszyfrowane kilka kolejnych dpID, pozostało 14 o nieznanym znaczeniu.
    
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 9600
    startDriver NTP
    ntp_timeZoneOfs 1 //optional
    tuyaMcu_sendCurTime //wysyła czas z TuyaMCU do MCU, bez tego jak zgubił czas to nie uaktualniał
    
    // This one is better than tuyaMcu_defWiFiState 4;  MQTTState 1 = WiFiState 4
    // issuing of tuyaMcu_defWiFiState 4 continues the script,
    // but doesnt report to MQTT since there is still no connection.
    // if you didn't setup MQTT connection then issue tuyaMcu_defWiFiState 4
    // and comment waitFor MQTTState 1
    
    // waitFor MQTTState 1
    tuyaMcu_defWiFiState 4
    
    // Main Relay - Dpid 16 "switch" -> Channel 1
    linkTuyaMCUOutputToChannel 16 bool 1
    setChannelType 1 toggle
    setChannelLabel 1 "Main power switch"
    
    // Total energy Used - Dpid 1 "Power Used" -> channel 4
    linkTuyaMCUOutputToChannel 1 val 4
    setChannelType 4 EnergyTotal_kWh_div100
    setChannelLabel 4 "Total Energy used"
    
    // Total Power Dpid 111 -> channel 3
    linkTuyaMCUOutputToChannel 111 val 3
    setChannelType 3 ReadOnly
    setChannelLabel 3 "Total Power W"
    
    // Fault - Dpid 9 "fault" -> channel 2
    linkTuyaMCUOutputToChannel 9 raw 2
    setChannelType 2 ReadOnly
    setChannelLabel 2 "Fault (mapa bitów)"
    
    linkTuyaMCUOutputToChannel 6 RAW_TAC2121C_VCP 5
    setChannelType 5 Voltage_div10
    setChannelLabel 5 "Voltage A"
    setChannelType 6 Current_div1000
    setChannelLabel 6 "Current A"
    setChannelType 7 Power
    setChannelLabel 7 "Power A"
    
    linkTuyaMCUOutputToChannel 7 RAW_TAC2121C_VCP 8
    //corruption detected
    //corruption detected
    setChannelType 8 Voltage_div10
    setChannelLabel 8 "Voltage B"
    setChannelType 9 Current_div1000
    setChannelLabel 9 "Current B"
    setChannelType 10 Power
    setChannelLabel 10 "Power B"
    
    linkTuyaMCUOutputToChannel 8 RAW_TAC2121C_VCP 11
    setChannelType 11 Voltage_div10
    setChannelLabel 11 "Voltage C"
    setChannelType 12 Current_div1000
    setChannelLabel 12 "Current C"
    setChannelType 13 Power
    setChannelLabel 13 "Power C"
    
    // Leakage tripping - Dpid 15 "leakage_tripping" -> channel 14
    linkTuyaMCUOutputToChannel 15 val 14
    setChannelType 14 ReadOnly
    setChannelLabel 14"Earth Leakage value [mA]"
    
    // Device temperature - Dpid 15 "Device temperature" -> channel 15
    linkTuyaMCUOutputToChannel 103 val 15
    setChannelType 15 Temperature
    setChannelLabel 15 "Device temperature [C]"
    
    // Alarm temperature - Dpid 118 "Power Factor L1" -> channel 16
    linkTuyaMCUOutputToChannel 118 val 16
    setChannelType 16 PowerFactor_div1000
    setChannelLabel 16 "Power Factor L1"
    
    // Bad Voltage recovery time - Dpid 120 "Bad Voltage Recovery Time" -> channel 17
    linkTuyaMCUOutputToChannel 120 val 17
    setChannelType 17 TextField
    setChannelLabel 17 "Set recovery time from bad Voltage [s]"
    
    // Recovery time from Under/Over current - Dpid 121 "Recovery time from under/over current" -> channel 18
    linkTuyaMCUOutputToChannel 121 val 18
    setChannelType 18 TextField
    setChannelLabel 18 "Set recovery time from under/over current"
    
    //Delay to switch off by Under/Over Voltage - Dpid 123 "Delay to switch off by Under/Over Voltage" -> channel 19
    linkTuyaMCUOutputToChannel 123 val 19
    setChannelType 19 TextField
    setChannelLabel 19 "Delay to switch off by Under/Over Voltage"
    
    // Delay to switch off by Under/Over Current- Dpid 124 "Delay to switch off by Under/Over Current" -> channel 20
    linkTuyaMCUOutputToChannel 124 val 20
    setChannelType 20 TextField
    setChannelLabel 20 "Delay to switch off by Under/Over Current"
    
    // Dpid 127 "Dpid 127 - 0" -> channel 21
    linkTuyaMCUOutputToChannel 127 val 21
    setChannelType 21 ReadOnly
    setChannelLabel 21 "Is Load on L1/A (1=yes/0=no)"
    
    // Dpid 128 "Dpid 128 - 0" -> channel 22
    linkTuyaMCUOutputToChannel 128 val 22
    setChannelType 22 ReadOnly
    setChannelLabel 22 "Is Load on L2/B (1=yes/0=no)"
    
    // Dpid 129 "Dpid 129 - 0" -> channel 23
    linkTuyaMCUOutputToChannel 129 val 23
    setChannelType 23 ReadOnly
    setChannelLabel 23 "Is Load on L3/C (1=yes/0=no)"
    
    // Dpid 131 "Dpid 131 - 0" -> channel 31
    linkTuyaMCUOutputToChannel 131 val 31
    setChannelType 31 ReadOnly
    setChannelLabel 31 "How many times OverCurrent has triggered RO Dpid 131=0"
    
    // Dpid 136 "Dpid 136 - 1" -> channel 36
    linkTuyaMCUOutputToChannel 136 val 36
    setChannelType 36 TextField
    setChannelLabel 36 "Readed Voltage multiplier RW Dpid 136=1"
    
    // Dpid 137 "Dpid 137 - 1" -> channel 37
    linkTuyaMCUOutputToChannel 137 val 37
    setChannelType 37 TextField
    setChannelLabel 37 "Readed Current multiplier RW Dpid 137=1"
    
    // ______________________________________________ACCEPTED_________TILL_____THIS___LINE
    //  Dpid 12 "Dpid 12 - 1" -> channel 24
    linkTuyaMCUOutputToChannel 12 val 24
    setChannelType 24 ReadOnly
    setChannelLabel 24 "RO Dpid 12=1"
    
    // Dpid 13 "Dpid 13 - 1" -> channel 25
    linkTuyaMCUOutputToChannel 13 val 25
    setChannelType 25 ReadOnly
    setChannelLabel 25 "RO Dpid 13=1"
    
    // Dpid 102 "Dpid 102 - 30" -> channel 26
    linkTuyaMCUOutputToChannel 102 val 26
    setChannelType 26 TextField
    setChannelLabel 26 "RW Dpid 102=30"
    
    // Dpid 104 "Dpid 104 - 1" -> channel 27
    linkTuyaMCUOutputToChannel 104 val 27
    setChannelType 27 ReadOnly
    setChannelLabel 27 "RO Dpid 104=1"
    
    // Dpid 112 "Dpid 112 - 0" -> channel 28
    linkTuyaMCUOutputToChannel 112 val 28
    setChannelType 28 ReadOnly
    setChannelLabel 28 "RO Dpid 112=0"
    
    // Dpid 122 "Dpid 122 - 20" -> channel 29
    linkTuyaMCUOutputToChannel 122 val 29
    setChannelType 29 TextField
    setChannelLabel 29 "RW Dpid 122=20"
    
    // "Dpid 125-20" -> channel 30
    linkTuyaMCUOutputToChannel 125 val 30
    setChannelType 30 TextField
    setChannelLabel 30 "RW Dpid 125=20"
    
    // Dpid 132 "Dpid 132 - 0" -> channel 32
    linkTuyaMCUOutputToChannel 132 val 32
    setChannelType 32 ReadOnly
    setChannelLabel 32 "RO Dpid 132=0"
    
    // Dpid 133 "Dpid 133 - 0" -> channel 33
    linkTuyaMCUOutputToChannel 133 val 33
    setChannelType 33 ReadOnly
    setChannelLabel 33 "RO Dpid 133=0"
    
    // Dpid 134 "Dpid 134 - 2" -> channel 34
    linkTuyaMCUOutputToChannel 134 val 34
    setChannelType 34 ReadOnly
    setChannelLabel 34 "RO Dpid 134=2"
    
    // Dpid 135 "Dpid 135 - 0" -> channel 35
    linkTuyaMCUOutputToChannel 135 val 35
    setChannelType 35 TextField
    setChannelLabel 35 "RW Dpid 135=0"
    
    // Dpid 105 "Dpid 105" -> channel 38
    linkTuyaMCUOutputToChannel 105 val 38
    setChannelType 38 ReadOnly
    setChannelLabel 38 "Dpid 105"
    
    // Dpid 106 "Dpid 106" -> channel 39
    linkTuyaMCUOutputToChannel 106 val 39
    setChannelType 39 ReadOnly
    setChannelLabel 39 "Dpid 106 - j....EwAAAAAAAAAAAA=="
    
    // Dpid 109 "Dpid 109" -> channel 40
    linkTuyaMCUOutputToChannel 109 val 40
    setChannelType 40 ReadOnly
    setChannelLabel 40 "Dpid 106 - AAA8"
    
    // every 10 seconds, request update from TuyaMCU
    addRepeatingEvent 10 -1 tuyaMcu_sendQueryState
    //tuyaMcu_sendQueryState
    
  • #4 21412434
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    Witam ponownie po kilku testach

    Czy da się zmienić parametr RAW_TAC2121C_VCP tak żeby pokazywał dodatkowo power factor i częstotliwość?
    Po przyjrzeniu się tematowi https://www.elektroda.pl/rtvforum/topic4059060.html
    widzę
    
    Info:TuyaMCU:ParseState: id 8 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 71 00 00 0F 09 29 00 01 B7 00 03 FC 00 00 00 03 E8 C3 32 65 
    

    że 03E8 - to na 99% Power Factor dla danej fazy
    a C332 - to jej częstotliwość
    I chciałem zapytać, czy po podłożeniu swojej konfiguracji i konfigu RF do dumpa BK7231N trzeba liczyć jakieś sumy kontrolne, czy powinno to ruszyć?
    Pozdrawiam
  • #5 21412448
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    Ilość typów kanałów poprawiłem, otwarcie Access Point zaraz wrzucę, sprawdzisz?

    Pakiet zaraz dodam.

    Added after 43 [seconds]:

    https://github.com/openshwprojects/OpenBK7231...mmit/e5e6a962ea2e4e3678b2fca3ab32f77d82eb4f57

    Added after 5 [minutes]:

    Taki parsing byś chciał? Musi być osobny typ pakietu bo nie mogę zmieniać starego bez psucia istniejących konfiguracji.
    Zrzut ekranu z edytora Visual Studio z otwartym plikiem kodu źródłowego C.
    Pomogłem? Kup mi kawę.
  • #6 21412534
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    >>21412448
    Reset WiFi działa teraz poprawnie:)
    Hmm parsing nie działa na .27 - dpID wygląda tak:
    
    Info:TuyaMCU:ParseState: id 8 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 72 00 00 0F 09 29 00 00 00 00 00 00 00 00 00 03 E8 C3 32 AF 
    

    Jako parsing mam wpisać "RAW_VCPPfF" ?
    Taki mam teraz autoexec
    
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 9600
    startDriver NTP
    ntp_timeZoneOfs 1 //optional
    tuyaMcu_sendCurTime //wysyła czas z TuyaMCU do MCU, bez tego jak zgubił czas to nie uaktualniał
    
    // This one is better than tuyaMcu_defWiFiState 4;  MQTTState 1 = WiFiState 4
    // issuing of tuyaMcu_defWiFiState 4 continues the script,
    // but doesnt report to MQTT since there is still no connection.
    // if you didn't setup MQTT connection then issue tuyaMcu_defWiFiState 4
    // and comment waitFor MQTTState 1
    
    // waitFor MQTTState 1
    tuyaMcu_defWiFiState 4
    
    // Main Relay - Dpid 16 "switch" -> Channel 1
    linkTuyaMCUOutputToChannel 16 bool 1
    setChannelType 1 toggle
    setChannelLabel 1 "Main power switch"
    
    // Total energy Used - Dpid 1 "Power Used" -> channel 4
    linkTuyaMCUOutputToChannel 1 val 4
    setChannelType 4 EnergyTotal_kWh_div100
    setChannelLabel 4 "Total Energy used"
    
    // Total Power Dpid 111 -> channel 3
    linkTuyaMCUOutputToChannel 111 val 3
    setChannelType 3 ReadOnly
    setChannelLabel 3 "Total Power W"
    
    // Fault - Dpid 9 "fault" -> channel 2
    linkTuyaMCUOutputToChannel 9 val 2
    setChannelType 2 Error
    setChannelLabel 2 "Fault (mapa bitów)"
    
    linkTuyaMCUOutputToChannel 8 RAW_VCPPfF 11
    setChannelType 11 Voltage_div10
    setChannelLabel 11 "Voltage C"
    setChannelType 12 Current_div1000
    setChannelLabel 12 "Current C"
    setChannelType 13 Power
    setChannelLabel 13 "Power C"
    setChannelType 14 PowerFactor_div1000
    setChannelLabel 14 "PowerFactor"
    setChannelType 15 Frequency_div100
    setChannelLabel 15 "Freq"
    
    // every 10 seconds, request update from TuyaMCU
    addRepeatingEvent 10 -1 tuyaMcu_sendQueryState
    //tuyaMcu_sendQueryState
    

    A może w v.27 jeszcze tego nie ma?
  • #7 21412638
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    Tego ze screena nie dałem na release, jeszcze testuję. Dopiero teraz wrzuciłem:
    https://github.com/openshwprojects/OpenBK7231...mmit/0b39365b54586f628e311f9cddf03b5f4643f9b9
    Zrzut ekranu z kodem źródłowym w edytorze Visual Studio.

    Widzę też, że chcesz do operacji Write z flashera potwierdzenie?
    Pomogłem? Kup mi kawę.
  • #8 21412724
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    >>21412638
    Tak we flasherze fajnie by było gdyby domyślnie się pytał, a np. można by było wyłączyć pytanie jak dla opcji przywróć flash. Uratowało by to mojego dumpa, nie mówię żeby to nie była moja wina bo ja tam kursor postawiłem:P.
    Z udogodnień to w oknie odczytu po wpisaniu nazwy pliku/(lub nie) mógłby działać enter jako potwierdzenie.

    Odnośnie dpID coś chyba mi umyka, bo nie zawsze mają tę samo długość. dpID 6,7,8 są VCP, ale nie zawsze mają tę samą długość - raz 19- raz 12, z dziwnych rzeczy pojawił mi się dpID 114 którego wcześniej nie widziałem. Dwa ostanie bajty na bank to częstotliwość, ale power factor przemieścił mi się z dpID 8 do dpID 114... W Web nie mają jednak żadnych wartości - wszystko jest na 0 gdy korzystam ze starych dpID 6,7,8.
    Coś dziwnego musiałem zrobić...
    Teraz dpID faz to 113,114,115 i są poprawne, tylko dla częstotliwości div1000 by się przydał, bo podaje ją 10x zawyżoną.

    
    Info:TuyaMCU:ParseState: id 127 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 0C 06 00 00 08 09 0D 00 00 00 00 00 00 39 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 19
    Info:TuyaMCU:ParseState: id 6 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 71 00 00 0F 09 0D 00 00 00 00 00 00 00 00 00 03 E8 C3 32 92 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 113 type 0-raw len 15
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 80 04 00 01 00 93 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 128 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 81 04 00 01 01 95 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 129 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 0C 07 00 00 08 09 0E 00 00 00 00 00 00 3B 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 19
    Info:TuyaMCU:ParseState: id 7 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 0C 08 00 00 08 09 0F 00 00 BF 00 00 0C 08 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 19
    Info:TuyaMCU:ParseState: id 8 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 72 00 00 0F 09 0E 00 00 00 00 00 00 00 00 00 03 E8 C3 32 94 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 114 type 0-raw len 15
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 73 00 00 0F 09 0F 00 00 BF 00 00 78 00 00 25 01 10 C3 32 18 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 115 type 0-raw len 15
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 6F 02 00 04 00 00 00 0C 92 
    ...
    Info:TuyaMCU:Received: 55 AA 03 07 00 0C 06 00 00 08 09 0E 00 00 00 00 00 00 3A 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 19
    Info:TuyaMCU:ParseState: id 6 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 71 00 00 0F 09 0E 00 00 00 00 00 00 00 00 00 03 E8 C3 5A BB 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 113 type 0-raw len 15
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 80 04 00 01 00 93 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 128 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 81 04 00 01 01 95 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 129 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 0C 07 00 00 08 09 0F 00 00 00 00 00 00 3C 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 19
    Info:TuyaMCU:ParseState: id 7 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 0C 08 00 00 08 09 0F 00 00 BE 00 00 0C 07 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 19
    Info:TuyaMCU:ParseState: id 8 type 0-raw len 8
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 72 00 00 0F 09 0F 00 00 00 00 00 00 00 00 00 03 E8 C3 5A BD 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 114 type 0-raw len 15
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 73 00 00 0F 09 0F 00 00 BE 00 00 78 00 00 25 01 10 C3 5A 3F 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 115 type 0-raw len 15
    
  • #9 21412762
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    Przecież w logu który dałeś widzę:
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 72 00 00 0F 09 0E 00 00 00 00 00 00 00 00 00 03 E8 C3 32 94 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 114 type 0-raw len 15
    Info:TuyaMCU:Received: 55 AA 03 07 00 13 73 00 00 0F 09 0F 00 00 BF 00 00 78 00 00 25 01 10 C3 32 18 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 26
    Info:TuyaMCU:ParseState: id 115 type 0-raw len 15
    

    dpID 114 i 115 mają długość 15, nie widzę by miały inną długość.
    113 tak samo.

    Jak wkleję do siebie do automatycznych testów:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    i postawię breakpointa, to widzę, że są parsowane:
    Zrzut ekranu z kodem źródłowym dla TuyaMCU.
    Zrzut ekranu kodu analizy danych z TuyaMCU, pokazujący sposób obliczania napięcia, prądu, mocy, współczynnika mocy i częstotliwości.
    Według mnie wygląda okej. Masz trzy dpID typu raw:
    - 113
    - 114
    - 115
    Każde z nich jest typu RAW_VCPPfF i zawiera kolejno Voltage, Current, Power, PowerFactor, Frequency.

    A czemu w swoim autoexec.bat masz dpID 8?
    Zrzut ekranu przedstawiający kod związany z TuyaMCU i konfiguracją kanałów.
    Na ten moment uważam, że powinieneś łapać dpID 113, 114 i 115, bo to pewnie są informacje dla każdej z faz.


    Ogólnie oni nie mają jednego standardu, jeśli RAW_VCPPfF będzie działać z 113, 114 i 115 to zignoruj 6, 7, 8 i tyle.

    Div1000 mogę dodać, chociaż przyznaję, że trochę niefortunnie wyszło z tym, co prawda dodanie tego dzielnika to jedno miejsce w tablicy, ale i tak, na etapie planowania tego nie znaliśmy TuyaMCU aż tak... niby jest alternatywny sposób, bo można przy mapowaniu pojedynczej zmiennej własny dzielnik dać, ale i tak..

    Added after 7 [minutes]:

    Przeczytałem posty jeszcze raz i wiem co się stało :D
    Nic się nie przemieściło. Tobie się przypadkowo źle skopiowało z logu tak, że połączyłeś dwa fragmenty wiadomości od róznych dpID w jeden i uznałeś, że to dpID 8.... Popatrz na zrzut ekranu:
    Zrzut ekranu TuyaMCU Explorer z danymi w formacie hex.
    Linijka pierwsza jest od poprzedniego pakietu, a linijka druga od kolejnego... stąd wrażenie, że dpID 8 było dłuższe.
    Pomogłem? Kup mi kawę.
  • #10 21412816
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    No ok zgadzam się, że aktualnie dpID 113,114,115 to szukane wartości, tylko czemu wcześniej się nie pojawiały?
    Po podstawieniu jako VCPPfF tych dpID wszystko zaczyna działać zgodnie z założeniami.
    Stare dpID 6,7,8 jako "skrócona" wersja też działa:D
    Muszę pomyśleć tylko jeszcze jak wyciągnąć wartości energii bo na razie pokazuje tylko zużytą.
    Na tę chwilę 90%funkcji i 100% użyteczności działa. Jak mnie najdzie spróbuję reszty poszukać.
    Dziękuję za niesamowite wsparcie deweloperskie:)
    Jak dodasz dzielnik daj znać.
    Poniżej obecny autoexec dla wersji z Frequency_div1000
    
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 9600
    startDriver NTP
    ntp_timeZoneOfs 1 //optional
    tuyaMcu_sendCurTime //wysyła czas z TuyaMCU do MCU, bez tego jak zgubił czas to nie uaktualniał
    
    // This one is better than tuyaMcu_defWiFiState 4;  MQTTState 1 = WiFiState 4
    // issuing of tuyaMcu_defWiFiState 4 continues the script,
    // but doesnt report to MQTT since there is still no connection.
    // if you didn't setup MQTT connection then issue tuyaMcu_defWiFiState 4
    // and comment waitFor MQTTState 1
    
    // waitFor MQTTState 1
    tuyaMcu_defWiFiState 4
    
    // Main Relay - Dpid 16 "switch" -> Channel 1
    linkTuyaMCUOutputToChannel 16 bool 1
    setChannelType 1 toggle
    setChannelLabel 1 "Main power switch"
    
    // Total energy Used - Dpid 1 "Power Used" -> channel 4
    linkTuyaMCUOutputToChannel 1 val 4
    setChannelType 4 EnergyTotal_kWh_div100
    setChannelLabel 4 "Total Energy used"
    
    // Total Power Dpid 111 -> channel 3
    linkTuyaMCUOutputToChannel 111 val 3
    setChannelType 3 ReadOnly
    setChannelLabel 3 "Total Power W"
    
    // Fault - Dpid 9 "fault" -> channel 2
    linkTuyaMCUOutputToChannel 9 val 2
    setChannelType 2 Error
    setChannelLabel 2 "Fault (mapa bitów)"
    
    //------------------------------------------------------------
    // dpID short Voltage Current Power IDs can be used alternative full VCPPfF IDs 113,114,115
    // linkTuyaMCUOutputToChannel 6 RAW_TAC2121C_VCP 5
    // setChannelType 5 Voltage_div10
    // setChannelLabel 5 "Voltage A"
    // setChannelType 6 Current_div1000
    // setChannelLabel 6 "Current A"
    // setChannelType 7 Power
    // setChannelLabel 7 "Power A"
    //
    // linkTuyaMCUOutputToChannel 7 RAW_TAC2121C_VCP 8
    // setChannelType 8 Voltage_div10
    // setChannelLabel 8 "Voltage B"
    // setChannelType 9 Current_div1000
    // setChannelLabel 9 "Current B"
    // setChannelType 10 Power
    // setChannelLabel 10 "Power B"
    //
    // linkTuyaMCUOutputToChannel 8 RAW_TAC2121C_VCP 11
    // setChannelType 11 Voltage_div10
    // setChannelLabel 11 "Voltage C"
    // setChannelType 12 Current_div1000
    // setChannelLabel 12 "Current C"
    // setChannelType 13 Power
    // setChannelLabel 13 "Power C"
    // -------------------------------------------------------------
    linkTuyaMCUOutputToChannel 113 RAW_VCPPfF 5
    setChannelType 5 Voltage_div10
    setChannelLabel 5 "Voltage A"
    setChannelType 6 Current_div1000
    setChannelLabel 6 "Current A"
    setChannelType 7 Power_div10
    setChannelLabel 7 "Power A"
    setChannelType 8 PowerFactor_div1000
    setChannelLabel 8 "PowerFactor A"
    setChannelType 9 Frequency_div1000
    setChannelLabel 9 "Frequency A"
    
    linkTuyaMCUOutputToChannel 114 RAW_VCPPfF 10
    setChannelType 10 Voltage_div10
    setChannelLabel 10 "Voltage B"
    setChannelType 11 Current_div1000
    setChannelLabel 11 "Current B"
    setChannelType 12 Power_div10
    setChannelLabel 12 "Power B"
    setChannelType 13 PowerFactor_div1000
    setChannelLabel 13 "PowerFactor B"
    setChannelType 14 Frequency_div1000
    setChannelLabel 14 "Frequency B"
    
    linkTuyaMCUOutputToChannel 115 RAW_VCPPfF 15
    setChannelType 15 Voltage_div10
    setChannelLabel 15 "Voltage C"
    setChannelType 16 Current_div1000
    setChannelLabel 16 "Current C"
    setChannelType 17 Power_div10
    setChannelLabel 17 "Power C"
    setChannelType 18 PowerFactor_div1000
    setChannelLabel 18 "PowerFactor C"
    setChannelType 19 Frequency_div1000
    setChannelLabel 19 "Frequency C"
    
    // Leakage tripping - Dpid 15 "leakage_tripping" -> channel 20
    linkTuyaMCUOutputToChannel 15 val 20
    setChannelType 20 ReadOnly
    setChannelLabel 20 "Earth Leakage value [mA]"
    
    // Device temperature - Dpid 103 "Device temperature" -> channel 21
    linkTuyaMCUOutputToChannel 103 val 21
    setChannelType 21 Temperature
    setChannelLabel 21 "Device temperature [C]"
    
    // Alarm temperature - Dpid 118 "Power Factor L1" -> channel 22
    linkTuyaMCUOutputToChannel 118 val 22
    setChannelType 22 PowerFactor_div1000
    setChannelLabel 22 "Power Factor L1"
    
    //Delay to switch off by Under/Over Voltage - Dpid 123 "Delay to switch off by Under/Over Voltage" -> channel 23
    linkTuyaMCUOutputToChannel 123 val 23
    setChannelType 23 TextField
    setChannelLabel 23 "Delay to switch off by Under/Over Voltage"
    
    // Bad Voltage recovery time - Dpid 120 "Bad Voltage Recovery Time" -> channel 24
    linkTuyaMCUOutputToChannel 120 val 24
    setChannelType 24 TextField
    setChannelLabel 24 "Set recovery time from bad Voltage [s]"
    
    // Delay to switch off by Under/Over Current- Dpid 124 "Delay to switch off by Under/Over Current" -> channel 25
    linkTuyaMCUOutputToChannel 124 val 25
    setChannelType 25 TextField
    setChannelLabel 25 "Delay to switch off by Under/Over Current"
    
    // Recovery time from Under/Over current - Dpid 121 "Recovery time from under/over current" -> channel 26
    linkTuyaMCUOutputToChannel 121 val 26
    setChannelType 26 TextField
    setChannelLabel 26 "Set recovery time from under/over current"
    
    // Dpid 127 "Dpid 127 - 0" -> channel 27
    linkTuyaMCUOutputToChannel 127 val 27
    setChannelType 27 ReadOnly
    setChannelLabel 27 "Is Load on L1/A (1=yes/0=no)"
    
    // Dpid 128 "Dpid 128 - 0" -> channel 28
    linkTuyaMCUOutputToChannel 128 val 28
    setChannelType 28 ReadOnly
    setChannelLabel 28 "Is Load on L2/B (1=yes/0=no)"
    
    // Dpid 129 "Dpid 129 - 0" -> channel 29
    linkTuyaMCUOutputToChannel 129 val 29
    setChannelType 29 ReadOnly
    setChannelLabel 29 "Is Load on L3/C (1=yes/0=no)"
    
    // Dpid 131 "Dpid 131 - 0" -> channel 30
    linkTuyaMCUOutputToChannel 131 val 30
    setChannelType 30 ReadOnly
    setChannelLabel 30 "How many times OverCurrent has triggered RO Dpid 131=0"
    
    // Dpid 136 "Dpid 136 - 1" -> channel 31
    linkTuyaMCUOutputToChannel 136 val 31
    setChannelType 31 TextField
    setChannelLabel 31 "Readed Voltage multiplier RW Dpid 136=1"
    
    // Dpid 137 "Dpid 137 - 1" -> channel 32
    linkTuyaMCUOutputToChannel 137 val 32
    setChannelType 32 TextField
    setChannelLabel 32 "Readed Current multiplier RW Dpid 137=1"
    
    // ______________________________________________ACCEPTED_________TILL_____THIS___LINE
    //  Dpid 12 "Dpid 12 - 1" -> channel 33
    linkTuyaMCUOutputToChannel 12 val 33
    setChannelType 33 ReadOnly
    setChannelLabel 33 "RO Dpid 12=1"
    
    // Dpid 13 "Dpid 13 - 1" -> channel 34
    linkTuyaMCUOutputToChannel 13 val 34
    setChannelType 34 ReadOnly
    setChannelLabel 34 "RO Dpid 13=1"
    
    // Dpid 102 "Dpid 102 - 30" -> channel 35
    linkTuyaMCUOutputToChannel 102 val 35
    setChannelType 35 TextField
    setChannelLabel 35 "RW Dpid 102=30"
    
    // Dpid 104 "Dpid 104 - 1" -> channel 36
    linkTuyaMCUOutputToChannel 104 val 36
    setChannelType 36 ReadOnly
    setChannelLabel 36 "RO Dpid 104=1"
    
    // Dpid 112 "Dpid 112 - 0" -> channel 37
    linkTuyaMCUOutputToChannel 112 val 37
    setChannelType 37 ReadOnly
    setChannelLabel 37 "RO Dpid 112=0"
    
    // Dpid 122 "Dpid 122 - 20" -> channel 38
    linkTuyaMCUOutputToChannel 122 val 38
    setChannelType 38 TextField
    setChannelLabel 38 "RW Dpid 122=20"
    
    // "Dpid 125-20" -> channel 39
    linkTuyaMCUOutputToChannel 125 val 39
    setChannelType 39 TextField
    setChannelLabel 39 "RW Dpid 125=20"
    
    // Dpid 132 "Dpid 132 - 0" -> channel 40
    linkTuyaMCUOutputToChannel 132 val 40
    setChannelType 40 ReadOnly
    setChannelLabel 40 "RO Dpid 132=0"
    
    // Dpid 133 "Dpid 133 - 0" -> channel 41
    linkTuyaMCUOutputToChannel 133 val 41
    setChannelType 41 ReadOnly
    setChannelLabel 41 "RO Dpid 133=0"
    
    // Dpid 134 "Dpid 134 - 2" -> channel 42
    linkTuyaMCUOutputToChannel 134 val 42
    setChannelType 42 ReadOnly
    setChannelLabel 42 "RO Dpid 134=2"
    
    // Dpid 135 "Dpid 135 - 0" -> channel 43
    linkTuyaMCUOutputToChannel 135 val 43
    setChannelType 43 TextField
    setChannelLabel 43 "RW Dpid 135=0"
    
    // Dpid 105 "Dpid 105" -> channel 44
    linkTuyaMCUOutputToChannel 105 val 44
    setChannelType 44 ReadOnly
    setChannelLabel 44 "Dpid 105"
    
    // Dpid 106 "Dpid 106" -> channel 45
    linkTuyaMCUOutputToChannel 106 val 45
    setChannelType 45 ReadOnly
    setChannelLabel 45 "Dpid 106 - j....EwAAAAAAAAAAAA=="
    
    // Dpid 109 "Dpid 109" -> channel 46
    linkTuyaMCUOutputToChannel 109 val 46
    setChannelType 46 ReadOnly
    setChannelLabel 46 "Dpid 106 - AAA8"
    
    // every 10 seconds, request update from TuyaMCU
    addRepeatingEvent 10 -1 tuyaMcu_sendQueryState
    //tuyaMcu_sendQueryState
    

    Miłego wieczoru!
  • #11 21413424
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    Te tuyaMcu_sendCurTime powinieneś przenieść na koniec skryptu i przed nim dodać może jakiś delay albo waitFor, np:
    
    waitFor NTPState 1
    tuyaMcu_sendCurTime 
    

    bo inaczej czas się wyśle zanim się pobierze z NTP.

    Dodałem typ dla częstotliwości:
    Interfejs użytkownika z informacjami diagnostycznymi urządzenia WinTest_3145CAFF.
    Pomogłem? Kup mi kawę.
  • #12 21413470
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    Dziękuję
    Zmieniłem zgodnie z zaleceniami, są prawidłowe odczyty częstotliwości oraz power factor.
    Panel kontrolny z włączonym głównym przełącznikiem mocy, wyświetlający dane o zużyciu energii i parametrów elektrycznych.
    Miłego dnia!
    PS. Jak prawidłowo zadeklarować dpID błędu/stanu widać że dane normalnie mają 5 bajtów:
    09 05 00 01 00 - ale są czytane jako 0 u mnie.
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 05 00 01 00 1D - normal state
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 9 type 5-bitmap len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:GEN:No change in channel 2 (still set to 0) - ignoring
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 04 00 23 - overvoltage
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 13
    Info:TuyaMCU:ParseState: id 9 type 5-bitmap len 2
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 08 00 27 - undervoltage
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 13
    Info:TuyaMCU:ParseState: id 9 type 5-bitmap len 2
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 01 00 20 - overcurrent
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 13
    Info:TuyaMCU:ParseState: id 9 type 5-bitmap len 2
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 01 00 20 
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 13
    Info:TuyaMCU:ParseState: id 9 type 5-bitmap len 2
    


    Rozszyfrowałem kolejnie dpID
    110 - energia wyprodukowana
    17 - zawiera ustawiony prąd upływu
    18 - zawiera ustawiony prąd maksymalny, napięcie maksymalne, napięcie minimalne.
    Zrzut ekranu przedstawiający dane z procesu TuyaMCU.
    
    id 17 type 0-raw len 8
    Info:TuyaMCU:Received:  55 AA 03 07 00 0C 11 00 00 08 05 01 00 55 04 00 00 1B A8													
    id 18 type 0-raw len 20
    Info:TuyaMCU:Received: 55 AA 03 07 00 18 12 00 00 14 01 01 02 58 03 01 01 13 04 01 00 3F 02 00 00 14 05 00 00 00 1A 
    

    Tylko jak to obsłużyć...
    Mam pytanie czy da się zwiększyć wielkość bufora loga, lub ustawić żeby się zapisywał do pliku, bo przy tulu pidach brakuje okna i nie wyświetla większości...
    A konkretnie po zdefiniowaniu dpID w logu już nie pojawiają się niektóre dpID mimo, że są odczytywane do html.

    Aktualny setup, wyłączone nieznane dpID, zdublowane, uporzadkowane "logicznie".
    Jest odczyt napięcia, nateżenia prądu, mocy, częstotliwości, współczynnika mocy,
    dla wszytkich 3 faz, widoczny prąd upływu, temperatura urządzenia, energia pobrana, energia wyprodukowana, Możliwe jest ustawienie niktórych parametrów zdalnie. DpID dla pozostałych są odnalezione ale nie umiem ich wprowadzić, aby wyświetliły sie w panelu. dpID117 prawdopodobnie odpowiada za harmonogram /nie mam jak tego sprawdzić/. Ta wersja działa całkiem stabilnie...
    
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 9600
    startDriver NTP
    ntp_timeZoneOfs 1 //optional
    tuyaMcu_sendCurTime //wysyła czas z TuyaMCU do MCU, bez tego jak zgubił czas to nie uaktualniał
    
    // This one is better than tuyaMcu_defWiFiState 4;  MQTTState 1 = WiFiState 4
    // issuing of tuyaMcu_defWiFiState 4 continues the script,
    // but doesnt report to MQTT since there is still no connection.
    // if you didn't setup MQTT connection then issue tuyaMcu_defWiFiState 4
    // and comment waitFor MQTTState 1
    
    // waitFor MQTTState 1
    tuyaMcu_defWiFiState 4
    
    // Main Relay - Dpid 16 "switch" -> Channel 1
    linkTuyaMCUOutputToChannel 16 bool 1
    setChannelType 1 toggle
    setChannelLabel 1 "Main power switch"
    
    // Total energy Used - Dpid 1 "Energy Used" -> channel 2
    linkTuyaMCUOutputToChannel 1 val 2
    setChannelType 2 EnergyTotal_kWh_div100
    setChannelLabel 2 "Total Energy used"
    
    // Dpid 110 "Dpid 110" Energy Produced-> channel 3
    linkTuyaMCUOutputToChannel 110 val 3
    setChannelType 3 EnergyTotal_kWh_div100
    setChannelLabel 3 "Produced Energy kWh"
    
    // Total Power Dpid 111 -> channel 4
    linkTuyaMCUOutputToChannel 111 val 4
    setChannelType 4 ReadOnly
    setChannelLabel 4 "Total Connected Power W"
    
    // Fault - Dpid 9 "fault" -> channel 5
    linkTuyaMCUOutputToChannel 9 BITMAP 5
    setChannelType 5 ReadOnly
    setChannelLabel 5 "Fault (mapa bitów)"
    
    //------------------------------------------------------------
    // dpID short Voltage Current Power IDs can be used alternative full VCPPfF IDs 113,114,115
    // linkTuyaMCUOutputToChannel 6 RAW_TAC2121C_VCP 7
    // setChannelType 7 Voltage_div10
    // setChannelLabel 7 "Voltage A"
    // setChannelType 8 Current_div1000
    // setChannelLabel 8 "Current A"
    // setChannelType 9 Power
    // setChannelLabel 9 "Power A"
    //
    // linkTuyaMCUOutputToChannel 7 RAW_TAC2121C_VCP 10
    // setChannelType 10 Voltage_div10
    // setChannelLabel 10 "Voltage B"
    // setChannelType 11 Current_div1000
    // setChannelLabel 11 "Current B"
    // setChannelType 12 Power
    // setChannelLabel 12 "Power B"
    //
    // linkTuyaMCUOutputToChannel 8 RAW_TAC2121C_VCP 13
    // setChannelType 13 Voltage_div10
    // setChannelLabel 13 "Voltage C"
    // setChannelType 14 Current_div1000
    // setChannelLabel 14 "Current C"
    // setChannelType 15 Power
    // setChannelLabel 15 "Power C"
    // -------------------------------------------------------------
    linkTuyaMCUOutputToChannel 113 RAW_VCPPfF 7
    setChannelType 7 Voltage_div10
    setChannelLabel 7 "Voltage L1"
    setChannelType 8 Current_div1000
    setChannelLabel 8 "Current L1"
    setChannelType 9 Power_div10
    setChannelLabel 9 "Power L1"
    setChannelType 10 PowerFactor_div1000
    setChannelLabel 10 "PowerFactor L1"
    setChannelType 11 Frequency_div1000
    setChannelLabel 11 "Frequency L1"
    
    linkTuyaMCUOutputToChannel 114 RAW_VCPPfF 12
    setChannelType 12 Voltage_div10
    setChannelLabel 12 "Voltage L2"
    setChannelType 13 Current_div1000
    setChannelLabel 13 "Current L2"
    setChannelType 14 Power_div10
    setChannelLabel 14 "Power L2"
    setChannelType 15 PowerFactor_div1000
    setChannelLabel 15 "PowerFactor L2"
    setChannelType 16 Frequency_div1000
    setChannelLabel 16 "Frequency L2"
    
    linkTuyaMCUOutputToChannel 115 RAW_VCPPfF 17
    setChannelType 17 Voltage_div10
    setChannelLabel 17 "Voltage L3"
    setChannelType 18 Current_div1000
    setChannelLabel 18 "Current L3"
    setChannelType 19 Power_div10
    setChannelLabel 19 "Power L3"
    setChannelType 20 PowerFactor_div1000
    setChannelLabel 20 "PowerFactor L3"
    setChannelType 21 Frequency_div1000
    setChannelLabel 21 "Frequency L3"
    
    // Leakage tripping - Dpid 15 "leakage_tripping" -> channel 23
    linkTuyaMCUOutputToChannel 15 val 23
    setChannelType 23 ReadOnly
    setChannelLabel 23 "Earth Leakage value [mA]"
    
    // Dpid 17 "Dpid 17" -> channel 24
    linkTuyaMCUOutputToChannel 17 RAW 24
    setChannelType 24 ReadOnly
    setChannelLabel 24 "SETUP Alarm Temp / Leakage Current dpID17"
    
    // Device temperature - Dpid 103 "Device temperature" -> channel 25
    linkTuyaMCUOutputToChannel 103 val 25
    setChannelType 25 Temperature
    setChannelLabel 25 "Device temperature [C]"
    
    // Alarm temperature - Dpid 118 "Power Factor L1" -> channel 26
    // linkTuyaMCUOutputToChannel 118 val 26
    // setChannelType 26 PowerFactor_div1000
    // setChannelLabel 26 "Power Factor L1"
    
    // Dpid 18 "Dpid 18" -> channel 27
    linkTuyaMCUOutputToChannel 18 RAW 27
    setChannelType 27 ReadOnly
    setChannelLabel 27 "SETUP Dpid 18 SETUP_MaxP_MaxU_Min_U"
    
    //Delay to switch off by Under/Over Voltage - Dpid 123 "Delay to switch off by Under/Over Voltage" -> channel 31
    linkTuyaMCUOutputToChannel 123 val 31
    setChannelType 31 TextField
    setChannelLabel 31 "SETUP Delay to switch off by Under/Over Voltage"
    
    // Bad Voltage recovery time - Dpid 120 "Bad Voltage Recovery Time" -> channel 32
    linkTuyaMCUOutputToChannel 120 val 32
    setChannelType 32 TextField
    setChannelLabel 32 "SETUP recovery time from bad Voltage [s]"
    
    // Delay to switch off by Under/Over Current- Dpid 124 "Delay to switch off by Under/Over Current" -> channel 33
    linkTuyaMCUOutputToChannel 124 val 33
    setChannelType 33 TextField
    setChannelLabel 33 "SETUP to switch off by Under/Over Current"
    
    // Recovery time from Under/Over current - Dpid 121 "Recovery time from under/over current" -> channel 34
    linkTuyaMCUOutputToChannel 121 val 34
    setChannelType 34 TextField
    setChannelLabel 34 "SETUP recovery time from under/over current"
    
    // Dpid 131 "Dpid 131 - 0" -> channel 35
    linkTuyaMCUOutputToChannel 131 val 35
    setChannelType 35 ReadOnly
    setChannelLabel 35 "How many times OverCurrent has triggered since startup"
    
    // Dpid 127 "Dpid 127 - 0" -> channel 36
    // linkTuyaMCUOutputToChannel 127 val 36
    // setChannelType 36 ReadOnly
    // setChannelLabel 36 "Is Load on L1/A (1=yes/0=no)"
    
    // Dpid 128 "Dpid 128 - 0" -> channel 37
    // linkTuyaMCUOutputToChannel 128 val 37
    // setChannelType 37 ReadOnly
    // setChannelLabel 37 "Is Load on L2/B (1=yes/0=no)"
    
    // Dpid 129 "Dpid 129 - 0" -> channel 38
    // linkTuyaMCUOutputToChannel 129 val 38
    // setChannelType 38 ReadOnly
    // setChannelLabel 38 "Is Load on L3/C (1=yes/0=no)"
    
    // Dpid 136 "Dpid 136 - 1" -> channel 39 - for tests only
    // linkTuyaMCUOutputToChannel 136 val 39
    // setChannelType 39 TextField
    // setChannelLabel 39 "SETUP Voltage multiplier RW Dpid 136=1"
    
    // Dpid 137 "Dpid 137 - 1" -> channel 40 - for tests only
    // linkTuyaMCUOutputToChannel 137 val 40
    // setChannelType 40 TextField
    // setChannelLabel 40 "SETUP Current multiplier RW Dpid 137=1"
    
    // ______________________________________________ACCEPTED_________TILL_____THIS___LINE
    //  Dpid 12 "Dpid 12 - 1" -> channel 43
    // linkTuyaMCUOutputToChannel 12 val 43
    // setChannelType 43 ReadOnly
    // setChannelLabel 43 "RO Dpid 12=1"
    
    // Dpid 13 "Dpid 13 - 1" -> channel 44
    // linkTuyaMCUOutputToChannel 13 val 44
    // setChannelType 44 ReadOnly
    // setChannelLabel 44 "RO Dpid 13=1"
    
    // Dpid 102 "Dpid 102 - 30" -> channel 45 -  recovery time from Imbalance 3Phase V/C?
    // linkTuyaMCUOutputToChannel 102 val 45
    // setChannelType 45 TextField
    // setChannelLabel 45 "RW Dpid 102=30"
    
    // Dpid 104 "Dpid 104 - 1" -> channel 46
    // linkTuyaMCUOutputToChannel 104 val 46
    // setChannelType 46 ReadOnly
    //  setChannelLabel 46 "RO Dpid 104=1"
    
    // Dpid 112 "Dpid 112 - 0" -> channel 47
    // linkTuyaMCUOutputToChannel 112 val 47
    // setChannelType 47 ReadOnly
    // setChannelLabel 47 "RO Dpid 112=0"
    
    // Dpid 122 "Dpid 122 - 20" -> channel 48  - Imbalance 3Phase V/C in %?
    // linkTuyaMCUOutputToChannel 122 val 48
    // setChannelType 48 TextField
    // setChannelLabel 48 "RW Dpid 122=20"
    
    // "Dpid 125-20" -> channel 49 - Imbalance 3Phase V/C in %?
    // linkTuyaMCUOutputToChannel 125 val 49
    // setChannelType 49 TextField
    // setChannelLabel 49 "RW Dpid 125=20"
    
    // Dpid 132 "Dpid 132 - 0" -> channel 50
    // linkTuyaMCUOutputToChannel 132 val 50
    // setChannelType 50 ReadOnly
    // setChannelLabel 50 "RO Dpid 132=0"
    
    // Dpid 133 "Dpid 133 - 0" -> channel 51
    // linkTuyaMCUOutputToChannel 133 val 51
    // setChannelType 51 ReadOnly
    // setChannelLabel 51 "RO Dpid 133=0"
    
    // Dpid 134 "Dpid 134 - 2" -> channel 52
    // linkTuyaMCUOutputToChannel 134 val 52
    // setChannelType 52 ReadOnly
    // setChannelLabel 52 "RO Dpid 134=2"
    
    // Dpid 135 "Dpid 135 - 0" -> channel 53
    // linkTuyaMCUOutputToChannel 135 val 53
    // setChannelType 53 TextField
    // setChannelLabel 53 "RW Dpid 135=0"
    
    // Dpid 105 "Dpid 105" -> channel 54
    // linkTuyaMCUOutputToChannel 105 val 54
    // setChannelType 54 ReadOnly
    // setChannelLabel 54 "Dpid 105"
    
    // Dpid 106 "Dpid 106" -> channel 55
    // linkTuyaMCUOutputToChannel 106 val 55
    // setChannelType 55 ReadOnly
    // setChannelLabel 55 "Dpid 106 - j....EwAAAAAAAAAAAA=="
    
    // Dpid 109 "Dpid 109" -> channel 56
    // linkTuyaMCUOutputToChannel 109 val 56
    // setChannelType 56 ReadOnly
    // setChannelLabel 56 "Dpid 106 - AAA8"
    
    // Dpid 109 "Dpid 117" -> channel 57
    linkTuyaMCUOutputToChannel 117 RAW 57
    setChannelType 57 ReadOnly
    setChannelLabel 57 "Dpid 117"
    
    // every 10 seconds, request update from TuyaMCU
    addRepeatingEvent 10 -1 tuyaMcu_sendQueryState
    //tuyaMcu_sendQueryState
    
  • #13 21414494
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    Nie musisz zapisywać do pliku, masz do tego flagę:
    Screenshot przedstawiający ustawienia flag w interfejsie sterowania dla TOMPD-63-WIFI.
    Jak ją załączysz, to odebrane od tej pory dane są pamiętane i możesz je podejrzeć tak:
    
    http://192.168.0.170/cm?cmnd=dps
    


    Flagi i wartości raw można w tej chwili albo jedynie oprogramować w C, albo przez REST API, tak jak tutaj:
    Alternatywna strona HTML sterowania dla TOMPD-63-WIFI

    ale jak chcesz to mogę pomyśleć o jeszcze innym rozwiązaniu, a ta bitmapa faults ma być tylko do odczytu?
    Pomogłem? Kup mi kawę.
  • #14 21414555
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    Dzięki za informacje
    Rozszyfrowałem sterowanie alarmami, służą do tego dpID17 i dpID18
    występuje tam jeden bajt NR. alarmu, jeden bajt -czy aktywny i dwu-bajtowa wartość danej zmiennej - widać o co chodzi na obrazku
    Wyświetlacz kodów błędów TuyaMCU z informacjami o alarmach i stanach.
    Natomiast wartości błędów które przyszły mi do głowy są następujące
    brakuje niezbalansowania 3F dla prądu i napięcia - jak wymyślę jak je zrobić to dorzucę (miernik podczas startu jakoś sprawdza czy ma na wejściach 1 fazę czy 3). Z tego co widzę jest jeszcze 2 nieaktywne alarmy (oprócz 3Fazowych) ale nie mam pomysłu co robią. Próbowałem z częstotliwością i jedyne co wykryłem to że programista wykluczył częstotliwość powyżej 65Hz w protokole Tuya i zlicza Hz od nowa (na LCD miernika jest pokazywana dobrze).
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 04 00 23 - overvoltage
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 08 00 27 - undervoltage
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 01 00 20 - overcurrent
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 05 00 01 08 25 - electrity leak
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 05 00 01 10 2D - over heat
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 05 00 01 00 1D - Normal state
    

    Z tego co widzę to nie mogę zapisać do mapy niczego innego więc jest ona tylko do odczytu (wymuszać stanu też się nie da).
    Ustawienia alarmów w takim razie będę musiał jakoś w html sklecić - ale programista ze mnie żaden:P
    Dzięki za podpowiedź z zapisem danych. Przetestuję.
  • #15 21414678
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    O ile te alarmy są dość standardowe to ja mogę przygotować na to dodatkową komendę. Czy one są zgodne z tym tematem?
    https://www.elektroda.pl/rtvforum/topic4101799.html
    Wyszukaj tam "dpID 17"...
    Tam było:
    
    55 AA	00	06		00 14	120000100101003F03000118040000A00801000A	4F	
    HEADER	VER=00	SetDP		LEN	dpId=18 Raw V=01 01 00 3F 03 00 01 18 04 00 00 A0 08 01 00 0A		CHK	
    

    Czyli mówisz, że to jest:
    - id alarmu (bajt)
    - stan alarmu (bajt) 1 lub 0
    - wartość progu (2 bajty)
    i tak N razy?
    czyli tutaj:
    01 01 00 3F - id 01, stan 01, wartość 003F
    03 00 01 18 - id 03, stan 00, wartość 0118
    04 00 00 A0 - id 04, stan 00, wartość 00A0
    08 01 00 0A - id 08, stan 01, wartość 000A

    Jeśli taki format się powtarza, to bym mógł dopisać jakąś komendę która automatycznie tworzy gui dla tych alarmów...
    Pomogłem? Kup mi kawę.
  • #16 21415062
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    >>21414678
    Tak format USTAWIENIA alarmu się powtarza, z tym że w nim dpID18 jest krótsze o jeden alarm a dpID17 dłuższe o jeden alarm.
    W jego przypadku dpID18 pokrywa się włącznie z ID ustawienia alarmu 01 - prąd maksymalny, 02 - napięcie maksymalne,
    04 - napięcie minimalne, 08 - nie wiem co w nim znaczy.
    w dpID 17 zmieniona jest pozycja ale id alarmów też z grubsza się pokrywają, 05- alarm temperatury, 04- alarm LE,
    Także format ustawienia alarmów jest taki sam, długość jest różna. Być może różnica jest z powodu opcji prepaid - którą się nie chwalą w moim urządzeniu.
    Bardzo podobnie tez to wygląda w eampdw63

    Co do błędów natomiast nie widzę u niego tego za wiele, normalna operacja jak w moim, jeden dodatkowy błąd wychwycony
    
    55 AA 03 07 00 06 09 05 00 >02< 80 00 9F- prepaid off balance
    
    Z tego co widzę dpID9 błąd podaje nr. zestawu ustawień alarmu z którego błąd pochodzi.
    
    Chociaż trochę ich brakuje->
    fault	Bitmap	{
      "label": [
        "short_circuit_alarm",
        "surge_alarm",
        "overload_alarm",
        "leakagecurr_alarm",
        "temp_dif_fault",
        "fire_alarm",
        "high_power_alarm",
        "self_test_alarm",
        "ov_cr",
        "unbalance_alarm",
        "ov_vol",
        "undervoltage_alarm",
        "miss_phase_alarm",
        "outage_alarm",
        "magnetism_alarm",
        "credit_alarm",
        "no_balance_alarm"
      ]
    

    PS. Mimo że mój licznik/przekaźnik nie posiada portu RS485 wyprowadzonego, to posiada ustawienia w samym menu odnośnie ich konfiguracji.
    PS2. jest jakiś błąd w wysyłce poleceń tuyaMcu_sendCmd (prawdopodobnie CHK):
    
    tuyaMcu_sendCmd 0x06 140101026203010109040100A00201001405000000 - nie wysyła poprawnie (nie zapisuje) mimo pojawienia się ok. że komenda poszła
    Po przeliczeniu działa i zapisuje ustawienia (jest zwrotka z MCU)														uartSendHex 55AA00060018120000140101026203010109040100A0020100140500000078
    

    PS3.
    Częstotliwość podawana na fazach L2 i L3 - to kopia z L1:/
    Dodatkowe 2 alarmy.
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 02 00 21 - |-UbL - natężenie prądu 3F niezbalansowane
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 10 00 2F - brak 1 fazy
    
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 04 00 23 - overvoltage
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 08 00 27 - undervoltage
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 02 01 00 20 - overcurrent
    Info:TuyaMCU:Received: 55 AA 03 07 00 06 09 05 00 >02< 80 00 9F- prepaid off balance
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 05 00 01 08 25 - electrity leak
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 05 00 01 10 2D - over heat
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 05 00 01 00 1D - Normal state
    		55 AA 03 07 00 08 09 05 00 04 00 02 00 00 25 - Sequence 3Phase (Rotation)
    		55 AA 03 07 00 08 09 05 00 04 00 08 00 00 2B - UnderCurrent 00080000
    		55 AA 03 07 00 08 09 05 00 04 00 04 00 00 27 - Imblalance 3Phase Voltage
    

    z dpID18 alarm 02 odpowiada za niezbalansowanie prądu ( i wartość jest w % podawana domyślnie 20 0-100), alarm 05 - odpowiada za brak fazy nie posiada wartości jedynie da się ustawić aktywność, wpisane wartości ignoruje).
  • #17 21458506
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    Witam
    Działający dump firmware, oraz plik html umożliwiający konfigurację ustawień, wyświetlenie błędów i podgląd, do działania wymagana flaga "SetFlag 46 1" w autoexec , oraz wpisanie IP własnego urządzenia w pliku.
    Plik powinien zostać zoptymalizowany przez kogoś kto umie programować, na pewno da się ograniczyć jego wielkość (ja zacząłem od pliku TOMPD-63 WIFI, jednak potem zmieniłem strategię budowy na bardziej "leniwą", w oryginale ukrywane są pojedyncze id co jest bardzo pracochłonne i łatwo o błąd. Ja stwierdziłem że łatwiej całe tabele ukrywać. Dodane są też wodotryski takie jak sprawdzanie stany checkboxó i wymuszanie pokazywania opcji prepaid kiedy są potrzebne. Dodane są także sprawdzenia do problematycznych dpID czy istnieją - oryginalny skrypt na którym bazowałem ich nie miał - zwracam na to uwagę bo bez sprawdzeń plik nie komunikuje, że coś nie działa - widać to w konsoli przeglądarki Firefox F12, jeśli pojawiają się tam błędy to plik nie będzie działał poprawnie!
    Pliczek przystosowany oczywiście do mierników 3Fazowych,EAEMP3C-10...rev109C.7z (9.82 kB)Musisz być zalogowany, aby pobrać ten załącznik. OpenBK7231...IO_Earu.7z (990.64 kB)Musisz być zalogowany, aby pobrać ten załącznik.
  • #18 21541915
    michal23dark
    Poziom 2  
    Posty: 3
    Witam,
    Jestem tutaj nowy. Po przeczytaniu wątku zakupiłem urządzenie EARU EAEMP3C-100-TY-W, które po rozkręceniu wygląda dokładnie tak samo jak halinka1125. Jako, że nie jestem zwolennikiem projektu TUYA, po dostaniu się do CB3S zrobiłem flash na openbeken 1.18.99. O ile ze zmianą firmware’u nie było żadnych problemów o tyle po wykonaniu komend:
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 9600
    startDriver NTP
    tuyaMcu_defWiFiState 4

    dostaje w kółko:
    ExtraDebug:TuyaMCU:TuyaMCU heartbeat_valid = 0, product_information_valid=0, self_processing_mode = 1, wifi_state_valid = 0, wifi_state_timer=0
    ExtraDebug:TuyaMCU:TuyaMCU heartbeat_valid = 0, product_information_valid=0, self_processing_mode = 1, wifi_state_valid = 0, wifi_state_timer=0

    Tak jakby nie było łączności z TuyaMCU. Urządzenie z modułem sieciowym oraz bez modułu sieciowego pracuje poprawnie – wyświetlacz wskazuje poprawne wartości, przyciski działają.
    Wgranie dumpa firmware’a halinka1125 powoduje brak trypu AP mode i nie wiem za bardzo jak się do urządzenia dostać. Natomiast próbowałem wgrać oryginalny firmware z backupu i niestety mam z tym problem:
    Writing sector 0x1D1000... ok! failed with serial.BytesToRead 0 (expected 15)
    The beginning of buffer in UART contains  data.
    Writing sector 0x1D2000... Writing sector 1908736 failed!
    Writing file data to chip failed.
    

    Próbowałem wlutować się w sam układ – to samo. Jedyne, co zauważyłem to, że rozmiar backupu jest większy od firmware’u openbk o około 800-900kB – być może też coś źle robie.
    Proszę o pomoc Michał.
  • #19 21541922
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    Może złe ustawienie baud? Popularne jest 115200. Wtedy mogą się pojawić heartbeats. Spróbuj też pobrać konfigurację:
    https://www.youtube.com/watch?v=WunlqIMAdgw&ab_channel=Elektrodacom

    Może to urządzenie wymaga zakomunikowania stanu WiFi pinem? No ale wtedy coś by wcześniej już TuyaMCU wysyłał:
    Jak sprawić, by urządzenie TuyaMCU wysyłało więcej danych? Dlaczego dpID nie są wysyłane?

    Czy czytałeś cały przewodnik TuyaMCU?
    Przewodnik flashowania, instalacji i konfiguracji TuyaMCU - skonfiguruj dpID dla Home Assistant

    Czym wgrywasz? Może za duży baud wgrywania? Wiesz, że zgranie/wgranie firmware musi być wykonywane przy odłąćzonym TuyaMCU? Jak Easy Flasher nie działa, to możesz też użyć hid_download_py tak jak na tym filmie: https://www.youtube.com/watch?v=PKkiqDNFIx8

    Added after 1 [minutes]:

    PS: Backup zawsze będzie pełne 2MB, bo zawiera cały flash, a firmware nowy tylko wgrywa tyle ile firmware zajmuje. Wgranie nowego firmware z Githuba nie nadpisuje tych sekcji pamięci, które są dalej.
    Pomogłem? Kup mi kawę.
  • #20 21541939
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    Porównaj swój backup z moim dumpem, Ten który wkleiłem jest obcięty do firmware, tak aby dało się wrócić do oryginału bez otwierania urządzenia. Pochodzi on z wersji v.1.09 (wyświetla się podczas startu urządzenia). Podeślij ewentualnie swój dump mogę wgrać do swojego urządzenia i zobaczyć czy ruszy na nim. I zerknij na starszej wersji Openbeken - ja testowałem te od 30 na końcu, może tu jest coś na rzeczy...
  • #21 21541976
    michal23dark
    Poziom 2  
    Posty: 3
    >>21541922
    Dzięki za tak szybką odpowiedź :) Trafiony zatopiony z tą prędkością transmisji! Nie spodziewałem się, ponieważ z tego co doczytałem to raczej sugeruje się obniżenie prędkości.

    W kwestii flash'owania to korzystam z BK7231 EU Flasher i TuyaMCU był na 100% odłączony. Jeżeli faktycznie będzie potrzeba to spróbuje hid_download_py.
  • #22 21542027
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14604
    Pomógł: 654
    Ocena: 12618
    To teraz musisz sprawdzić, czy przy ustawieniu baud 115200 dla TuyaMCU odbierane są heartbeats. Dla pewności zrób pełny restart a nawet power off/on po zmianie konfiguracji.
    Pomogłem? Kup mi kawę.
  • #23 21542135
    michal23dark
    Poziom 2  
    Posty: 3
    >>21542027
    Heartbeats są odbirane zarówno po restarcie jak i włączeniu i wyłączeniu. Skopiowałem autoexec.bat od halinka1125 i wszystko ruszyło zgodnie z opisem.

    Dodano po 9 [minuty]:

    >>21541939
    Po zmianie prędkości transmisji zgodnie z sugestią p.kaczmarek2 wszystko ruszyło. Skorzystałem z Twojego autoexec'a i wydaje się być OK.
    Z tego co widzę mój dump pochodzi z wersji 1.12, sprawdź u siebie.
    Załączniki:
    • readResult_BK7231N_QIO_licznik-3f-80a_2025-07-5-11-08-11.7z (1.22 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #24 21543533
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    Witam
    Wersja 1.12 to wersja softu w MCU nie w BK7231N - widocznie zmienili w niej szybkość transmisji, aczkolwiek o ile wrzuciłeś oryginalny dump, to firmware w BK się chyba nie zmieniło, widoczne różnice są dopiero w konfiguracji.
    Fajnie, że komuś się przydała konfiguracja autoexeca.
    Pozdrawiam
  • #25 21834160
    egon646
    Poziom 10  
    Posty: 48
    Ocena: 1
    Cześć. Posiadam omawiany tu licznik 3-fazowy EARU EAEMP3C-100-TY-W. Czy mógłby ktoś z Was podpowiedzieć co daje zmiana oprogramowania ? W tej chwili licznik udało mi się podłączyć do HA z integracją Tuya Local
  • #26 21834929
    halinka1125
    Poziom 22  
    Posty: 531
    Pomógł: 49
    Ocena: 30
    >>21834160 Generalnie to MQTT i bezpośrednią obsługę HA czy tez przez www, odcinasz się całkowicie od chmury. Jak go zakupiłem tuya local nie bardzo chciała mi się z nim spiąć. No i nie pasowało mi że nie mam żadnego interfejsu którym mógłbym sterować ustrojstwem bez internetu/aplikacji. Jeśli urządzenie jest sieciowe to czemu nie miało by mieć lokalnego interfejsu zarządzania? Jeśli chmura ci nie zawadza i nie potrzebujesz MQTT - "działa nie trza psuć" powiedziałbym...
    Pozdrawiam
  • #27 21874055
    egon646
    Poziom 10  
    Posty: 48
    Ocena: 1
    halinka1125 napisał:
    >>21834160 Generalnie to MQTT i bezpośrednią obsługę HA czy tez przez www, odcinasz się całkowicie od chmury. Jak go zakupiłem tuya local nie bardzo chciała mi się z nim spiąć. No i nie pasowało mi że nie mam żadnego interfejsu którym mógłbym sterować ustrojstwem bez internetu/aplikacji. Jeśli urządzenie jest sieciowe to czemu nie miało by mieć lokalnego interfejsu zarządzania? Jeśli chmura ci nie zawadza i nie potrzebujesz MQTT - "działa nie trza psuć" powiedziałbym...
    Pozdrawiam


    Działa, ale bardzo kiepsko odświeża mi dane w HA. Czasem jest to 30-60 sekund. Czytam, że po flashu mogę ustawić 3-5 sekund. Myślę, że to mnie mocno przekonuje do zmiany firmware'u, ale obawiam się trochę lutowania. Skomplikowany proces czy raczej do szybkiego przejścia ?
📢 Słuchaj (AI):

Podsumowanie tematu

✨ Dyskusja dotyczy rozbiórki i modyfikacji licznika trójfazowego EARU EAEMP3C-100-TY-W, który wykorzystuje układ pomiarowy RENERGY RN8302B oraz mikrokontroler CMS32L051 z rdzeniem ARM Cortex-M0+. Urządzenie standardowo współpracuje z aplikacją TUYA, jednak użytkownicy omawiają możliwość zmiany firmware’u na OpenBK7231T, co pozwala na lokalną obsługę MQTT i integrację z Home Assistant bez konieczności korzystania z chmury TUYA. Wątek obejmuje szczegółową analizę protokołu komunikacji TuyaMCU, konfigurację dpID dla odczytu parametrów takich jak power factor, częstotliwość, alarmy i błędy, a także problemy z prędkością transmisji UART (9600 vs 115200 baud). Użytkownicy wymieniają się skryptami autoexec, dumpami firmware’u oraz narzędziami do flashowania (BK7231 EU Flasher, hid_download_py). Poruszono także kwestie implementacji interfejsu webowego do monitoringu i konfiguracji alarmów oraz optymalizacji plików HTML. Zmiana oprogramowania umożliwia szybsze odświeżanie danych w HA (3-5 sekund) oraz lokalne sterowanie urządzeniem bez internetu. Proces flashowania wymaga odłączenia modułu TuyaMCU i jest stosunkowo prosty, choć wymaga uwagi przy ustawieniach prędkości transmisji i konfiguracji dpID.
Wygenerowane przez model językowy.
REKLAMA