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

[BK7231N CB2S] Moes 2CH Dimmer WIFI Tuya - WM-105B-M openBeken Tasmota

przemsi_ele 15 Maj 2025 13:09 1392 0
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21549820
    przemsi_ele
    Poziom 12  
    Posty: 62
    Pomógł: 1
    Ocena: 15
    Oto opis zmiany firmware - uwolnienie produktu od chmury. Podmiana z Tuya na OpenBeken i Tasmota w MOES 2CH WiFi WM-105B-M WIFI - prawdopodobnie mniejszy brat WM-105B.
    W środku CB2S (Tuya fwv. 3.1.17) i TuyaMCU HT66F3195 (MCU fw v 2.3.0). Po pokazanym procesie sprzęt można kontrolować w pełni lokalnie z poziomu Home Assistant.



    Moduł sterownika Moes Smart Dimmer WM-105B-M z widocznymi oznaczeniami złącz i parametrami technicznymi.
    Moduł sterownika MOES 2CH WiFi z wyraźnie widocznym modułem CB2S zamontowanym na płytce PCB, z oznaczeniem modelu, złączami śrubowymi oraz elementami elektronicznymi. Zbliżenie płytki PCB modułu elektronicznego MOES WM-105B-M z widocznymi elementami SMD i ścieżkami. Moduł CB2S z oznaczeniem modelu i numerem seryjnym na niebieskim tle, widoczne piny lutownicze. Moduł CB2S z wylutowanym układem z płytki drukowanej, widoczne ścieżki i piny połączeniowe. Moduł CB2S z naklejką zawierającą QR kod i oznaczenie HT66F3195 na płytce w urządzeniu MOES 2CH WiFi. Moduł MOES 2CH WiFi WM-105B-M z widocznymi elementami elektronicznymi: CB2S, kondensatorami i przekaźnikiem. Mała zielona płytka drukowana z elementami elektronicznymi i czarnym brzęczykiem.

    Do flashowania oczywiście wylutowałem CB2S z TuyaMCU:
    dump tuya:
    
       "dxom14": [
          {
             "mode": "rw",
             "property": {
                "type": "bool"
             },
             "id": 1,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 10,
                "max": 1000,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 2,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 10,
                "max": 1000,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 3,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "range": [
                   "led",
                   "incandescent",
                   "halogen"
                ],
                "type": "enum"
             },
             "id": 4,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 10,
                "max": 1000,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 5,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 0,
                "max": 86400,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 6,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "type": "bool"
             },
             "id": 7,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 10,
                "max": 1000,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 8,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 10,
                "max": 1000,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 9,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "range": [
                   "led",
                   "incandescent",
                   "halogen"
                ],
                "type": "enum"
             },
             "id": 10,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 10,
                "max": 1000,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 11,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 0,
                "max": 86400,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 12,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "range": [
                   "off",
                   "on",
                   "memory"
                ],
                "type": "enum"
             },
             "id": 14,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "min": 5,
                "max": 15,
                "scale": 0,
                "step": 1,
                "type": "value"
             },
             "id": 31,
             "type": "obj"
          },
          {
             "mode": "rw",
             "property": {
                "range": [
                   "flip",
                   "sync",
                   "button"
                ],
                "type": "enum"
             },
             "id": 47,
             "type": "obj"
          }
    


    tuya dpId:

    dpId 1 on/off
    dpId 2 dimmer: [ 10 - 1000 ]
    dpId 3 Minimum brightness1 >= 10
    dpId 4 Type of light source1
    dpId 5 Maximum brightness1 <= 1000
    dpId 6 Countdown1: [s]
    
    dpId 7 on/off
    dpId 8 dimmer : [ 10 - 1000 ]
    dpId 9 Minimum brightness2 >= 10     
    dpId 10 Type of light source2
    dpId 11 Maximum brightness2 <=1000
    dpId 12 Countdown2: [s]
    
    dpId 14 Power-on Status Setting : [ 0 - Power-on OFF, 1 - Power-on ON , 2- Power-on Memory ]
    dpId 31 Dimming Gradient Time : [ 5-15s ]
    dpId 47 Switch Type: [ Button, Sync, Flip ] [ 0- sync ??? wtf, 1-toggle ,2-button ]


    flash + analiza TuyaMCUAnalyzer:

    Zbliżenie na programator płytek rozwojowych ESP oraz podłączony moduł elektroniczny z niebieską płytką PCB.

    testy:

    Elektroniczny moduł z podłączonym czujnikiem gazu na niebieskiej macie serwisowej.
    Sterownik oświetlenia Smart Dimmer Module z podpiętym modułem Wi-Fi ESP-02S i zdjętą obudową na niebieskim tle.

    Screen:

    Panel sterowania dwoma ściemniaczami światła z ustawieniami jasności, timerem i typem oświetlenia.
    Panel sterowania do konfiguracji kanałów dimmera i ustawień przycisków w urządzeniu IoT.
    Panel sterowania urządzeniem z chipsetem BK7231N z różnymi opcjami konfiguracji i diagnostyki.

    {
      "vendor": "Moes",
      "bDetailed": "0",
      "name": "Two Channel Smart Dimmer Module",
      "model": "MS-105B-M",
      "chip": "BK7231N",
      "board": "CB2S",
      "pins": {},
      "tags": [
        "TuyaMCU",
        "HT66F3195",
        "baud 9600"
      ],
      "image": "https://obrazki.elektroda.pl/3748350200_1747309356.png",
      "wiki": "https://www.elektroda.com/rtvforum/topic4122045.html"
    }


    
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 9600
    tuyaMcu_defWiFiState 4
    startDriver NTP
    ntp_timeZoneOfs 2
    ntp_setServer  153.19.250.123 
    
    
    
    tuyaMcu_setDimmerRange 200 1000
    setChannelType 1 toggle
    setChannelLabel 1 "Dimmer 1"
    setChannelType 2 toggle
    setChannelLabel 2 "Dimmer 2"
    setChannelType 3 dimmer
    setChannelLabel 3 "1 Brightness" 
    setChannelType 4 dimmer
    setChannelLabel 4 "2 Brightness"
    
    setChannelType 5 Textfield
    setChannelLabel 5 "1 timer in seconds. Set 0 to cancel,"
    setChannelType 6 Textfield
    setChannelLabel 6 "2 timer in seconds. Set 0 to cancel,"
    
    setChannelType 11 OffOnRemember
    setChannelLabel 11 "Power-On State"
    
    
    setChannelType 8 Textfield
    setChannelLabel 8 " Dimming Gradient Time : [ 5-15s ]"
    
    setChannelType 9 Textfield
    setChannelLabel 9 " Type of light CH1 [ 0 - Led, 1 - Incandescent(żarówka), 2 - Halogen ]"
    setChannelType 10 Textfield
    setChannelLabel 10 " Type of light CH2 [ 0 - Led, 1 - Incandescent(żarówka), 2 - Halogen ]"
    // min max 
    //ch1
    setChannelType 17 Textfield
    setChannelLabel 17 " CH1 Dimmer_min [ >= 200 ]"
    setChannelType 18 Textfield
    setChannelLabel 18 " CH2 Dimmer_max [ <= 1000 ]"
    //ch2
    setChannelType 19 Textfield
    setChannelLabel 19 "  CH2 Dimmer_min [ >= 200 ]"
    setChannelType 20 Textfield
    setChannelLabel 20 "  CH2 Dimmer_max [ <= 1000 ]"
    
    
    startDriver httpButtons
    
    //Switch Type dpId=47 
    alias switchtype1 uartsendhex 55AA000600052F040001003E
    setButtonEnabled 1 1
    setButtonLabel 1 "Switch button type to sync ?? wtf"
    setButtonCommand 1 "switchtype1"
    setButtonColor 1 "#DC0077"
    
    alias switchtype2 uartsendhex 55AA000600052F040001013F
    setButtonEnabled 2 1
    setButtonLabel 2 "Switch button type to toggle"
    setButtonCommand 2 "switchtype2"
    setButtonColor 2 "#DC0077"
    
    alias switchtype3 uartsendhex 55AA000600052F0400010240
    setButtonEnabled 3 1
    setButtonLabel 3 "Switch button type to Button"
    setButtonCommand 3 "switchtype3"
    setButtonColor 3 "#DC0077"
    //                       dpId    element number
    linkTuyaMCUOutputToChannel 1 bool 1
    linkTuyaMCUOutputToChannel 7 bool 2
    //dimmer
    linkTuyaMCUOutputToChannel 2 val 3
    linkTuyaMCUOutputToChannel 8 val 4
    // timery
    linkTuyaMCUOutputToChannel 6 val 5
    linkTuyaMCUOutputToChannel 12 val 6
    // type of light
    linkTuyaMCUOutputToChannel 4 enum 9
    linkTuyaMCUOutputToChannel 10 enum 10
    // power on state
    linkTuyaMCUOutputToChannel 14 enum 11
    // min max ch1
    linkTuyaMCUOutputToChannel 3 val 17
    linkTuyaMCUOutputToChannel 5 val 18
    // min max ch2
    linkTuyaMCUOutputToChannel 9 val 19
    linkTuyaMCUOutputToChannel 11 val 20
    // dimming gradient
    linkTuyaMCUOutputToChannel 31 val 8
    


    Tasmota po przeszczepie na ESP-02 też działa, jak podrobie to postaram się wrzucić.
    Do zrobienia pozostaje:
    1. zmiana przełączania typu źródła światła , tak jak enum OnOffMemory czy LowMedHi
    2. zmiana przełączania typu przycisku zewnętrznego, tak jak enum OnOffMemory czy LowMedHi
    3. ustawienie brightness_min i brightness_max albo w jeden pasek (suwak) z ruchomym początkiem i końcem, albo w dwa osobne suwaki, jak to było poruszane gdzieś przez @p.kaczmarek2 , nie wiem jak to ogarnąć więc zrobiłem na typie Textfield.
    4. może ewentualnie odliczać czas też obsługiwać za pomocą slidera.

    Za błędy i niedociągnięcia z góry przepraszam :) .
  • REKLAMA
REKLAMA