Logo
NEO Coolcam Temperature and Humidity 3in1 Alarm Siren (NAS-AB02W)
NEO Coolcam Temperature and Humidity 3in1 Alarm

Available from:
Aliexpress.com
Banggood.com
Amazon.de
Manomano.de


Manufacturer:
Szneo.com

Install method:
USB to Serial

GPIO #Component
GPIO00 None
GPIO01 Tuya Tx
GPIO02 None
GPIO03 Tuya Rx
GPIO04 None
GPIO05 None
GPIO09 None
GPIO10 None
GPIO12 None
GPIO13 None
GPIO14 None
GPIO15 None
GPIO16 None
GPIO17 None
Configuration
{"NAME":"Neo Siren 3in1","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54}

This is a Tuya siren with temperature and humidity sensor. Runs on USB and two CR123A batteries as backup (not supplied with the device).

Hardware Versions

There are, so far, three known hardware versions. The console will show one of these MCU Product ID’s: {"p":"ymf4oruxqx0xlogp","v":"1.0.0","m":0}, {"p":"ymf4oruxqx0xlogp","v":"1.0.1","m":0} , {"p":"ymf4oruxqx0xlogp","v":"1.0.2","m":0}, {“p”:”ymf4oruxqx0xlogp”,”v”:”1.0.3”,”m”:0} or {"p":"9fngbrgje6ljqhee","v":"1.0.2","m":0}

The ymf versions work with tuya-convert but the 9fn version requires flashing the device with serial.

The 1.0.1 version supports the TuyaSend0 command to query the MCU for the latest values but the 1.0.2 version does not appear to support that command at this time (2021-03-05).

In an order on 2021-01-31 for three devices, one of each hardware versions was received. In an order from 2020-12, the 1.0.1 version was received, which is rock solid.

Flashing

If you have issues flashing with tuya-convert you can flash the device using serial.

Steps:

  • Remove the three screws from the bottom and the lid comes off easily
  • Connect GPIO0 (“IO0”) to ground (“GND”)
  • Connect the USB to power (there is no need to power from the serial device)
  • Continue to hold the GPIO0 to ground for about 5-10 seconds to ensure that the chip is in flashing mode (there are no hardware indications)
  • Hold the TX and RX from the serial to the pads “RXD0” and “TXD0” (cross the streams)
  • Flash tasmota.bin

flash-pads

Functions

  • dpId 101 - power type (1 - battery high; 2 - medium; 3 - low; 4 - usb port)
  • dpId 102 - alarm type chime sound (0-17)
    • 0 - doorbell
    • 1 - fur elise
    • 2 - big ben
    • 3 - ring ring
    • 4 - lone ranger
    • 5 - turkish march
    • 6 - high pitched
    • 7 - red alert
    • 8 - crickets
    • 9 - beep
    • 10 - dog bark
    • 11 - police siren
    • 12 - grandfather clock
    • 13 - phone ring
    • 14 - fire truck
    • 15 - clock chime
    • 16 - alarm clock
    • 17 - school bell
  • dpId 103 - alarm duration time (in seconds)
  • dpId 104 - alarm control
  • dpId 105 - temp in C (divide by 10)
  • dpId 106 - humidity
  • dpId 107 - minimum temperature to trigger alarm
  • dpId 108 - maximum temperature to trigger alarm
  • dpId 109 - minimum humidity to trigger alarm
  • dpId 110 - maximum humidity to trigger alarm
  • dpId 112 - unit change (on = C, off = F) - does not affect dpid 105 values
  • dpId 113 - temperature alarm control (0 = off, 1 = on)
  • dpId 114 - humidity alarm control (0 = off, 1 = on)
  • dpId 116 - alarm volume (0 = high, 1 = medium, 2 = low)

Configuration

Please read TuyaMCU article to understand the terminology and configuration process.

After configuring the template or setting Module 54 map Tuya functions:

Backlog TuyaMCU 11,104; TuyaMCU 71,105; TuyaMCU 73,106; TuyaMCU 81,103; TuyaMCU 61,102; TuyaMCU 62,116

Finish configuring with these options

Backlog TuyaEnumList 1,17; TuyaEnumList 2,2; Rule0 1; SetOption65 1; TempRes 1; HumRes 0

Commands for control:

  • Power1 - Chime on/off
  • TuyaEnum1 - Chime type
  • TuyaEnum2 - Alarm volume
  • Var1 - Alarm duration

Example Commands

  • TuyaSend2 103,12 - Set alarm duration time to 12 seconds
  • TuyaSend2 108,390 - Set maximum temperature to trigger alarm to 39.0 °C
  • TuyaSend2 113,0 - Disable temperature alarm control
  • TuyaSend2 114,0 - Disable humidity alarm control
  • TuyaSend4 116,2 - Set alarm volume to low

Home Assistant Configuration

Add necessary rules:

rule2 on event#doorbell do tuyasend4 102,0 endon on event#fur elise do tuyasend4 102,1 endon on event#big ben do tuyasend4 102,2 endon on event#ring ring do tuyasend4 102,3 endon on event#lone ranger do tuyasend4 102,4 endon on event#turkish march do tuyasend4 102,5 endon on event#high pitched do tuyasend4 102,6 endon on event#red alert do tuyasend4 102,7 endon on event#crickets do tuyasend4 102,8 endon on event#beep do tuyasend4 102,9 endon on event#dog bark do tuyasend4 102,10 endon on event#police siren do tuyasend4 102,11 endon on event#grandfather clock do tuyasend4 102,12 endon on event#phone ring do tuyasend4 102,13 endon on event#fire truck do tuyasend4 102,14 endon on event#clock chime do tuyasend4 102,15 endon on event#alarm clock do tuyasend4 102,16 endon on event#school bell do tuyasend4 102,17 endon on event#high do tuyasend4 116,0 endon on event#medium do tuyasend4 116,1 endon on event#low do tuyasend4 116,2 endon
rule3 on tuyareceived#dptype2id103 do publish %topic%/alarmduration %value% endon on var1#state do tuyasend2 103,%value% endon on tuyareceived#dptype4id101 do publish %topic%/battery %value% endon on tuyareceived#dptype4id102 do publish %topic%/chime %value% endon on tuyareceived#dptype4id116 do publish %topic%/alarmvolume %value% endon on var6#state do tuyasend4 116,%value% endon

GitHub Link

Entities

configuration.yaml

sensor:
  - platform: mqtt
    name: Siren Power Status
    state_topic: siren/battery
    value_template: >-
        {% if value == '1' %}
        high
        {% elif value  == '2' %}
        medium
        {% elif value == '3' %}
        low
        {% elif value == '4' %}
        USB
        {% endif %}
    icon: 'mdi:power-plug-outline'
    availability_topic: tele/siren/LWT
    payload_available: Online
    payload_not_available: Offline

  - platform: mqtt
    name: Siren Alarm Volume
    state_topic: siren/alarmvolume
    value_template: >-
        {% if value == '0' %}
            high
        {% elif value  == '1' %}
            medium
        {% elif value == '2'%}
            low
        {% endif %}
    icon: 'mdi:volume-vibrate'
    availability_topic: tele/siren/LWT
    payload_available: Online
    payload_not_available: Offline

  - platform: mqtt
    name: "Active Chime"
    state_topic: "%topic%/chime"
    command_topic: "cmnd/%topic%/event"
    value_template: >-
        {% if value == "0" %} 
        Doorbell
        {% elif value == "1" %} 
        Fur Elise
        {% elif value == "2" %} 
        Big Ben
        {% elif value == "3" %} 
        Ring Ring
        {% elif value == "4" %} 
        Lone Ranger
        {% elif value == "5" %} 
        Turkish March
        {% elif value == "6" %} 
        High Pitched
        {% elif value == "7" %} 
        Red Alert
        {% elif value == "8" %} 
        Crickets
        {% elif value == "9" %} 
        Beep
        {% elif value == "10" %} 
        Dog Bark
        {% elif value == "11" %} 
        Police Siren
        {% elif value == "12" %} 
        Grandfather Clock
        {% elif value == "13" %} 
        Phone Ring
        {% elif value == "14" %} 
        Fire Truck
        {% elif value == "15" %} 
        Clock Chime
        {% elif value == "16" %} 
        Alarm Clock
        {% elif value == "17" %} 
        School Bell
        {% endif %}
    options: ["Doorbell","Elise","Big Ben","Ring Ring","Lone Ranger","Turkish March","High Pitched","Red Alert","Crickets","Beep","Dog Bark","Police Siren","Grandfather Clock","Phone Ring","Fire Truck","Clock Chime","Alarm Clock","School Bell"]
    icon: "mdi:music-note"
    availability_topic: "tele/siren/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"

number:
  - platform: mqtt
    name: Siren Alarm Duration
    state_topic: siren/alarmduration
    command_topic: cmnd/siren/var1
    availability_topic: tele/siren/LWT
    icon: 'mdi:timer-sand'
    payload_available: Online
    payload_not_available: Offline