Comments (22)
Hi @coolguymatt,
I will get hands on that device by the end of the month. In the next few days, I would ask you to run some script in order to gather more info about the device, if you don't mind. Would you help me?
from merossiot.
Of course. Let me know how I can help.
from merossiot.
Alright then.
First, update the library version to to the latest 0.2.0.1:
pip install meross-iot --upgrade
Then I would need the output of the following script. It won't sanitize all the personal information, so, I would need you to purge out any personal data from it before publishing (MAC addresses, User ID).
Once I have that script, I might be able to investigate more!
from meross_iot.api import MerossHttpClient
from meross_iot.supported_devices.power_plugs import set_debug_level
from logging import DEBUG
import csv, io
EMAIL = 'YOUR_EMAIL'
PASSWORD = 'YOUR_PASSWORD'
client = MerossHttpClient(email=EMAIL, password=PASSWORD)
devices = client.list_supported_devices()
def sanitize_personal_info(d):
if isinstance(d, dict):
for key, value in d.items():
k = key.lower()
if isinstance(value, dict):
sanitize_personal_info(value)
elif isinstance(value, str) and (k == 'uuid' or k=='macaddress' or k == 'wifimac' or k == 'userid' or k=='bssid' or k =='ssid'):
d[key] = 'X'
elif isinstance(d, list):
for k in d:
sanitize_personal_info(k)
return d
if __name__ == '__main__':
set_debug_level(DEBUG)
output = io.StringIO()
writer = csv.writer(output, delimiter=';')
for d in devices:
r = []
r.append(d._type)
r.append(d._hwversion)
r.append(d._fwversion)
r.append(sanitize_personal_info(d.get_sys_data()))
r.append(sanitize_personal_info(d.get_channels()))
abilities = d.get_abilities()
r.append(sanitize_personal_info(abilities))
r.append(sanitize_personal_info(d.get_channels()))
writer.writerow(r)
print("\n\n---------------------------------------")
print(str(output.getvalue()))
Thank you!
from merossiot.
Let me know if I did something wrong
--> {"header": {"from": "/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "f01bb06927c9339293b6f564fa03593e", "method": "GET", "namespace": "Appliance.System.All", "payloadVersion": 1, "sign": "c4ceddc7133c70db8c709f108aa92b95", "timestamp": 1554934858}, "payload": {}}
/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"f01bb06927c9339293b6f564fa03593e","namespace":"Appliance.System.All","method":"GETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1554934857,"timestampMs":71,"sign":"6963be36668616a8d38ae6dcc7b47198"},"payload":{"all":{"system":{"hardware":{"type":"msg100","subType":"us","version":"2.0.0","chipType":"mt7682","uuid":"18120167058930261h0134298f13c495","macAddress":"purge"},"firmware":{"version":"2.1.11","compileTime":"2019/03/16 14:00:24 GMT +08:00","wifiMac":"purge","innerIp":"192.168.1.248","server":"iot.meross.com","port":2001,"userId":purge},"time":{"timestamp":1554934857,"timezone":"America/Toronto","timeRule":[[1552201200,-14400,1],[1572760800,-18000,0],[1583650800,-14400,1],[1604210400,-18000,0],[1615705200,-14400,1],[1636264800,-18000,0],[1647154800,-14400,1],[1667714400,-18000,0],[1678604400,-14400,1],[1699164000,-18000,0],[1710054000,-14400,1],[1730613600,-18000,0],[1741503600,-14400,1],[1762063200,-18000,0],[1772953200,-14400,1],[1793512800,-18000,0],[1805007600,-14400,1],[1825567200,-18000,0],[1836457200,-14400,1],[1857016800,-18000,0]]},"online":{"status":1}},"digest":{"togglex":[{"channel":0,"onoff":1,"lmTime":0}],"triggerx":[],"timerx":[],"garageDoor":[{"channel":0,"open":0,"lmTime":1554904399}]}}}}'
The following message was unhandled: {'header': {'messageId': 'f01bb06927c9339293b6f564fa03593e', 'namespace': 'Appliance.System.All', 'method': 'GETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1554934857, 'timestampMs': 71, 'sign': '6963be36668616a8d38ae6dcc7b47198'}, 'payload': {'all': {'system': {'hardware': {'type': 'msg100', 'subType': 'us', 'version': '2.0.0', 'chipType': 'mt7682', 'uuid': '18120167058930261h0134298f13c495', 'macAddress': 'purge'}, 'firmware': {'version': '2.1.11', 'compileTime': '2019/03/16 14:00:24 GMT +08:00', 'wifiMac': 'purge', 'innerIp': '192.168.1.248', 'server': 'iot.meross.com', 'port': 2001, 'userId': purge}, 'time': {'timestamp': 1554934857, 'timezone': 'America/Toronto', 'timeRule': [[1552201200, -14400, 1], [1572760800, -18000, 0], [1583650800, -14400, 1], [1604210400, -18000, 0], [1615705200, -14400, 1], [1636264800, -18000, 0], [1647154800, -14400, 1], [1667714400, -18000, 0], [1678604400, -14400, 1], [1699164000, -18000, 0], [1710054000, -14400, 1], [1730613600, -18000, 0], [1741503600, -14400, 1], [1762063200, -18000, 0], [1772953200, -14400, 1], [1793512800, -18000, 0], [1805007600, -14400, 1], [1825567200, -18000, 0], [1836457200, -14400, 1], [1857016800, -18000, 0]]}, 'online': {'status': 1}}, 'digest': {'togglex': [{'channel': 0, 'onoff': 1, 'lmTime': 0}], 'triggerx': [], 'timerx': [], 'garageDoor': [{'channel': 0, 'open': 0, 'lmTime': 1554904399}]}}}}
--> {"header": {"from": "/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "9b919338f35122f7a4178b98ec3baf45", "method": "GET", "namespace": "Appliance.System.Ability", "payloadVersion": 1, "sign": "6cb1a714a1c22081735c001c4f96e73b", "timestamp": 1554934858}, "payload": {}}
/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"9b919338f35122f7a4178b98ec3baf45","namespace":"Appliance.System.Ability","method":"GETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1554934858,"timestampMs":825,"sign":"6cb1a714a1c22081735c001c4f96e73b"},"payload":{"payloadVersion":1,"ability":{"Appliance.Config.Key":{},"Appliance.Config.WifiList":{},"Appliance.Config.Wifi":{},"Appliance.Config.Trace":{},"Appliance.System.All":{},"Appliance.System.Hardware":{},"Appliance.System.Firmware":{},"Appliance.System.Debug":{},"Appliance.System.Online":{},"Appliance.System.Time":{},"Appliance.System.Ability":{},"Appliance.System.Runtime":{},"Appliance.System.Report":{},"Appliance.System.Position":{},"Appliance.System.DNDMode":{},"Appliance.Control.Multiple":{"maxCmdNum":5},"Appliance.Control.ToggleX":{},"Appliance.Control.TimerX":{"sunOffsetSupport":1,"notify":["Appliance.GarageDoor.State"]},"Appliance.Control.TriggerX":{"notify":["Appliance.GarageDoor.State"]},"Appliance.Control.Bind":{},"Appliance.Control.Unbind":{},"Appliance.Control.Upgrade":{},"Appliance.GarageDoor.State":{},"Appliance.Digest.TriggerX":{},"Appliance.Digest.TimerX":{}}}}'
The following message was unhandled: {'header': {'messageId': '9b919338f35122f7a4178b98ec3baf45', 'namespace': 'Appliance.System.Ability', 'method': 'GETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1554934858, 'timestampMs': 825, 'sign': '6cb1a714a1c22081735c001c4f96e73b'}, 'payload': {'payloadVersion': 1, 'ability': {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}}}
---------------------------------------
msg100;2.0.0;2.1.11;{'all': {'system': {'hardware': {'type': 'msg100', 'subType': 'us', 'version': '2.0.0', 'chipType': 'mt7682', 'uuid': 'X', 'macAddress': 'X'}, 'firmware': {'version': '2.1.11', 'compileTime': '2019/03/16 14:00:24 GMT +08:00', 'wifiMac': 'X', 'innerIp': '192.168.1.248', 'server': 'iot.meross.com', 'port': 2001, 'userId': purge}, 'time': {'timestamp': 1554934857, 'timezone': 'America/Toronto', 'timeRule': [[1552201200, -14400, 1], [1572760800, -18000, 0], [1583650800, -14400, 1], [1604210400, -18000, 0], [1615705200, -14400, 1], [1636264800, -18000, 0], [1647154800, -14400, 1], [1667714400, -18000, 0], [1678604400, -14400, 1], [1699164000, -18000, 0], [1710054000, -14400, 1], [1730613600, -18000, 0], [1741503600, -14400, 1], [1762063200, -18000, 0], [1772953200, -14400, 1], [1793512800, -18000, 0], [1805007600, -14400, 1], [1825567200, -18000, 0], [1836457200, -14400, 1], [1857016800, -18000, 0]]}, 'online': {'status': 1}}, 'digest': {'togglex': [{'channel': 0, 'onoff': 1, 'lmTime': 0}], 'triggerx': [], 'timerx': [], 'garageDoor': [{'channel': 0, 'open': 0, 'lmTime': 1554904399}]}}};[{}];{'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}};[{}]
from merossiot.
Hi @coolguymatt ,
I've spent some time in guessing how your device works. I need you to test what I've done so far to check if I'm on the right track.
Now, I've created a new branch for testing the MSG100. What you need to do is to uninstall any previous version of the meross-iot library, clone this git repository, move to the MSG100 branch and test it with your device. If you are unfamiliar with GIT, I'll try to guide you through.
pip uninstall meross-iot
git clone https://github.com/albertogeniola/MerossIot.git
cd MerossIot
git checkout MSG100
git pull
python test_msg100.py
The script will ask for your user/password on meross cloud and will let you play with the functionality I've been implementing for your device. Please try to use the device and then report to me the content of the generated msg100.log file and the output of the console (as you play) with it.
Don't forget to check if your garage door opens/closes!
Thank you for your help!
from merossiot.
I ran the file successfully. I tried the commands from the script. I then opened the garage using the app, and the script was still showing the reported garage state as CLOSED.
Welcome to the MSG100 test script. Thank you for helping me in testing this device!
-----------------------------------------
All low-level lows will be saved to /home/matthew/MerossIot/msg100.log
Please enter your meross cloud email and password. That would allow me to perform some tests.
Your meross EMAIL: [email protected]
Your meross PASSWORD:
Connecting to HTTP-API...
Looking for the meross MSG100
Found MSG100 named Garage Door
Let's see whats the Garage status right now...
-------------------------
Now it's your turn. Try to play with the garage and report if it's working or not.
This device does not support GARAGE_STATE method
Reported garage state is: CLOSED. Go check if that is true!
Your command (O for opening, C for closing, Q for quitting): 0
Invalid command provided.
This device does not support GARAGE_STATE method
Reported garage state is: CLOSED. Go check if that is true!
Your command (O for opening, C for closing, Q for quitting): C
Closing
This device does not support GARAGE_STATE method
Reported garage state is: CLOSED. Go check if that is true!
Your command (O for opening, C for closing, Q for quitting): C
Closing
This device does not support GARAGE_STATE method
Reported garage state is: CLOSED. Go check if that is true!
Your command (O for opening, C for closing, Q for quitting): O
Opening...
This device does not support GARAGE_STATE method
Reported garage state is: CLOSED. Go check if that is true!
Your command (O for opening, C for closing, Q for quitting): Q
Quitting
Here is the msg100.log file
Connected with result code {'session present': 0}
Subscribing to topics...
Succesfully subscribed!
Succesfully subscribed!
--> {"header": {"from": "/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "efbd4f54b9d254fe6f6cf36057c6f772", "method": "GET", "namespace": "Appliance.System.All", "payloadVersion": 1, "sign": "a1dc5c4777ec4691083400fb4ae22889", "timestamp": 1555154208}, "payload": {}}
/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"efbd4f54b9d254fe6f6cf36057c6f772","namespace":"Appliance.System.All","method":"GETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555154207,"timestampMs":850,"sign":"6e83d9190d1d11300b06200fe86ceed7"},"payload":{"all":{"system":{"hardware":{"type":"msg100","subType":"us","version":"2.0.0","chipType":"mt7682","uuid":"18120167058930261h0134298f13c495","macAddress":"purge"},"firmware":{"version":"2.1.11","compileTime":"2019/03/16 14:00:24 GMT +08:00","wifiMac":"fc:ec:da:81:0e:94","innerIp":"192.168.1.248","server":"iot.meross.com","port":2001,"userId":purge},"time":{"timestamp":1555154207,"timezone":"America/Toronto","timeRule":[[1552201200,-14400,1],[1572760800,-18000,0],[1583650800,-14400,1],[1604210400,-18000,0],[1615705200,-14400,1],[1636264800,-18000,0],[1647154800,-14400,1],[1667714400,-18000,0],[1678604400,-14400,1],[1699164000,-18000,0],[1710054000,-14400,1],[1730613600,-18000,0],[1741503600,-14400,1],[1762063200,-18000,0],[1772953200,-14400,1],[1793512800,-18000,0],[1805007600,-14400,1],[1825567200,-18000,0],[1836457200,-14400,1],[1857016800,-18000,0]]},"online":{"status":1}},"digest":{"togglex":[{"channel":0,"onoff":1,"lmTime":0}],"triggerx":[],"timerx":[],"garageDoor":[{"channel":0,"open":0,"lmTime":1555152424}]}}}}'
The following message was unhandled: {'header': {'messageId': 'efbd4f54b9d254fe6f6cf36057c6f772', 'namespace': 'Appliance.System.All', 'method': 'GETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555154207, 'timestampMs': 850, 'sign': '6e83d9190d1d11300b06200fe86ceed7'}, 'payload': {'all': {'system': {'hardware': {'type': 'msg100', 'subType': 'us', 'version': '2.0.0', 'chipType': 'mt7682', 'uuid': '18120167058930261h0134298f13c495', 'macAddress': 'purge'}, 'firmware': {'version': '2.1.11', 'compileTime': '2019/03/16 14:00:24 GMT +08:00', 'wifiMac': 'fc:ec:da:81:0e:94', 'innerIp': '192.168.1.248', 'server': 'iot.meross.com', 'port': 2001, 'userId': purge}, 'time': {'timestamp': 1555154207, 'timezone': 'America/Toronto', 'timeRule': [[1552201200, -14400, 1], [1572760800, -18000, 0], [1583650800, -14400, 1], [1604210400, -18000, 0], [1615705200, -14400, 1], [1636264800, -18000, 0], [1647154800, -14400, 1], [1667714400, -18000, 0], [1678604400, -14400, 1], [1699164000, -18000, 0], [1710054000, -14400, 1], [1730613600, -18000, 0], [1741503600, -14400, 1], [1762063200, -18000, 0], [1772953200, -14400, 1], [1793512800, -18000, 0], [1805007600, -14400, 1], [1825567200, -18000, 0], [1836457200, -14400, 1], [1857016800, -18000, 0]]}, 'online': {'status': 1}}, 'digest': {'togglex': [{'channel': 0, 'onoff': 1, 'lmTime': 0}], 'triggerx': [], 'timerx': [], 'garageDoor': [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]}}}}
--> {"header": {"from": "/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "ce4c662dae2a6b2555016bdd8fd80850", "method": "GET", "namespace": "Appliance.System.Ability", "payloadVersion": 1, "sign": "0e6c68ed753fac09e5eb89d412bb757a", "timestamp": 1555154208}, "payload": {}}
/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"ce4c662dae2a6b2555016bdd8fd80850","namespace":"Appliance.System.Ability","method":"GETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555154207,"timestampMs":102,"sign":"47ddf1e5b593e922e5fb3aee3cd94ba6"},"payload":{"payloadVersion":1,"ability":{"Appliance.Config.Key":{},"Appliance.Config.WifiList":{},"Appliance.Config.Wifi":{},"Appliance.Config.Trace":{},"Appliance.System.All":{},"Appliance.System.Hardware":{},"Appliance.System.Firmware":{},"Appliance.System.Debug":{},"Appliance.System.Online":{},"Appliance.System.Time":{},"Appliance.System.Ability":{},"Appliance.System.Runtime":{},"Appliance.System.Report":{},"Appliance.System.Position":{},"Appliance.System.DNDMode":{},"Appliance.Control.Multiple":{"maxCmdNum":5},"Appliance.Control.ToggleX":{},"Appliance.Control.TimerX":{"sunOffsetSupport":1,"notify":["Appliance.GarageDoor.State"]},"Appliance.Control.TriggerX":{"notify":["Appliance.GarageDoor.State"]},"Appliance.Control.Bind":{},"Appliance.Control.Unbind":{},"Appliance.Control.Upgrade":{},"Appliance.GarageDoor.State":{},"Appliance.Digest.TriggerX":{},"Appliance.Digest.TimerX":{}}}}'
The following message was unhandled: {'header': {'messageId': 'ce4c662dae2a6b2555016bdd8fd80850', 'namespace': 'Appliance.System.Ability', 'method': 'GETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555154207, 'timestampMs': 102, 'sign': '47ddf1e5b593e922e5fb3aee3cd94ba6'}, 'payload': {'payloadVersion': 1, 'ability': {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}}}
This device does not support GARAGE_STATE method
This device does not support GARAGE_STATE method
--> {"header": {"from": "/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "70e2fc0d2b95f7220b92ec76af6eb192", "method": "SET", "namespace": "Appliance.Control.ToggleX", "payloadVersion": 1, "sign": "a79de7f6bdd8a5dd7bf1a693ae04cad5", "timestamp": 1555154232}, "payload": {"togglex": {"onoff": 1, "channel": 0}}}
/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"70e2fc0d2b95f7220b92ec76af6eb192","namespace":"Appliance.Control.ToggleX","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555154232,"timestampMs":396,"sign":"a79de7f6bdd8a5dd7bf1a693ae04cad5"},"payload":{}}'
The following message was unhandled: {'header': {'messageId': '70e2fc0d2b95f7220b92ec76af6eb192', 'namespace': 'Appliance.Control.ToggleX', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555154232, 'timestampMs': 396, 'sign': 'a79de7f6bdd8a5dd7bf1a693ae04cad5'}, 'payload': {}}
This device does not support GARAGE_STATE method
--> {"header": {"from": "/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "48fb069d76d5e01188efb9aad5cd9d5d", "method": "SET", "namespace": "Appliance.Control.ToggleX", "payloadVersion": 1, "sign": "e8d8881858d7e729a50edec11ff0c743", "timestamp": 1555154269}, "payload": {"togglex": {"onoff": 1, "channel": 0}}}
/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"48fb069d76d5e01188efb9aad5cd9d5d","namespace":"Appliance.Control.ToggleX","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555154269,"timestampMs":479,"sign":"e8d8881858d7e729a50edec11ff0c743"},"payload":{}}'
The following message was unhandled: {'header': {'messageId': '48fb069d76d5e01188efb9aad5cd9d5d', 'namespace': 'Appliance.Control.ToggleX', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555154269, 'timestampMs': 479, 'sign': 'e8d8881858d7e729a50edec11ff0c743'}, 'payload': {}}
This device does not support GARAGE_STATE method
--> {"header": {"from": "/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "cd07192140564008afcf316c45ebf7d0", "method": "SET", "namespace": "Appliance.Control.ToggleX", "payloadVersion": 1, "sign": "73bf85b862f4b2fd9cd3b8f246e8945e", "timestamp": 1555154273}, "payload": {"togglex": {"onoff": 1, "channel": 0}}}
/app/199099-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"cd07192140564008afcf316c45ebf7d0","namespace":"Appliance.Control.ToggleX","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555154272,"timestampMs":243,"sign":"ce862b1cb34e9be32bc4507d966a0bb8"},"payload":{}}'
The following message was unhandled: {'header': {'messageId': 'cd07192140564008afcf316c45ebf7d0', 'namespace': 'Appliance.Control.ToggleX', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555154272, 'timestampMs': 243, 'sign': 'ce862b1cb34e9be32bc4507d966a0bb8'}, 'payload': {}}
This device does not support GARAGE_STATE method
from merossiot.
Hi @coolguymatt ,
that is really strange. The log clearly states that the ability "Appliance.GarageDoor.State" is present but for some reason my script fails to catch that.
A few questions:
- If you press the O (Open) command or the C (Close) commands, does the garage door operate?
- Would you mind to repeat the test? I've updated the script to provide more verbose logging. You can do that by simply navigating into the directory that contains the library you downloaded previously and issue the GIT PULL command. Then run the script again:
cd MerossIot
rm msg100.log
git checkout MSG100
git pull
python test_msg100.py
Again, I would need both the output and the content of the msg100.log file that is generated by the script. Thank you for your time and help!
from merossiot.
So, I've been looking at the app code and it seems that the GARAGE OPENER is handled differently from the rest of devices. In particular, the command that is sent to the remote MQTT broker is something described by the following:
BaseBeanForControlDevice c = c(str, "SET", "Appliance.GarageDoor.State");
HashMap hashMap = new HashMap();
hashMap.put("channel", Integer.valueOf(i));
hashMap.put("open", Integer.valueOf(i2));
hashMap.put("uuid", str2);
c.addPayload("state", hashMap);
So it looks like the app is sending a "Appliance.GarageDoor.State" command with a payload composed with the status of the garage door and some UUID that I still need to figure out.
Anyways, I've updated again the script so that two new test methods are available. Now you can play with the following commands:
o -> Tries to open the door with TOGGLEX
c -> Tries to close the door with TOGGLEX
o1 -> Tries to open the door with "Appliance.GarageDoor.State" and the concatenation of device/channel
c1 -> Tries to close the door with "Appliance.GarageDoor.State" and the concatenation of device/channel
o2 -> Tries to open the door with "Appliance.GarageDoor.State" and the device uuid
c2 -> Tries to close the door with "Appliance.GarageDoor.State" and the device uuid
Please try to play with those commands and let me know if any of them works... Also, don't forget to report back both the output and the logfile info.
from merossiot.
The new commands worked (O1,O2 and C1,C2).
-----------------------------------------
Welcome to the MSG100 test script. Thank you for helping me in testing this device!
-----------------------------------------
All low-level lows will be saved to /home/matthew/MerossIot/msg100.log
Please enter your meross cloud email and password. That would allow me to perform some tests.
Your meross EMAIL: [email protected]
Your meross PASSWORD:
Connecting to HTTP-API...
Looking for the meross MSG100
Found MSG100 named Garage Door
Let's see whats the Garage status right now...
-------------------------
Now it's your turn. Try to play with the garage and report if it's working or not.
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: O
O: Opening...
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: 01
Invalid command provided.
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: O1
O1: Opening...
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: 18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
C
C: Closing...
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: C
C: Closing...
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: C1
C1: Closing...
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: 18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
Invalid command provided.
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: O2
O2: Opening...
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: 18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
Invalid command provided.
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: C2
C2: Closing...
Reported garage state is: CLOSED. Go check if that is true!
Commands:
OPEN with TOGGLEX: O
CLOSE with TOGGLEX: C
OPEN with GARAGE_DOOR_STATE with UUID+CHANNEL: O1
CLOSE with GARAGE_DOOR_STATE with UUID+CHANNEL: C1
OPEN with GARAGE_DOOR_STATE with UUID: O2
CLOSE with GARAGE_DOOR_STATE with UUID: C2
QUIT: Q
Your command: 18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
msg.log file
Connected with result code {'session present': 0}
Subscribing to topics...
Succesfully subscribed!
Succesfully subscribed!
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "32dd8d11b98823556fd6fb421a09df99", "method": "GET", "namespace": "Appliance.System.All", "payloadVersion": 1, "sign": "515d1f4bedb5bba436d65cbb1c272b33", "timestamp": 1555276769}, "payload": {}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"32dd8d11b98823556fd6fb421a09df99","namespace":"Appliance.System.All","method":"GETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555276768,"timestampMs":509,"sign":"f50b12a5f156a614e7feb4d1c2ea3fa5"},"payload":{"all":{"system":{"hardware":{"type":"msg100","subType":"us","version":"2.0.0","chipType":"mt7682","uuid":"18120167058930261h0134298f13c495","macAddress":"purge"},"firmware":{"version":"2.1.11","compileTime":"2019/03/16 14:00:24 GMT +08:00","wifiMac":"fc:ec:da:81:0e:94","innerIp":"192.168.1.248","server":"iot.meross.com","port":2001,"userId":purge},"time":{"timestamp":1555276768,"timezone":"America/Toronto","timeRule":[[1552201200,-14400,1],[1572760800,-18000,0],[1583650800,-14400,1],[1604210400,-18000,0],[1615705200,-14400,1],[1636264800,-18000,0],[1647154800,-14400,1],[1667714400,-18000,0],[1678604400,-14400,1],[1699164000,-18000,0],[1710054000,-14400,1],[1730613600,-18000,0],[1741503600,-14400,1],[1762063200,-18000,0],[1772953200,-14400,1],[1793512800,-18000,0],[1805007600,-14400,1],[1825567200,-18000,0],[1836457200,-14400,1],[1857016800,-18000,0]]},"online":{"status":1}},"digest":{"togglex":[{"channel":0,"onoff":1,"lmTime":0}],"triggerx":[],"timerx":[],"garageDoor":[{"channel":0,"open":0,"lmTime":1555152424}]}}}}'
The following message was unhandled: {'header': {'messageId': '32dd8d11b98823556fd6fb421a09df99', 'namespace': 'Appliance.System.All', 'method': 'GETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555276768, 'timestampMs': 509, 'sign': 'f50b12a5f156a614e7feb4d1c2ea3fa5'}, 'payload': {'all': {'system': {'hardware': {'type': 'msg100', 'subType': 'us', 'version': '2.0.0', 'chipType': 'mt7682', 'uuid': '18120167058930261h0134298f13c495', 'macAddress': 'purge'}, 'firmware': {'version': '2.1.11', 'compileTime': '2019/03/16 14:00:24 GMT +08:00', 'wifiMac': 'fc:ec:da:81:0e:94', 'innerIp': '192.168.1.248', 'server': 'iot.meross.com', 'port': 2001, 'userId': purge}, 'time': {'timestamp': 1555276768, 'timezone': 'America/Toronto', 'timeRule': [[1552201200, -14400, 1], [1572760800, -18000, 0], [1583650800, -14400, 1], [1604210400, -18000, 0], [1615705200, -14400, 1], [1636264800, -18000, 0], [1647154800, -14400, 1], [1667714400, -18000, 0], [1678604400, -14400, 1], [1699164000, -18000, 0], [1710054000, -14400, 1], [1730613600, -18000, 0], [1741503600, -14400, 1], [1762063200, -18000, 0], [1772953200, -14400, 1], [1793512800, -18000, 0], [1805007600, -14400, 1], [1825567200, -18000, 0], [1836457200, -14400, 1], [1857016800, -18000, 0]]}, 'online': {'status': 1}}, 'digest': {'togglex': [{'channel': 0, 'onoff': 1, 'lmTime': 0}], 'triggerx': [], 'timerx': [], 'garageDoor': [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]}}}}
Abilities: None
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "b26cc7e9851e31369d94997a43f68664", "method": "GET", "namespace": "Appliance.System.Ability", "payloadVersion": 1, "sign": "8f3927f4c42d7a4ed0ed9d56700f9151", "timestamp": 1555276785}, "payload": {}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"b26cc7e9851e31369d94997a43f68664","namespace":"Appliance.System.Ability","method":"GETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555276784,"timestampMs":223,"sign":"c4a1ff7eef8ec237cf159a1a70ad4355"},"payload":{"payloadVersion":1,"ability":{"Appliance.Config.Key":{},"Appliance.Config.WifiList":{},"Appliance.Config.Wifi":{},"Appliance.Config.Trace":{},"Appliance.System.All":{},"Appliance.System.Hardware":{},"Appliance.System.Firmware":{},"Appliance.System.Debug":{},"Appliance.System.Online":{},"Appliance.System.Time":{},"Appliance.System.Ability":{},"Appliance.System.Runtime":{},"Appliance.System.Report":{},"Appliance.System.Position":{},"Appliance.System.DNDMode":{},"Appliance.Control.Multiple":{"maxCmdNum":5},"Appliance.Control.ToggleX":{},"Appliance.Control.TimerX":{"sunOffsetSupport":1,"notify":["Appliance.GarageDoor.State"]},"Appliance.Control.TriggerX":{"notify":["Appliance.GarageDoor.State"]},"Appliance.Control.Bind":{},"Appliance.Control.Unbind":{},"Appliance.Control.Upgrade":{},"Appliance.GarageDoor.State":{},"Appliance.Digest.TriggerX":{},"Appliance.Digest.TimerX":{}}}}'
The following message was unhandled: {'header': {'messageId': 'b26cc7e9851e31369d94997a43f68664', 'namespace': 'Appliance.System.Ability', 'method': 'GETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555276784, 'timestampMs': 223, 'sign': 'c4a1ff7eef8ec237cf159a1a70ad4355'}, 'payload': {'payloadVersion': 1, 'ability': {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}}}
RETURNED abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
CACHED abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
CACHED abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "352c6a0fcd45e91daa725dc8d48f89e0", "method": "SET", "namespace": "Appliance.Control.ToggleX", "payloadVersion": 1, "sign": "76e7ff4b9729be730092918edb7b2ab1", "timestamp": 1555276785}, "payload": {"togglex": {"onoff": 1, "channel": 0}}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"352c6a0fcd45e91daa725dc8d48f89e0","namespace":"Appliance.Control.ToggleX","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555276784,"timestampMs":431,"sign":"5af4ddecd7600bbbf2a0c31b6fd9ae68"},"payload":{}}'
The following message was unhandled: {'header': {'messageId': '352c6a0fcd45e91daa725dc8d48f89e0', 'namespace': 'Appliance.Control.ToggleX', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555276784, 'timestampMs': 431, 'sign': '5af4ddecd7600bbbf2a0c31b6fd9ae68'}, 'payload': {}}
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "49057ca08f074f35877198b0de96242d", "method": "SET", "namespace": "Appliance.GarageDoor.State", "payloadVersion": 1, "sign": "c6a13263d431eedc810f4870e341ea43", "timestamp": 1555277076}, "payload": {"state": {"channel": 0, "open": 1, "uuid": "18120167058930261h0134298f13c4950"}}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"49057ca08f074f35877198b0de96242d","namespace":"Appliance.GarageDoor.State","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277075,"timestampMs":915,"sign":"35696cfe90ab5b75fafeab521a0494c9"},"payload":{"state":{"channel":0,"open":0,"lmTime":1555152424,"execute":1}}}'
The following message was unhandled: {'header': {'messageId': '49057ca08f074f35877198b0de96242d', 'namespace': 'Appliance.GarageDoor.State', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555277075, 'timestampMs': 915, 'sign': '35696cfe90ab5b75fafeab521a0494c9'}, 'payload': {'state': {'channel': 0, 'open': 0, 'lmTime': 1555152424, 'execute': 1}}}
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
/app/purge/subscribe --> b'{"header":{"messageId":"7cc1957949804d69d76cd2ca64dc1ce7","namespace":"Appliance.GarageDoor.State","method":"PUSH","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277077,"timestampMs":12,"sign":"11dd462fa45de317e525b68fb3b6a17a"},"payload":{"state":[{"channel":0,"open":1,"lmTime":1555277076}]}}'
18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
CACHED abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
CACHED abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "f4db56c91b5d2c4baa7f1d0944d76af0", "method": "SET", "namespace": "Appliance.Control.ToggleX", "payloadVersion": 1, "sign": "8eb7c336d15271017f3560b41f378203", "timestamp": 1555277099}, "payload": {"togglex": {"onoff": 0, "channel": 0}}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"f4db56c91b5d2c4baa7f1d0944d76af0","namespace":"Appliance.Control.ToggleX","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277099,"timestampMs":811,"sign":"8eb7c336d15271017f3560b41f378203"},"payload":{}}'
The following message was unhandled: {'header': {'messageId': 'f4db56c91b5d2c4baa7f1d0944d76af0', 'namespace': 'Appliance.Control.ToggleX', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555277099, 'timestampMs': 811, 'sign': '8eb7c336d15271017f3560b41f378203'}, 'payload': {}}
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
CACHED abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
CACHED abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "a97f0b66fa4e5ed13c32fff2afd29862", "method": "SET", "namespace": "Appliance.Control.ToggleX", "payloadVersion": 1, "sign": "eb5d36d6bf247740d8d8856b061bde48", "timestamp": 1555277102}, "payload": {"togglex": {"onoff": 0, "channel": 0}}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"a97f0b66fa4e5ed13c32fff2afd29862","namespace":"Appliance.Control.ToggleX","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277103,"timestampMs":395,"sign":"67b0adc9895e3cce387d1007cd99f3fa"},"payload":{}}'
The following message was unhandled: {'header': {'messageId': 'a97f0b66fa4e5ed13c32fff2afd29862', 'namespace': 'Appliance.Control.ToggleX', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555277103, 'timestampMs': 395, 'sign': '67b0adc9895e3cce387d1007cd99f3fa'}, 'payload': {}}
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "45817ebca15293c5c70b26dbdec217d4", "method": "SET", "namespace": "Appliance.GarageDoor.State", "payloadVersion": 1, "sign": "a21df26ea63cbac8f02609ad0a873246", "timestamp": 1555277107}, "payload": {"state": {"channel": 0, "open": 0, "uuid": "18120167058930261h0134298f13c4950"}}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"45817ebca15293c5c70b26dbdec217d4","namespace":"Appliance.GarageDoor.State","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277108,"timestampMs":573,"sign":"09e414ef5ad8ed31b57cbdef36260834"},"payload":{"state":{"channel":0,"open":1,"lmTime":1555277076,"execute":1}}}'
The following message was unhandled: {'header': {'messageId': '45817ebca15293c5c70b26dbdec217d4', 'namespace': 'Appliance.GarageDoor.State', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555277108, 'timestampMs': 573, 'sign': '09e414ef5ad8ed31b57cbdef36260834'}, 'payload': {'state': {'channel': 0, 'open': 1, 'lmTime': 1555277076, 'execute': 1}}}
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
/app/purge/subscribe --> b'{"header":{"messageId":"06b2fc2683ff3b8b83a35893987e7f5b","namespace":"Appliance.GarageDoor.State","method":"PUSH","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277122,"timestampMs":658,"sign":"2869b6e4d6bba8e32e1c312d580e3f98"},"payload":{"state":[{"channel":0,"open":0,"lmTime":1555277121}]}}'
18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "f9d88f5dc91c4360ce9034c19b6785d9", "method": "SET", "namespace": "Appliance.GarageDoor.State", "payloadVersion": 1, "sign": "a5a615ea68de2264ca99e42018371d22", "timestamp": 1555277129}, "payload": {"state": {"channel": 0, "open": 1, "uuid": "18120167058930261h0134298f13c495"}}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"f9d88f5dc91c4360ce9034c19b6785d9","namespace":"Appliance.GarageDoor.State","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277130,"timestampMs":573,"sign":"a53144fcb45f122b2c433c21c0d876d1"},"payload":{"state":{"channel":0,"open":0,"lmTime":1555277121,"execute":1}}}'
The following message was unhandled: {'header': {'messageId': 'f9d88f5dc91c4360ce9034c19b6785d9', 'namespace': 'Appliance.GarageDoor.State', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555277130, 'timestampMs': 573, 'sign': 'a53144fcb45f122b2c433c21c0d876d1'}, 'payload': {'state': {'channel': 0, 'open': 0, 'lmTime': 1555277121, 'execute': 1}}}
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
/app/purge/subscribe --> b'{"header":{"messageId":"df3f11c31a9f5db323cce41022670a1b","namespace":"Appliance.GarageDoor.State","method":"PUSH","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277132,"timestampMs":662,"sign":"ba1ed4ca9ba16337069d5f81bad6b069"},"payload":{"state":[{"channel":0,"open":1,"lmTime":1555277131}]}}'
18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
--> {"header": {"from": "/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe", "messageId": "e87c667c4585b0aec5d17dec26e843f7", "method": "SET", "namespace": "Appliance.GarageDoor.State", "payloadVersion": 1, "sign": "69204d9967a228268a7cb13661c21e74", "timestamp": 1555277148}, "payload": {"state": {"channel": 0, "open": 0, "uuid": "18120167058930261h0134298f13c495"}}}
/app/purge-79e4719a029c6eb60bf216621c7a5e58/subscribe --> b'{"header":{"messageId":"e87c667c4585b0aec5d17dec26e843f7","namespace":"Appliance.GarageDoor.State","method":"SETACK","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277149,"timestampMs":453,"sign":"d36b9b6e968a4ec21f2a01884a06f4b2"},"payload":{"state":{"channel":0,"open":1,"lmTime":1555277131,"execute":1}}}'
The following message was unhandled: {'header': {'messageId': 'e87c667c4585b0aec5d17dec26e843f7', 'namespace': 'Appliance.GarageDoor.State', 'method': 'SETACK', 'payloadVersion': 1, 'from': '/appliance/18120167058930261h0134298f13c495/publish', 'timestamp': 1555277149, 'timestampMs': 453, 'sign': 'd36b9b6e968a4ec21f2a01884a06f4b2'}, 'payload': {'state': {'channel': 0, 'open': 1, 'lmTime': 1555277131, 'execute': 1}}}
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
/app/purge/subscribe --> b'{"header":{"messageId":"629e5cc7ece8d9c02ae8c7b0e77af0ca","namespace":"Appliance.GarageDoor.State","method":"PUSH","payloadVersion":1,"from":"/appliance/18120167058930261h0134298f13c495/publish","timestamp":1555277163,"timestampMs":539,"sign":"e72006b8036c4a8007fedbe000b249b8"},"payload":{"state":[{"channel":0,"open":0,"lmTime":1555277162}]}}'
18120167058930261h0134298f13c495 failed to process message because: 'garageDoor'
Abilities: {'Appliance.Config.Key': {}, 'Appliance.Config.WifiList': {}, 'Appliance.Config.Wifi': {}, 'Appliance.Config.Trace': {}, 'Appliance.System.All': {}, 'Appliance.System.Hardware': {}, 'Appliance.System.Firmware': {}, 'Appliance.System.Debug': {}, 'Appliance.System.Online': {}, 'Appliance.System.Time': {}, 'Appliance.System.Ability': {}, 'Appliance.System.Runtime': {}, 'Appliance.System.Report': {}, 'Appliance.System.Position': {}, 'Appliance.System.DNDMode': {}, 'Appliance.Control.Multiple': {'maxCmdNum': 5}, 'Appliance.Control.ToggleX': {}, 'Appliance.Control.TimerX': {'sunOffsetSupport': 1, 'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.TriggerX': {'notify': ['Appliance.GarageDoor.State']}, 'Appliance.Control.Bind': {}, 'Appliance.Control.Unbind': {}, 'Appliance.Control.Upgrade': {}, 'Appliance.GarageDoor.State': {}, 'Appliance.Digest.TriggerX': {}, 'Appliance.Digest.TimerX': {}}
Garage state: [{'channel': 0, 'open': 0, 'lmTime': 1555152424}]
from merossiot.
Hi Cool guy,
Just to be 100% sure, did the garage door open when you issued the O1 command and close when you issued the C1 command?
from merossiot.
Hi Alberto,
Yes, that is correct. I just did it again to confirm that it opened and closed.
from merossiot.
Awesome!
So, I will review the code and prepare a new version of the library in order to support the garage opener too. Once I release that, I'll ask you to test it. Thank you so much!
from merossiot.
Hi @coolguymatt ,
I just want to inform you that, due to heavy refactoring of the library, I'd postpone the new version of the library supporting the garage opener. I'll keep you posted anyways!
from merossiot.
Thanks!
from merossiot.
Hi @coolguymatt ,
latest version of the library 3 (506cc12, 0.3.0.0b2) is now including support for MSG100, would you mind testing it?
from merossiot.
Is there a script I can use to test it out? I was using the Home Assistant component but I can't seem to get it to load with the newer library.
from merossiot.
Hi @coolguymatt ,
I've spent some time to fix last things about the MSG100, it should now work as expected.
To test it, update your library as follows:
pip install meross_iot==0.3.0.0rc2
Then, you could use this script to test your garage opener. I'd ask you to have a look at the garage door while testing this library. In this way we are 100% sure the library is working as expected.
Rember to update MEROSS_USERNAME and MEROSS_PASSWORD before running this script.
from meross_iot.manager import MerossManager
from meross_iot.meross_event import MerossEventType
MEROSS_USERNAME = "YOUR_EMAIL_HERE"
MEROSS_PASSWORD = "YOUR_PASSWORD_HERE"
def event_handler(eventobj):
if eventobj.event_type == MerossEventType.GARAGE_DOOR_STATUS:
print("Garage door is now %s. Please go check!" % eventobj.door_state)
if __name__ == '__main__':
manager = MerossManager(MEROSS_USERNAME, MEROSS_PASSWORD)
manager.register_event_handler(event_handler)
print("Starting the manager...")
manager.start()
# Filter MSG100 devices
devices = manager.get_devices_by_type("msg100")
if len(devices)==0:
print("Sorry, I was unable to find any MSG100 associated with this account")
print("Which MSG100 device would you like to control?")
for i, v in enumerate(devices):
print("[%d] %s (online: %s)" % (i, v.name, v.online))
selection = input(">")
index = -1
try:
index = int(selection.strip())
if index < 0 or index >= len(devices):
raise ValueError()
except ValueError:
print("Invalid selection.")
exit(1)
# Make sure the device is online
selection = devices[index]
if not selection.online:
print("Cannot control this device, because it is offline.")
exit(2)
# Time to control the device
print("-------- Controlling device %s --------" % selection)
while True:
try:
print("Commands: o(pen), c(lose), q(uit)")
command = input("Your selection: ")
normalized = command.strip()[0].lower()
if command == 'o':
selection.open_door()
elif command == 'c':
selection.close_door()
elif command == 'q':
break
except KeyboardInterrupt:
break
manager.stop()
print("Bye!")
I really can't wait to get your feedback!
from merossiot.
Worked perfectly! Opened and closed without issue.
from merossiot.
Awsome. Thank you so much for your help. Enjoy!
from merossiot.
@albertogeniola i try to implement it in iobroker. Can you give me one example how the command needs to look or what to set as uuid?
from merossiot.
Hi Apollon,
I wrote some documentation about that, but I cannot provide support for your need I am sorry.
from merossiot.
do you have a link to the docu?
from merossiot.
Related Issues (20)
- MST960 reading current values is not possible HOT 3
- Meross changing the cloud api from 2024-01-01 HOT 4
- Logout fail HOT 1
- Meross Cloud API changed begining of January 2024 HOT 2
- Log entries HOT 10
- TypeError: async_from_user_password() missing 1 required positional argument: 'api_base_url'
- Is merossiot no longer working? HOT 4
- MerossManager._update_and_send_push' was never awaited HOT 5
- Incompatible with paho-mqtt 2.0 HOT 2
- hourly consumption MSS310 HOT 6
- https://iotx-eu.meross.com returns error 404 HOT 8
- Meross architecture clarification - recording electricity consumption HOT 2
- Operation of multiple MSS110 smart plugs HOT 4
- cannot reuse already awaited coroutine HOT 14
- MSH300HK/MS100F are not supported HOT 5
- Incorporating Meross-iot into a broader application HOT 1
- MerossIOT Java implementation support request HOT 1
- MSS810 is not supported
- KeyError: 'mfaLockExpire' HOT 14
- Error: Exception caught: You have issued too many tokens without logging out and your account might have been temporarly disabled. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from merossiot.