From 17bb5716352b04abae16e33601a0c0fc031d907d Mon Sep 17 00:00:00 2001 From: cjkas Date: Sun, 25 Oct 2026 12:43:06 +0100 Subject: [PATCH] test: re-record protocol 2 fixtures with the edit and settings ops Co-Authored-By: Claude Opus 5.5 --- test/fixtures/proto2/hello.json | 2 +- test/fixtures/proto2/schema.json | 290 ++++++++++++++- test/fixtures/proto2/sync.json | 617 ++++++++++++++++++++++++++----- 3 files changed, 815 insertions(+), 94 deletions(-) diff --git a/test/fixtures/proto2/hello.json b/test/fixtures/proto2/hello.json index 4e29476..9f18062 100644 --- a/test/fixtures/proto2/hello.json +++ b/test/fixtures/proto2/hello.json @@ -3,6 +3,6 @@ "t": 1, "d": { "fw": "v3.0.14", - "sh": "0fa739cc" + "sh": "16fdffc7" } } \ No newline at end of file diff --git a/test/fixtures/proto2/schema.json b/test/fixtures/proto2/schema.json index 0205880..ce9a228 100644 --- a/test/fixtures/proto2/schema.json +++ b/test/fixtures/proto2/schema.json @@ -1,5 +1,5 @@ { - "hash": "0fa739cc", + "hash": "16fdffc7", "types": { "1": "hello", "2": "reply", @@ -18,6 +18,35 @@ "23": "unpairShade", "24": "setRollingCode", "25": "sendRemoteCommand", + "26": "addRoom", + "27": "addShade", + "28": "addGroup", + "29": "saveRoom", + "30": "saveShade", + "31": "saveGroup", + "32": "deleteRoom", + "33": "deleteShade", + "34": "deleteGroup", + "35": "linkRemote", + "36": "unlinkRemote", + "37": "linkToGroup", + "38": "unlinkFromGroup", + "39": "linkRepeater", + "40": "unlinkRepeater", + "41": "setPaired", + "42": "roomSortOrder", + "43": "shadeSortOrder", + "44": "groupSortOrder", + "45": "getNextRoom", + "46": "getNextShade", + "47": "getNextGroup", + "48": "groupOptions", + "49": "getSettings", + "50": "saveSettings", + "51": "scanWifi", + "52": "beginFrequencyScan", + "53": "endFrequencyScan", + "54": "reboot", "128": "shadeState", "129": "shade", "130": "shadeRemoved", @@ -35,7 +64,9 @@ "142": "ethernet", "143": "frame", "144": "frequencyScan", - "145": "repeaters" + "145": "repeaters", + "146": "settingsChanged", + "147": "wifiNetworks" }, "fields": { "D": { @@ -108,16 +139,31 @@ "kind": "i", "default": 0 }, + "ak": { + "name": "apiKey", + "kind": "s", + "default": 0 + }, "bl": { "name": "bitLength", "kind": "i", "default": 56 }, + "bo": { + "name": "boardType", + "kind": "i", + "default": 0 + }, "bt": { "name": "bits", "kind": "i", "default": 0 }, + "bw": { + "name": "rxBandwidth", + "kind": "n", + "default": 0 + }, "c": { "name": "lastRollingCode", "kind": "i", @@ -128,11 +174,21 @@ "kind": "i", "default": 0 }, + "ck": { + "name": "CLKMode", + "kind": "i", + "default": 0 + }, "cm": { "name": "command", "kind": "s", "default": 0 }, + "cn": { + "name": "connMode", + "kind": "i", + "default": 0 + }, "co": { "name": "connected", "kind": "b", @@ -143,6 +199,11 @@ "kind": "s", "default": 0 }, + "cs": { + "name": "CSNPin", + "kind": "i", + "default": 0 + }, "ct": { "name": "connType", "kind": "s", @@ -153,6 +214,31 @@ "kind": "i", "default": 0 }, + "d1": { + "name": "dns1", + "kind": "s", + "default": 0 + }, + "d2": { + "name": "dns2", + "kind": "s", + "default": 0 + }, + "dh": { + "name": "dhcp", + "kind": "b", + "default": 0 + }, + "dt": { + "name": "discoTopic", + "kind": "s", + "default": 0 + }, + "dv": { + "name": "deviation", + "kind": "n", + "default": 0 + }, "e": { "name": "code", "kind": "i", @@ -163,6 +249,11 @@ "kind": "i", "default": 0 }, + "en": { + "name": "enabled", + "kind": "b", + "default": 0 + }, "f": { "name": "flags", "kind": "i", @@ -228,21 +319,51 @@ "kind": "i", "default": 0 }, + "gw": { + "name": "gateway", + "kind": "s", + "default": 0 + }, "h": { "name": "header", "kind": "o", "default": 0 }, + "hd": { + "name": "hidden", + "kind": "b", + "default": 0 + }, + "he": { + "name": "hasEthernet", + "kind": "b", + "default": 0 + }, + "hi": { + "name": "hasPin", + "kind": "b", + "default": 0 + }, "hn": { "name": "hostname", "kind": "s", "default": 0 }, + "hq": { + "name": "hasPassphrase", + "kind": "b", + "default": 0 + }, "hs": { "name": "hwsync", "kind": "i", "default": 0 }, + "hw": { + "name": "hasPassword", + "kind": "b", + "default": 0 + }, "i": { "name": "paired", "kind": "b", @@ -253,6 +374,11 @@ "kind": "b", "default": 0 }, + "ip": { + "name": "ip", + "kind": "s", + "default": 0 + }, "is": { "name": "ids", "kind": "l", @@ -293,16 +419,41 @@ "kind": "i", "default": -1 }, + "ma": { + "name": "macAddress", + "kind": "s", + "default": 0 + }, + "mc": { + "name": "MDCPin", + "kind": "i", + "default": 0 + }, "md": { "name": "model", "kind": "s", "default": 0 }, + "mi": { + "name": "MDIOPin", + "kind": "i", + "default": 0 + }, "mn": { "name": "minHeap", "kind": "i", "default": 0 }, + "mo": { + "name": "MOSIPin", + "kind": "i", + "default": 0 + }, + "ms": { + "name": "MISOPin", + "kind": "i", + "default": 0 + }, "mx": { "name": "maxHeap", "kind": "i", @@ -313,6 +464,21 @@ "kind": "s", "default": 0 }, + "nd": { + "name": "noiseDetection", + "kind": "b", + "default": 0 + }, + "ns": { + "name": "ntpServer", + "kind": "s", + "default": 0 + }, + "nw": { + "name": "networks", + "kind": "l", + "default": 0 + }, "o": { "name": "sortOrder", "kind": "i", @@ -323,16 +489,66 @@ "kind": "i", "default": 0 }, + "pa": { + "name": "phyAddress", + "kind": "i", + "default": 0 + }, + "pd": { + "name": "pubDisco", + "kind": "b", + "default": 0 + }, + "ph": { + "name": "phyType", + "kind": "i", + "default": 0 + }, + "pn": { + "name": "pin", + "kind": "s", + "default": 0 + }, + "po": { + "name": "port", + "kind": "i", + "default": 0 + }, + "pp": { + "name": "passphrase", + "kind": "s", + "default": 0 + }, "pr": { "name": "proto", "kind": "i", "default": 0 }, + "ps": { + "name": "password", + "kind": "s", + "default": 0 + }, + "pt": { + "name": "protocol", + "kind": "s", + "default": 0 + }, "pu": { "name": "pulses", "kind": "l", "default": 0 }, + "pw": { + "name": "PWRPin", + "kind": "i", + "default": 0 + }, + "pz": { + "name": "posixZone", + "kind": "s", + "default": 0 + }, "q": { "name": "tiltPosition", "kind": "i", @@ -343,11 +559,26 @@ "kind": "i", "default": 0 }, + "rb": { + "name": "rebooting", + "kind": "b", + "default": 0 + }, "re": { "name": "repeat", "kind": "i", "default": 0 }, + "ri": { + "name": "radioInit", + "kind": "b", + "default": 0 + }, + "ro": { + "name": "roaming", + "kind": "b", + "default": 0 + }, "rp": { "name": "repeats", "kind": "i", @@ -358,11 +589,21 @@ "kind": "i", "default": 0 }, + "rt": { + "name": "rootTopic", + "kind": "s", + "default": 0 + }, "rw": { "name": "rawCmd", "kind": "i", "default": 0 }, + "rx": { + "name": "RXPin", + "kind": "i", + "default": 0 + }, "s": { "name": "shadeId", "kind": "i", @@ -373,6 +614,11 @@ "kind": "i", "default": 0 }, + "sb": { + "name": "ssdpBroadcast", + "kind": "b", + "default": 0 + }, "sc": { "name": "scanning", "kind": "b", @@ -383,6 +629,11 @@ "kind": "s", "default": 0 }, + "se": { + "name": "section", + "kind": "s", + "default": 0 + }, "sg": { "name": "strength", "kind": "i", @@ -393,6 +644,11 @@ "kind": "s", "default": 0 }, + "sk": { + "name": "SCKPin", + "kind": "i", + "default": 0 + }, "sm": { "name": "simMy", "kind": "b", @@ -428,11 +684,21 @@ "kind": "i", "default": 0 }, + "su": { + "name": "subnet", + "kind": "s", + "default": 0 + }, "sv": { "name": "serverId", "kind": "s", "default": 0 }, + "sy": { + "name": "securityType", + "kind": "i", + "default": 0 + }, "t": { "name": "target", "kind": "i", @@ -448,16 +714,31 @@ "kind": "i", "default": 0 }, + "tp": { + "name": "txPower", + "kind": "i", + "default": 0 + }, "tr": { "name": "testRssi", "kind": "i", "default": 0 }, + "tx": { + "name": "TXPin", + "kind": "i", + "default": 0 + }, "u": { "name": "tiltTarget", "kind": "i", "default": 0 }, + "un": { + "name": "username", + "kind": "s", + "default": 0 + }, "up": { "name": "uptime", "kind": "i", @@ -468,6 +749,11 @@ "kind": "b", "default": 0 }, + "vc": { + "name": "validation", + "kind": "i", + "default": 0 + }, "w": { "name": "tiltDirection", "kind": "i", diff --git a/test/fixtures/proto2/sync.json b/test/fixtures/proto2/sync.json index e7f8da9..14f4567 100644 --- a/test/fixtures/proto2/sync.json +++ b/test/fixtures/proto2/sync.json @@ -72,6 +72,122 @@ 25, "sendRemoteCommand" ], + [ + 26, + "addRoom" + ], + [ + 27, + "addShade" + ], + [ + 28, + "addGroup" + ], + [ + 29, + "saveRoom" + ], + [ + 30, + "saveShade" + ], + [ + 31, + "saveGroup" + ], + [ + 32, + "deleteRoom" + ], + [ + 33, + "deleteShade" + ], + [ + 34, + "deleteGroup" + ], + [ + 35, + "linkRemote" + ], + [ + 36, + "unlinkRemote" + ], + [ + 37, + "linkToGroup" + ], + [ + 38, + "unlinkFromGroup" + ], + [ + 39, + "linkRepeater" + ], + [ + 40, + "unlinkRepeater" + ], + [ + 41, + "setPaired" + ], + [ + 42, + "roomSortOrder" + ], + [ + 43, + "shadeSortOrder" + ], + [ + 44, + "groupSortOrder" + ], + [ + 45, + "getNextRoom" + ], + [ + 46, + "getNextShade" + ], + [ + 47, + "getNextGroup" + ], + [ + 48, + "groupOptions" + ], + [ + 49, + "getSettings" + ], + [ + 50, + "saveSettings" + ], + [ + 51, + "scanWifi" + ], + [ + 52, + "beginFrequencyScan" + ], + [ + 53, + "endFrequencyScan" + ], + [ + 54, + "reboot" + ], [ 128, "shadeState" @@ -143,6 +259,14 @@ [ 145, "repeaters" + ], + [ + 146, + "settingsChanged" + ], + [ + 147, + "wifiNetworks" ] ], "F": [ @@ -512,6 +636,12 @@ "b", 0 ], + [ + "vc", + "validation", + "i", + 0 + ], [ "xr", "maxRooms", @@ -721,6 +851,314 @@ "frequency", "n", 0 + ], + [ + "se", + "section", + "s", + 0 + ], + [ + "ak", + "apiKey", + "s", + 0 + ], + [ + "rb", + "rebooting", + "b", + 0 + ], + [ + "sb", + "ssdpBroadcast", + "b", + 0 + ], + [ + "ns", + "ntpServer", + "s", + 0 + ], + [ + "pz", + "posixZone", + "s", + 0 + ], + [ + "cn", + "connMode", + "i", + 0 + ], + [ + "he", + "hasEthernet", + "b", + 0 + ], + [ + "pp", + "passphrase", + "s", + 0 + ], + [ + "hq", + "hasPassphrase", + "b", + 0 + ], + [ + "ro", + "roaming", + "b", + 0 + ], + [ + "hd", + "hidden", + "b", + 0 + ], + [ + "bo", + "boardType", + "i", + 0 + ], + [ + "ph", + "phyType", + "i", + 0 + ], + [ + "ck", + "CLKMode", + "i", + 0 + ], + [ + "pa", + "phyAddress", + "i", + 0 + ], + [ + "pw", + "PWRPin", + "i", + 0 + ], + [ + "mc", + "MDCPin", + "i", + 0 + ], + [ + "mi", + "MDIOPin", + "i", + 0 + ], + [ + "dh", + "dhcp", + "b", + 0 + ], + [ + "ip", + "ip", + "s", + 0 + ], + [ + "gw", + "gateway", + "s", + 0 + ], + [ + "su", + "subnet", + "s", + 0 + ], + [ + "d1", + "dns1", + "s", + 0 + ] + ] + } + }, + { + "v": 2, + "t": 4, + "d": { + "F": [ + [ + "d2", + "dns2", + "s", + 0 + ], + [ + "en", + "enabled", + "b", + 0 + ], + [ + "pd", + "pubDisco", + "b", + 0 + ], + [ + "pt", + "protocol", + "s", + 0 + ], + [ + "po", + "port", + "i", + 0 + ], + [ + "un", + "username", + "s", + 0 + ], + [ + "ps", + "password", + "s", + 0 + ], + [ + "hw", + "hasPassword", + "b", + 0 + ], + [ + "rt", + "rootTopic", + "s", + 0 + ], + [ + "dt", + "discoTopic", + "s", + 0 + ], + [ + "sy", + "securityType", + "i", + 0 + ], + [ + "pn", + "pin", + "s", + 0 + ], + [ + "hi", + "hasPin", + "b", + 0 + ], + [ + "tx", + "TXPin", + "i", + 0 + ], + [ + "rx", + "RXPin", + "i", + 0 + ], + [ + "sk", + "SCKPin", + "i", + 0 + ], + [ + "mo", + "MOSIPin", + "i", + 0 + ], + [ + "ms", + "MISOPin", + "i", + 0 + ], + [ + "cs", + "CSNPin", + "i", + 0 + ], + [ + "bw", + "rxBandwidth", + "n", + 0 + ], + [ + "dv", + "deviation", + "n", + 0 + ], + [ + "tp", + "txPower", + "i", + 0 + ], + [ + "nd", + "noiseDetection", + "b", + 0 + ], + [ + "ri", + "radioInit", + "b", + 0 + ], + [ + "nw", + "networks", + "l", + 0 + ], + [ + "ma", + "macAddress", + "s", + 0 ] ], "E": [ @@ -775,15 +1213,30 @@ "sv": "serverId 2", "hn": "hostname 3", "md": "ESPSomfyRTS", + "cp": "s3", "fw": "v3.0.14", "ct": "Wifi" }, + "R": [ + { + "r": 1, + "n": "name 4", + "o": 1 + }, + { + "r": 2, + "n": "name 5", + "o": 2 + } + ], "S": [ { "s": 1, - "c": 1048580, - "n": "name 5", - "a": 1048582, + "p": 7, + "t": 7, + "c": 1048582, + "n": "name 7", + "a": 1048584, "U": 18000, "D": 19000, "Y": 7000, @@ -795,20 +1248,19 @@ "o": 1, "lk": [ { - "a": 1048583, - "c": 1048584 + "a": 1048585 }, { - "a": 1048585, - "c": 1048586 + "a": 1048586, + "c": 1048587 } ] }, { "s": 2, - "c": 1048587, - "n": "name 12", - "a": 1048589, + "c": 1048588, + "n": "name 13", + "a": 1048590, "U": 18000, "D": 19000, "Y": 7000, @@ -820,17 +1272,18 @@ "o": 2, "lk": [ { - "a": 1048590, - "c": 1048591 + "a": 1048591, + "c": 1048592 }, { - "a": 1048592, - "c": 1048593 + "a": 1048593 } ] }, { "s": 3, + "p": 100, + "t": 100, "c": 1048594, "n": "name 19", "a": 1048596, @@ -845,20 +1298,19 @@ "o": 3, "lk": [ { - "a": 1048597, - "c": 1048598 + "a": 1048597 }, { - "a": 1048599, - "c": 1048600 + "a": 1048598, + "c": 1048599 } ] }, { "s": 4, - "c": 1048601, - "n": "name 26", - "a": 1048603, + "c": 1048600, + "n": "name 25", + "a": 1048602, "U": 18000, "D": 19000, "Y": 7000, @@ -870,20 +1322,19 @@ "o": 4, "lk": [ { - "a": 1048604, - "c": 1048605 + "a": 1048603 }, { - "a": 1048606, - "c": 1048607 + "a": 1048604, + "c": 1048605 } ] }, { "s": 5, - "c": 1048608, - "n": "name 33", - "a": 1048610, + "c": 1048606, + "n": "name 31", + "a": 1048608, "U": 18000, "D": 19000, "Y": 7000, @@ -895,30 +1346,19 @@ "o": 5, "lk": [ { - "a": 1048611, - "c": 1048612 + "a": 1048609, + "c": 1048610 }, { - "a": 1048613, - "c": 1048614 + "a": 1048611 } ] - } - ] - } - }, - { - "v": 2, - "t": 4, - "d": { - "S": [ + }, { "s": 6, - "p": 100, - "t": 100, - "c": 1048615, - "n": "name 40", - "a": 1048617, + "c": 1048612, + "n": "name 37", + "a": 1048614, "U": 25000, "D": 25000, "Y": 7000, @@ -930,20 +1370,19 @@ "o": 6, "lk": [ { - "a": 1048618, - "c": 1048619 + "a": 1048615, + "c": 1048616 }, { - "a": 1048620, - "c": 1048621 + "a": 1048617 } ] }, { "s": 7, - "c": 1048622, - "n": "name 47", - "a": 1048624, + "c": 1048618, + "n": "name 43", + "a": 1048620, "U": 25000, "D": 25000, "Y": 7000, @@ -955,20 +1394,19 @@ "o": 7, "lk": [ { - "a": 1048625, - "c": 1048626 + "a": 1048621, + "c": 1048622 }, { - "a": 1048627, - "c": 1048628 + "a": 1048623 } ] }, { "s": 8, - "c": 1048629, - "n": "name 54", - "a": 1048631, + "c": 1048624, + "n": "name 49", + "a": 1048626, "U": 18000, "D": 19000, "Y": 7000, @@ -980,20 +1418,19 @@ "o": 8, "lk": [ { - "a": 1048632, - "c": 1048633 + "a": 1048627, + "c": 1048628 }, { - "a": 1048634, - "c": 1048635 + "a": 1048629 } ] }, { "s": 9, - "c": 1048636, - "n": "name 61", - "a": 1048638, + "c": 1048630, + "n": "name 55", + "a": 1048632, "U": 18000, "D": 19000, "Y": 7000, @@ -1005,20 +1442,19 @@ "o": 9, "lk": [ { - "a": 1048639, - "c": 1048640 + "a": 1048633, + "c": 1048634 }, { - "a": 1048641, - "c": 1048642 + "a": 1048635 } ] }, { "s": 10, - "c": 1048643, - "n": "name 68", - "a": 1048645, + "c": 1048636, + "n": "name 61", + "a": 1048638, "U": 18000, "D": 19000, "Y": 7000, @@ -1030,12 +1466,11 @@ "o": 10, "lk": [ { - "a": 1048646, - "c": 1048647 + "a": 1048639, + "c": 1048640 }, { - "a": 1048648, - "c": 1048649 + "a": 1048641 } ] } @@ -1043,9 +1478,9 @@ "G": [ { "g": 1, - "n": "name 74", - "a": 1048651, - "c": 1048652, + "n": "name 66", + "a": 1048643, + "c": 1048644, "bl": 80, "pr": 1, "fc": 1, @@ -1065,9 +1500,9 @@ }, { "g": 2, - "n": "name 77", - "a": 1048654, - "c": 1048655, + "n": "name 69", + "a": 1048646, + "c": 1048647, "bl": 80, "pr": 1, "fc": 1, @@ -1080,13 +1515,13 @@ } ], "Z": { - "fr": 106640, - "mx": 49140, - "mn": 61988, - "to": 266820, - "up": 29406, - "sd": "ssid 80", - "sg": -69, + "fr": 148772, + "mx": 77812, + "mn": 99332, + "to": 294616, + "up": 24633, + "sd": "ssid 72", + "sg": -51, "ch": 6 } }