tuya-local icon indicating copy to clipboard operation
tuya-local copied to clipboard

Request support for MoistenLand Water Timer

Open afallows opened this issue 2 years ago • 4 comments

MoistenLand Bluetooth Water Timer VIA Tuya Gateway GWB-03 Seems to work well when persist is set to false in the Device Specific Yaml file. Had several timeouts in TinyTuya, not sure if there are some other settings I should try. Most errors were due to response from an unexpected CID.

-->

Log Message from HomeAssistant

2023-09-13 13:37:10.491 DEBUG (SyncWorker_1) [custom_components.tuya_local.device] Front Lawn (Local) refreshed device state: {"dps": {"1": true, "4": 0, "7": 100, "8": "high", "10": "cancel", "11": 300, "12": "manual"}, "cid": "**RETRACTED**", "device": "Non-JSON: (Device( '**RETRACTED**', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='**RETRACTED**', parent='**RETRACTED**', children={} ))"}
2023-09-13 13:37:10.491 DEBUG (SyncWorker_1) [custom_components.tuya_local.device] new state (incl pending): {"updated_at": 1694637430.4895597, "1": true, "4": 0, "7": 100, "8": "high", "10": "cancel", "11": 300, "12": "manual"}
2023-09-13 14:49:03.430 DEBUG (SyncWorker_1) [custom_components.tuya_local.device] Back Lawn (Local) refreshed device state: {"dps": {"1": true, "4": 0, "7": 100, "8": "high", "10": "cancel", "11": 600, "12": "manual", "15": 18}, "cid": "RETRACTED", "device": "Non-JSON: (Device( 'RETRACTED', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='RETRACTED', parent='RETRACTED', children={} ))"}

MoistenLand.yaml via Bluetooth Gateway GWB-03 - Edited September 14, to remove persist per comment, as it is not applied correctly. Applied persist: False to DP:15 as it will only report if the watering timer has a "Watering Time last cycle" value.

name: Moistenland Irrigation
products:
  - id: 8t5hebn0
    name: MoistenLand Timer
primary_entity:
  entity: switch
  icon: mdi:sprinkler-variant
  dps:
    - id: 1
      name: switch
      type: boolean
secondary_entities:
  - entity: sensor
    name: Fault reporting
    category: diagnostic
    icon: mdi:alert-circle
    dps:
      - id: 4
        type: integer
        name: sensor
  - entity: sensor
    name: Battery
    class: battery
    category: diagnostic
    icon: mdi:battery
    dps:
      - id: 7
        type: integer
        name: sensor
        unit: "%"
  - entity: sensor
    name: Battery Status
    class: enum
    category: diagnostic
    dps:
      - id: 8
        type: string
        name: sensor
        mapping:
          - dps_val: "low"
            value: "Replace Battery"
          - dps_val: "middle"
            value: "Battery Ok"
          - dps_val: "high"
            value: "Fully Charged"
  - entity: select
    name: Weather delay
    icon: "mdi:weather-cloudy-clock"
    category: config
    dps:
      - id: 10
        type: string
        name: option
        mapping:
          - dps_val: "cancel"
            value: "Off"
          - dps_val: "24h"
            value: "1 day"
          - dps_val: "48h"
            value: "2 days"
          - dps_val: "72h"
            value: "3 days"
  - entity: number
    category: config
    name: Timer
    icon: "mdi:timer"
    dps:
      - id: 11
        name: value
        type: integer
        unit: min
        range:
          min: 0
          max: 86400
        mapping:
          - scale: 60
            step: 60
  - entity: sensor
    name: Work Mode
    class: enum
    category: diagnostic
    icon: mdi:auto-mode
    dps:
      - id: 12
        type: string
        name: sensor
        mapping:
          - dps_val: "manual"
            value: "Manual"
          - dps_val: "auto"
            value: "Auto"
          - dps_val: "idle"
            value: "Idle"
  - entity: sensor
    name: Use_Time_s
    category: diagnostic
    icon: mdi:water-circle
persist: False
    dps:
      - id: 15
        type: integer
        name: sensor
        range:
          min: 0
          max: 86400
        unit: min
        mapping:
          - scale: 60
            step:  60           

TinyTuya Test Script.

import tinytuya
import time
tinytuya.set_debug(True)

# Connect to Device
gw_id='REDACTED'
dev_id='REDACTED'
address='REDACTED'      # Or set to 'Auto' to auto-discover IP address
local_key="REDACTED"
did='REDACTED'
did2='REDACTED'
version="3.4"
loopcount = 0
# Get Status
gw = tinytuya.Device(gw_id,address,local_key,'device22',persist=False)
gw.set_version(3.4)
api = tinytuya.Device(gw_id,cid=did,parent=gw)
api2 = tinytuya.Device(gw_id,cid=did2,parent=gw)

while loopcount <= 10:
    api.set_value(1, True)
    time.sleep(5)
    api2.set_value(1, True)
    time.sleep(30)
    api.set_value(1, False)
    time.sleep(5)
    api2.set_value(1, False)
    time.sleep(5)
    print('Status from device 1')
    print(api.status())
    time.sleep(5)
    print('Status from device 2')
    print(api2.status())
    loopcount = loopcount + 1

TinyTuya Log File

[https://drive.google.com/file/d/17VKOZ7PuwQ4lgyeu-mAkl1vqwv52F17e/view?usp=sharing](url)

afallows avatar Sep 13 '23 20:09 afallows

Issue I'm having is one of the sensors (Usually the back lawn) becomes unavailable often in LocalTuya. When it happens, the same issue is happening in TinyTuya. The device returns a null value. Any ideas on how to approach this?

2023-09-13 14:35:32.372 DEBUG (SyncWorker_1) [custom_components.tuya_local.device] Back Lawn (Local) refreshed device state: null
2023-09-13 14:35:32.372 DEBUG (SyncWorker_1) [custom_components.tuya_local.device] new state (incl pending): {"updated_at": 0}
2023-09-13 14:35:32.372 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 4 (sensor), unable to determine valid values

afallows avatar Sep 13 '23 21:09 afallows

persist: false is set at the dp level, not the product level, and causes the dp to clear if it is not sent by the device. It has some specific use cases, mainly for binary_sensors which should probably be events, for things like remote control buttons.

I think what you are trying to do is set the connection to polling. This is done from the device config in the HA UI, not from the config file.

make-all avatar Sep 13 '23 22:09 make-all

Hi, Thanks for the response.

I think this gateway, GWB-03 has the same issue as issue #1054 . If I only have one water timer on and polling through localtuya it seems to update fine without issue. As soon as I add the second one, the timers exhibit odd behaviours such as the Bluetooth Gateway responding with Null or responding with stale values, or the timers becoming unavailable.

When this happens, I can still enable bluetooth on my phone, connect to the individual devices and see the information updating or start/stop the timers.

What I'm trying to do is make sure that only 1 connection to the bluetooth gateway persists for the two children. Either by closing the connection and re-opening it, or by maintaining the 1 connection to the gateway and monitoring for the two CIDs.

I'm a little new to this, but keen to learn.

afallows avatar Sep 13 '23 22:09 afallows

After further investigation, I've found this product has an odd behaviour. The following is observed testing with a single bluetooth water timer connected through the gateway:

  1. The bluetooth gateway GWB-03 provides cached data to Local Tuya when the status is requested. It seems like the cached data is not updated from the bluetooth device until a write command is issued to the device. The device then sends updated data to the bluetooth gateway within about 60 seconds.

Not sure if there is a way to handle this within Tuya-Local itself. I've just written an automation to check if Work_State is "manual" every 5 minutes and if so write DP:10 to "cancel"

This works to refresh the stale data.

Test Script

import tinytuya
import time
tinytuya.set_debug(False)

# Connect to Device
gw_id='MY_GW_ID'
dev_id='my_DEVID'
address='MY_IP'      # Or set to 'Auto' to auto-discover IP address
local_key="My_LOCALKEY"
did='MY_UID_FRONT' #Front Lawn
did2='MY_UID_BACK' #Back Lawn
version="3.4"
loopcount = 0
# Get Status
gw = tinytuya.Device(gw_id,address,local_key,persist=True)
gw.set_version(3.4)
api = tinytuya.Device(gw_id,cid=did,parent=gw)
api2 = tinytuya.Device(gw_id,cid=did2,parent=gw)


print('\nTesting enabling of timer from Multiple DPs. Timer Set at 60s Looping for 30min \n')  
api2.set_multiple_values({'11': 60, '1': True})

loopcount = 0
while loopcount <= 59:
    print("\nTime Elapsed: " + str(loopcount * 30) + "s\n")
    if (loopcount) == 55:
        print("\nWriting DP:10 to 'cancel' to force update\n")
        api2.set_value("10", "cancel")
    print(api2.status())
    time.sleep(30)   
    loopcount = loopcount + 1
print("\nTest Complete\n")

Test Results

Testing enabling of timer from Multiple DPs. Timer Set at 60s Looping for 30min 


Time Elapsed: 0s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 30s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 60s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 90s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 120s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 150s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 180s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 210s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 240s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 270s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 300s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 330s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 360s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 390s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 420s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 450s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 480s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 510s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 540s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 570s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 600s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 630s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 660s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 690s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 720s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 750s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 780s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 810s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 840s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 870s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 900s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 930s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 960s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 990s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1020s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1050s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1080s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1110s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1140s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1170s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1200s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1230s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1260s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1290s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1320s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1350s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1380s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1410s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1440s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1470s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1500s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1530s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1560s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1590s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1620s

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1650s


Writing DP:10 to 'cancel' to force update

{'dps': {'1': True, '4': 0, '7': 100, '8': 'high', '10': 'cancel', '11': 59, '12': 'manual', '15': 600}, 'cid': 'SUBDEVICECID', 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1680s

{'protocol': 4, 't': 1694702172, 'data': {'dps': {'1': False, '12': 'idle'}, 'cid': 'SUBDEVICECID'}, 'dps': {'1': False, '12': 'idle'}, 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1710s

{'protocol': 4, 't': 1694702172, 'data': {'dps': {'11': 60}, 'cid': 'SUBDEVICECID'}, 'dps': {'11': 60}, 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1740s

{'protocol': 4, 't': 1694702172, 'data': {'dps': {'16': 'AQ=='}, 'cid': 'SUBDEVICECID'}, 'dps': {'16': 'AQ=='}, 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Time Elapsed: 1770s

{'protocol': 4, 't': 1694702172, 'data': {'dps': {'17': 'AQ=='}, 'cid': 'SUBDEVICECID'}, 'dps': {'17': 'AQ=='}, 'device': Device( 'GATEWAY_ID', address=None, local_key='', dev_type='default', connection_timeout=5, version=3.4, persist=False, cid='SUBDEVICECID', parent='GATEWAY_ID', children={} )}

Test Complete

afallows avatar Sep 14 '23 16:09 afallows