logo elektroda
logo elektroda
X
logo elektroda

OpenBeken on WiFi Smoke Detectors (Tuya CBU Chip) - ESP8266 Alternative, MQTT & Setup

toboxx 26142 162
ADVERTISEMENT
  • #91 21054176
    carlig833
    Level 7  
    Hello I am owner of a YG400A-W smoke detector and new to the forum.
    I have flashed the device with OpenBK7231T/OpenBeken release 1.17.553.
    A few facts:

    1) I don't get any MQTT message when device is sleeping and real smoke is detected (THE PROBLEM), however the buzzer goes off as expected.
    2) I get MQTT message when device is sleeping and I press the led button

    Here is the configuration I have imported:
    
    {
      "vendor": "Tuya",
      "bDetailed": "0",
      "name": "WiFi Smoke Detector",
      "chip": "BK7231N",
      "board": "CBU",
      "pins": {
        "9": "dInput_n;2",
        "15": "dInput_n;1",
        "17": "WifiLED_n;0",
        "23": "BAT_ADC;0",
        "26": "BAT_Relay_n;0",
        "28": "Btn;0"
      },
      "keywords": [
        "TuyaMCU",
        "YG400A",
        "YG400A-W"
      ],
      "image": "https://obrazki.elektroda.pl/4865009600_1671093592.jpg",
      "wiki": "https://www.elektroda.com/rtvforum/topic3941698.html"
    }
    

    Here is the autoexec.bat I am currently using:
    
    Battery_Setup 2000 3000 2 2400 4096
    //measure batt every 2s
    Battery_cycle 2
    mqtt_broadcastInterval 1
    mqtt_broadcastItemsPerSec 5
    addEventHandler OnHold 10 SafeMode 5
    
    setChannelLabel 1 Smoke
    setChannelLabel 2 Tamper
    
    again1:
    delay_s 1
    if $CH2!=1 then goto again1
    delay_s 10
    goto again
    
    again:
    delay_s 1
    if $CH1!=1 then goto again
    delay_s 10
    // Goto sleep for 1h
    PinDeepSleep 3600
    

    Here is the MQTT log when device wakes up after one hour of deep sleep (no smoke present):
    
    homeassistant/connected online
    homeassistant/0/get 1
    homeassistant/0/get 0
    homeassistant/voltage/get 2557
    homeassistant/battery/get 55
    homeassistant/0/get 1
    homeassistant/0/get 0
    homeassistant/voltage/get 2566
    homeassistant/battery/get 56
    homeassistant/0/get 1
    homeassistant/0/get 0
    homeassistant/voltage/get 2547
    homeassistant/battery/get 54
    homeassistant/0/get 1
    homeassistant/0/get 0
    homeassistant/voltage/get 2540
    homeassistant/battery/get 54
    homeassistant/0/get 1
    homeassistant/0/get 0
    homeassistant/voltage/get 2546
    homeassistant/battery/get 54
    homeassistant/connected offline
    


    When there is smoke the buzzer fires, blue and red leds blinks, but no mqtt activity is present (the device does not wake up?)

    Has someone been successful in testing the device in a very standard use-case, that is the device is in deep sleep and real smoke is detected? May I get your directions for further troubleshooting this case?

    Thanks you very much for your help
  • ADVERTISEMENT
  • #92 21055240
    p.kaczmarek2
    Moderator Smart Home
    First I would suggest doing some testing. Remove autoexec.bat so sleep does not fire, and trigger smoke. Then observe the value on channel you used for smoke - it's channel 1 in your case. Is it changing?

    To phrase my question differently - is the digital value from smoke sensor (0 or 1) correctly read from:
    
        "15": "dInput_n;1",
    

    ?

    PS: Why your template has TuyaMCU keyword if that's not a TuyMCU device?
    Helpful post? Buy me a coffee.
  • #93 21056127
    carlig833
    Level 7  

    I confirm that the digital channel 1 changes from 0 to 1 when no autoexec.bat is present, and smoke is detected. Here is one example of MQTT messages captured at the listener:

    
    homeassistant/1/get 0
    homeassistant/0/get 1
    homeassistant/0/get 0
    homeassistant/voltage/get 3447
    homeassistant/battery/get 100
    homeassistant/1/get 1			<== smoke detected
    homeassistant/0/get 1
    homeassistant/0/get 0
    


    I add autoexec.bat, remove and put back batteries, close the back cover so that it is not tampered, wait for the device to go sleep, then trigger the smoke. The following happens:

    1) The buzzer almost goes off immediately
    2) The MQTT output remains quiet for a while, about 15 seconds or so (I guess the time it takes to wake up from sleep)
    3) The buzzer keeps with its sound while the smoke continues and the following repeating pattern appears on MQTT listener:

    
    homeassistant/0/get 1
    homeassistant/0/get 0
    homeassistant/voltage/get 2756
    homeassistant/battery/get 75
    


    No changes are reported on channel 1 despite the device is being flooded by smoke.

    To me it looks like the device is reporting the change on channel 1 only once, and maybe, due to the time it takes to resume from sleeping is never reporting a state change. Makes sense?

    About the "keywords" section of the config file, this is my fault. I have indeed the same device being mentioned in this thread and the pictures of the inside exactly look the same.
  • #94 21056628
    p.kaczmarek2
    Moderator Smart Home
    When testing without sleep, when the smoke is detected, how quickly does it go back to 0?
    
    homeassistant/1/get 1			<== smoke detected
    


    How would that code work for you:
    
    
    
    Battery_Setup 2000 3000 2 2400 4096
    //measure batt every 2s
    Battery_cycle 2
    mqtt_broadcastInterval 1
    mqtt_broadcastItemsPerSec 5
    addEventHandler OnHold 10 SafeMode 5
    
    setChannelLabel 1 Smoke
    setChannelLabel 2 Tamper
    setChannel 10 $CH1
    
    // now wait for MQTT
    waitFor MQTTState 1
    // extra delay, to be sure
    delay_s 1
    publish mySmokeState $CH1
    publish mySmokeStateAtBoot $CH10
    
    again1:
    delay_s 1
    if $CH2!=1 then goto again1
    delay_s 10
    goto again
    
    again:
    delay_s 1
    if $CH1!=1 then goto again
    delay_s 10
    // Goto sleep for 1h
    PinDeepSleep 3600
    
    
    Helpful post? Buy me a coffee.
  • #95 21057329
    rubenlogon
    Level 4  
    p.kaczmarek2 wrote:
    When testing without sleep, when the smoke is detected, how quickly does it go back to 0?
    
    homeassistant/1/get 1			<== smoke detected
    


    How would that code work for you:
    
    
    
    Battery_Setup 2000 3000 2 2400 4096
    //measure batt every 2s
    Battery_cycle 2
    mqtt_broadcastInterval 1
    mqtt_broadcastItemsPerSec 5
    addEventHandler OnHold 10 SafeMode 5
    
    setChannelLabel 1 Smoke
    setChannelLabel 2 Tamper
    setChannel 10 $CH1
    
    // now wait for MQTT
    waitFor MQTTState 1
    // extra delay, to be sure
    delay_s 1
    publish mySmokeState $CH1
    publish mySmokeStateAtBoot $CH10
    
    again1:
    delay_s 1
    if $CH2!=1 then goto again1
    delay_s 10
    goto again
    
    again:
    delay_s 1
    if $CH1!=1 then goto again
    delay_s 10
    // Goto sleep for 1h
    PinDeepSleep 3600
    
    


    I am having some problems with the smoke detector. I used your autoexec.bat, and I am having this output:

    
    smoke_sensor/connected online
    smoke_sensor/host smoke_sensor
    smoke_sensor/build OpenBK7231N 1.17.542 Apr 10 2024 13:59:01
    smoke_sensor/mac d8:d6:68:XX:XX:XX
    smoke_sensor/ssid XXXXXXXX
    smoke_sensor/sockets 2
    smoke_sensor/0/get 1
    smoke_sensor/0/get 0
    smoke_sensor/voltage/get 2745
    smoke_sensor/battery/get 74
    smoke_sensor/rssi -64
    smoke_sensor/uptime 14
    smoke_sensor/freeheap 74312
    smoke_sensor/ip 192.168.1.179
    smoke_sensor/0/get 0
    smoke_sensor/mySmokeState/get 1
    smoke_sensor/mySmokeStateAtBoot/get 0
    smoke_sensor/1/get 1
    smoke_sensor/2/get 1
    smoke_sensor/0/get 1
    smoke_sensor/0/get 0
    smoke_sensor/voltage/get 2731
    smoke_sensor/battery/get 73
    smoke_sensor/0/get 1
    smoke_sensor/0/get 0
    smoke_sensor/voltage/get 2725
    smoke_sensor/battery/get 72
    

    From what I am able to understand, it doesn't make any sense at all. Seems that is always detecting smoke. Once sleeping, if I press for 2secs the led button, the device starts buzzing for another 2/3 secs, like it is always detecting smoke. Do you thing it could be that the device is broken?
  • ADVERTISEMENT
  • #96 21057528
    carlig833
    Level 7  

    After several tests in the no-autoexec scenario, results appear to be more variegate and random than I expected.

    When smoke is triggered...
    ... buzzer always goes off [5 out of 5]
    ... blue led always start blinking [5 out of 5]
    ... rarely value 1 is seen on the smoke channel... [1 out of 5]
    ... when this happens it is immediately followed by 0 on the same channel [1 out of 1]
    ... frequently value 0 is seen on the smoke channel not preceded by value 1 [3 out of 5]
    ... sometimes neither 1 or 0 is seen on smoke channel [2 out of 5]

    It may turn out that I have a defective sensor or this is a low-quality product (it costs less than 10 euros).
    I will try to revert to the original firmware and see if behavior is more consistent with that.

    Thanks for your help!
  • #97 21059336
    p.kaczmarek2
    Moderator Smart Home
    I wouldn't give up so easily. Maybe you need a different pin role on sensor pin (like the one with or without a pull up), or maybe the 1 value stays on sensor for a short moment by design and we need to catch that?
    Helpful post? Buy me a coffee.
  • #98 21065902
    carlig833
    Level 7  

    Hello again.

    I have restored original firmware made by Tuya on my YG400A-W smoke detector.
    I can confirm that detection and notification through Tuya Cloud and App is very reliable, so the hardware is good!

    I am willing to install the open firmware so that I can bypass the external cloud (which is my major concern with this device).
    Unfortunately, I may need some guidance to further troubleshoot the issues, then I'm not sure I can further ask in this forum.

    My questions would be:
    1. Do I need to collect any logs or evidence now that the device has the original firmware installed?
    2. Should I install the open firmware in the no-autoexec mode and try heuristically all role types for pin 15?
    3. Any other suggestion?
  • #99 21065914
    p.kaczmarek2
    Moderator Smart Home
    I am very happy to see you're still willing to give it a try! I'm just a single person and I am doing OBK in my free time, so some things may not be perfect, but I will do my best to help you. Futhermore, I don't have the device you described...

    So.

    carlig833 wrote:

    1. Do I need to collect any logs or evidences now that the device has the original firmware installed?

    This applies only to TuyaMCU devices and should be done with:
    TuyaMCU analyzer - UART packet decoder for Tuya devices - dpID detector
    The best you can do with your device (non-TuyaMCU one) is to observe whether signal on smoke pin stays high when smoke is detected or whether it falls down quickly.


    carlig833 wrote:

    2. Should I install the open firmware in the no-autoexec mode and try heuristically all role types for pin 15?

    Get smoke detection working without sleep first. Test possible input roles, there are multiple input types, with pull downs, pull ups and without any pulls:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/ioRoles.md


    carlig833 wrote:

    3. Any other suggestion?

    In order to get sleep working, you also may need to change the DSEdge setting. So this basically means you need to get both correct pin and both DSEdge setting combo.
    Search for DSEdge here:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/commands.md

    In worst case, you may consider doing some hardware work arounds (adding resistors), I saw that some people did that in the past...

    And in general, write down your discoveries here, I will try to help
    Helpful post? Buy me a coffee.
  • #100 21065934
    DeDaMrAz
    Level 20  
    @carlig833

    Can you take a screen shot of you pin configuration for us to possibly help you a bit better?

    I suspect that you have confusing channel selection.

    Thanks.
  • #101 21065943
    p.kaczmarek2
    Moderator Smart Home
    @DeDaMrAz if he has set two input roles for the same channel, then indeed, in that case he might get a race condition and unpredictable readouts. For example, if he has two digital inputs trying to write to a single channel...
    Helpful post? Buy me a coffee.
  • #102 21073585
    carlig833
    Level 7  
    My YG400A-W smoke detector works fine now!

    My final setup:
    1) Firmware: OpenBK7231N_1.17.566.rbl
    2) Pin setup:
    Screenshot showing pin settings for the YG400A-W smoke detector.

    3) Autoexec.bat
    
    Battery_Setup 2000 3000 2 2400 4096
    //measure batt every 2s
    Battery_cycle 2
    //mqtt_broadcastInterval 1
    //mqtt_broadcastItemsPerSec 5
    addEventHandler OnHold 10 SafeMode 5
    
    setChannelLabel 1 Smoke
    setChannelLabel 2 Tamper
    
    // now wait for MQTT
    waitFor MQTTState 1
    // extra delay, to be sure
    delay_s 1
    // publish smoke and tamper state at least once after boot
    publish 1 $CH1
    publish 2 $CH2
    
    // if tampered, keep cycling (but drains battery)
    again1:
    delay_s 1
    if $CH2!=1 then goto again1
    delay_s 5
    goto again
    
    // if smoke detected, keep cycling (but drains battery)
    again:
    delay_s 1
    if $CH1!=1 then goto again
    delay_s 5
    
    // All good, sleep for 1 day
    PinDeepSleep 86400 
    


    Lessons learned:
    1) If "FLAG 10 - [MQTT] Broadcast self state on MQTT connect" is not enabled (this is my case), then you may want to explicitly publish the smoke/tamper state in autoexec.bat or your device will not report smoke when resuming from sleep.
    2) In previous unsuccessfull attempts I had WiFiLED_n, BAT_ADC, BAT_Relay_n, Btn sharing the same channel (channel 0). To be safe I have assigned a separate channel to each of them.
    3) I assumed that value 1 on the smoke channel means 'smoke detected' and value 0 not detected, but it is the opposite.

    Thank you all for your help
  • #103 21073594
    p.kaczmarek2
    Moderator Smart Home
    Good job! One more device is now free from the cloud.
    carlig833 wrote:

    3) I assumed that value 1 on the smoke channel means 'smoke detected' and value 0 not detected, but it is the opposite.

    Well, that's why you have both dInput and dInput_n roles.
    Helpful post? Buy me a coffee.
  • #104 21090823
    matthew2
    Level 2  

    Hi Folks, I'm new here but not new to coding ESP modules, however I cannot get my head around what I'm seeing here, I'm trying to get these detectors to work to send notifications through Alexa and straight to my phone using OpenBeken, I see that the connections are using the TX RX and GND terminals on the edge of the detectors PCB, however I'm not seeing if this is now working correctly and is all working
    Is there a guide I should be looking at specifically for this unit

    Thanks all
  • #105 21090881
    p.kaczmarek2
    Moderator Smart Home
    I am not sure if there is a guide for this specific device unit. I've made guides for the devices that I have had myself, but I didn't have that one.

    I am assuming that your device is not using TuyaMCU, it's just BK-only, so with DeepSleep?
    Then you may want to check out this guide:
    Door/window sensor without TuyaMCU - deep sleep and energy saving, OpenBeken
    Or this topic:
    Tuya Water Sensor WiFi DY-SQ400B Flashing, Configuration for OBK Esphome/Tasmota style firmware
    You can also just ask here directly. What kind of sensor do you have?
    Helpful post? Buy me a coffee.
  • #106 21091018
    matthew2
    Level 2  

    The sensor is the exact same one is the start of this thread, it's the YG400A-W smoke detector
    I can see originally you said it's a Non-Tuya MCU but would seem someone got it working
  • #107 21108463
    jewgenir
    Level 2  

    >>21073585
    Hi...Just one Question:

    can "we" connect them to ONE Group and IF ONE DETECTED SMOKE = ALL Connected Sensors go ON(ALARM)???

    Means, can "we" force the Alarm "somehow"???

    Thank you SOOOOO MUCH!!!

    Added after 19 [minutes]:

    >>21108463
    I found this at "tasmota":

    Functions
    dpID 1 smoke: 0 = clear / 1 = smoke detected
    dpID 4 tamper alarm = 0 = ok / 1 = tampered
    dpID 14 battery status: 0 = low / 1 = medium / 2 = high

    Sensor uses the built-in speaker as beeping alarm when dpId 1 is triggered.

    The speaker and led on the test button are controlled by the MCU and there is no way to control them by software.

    BUT

    I could "take one of the Outputs, connect it to the dpId 1 and trigger it too?!? or not???

    Thank you!
  • ADVERTISEMENT
  • #108 21108597
    p.kaczmarek2
    Moderator Smart Home
    wait a moment, how do you want to group those devices? They are using deep sleep and can only wake by pin event or timer, so it's impossible to "wake other sensors when one detects smoke"....

    I mean, it's totally impossible, hardware limitation
    Helpful post? Buy me a coffee.
  • #109 21108676
    jewgenir
    Level 2  

    ...sorry...did not say, that I would use ioBroker as a host...

    So
    ..

    Fire = alarm = ioBroker knows Alarm

    ioBroker sends signal to all detectors a Signal = push Alarm...

    And

    When they wake up... they set pin to high and Alarm goes on...

    What do you think?
  • ADVERTISEMENT
  • #110 21108785
    carlig833
    Level 7  

    I think this is not possible because a device in deep sleep state is not even connected to the MQTT broker, then any message possibly sent to it over MQTT will be received only when it wakes up. The message cannot trigger the wake-up itself.

    If I understand your point when someone has a large home he may not hear the acoustic alarm coming from a sensor in another room or down in the garage then you are looking for a "coalition" of sensors to spread out the alarm. In this case I would suggest to have a notification sent to your mobile phone or install a big siren in a central area of the home.
  • #111 21108809
    p.kaczmarek2
    Moderator Smart Home
    jewgenir wrote:

    When they wake up... they set pin to high and Alarm goes on...

    when configured correctly, they only wake up when:
    - smoke is detected (this won't help)
    - on test/tamper sensor (this won't help as well)
    - like every 24 hours to report battery (this won't help as well, unless you are okay with up to 24h delay?)
    In order to do what you want, you would have to wake up your device like every X minutes etc to get new state from iobroker, and it would literally killed the batteries
    Helpful post? Buy me a coffee.
  • #113 21108819
    p.kaczmarek2
    Moderator Smart Home
    well powering them from wire would be good, he could even put them together in tasmota device group so they can work together even without iobroker
    Helpful post? Buy me a coffee.
  • #114 21109094
    jewgenir
    Level 2  

    You are the best, guys...

    Thank you... I was thinking it wakes up every x Minutes anyway...probably did not understand the autoexec.bat.

    Yes...wanted to have all in one group :-(

    Maybe placing them near the lamp and hard wire them 🤔...will think about it...

    But I see some companies selling x-sense devices...they interconnect somehow...

    And visortech sells tuya smoke detectors...yes TUYA 😀...

    https://www.amazon.de/VisorTech-WLAN-Rauchmel...Rauch-App-Benachrichtigung/dp/B07TVWD811?th=1

    and

    https://www.elesion.com/ is the app...and iobroker sees them as smartlife app...

    Thank you once again
  • #115 21295363
    vitya123
    Level 6  
    Dear All,
    Are you guys sure that the battery measurement works? I am unable to get any other reading (in MQTT) than batter/get: 100 and voltage/get:4800...
    This is my config:
      "pins": {
        "9": "dInput_n;2",
        "15": "dInput_n;1",
        "17": "WifiLED_n;3",
        "23": "BAT_ADC;4",
        "26": "BAT_Relay;5",
        "28": "Btn;6"
      }


    Autoexec.bat (I stole it from a few posts above...):
    Battery_Setup 2000 3000 2 2400 4096
    //measure batt every 2s
    Battery_cycle 2
    mqtt_broadcastInterval 1
    mqtt_broadcastItemsPerSec 5
    addEventHandler OnHold 10 SafeMode 5
    
    setChannelLabel 1 Smoke
    setChannelLabel 2 Tamper
    
    again1:
    delay_s 1
    if $CH2!=1 then goto again1
    delay_s 10
    goto again
    
    again:
    delay_s 1
    if $CH1!=1 then goto again
    delay_s 10
    PinDeepSleep


    My smoke sensor looks like this:
    Close-up of a circuit board with electronic components and a module with markings.

    Thanks for any pointers!
  • #116 21346488
    drkaresz
    Level 6  
    Hi Folks!

    I'm absolute new to OpenBeken but with some experience with ESP, I bought this device.
    I have YG400A-W A008 board and BA50F1V Y7T009G5 chip.
    My Tasmota flasher looks great for this goal so I try as written above.

    When I connect my flasher's RX, TX and GND to the panel the YG400A-W A008 starts crimping. No one write this earlier but I believe it is not a problem and do not happen every time.
    I run the flasher and try pushing the reset button but it can not connect to the device. As I see CAN has no direct output on the panel just via the R18 resistor to the reset button, and I think it is enough. Am I made a mistake?
    So I believe flashing this device:
    1. connect RX, TX, GND
    2. run flasher
    3. press reset on the board
    4. voila...
    But this not working for me

    Thank you for any kind of help!
  • #117 21346518
    vitya123
    Level 6  
    Step 3: you need to reset the module. The onboard button is not a reset button, just a button, that (from software) can or cannot restart the device.
    What you need to do is either use pin 18 (CEN) of the CBU module, or simply remove power and connect power again. Of course, only if you have the CBU version of the panel...
    See this page for reference: https://developer.tuya.com/en/docs/iot/cbu-module-datasheet?id=Ka07pykl5dk4u
  • #118 21346743
    drkaresz
    Level 6  
    >>21346518
    Thank you very much for your fast reply vitya!

    I've checked your link, my chip is compatible, I've found the CBU, tried dozens and dozens to reset with GND but no success.
    Still thinking what is wrong but I do not have any idea right now.
    Anyway, thanks again!
  • #119 21346756
    vitya123
    Level 6  
    I also just noticed that you didn't mention 3.3V, only Rx, Tx and Gnd. Can I assume you also connected the 3.3V to the battery terminals? :)
    Also, what do you mean: "tasmota flasher"? To flash this chip you need to use this: https://github.com/openshwprojects/BK7231GUIFlashTool
    Others might work, but this one definitely does.
    Also, when you say "But this is not working for me" what do you mean? What exactly did you do? What exactly happened?
  • #120 21346906
    drkaresz
    Level 6  
    Thank your vitya for your patience!

    So I connect only RX, TX and GND from my usb flasher (what I use for tasmota too) and run the BK flashtool.
    I do not connect 3.3V as it was mentioned in post #82 (https://www.elektroda.com/rtvforum/topic3941698-60.html#20824777) and there is no battery in the device.
    When the flashtool asks me to ground CBU I ground the CBU leg (18) to another free GND on the board for a very short time.
    This was what I tried in the last 2 hours :)

Topic summary

The discussion centers on integrating OpenBeken firmware with WiFi smoke detectors using the Tuya CBU chip (BK7231N), as an alternative to ESP8266-based devices. Users successfully flashed OpenBeken (e.g., OpenBK7231N_QIO_1.15.182.bin and later versions) via UART without a separate TuyaMCU chip, indicating a direct BK7231N MCU control. Key challenges include configuring the smoke detection input, tamper switch, LEDs, and battery monitoring, as well as implementing effective deep sleep modes to extend battery life. The smoke sensor output is connected to GPIO pins (notably pin 15), with tamper and reset switches on other pins (e.g., pin 9 and 28). DeepSleep functionality was developed to allow the device to sleep and wake on GPIO events or timers, significantly improving battery autonomy from a few hours to days. Battery voltage measurement is done via ADC on specific pins (e.g., pin 23 and 26), with scripts to monitor and report battery status over MQTT. Users configure pins with roles such as dInput_n, DoorSnsrWSleep, Btn, and WifiLED_n, and use autoexec.bat scripts to manage device behavior, MQTT publishing, and sleep cycles. The device supports MQTT integration with Home Assistant, though full auto-discovery and YAML configuration require manual setup. Some limitations remain, such as the inability to wake the device simultaneously by timer and GPIO in earlier firmware versions, and inconsistent tamper switch wake-up behavior without hardware modification. The community continues to refine firmware, share pin mappings, schematics, and configuration examples to achieve reliable smoke detection reporting, battery status alerts, and power saving. The device is identified as a Tuya WiFi smoke detector with a Holtek BA45F5220 MCU (marked BA50F1V) on the CBU module. The discussion also covers flashing procedures, hardware connections, and troubleshooting for these detectors.
Summary generated by the language model.
ADVERTISEMENT