Logo
NEO Coolcam Temperature and Humidity 3in1 Alarm Siren
Model reference: NAS-AB02W
NEO Coolcam Temperature and Humidity 3in1 Alarm

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


Manufacturer:
Szneo.com

Flashed with:
Tuya-Convert

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
Template for Tasmota v9.1+
{"NAME":"Neo Siren 3in1","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54}

by blakadder
Tuya-Convert might not be possible for this device if the manufacturer started using newest Tuya firmware since this template was published (2021-04-26).

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

/assets/images/neo_coolcam_NAS-AB02W-flash-pads.jpg

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 pitch siren
    • 7 - red alert
    • 8 - cricket
    • 9 - beep beep
    • 10 - dogs
    • 11 - police
    • 12 - grandfather clock
    • 13 - phone ring
    • 14 - firetruck
    • 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

Home Assistant Configuration

Add necessary rules:

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

GitHub Link

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

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"
    value_template: >-
        {% if value == "0" %} 
        doorbell
        {% elif value == "1" %} 
        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 pitch
        {% elif value == "7" %} 
        red alert
        {% elif value == "8" %} 
        crickets
        {% elif value == "9" %} 
        beep beep
        {% elif value == "10" %} 
        dog bark
        {% elif value == "11" %} 
        police
        {% elif value == "12" %} 
        chime
        {% elif value == "13" %} 
        phone ring
        {% elif value == "14" %} 
        firetruck
        {% elif value == "15" %} 
        clock chime
        {% elif value == "16" %} 
        alarm clock
        {% elif value == "17" %} 
        psycho
        {% endif %}
    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