mirror of https://github.com/arendst/Tasmota.git
Matter minor fixes (#18813)
This commit is contained in:
parent
5a8f13d57f
commit
f572d93ac6
|
@ -227,6 +227,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
|
|||
#include "solidify/solidified_Matter_Plugin_Bridge_Sensor_Illuminance.h"
|
||||
#include "solidify/solidified_Matter_Plugin_Bridge_Sensor_Humidity.h"
|
||||
#include "solidify/solidified_Matter_Plugin_Bridge_Sensor_Occupancy.h"
|
||||
#include "solidify/solidified_Matter_Plugin_Sensor_OnOff.h"
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Get a bytes() object of the certificate DAC/PAI_Cert
|
||||
|
@ -416,6 +417,7 @@ module matter (scope: global, strings: weak) {
|
|||
Plugin_Sensor_Illuminance, class(be_class_Matter_Plugin_Sensor_Illuminance) // Illuminance Sensor
|
||||
Plugin_Sensor_Humidity, class(be_class_Matter_Plugin_Sensor_Humidity) // Humidity Sensor
|
||||
Plugin_Sensor_Occupancy, class(be_class_Matter_Plugin_Sensor_Occupancy) // Occupancy Sensor
|
||||
Plugin_Sensor_OnOff, class(be_class_Matter_Plugin_Sensor_OnOff) // Simple OnOff Sensor
|
||||
Plugin_Bridge_HTTP, class(be_class_Matter_Plugin_Bridge_HTTP) // HTTP bridge superclass
|
||||
Plugin_Bridge_OnOff, class(be_class_Matter_Plugin_Bridge_OnOff) // HTTP Relay/Light behavior (OnOff)
|
||||
Plugin_Bridge_Light0, class(be_class_Matter_Plugin_Bridge_Light0) // HTTP OnOff Light
|
||||
|
|
|
@ -46,7 +46,6 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
|
|||
# 0x0039: [0x11] # Bridged Device Basic Information 9.13 p.485
|
||||
|
||||
}
|
||||
# static var TYPES = { 0x010A: 2 } # On/Off Light
|
||||
|
||||
var http_remote # instance of Matter_HTTP_remote
|
||||
|
||||
|
@ -179,6 +178,8 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
|
|||
if attribute == 0x0011 # ---------- Reachable / bool ----------
|
||||
# self.is_reachable_lazy_sync() # Not needed anymore
|
||||
return TLV.create_TLV(TLV.BOOL, self.http_remote.reachable) # TODO find a way to do a ping
|
||||
else
|
||||
return super(self).read_attribute(session, ctx)
|
||||
end
|
||||
|
||||
else
|
||||
|
|
|
@ -40,7 +40,7 @@ class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
|
|||
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
|
||||
0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
|
||||
}
|
||||
static var TYPES = { 0x0100: 2, 0x0013: 1 } # OnOff Light, but not actually used because Relay is managed by OnOff
|
||||
static var TYPES = { 0x0100: 2 } # OnOff Light, but not actually used because Relay is managed by OnOff
|
||||
|
||||
var tasmota_relay_index # Relay number in Tasmota (one based)
|
||||
var shadow_onoff # fake status for now # TODO
|
||||
|
|
|
@ -39,7 +39,7 @@ class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
|
|||
# 0x0006: inherited # On/Off 1.5 p.48
|
||||
0x0008: [0,2,3,0x0F,0x11,0xFFFC,0xFFFD], # Level Control 1.6 p.57
|
||||
}
|
||||
static var TYPES = { 0x0101: 2, 0x0013: 1 } # Dimmable Light
|
||||
static var TYPES = { 0x0101: 2 } # Dimmable Light
|
||||
|
||||
var shadow_bri
|
||||
# var tasmota_relay_index # ingerited
|
||||
|
|
|
@ -40,7 +40,7 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
|
|||
# 0x0008: inherited # Level Control 1.6 p.57
|
||||
0x0300: [7,8,0xF,0x400A,0x400B,0x400C,0xFFFC,0xFFFD], # Color Control 3.2 p.111
|
||||
}
|
||||
static var TYPES = { 0x010C: 2, 0x0013: 1 } # Dimmable Light
|
||||
static var TYPES = { 0x010C: 2 } # Dimmable Light
|
||||
|
||||
var shadow_ct
|
||||
var ct_min, ct_max
|
||||
|
|
|
@ -40,7 +40,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
|
|||
# 0x0008: inherited # Level Control 1.6 p.57
|
||||
0x0300: [0,1,7,8,0xF,0x4001,0x400A,0xFFFC,0xFFFD],# Color Control 3.2 p.111
|
||||
}
|
||||
static var TYPES = { 0x010D: 2, 0x0013: 1 } # Extended Color Light
|
||||
static var TYPES = { 0x010D: 2 } # Extended Color Light
|
||||
|
||||
var shadow_hue, shadow_sat # 0..254
|
||||
|
||||
|
@ -124,13 +124,13 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
|
|||
return TLV.create_TLV(TLV.U1, 0)
|
||||
elif attribute == 0x4001 # ---------- EnhancedColorMode / u1 ----------
|
||||
return TLV.create_TLV(TLV.U1, 0)
|
||||
elif attribute == 0x400A # ---------- ColorCapabilities / map32 ----------
|
||||
return TLV.create_TLV(TLV.U4, 0x01) # HS
|
||||
|
||||
# Defined Primaries Information Attribute Set
|
||||
elif attribute == 0x0010 # ---------- NumberOfPrimaries / u1 ----------
|
||||
return TLV.create_TLV(TLV.U1, 0)
|
||||
|
||||
elif attribute == 0x400A # ---------- ColorCapabilities / map32 ----------
|
||||
return TLV.create_TLV(TLV.U4, 0x01)
|
||||
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
|
||||
return TLV.create_TLV(TLV.U4, 0x01) # HS
|
||||
elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ----------
|
||||
|
|
|
@ -29,7 +29,7 @@ class Matter_Plugin_Bridge_Light0 end
|
|||
class Matter_Plugin_Bridge_OnOff : Matter_Plugin_Bridge_Light0
|
||||
static var TYPE = "http_relay" # name of the plug-in in json
|
||||
static var NAME = "🔗 Relay" # display name of the plug-in
|
||||
static var TYPES = { 0x010A: 2, 0x0013: 1 } # On/Off Plug-in Unit
|
||||
static var TYPES = { 0x010A: 2 } # On/Off Plug-in Unit
|
||||
|
||||
#############################################################
|
||||
# web_values
|
||||
|
|
|
@ -33,7 +33,7 @@ class Matter_Plugin_Bridge_Sensor_Humidity : Matter_Plugin_Bridge_Sensor
|
|||
static var CLUSTERS = {
|
||||
0x0405: [0,1,2,0xFFFC,0xFFFD], # Humidity Measurement p.102 - no writable
|
||||
}
|
||||
static var TYPES = { 0x0307: 2, 0x0013: 1 } # Humidity Sensor, rev 2
|
||||
static var TYPES = { 0x0307: 2 } # Humidity Sensor, rev 2
|
||||
|
||||
#############################################################
|
||||
# Called when the value changed compared to shadow value
|
||||
|
|
|
@ -33,7 +33,7 @@ class Matter_Plugin_Bridge_Sensor_Illuminance : Matter_Plugin_Bridge_Sensor
|
|||
static var CLUSTERS = {
|
||||
0x0400: [0,1,2,0xFFFC,0xFFFD], # Illuminance Measurement p.95 - no writable
|
||||
}
|
||||
static var TYPES = { 0x0106: 2, 0x0013: 1 } # Illuminance Sensor, rev 2
|
||||
static var TYPES = { 0x0106: 2 } # Illuminance Sensor, rev 2
|
||||
|
||||
#############################################################
|
||||
# Called when the value changed compared to shadow value
|
||||
|
|
|
@ -27,17 +27,17 @@ class Matter_Plugin_Bridge_HTTP end
|
|||
#@ solidify:Matter_Plugin_Bridge_Sensor_Occupancy,weak
|
||||
|
||||
class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Bridge_HTTP
|
||||
static var TYPE = "http_occupancy" # name of the plug-in in json
|
||||
static var NAME = "🔗 Occupancy" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var TYPE = "http_occupancy" # name of the plug-in in json
|
||||
static var NAME = "🔗 Occupancy" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 5000 # update every 5s
|
||||
static var UPDATE_CMD = "Status 8" # command to send for updates
|
||||
static var UPDATE_CMD = "Status 8" # command to send for updates
|
||||
|
||||
static var CLUSTERS = {
|
||||
0x0406: [0,1,2,0xFFFC,0xFFFD], # Occupancy Sensing p.105 - no writable
|
||||
}
|
||||
static var TYPES = { 0x0107: 2, 0x0013: 1 } # Occupancy Sensor, rev 2
|
||||
static var TYPES = { 0x0107: 2 } # Occupancy Sensor, rev 2
|
||||
|
||||
var tasmota_switch_index # Switch number in Tasmota (one based)
|
||||
var shadow_occupancy
|
||||
|
|
|
@ -33,7 +33,7 @@ class Matter_Plugin_Bridge_Sensor_Pressure : Matter_Plugin_Bridge_Sensor
|
|||
static var CLUSTERS = {
|
||||
0x0403: [0,1,2,0xFFFC,0xFFFD], # Pressure Measurement
|
||||
}
|
||||
static var TYPES = { 0x0305: 2, 0x0013: 1 } # Temperature Sensor, rev 2
|
||||
static var TYPES = { 0x0305: 2 } # Temperature Sensor, rev 2
|
||||
|
||||
#############################################################
|
||||
# Called when the value changed compared to shadow value
|
||||
|
|
|
@ -33,7 +33,7 @@ class Matter_Plugin_Bridge_Sensor_Temp : Matter_Plugin_Bridge_Sensor
|
|||
static var CLUSTERS = {
|
||||
0x0402: [0,1,2,0xFFFC,0xFFFD], # Temperature Measurement p.97 - no writable
|
||||
}
|
||||
static var TYPES = { 0x0302: 2, 0x0013: 1 } # Temperature Sensor, rev 2
|
||||
static var TYPES = { 0x0302: 2 } # Temperature Sensor, rev 2
|
||||
|
||||
#############################################################
|
||||
# Called when the value changed compared to shadow value
|
||||
|
|
|
@ -27,11 +27,13 @@ class Matter_Plugin end
|
|||
class Matter_Plugin_Device : Matter_Plugin
|
||||
static var CLUSTERS = {
|
||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
0x0039: [0x11], # Bridged Device Basic Information 9.13 p.485
|
||||
0x0003: [0,1,0xFFFC,0xFFFD], # Identify 1.2 p.16
|
||||
0x0004: [0,0xFFFC,0xFFFD], # Groups 1.3 p.21
|
||||
0x0005: [0,1,2,3,4,5,0xFFFC,0xFFFD], # Scenes 1.4 p.30 - no writable
|
||||
}
|
||||
static var TYPES = { 0x0000: 0 } # fake type
|
||||
static var TYPES = { 0x0013: 1 } # fake type
|
||||
static var NON_BRIDGE_VENDOR = [ 0x1217, 0x1381 ] # Fabric VendorID not supporting Bridge mode
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
|
@ -78,6 +80,30 @@ class Matter_Plugin_Device : Matter_Plugin
|
|||
return TLV.create_TLV(TLV.U4, 4) # 0 = no Level Control for Lighting
|
||||
end
|
||||
|
||||
# ====================================================================================================
|
||||
elif cluster == 0x001D # ========== Descriptor Cluster 9.5 p.453 ==========
|
||||
|
||||
if attribute == 0x0000 # ---------- DeviceTypeList / list[DeviceTypeStruct] ----------
|
||||
# for device sub-classes, automatically add the Bridge Node type `0x0013: 1`
|
||||
# unless the fabric doesn't support bridge mode (currently Alexa)
|
||||
var dtl = TLV.Matter_TLV_array()
|
||||
var types = self.TYPES
|
||||
for dt: types.keys()
|
||||
var d1 = dtl.add_struct()
|
||||
d1.add_TLV(0, TLV.U2, dt) # DeviceType
|
||||
d1.add_TLV(1, TLV.U2, types[dt]) # Revision
|
||||
end
|
||||
# if fabric is not Alexa
|
||||
if self.NON_BRIDGE_VENDOR.find(session.get_admin_vendor()) == nil
|
||||
var d1 = dtl.add_struct()
|
||||
d1.add_TLV(0, TLV.U2, 0x0013) # DeviceType
|
||||
d1.add_TLV(1, TLV.U2, 1) # Revision
|
||||
end
|
||||
return dtl
|
||||
else
|
||||
return super(self).read_attribute(session, ctx)
|
||||
end
|
||||
|
||||
else
|
||||
return super(self).read_attribute(session, ctx)
|
||||
end
|
||||
|
|
|
@ -92,7 +92,7 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
|||
elif attribute == 0x4001 # ---------- EnhancedColorMode / u1 ----------
|
||||
return TLV.create_TLV(TLV.U1, 0)
|
||||
elif attribute == 0x400A # ---------- ColorCapabilities / map2 ----------
|
||||
return TLV.create_TLV(TLV.U1, 0)
|
||||
return TLV.create_TLV(TLV.U1, 0x01) # HS
|
||||
|
||||
# Defined Primaries Information Attribute Set
|
||||
elif attribute == 0x0010 # ---------- NumberOfPrimaries / u1 ----------
|
||||
|
|
|
@ -25,7 +25,7 @@ class Matter_Plugin_Device end
|
|||
#@ solidify:Matter_Plugin_Sensor_OnOff,weak
|
||||
|
||||
class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
|
||||
static var TYPE = "occupancy" # name of the plug-in in json
|
||||
static var TYPE = "onoff" # name of the plug-in in json
|
||||
static var NAME = "OnOff" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
|
|
|
@ -921,6 +921,12 @@ test_TLV(bytes("0001"), "1")
|
|||
test_TLV(bytes("08"), "false")
|
||||
test_TLV(bytes("09"), "true")
|
||||
|
||||
var TLV = matter.TLV
|
||||
assert(TLV.create_TLV(TLV.BOOL, 1).tlv2raw() == bytes("09"))
|
||||
assert(TLV.create_TLV(TLV.BOOL, true).tlv2raw() == bytes("09"))
|
||||
assert(TLV.create_TLV(TLV.BOOL, 0).tlv2raw() == bytes("08"))
|
||||
assert(TLV.create_TLV(TLV.BOOL, false).tlv2raw() == bytes("08"))
|
||||
|
||||
test_TLV(bytes("00FF"), "-1")
|
||||
test_TLV(bytes("05FFFF"), "65535U")
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ import matter
|
|||
#################################################################################
|
||||
class Matter_UI
|
||||
static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter|shutter+tilt"
|
||||
"|temperature|pressure|illuminance|humidity|occupancy"
|
||||
"|temperature|pressure|illuminance|humidity|occupancy|onoff"
|
||||
static var _CLASSES_TYPES2= "-http|http_relay|http_light0|http_light1|http_light2|http_light3"
|
||||
"|http_temperature|http_pressure|http_illuminance|http_humidity"
|
||||
"|http_occupancy"
|
||||
|
|
|
@ -472,17 +472,17 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
|
|||
}),
|
||||
be_str_weak(read_attribute),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[26]) { /* code */
|
||||
( &(const binstruction[35]) { /* code */
|
||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||
0x880C0701, // 0001 GETMBR R3 R3 K1
|
||||
0x88100502, // 0002 GETMBR R4 R2 K2
|
||||
0x88140503, // 0003 GETMBR R5 R2 K3
|
||||
0x541A0038, // 0004 LDINT R6 57
|
||||
0x1C180806, // 0005 EQ R6 R4 R6
|
||||
0x781A0009, // 0006 JMPF R6 #0011
|
||||
0x781A0012, // 0006 JMPF R6 #001A
|
||||
0x541A0010, // 0007 LDINT R6 17
|
||||
0x1C180A06, // 0008 EQ R6 R5 R6
|
||||
0x781A0005, // 0009 JMPF R6 #0010
|
||||
0x781A0006, // 0009 JMPF R6 #0011
|
||||
0x8C180704, // 000A GETMET R6 R3 K4
|
||||
0x88200705, // 000B GETMBR R8 R3 K5
|
||||
0x88240106, // 000C GETMBR R9 R0 K6
|
||||
|
@ -498,7 +498,16 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
|
|||
0x5C240400, // 0016 MOVE R9 R2
|
||||
0x7C180600, // 0017 CALL R6 3
|
||||
0x80040C00, // 0018 RET 1 R6
|
||||
0x80000000, // 0019 RET 0
|
||||
0x70020007, // 0019 JMP #0022
|
||||
0x60180003, // 001A GETGBL R6 G3
|
||||
0x5C1C0000, // 001B MOVE R7 R0
|
||||
0x7C180200, // 001C CALL R6 1
|
||||
0x8C180D08, // 001D GETMET R6 R6 K8
|
||||
0x5C200200, // 001E MOVE R8 R1
|
||||
0x5C240400, // 001F MOVE R9 R2
|
||||
0x7C180600, // 0020 CALL R6 3
|
||||
0x80040C00, // 0021 RET 1 R6
|
||||
0x80000000, // 0022 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
|
|
@ -421,10 +421,9 @@ be_local_class(Matter_Plugin_Bridge_Light0,
|
|||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(_X26_X23x1F517_X3B_X20Light_X200_X20On) },
|
||||
{ be_const_key_weak(tasmota_relay_index, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(256, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
|
|
|
@ -503,10 +503,9 @@ be_local_class(Matter_Plugin_Bridge_Light1,
|
|||
{ be_const_key_weak(web_value_dimmer, -1), be_const_closure(Matter_Plugin_Bridge_Light1_web_value_dimmer_closure) },
|
||||
{ be_const_key_weak(parse_update, -1), be_const_closure(Matter_Plugin_Bridge_Light1_parse_update_closure) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(257, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, 0), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Bridge_Light1_read_attribute_closure) },
|
||||
{ be_const_key_weak(TYPE, 2), be_nested_str_weak(http_light1) },
|
||||
|
|
|
@ -563,10 +563,9 @@ be_local_class(Matter_Plugin_Bridge_Light2,
|
|||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(268, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(web_value_ct, -1), be_const_closure(Matter_Plugin_Bridge_Light2_web_value_ct_closure) },
|
||||
{ be_const_key_weak(set_ct, -1), be_const_closure(Matter_Plugin_Bridge_Light2_set_ct_closure) },
|
||||
|
|
|
@ -561,21 +561,21 @@ be_local_closure(Matter_Plugin_Bridge_Light3_read_attribute, /* name */
|
|||
0x7C1C0600, // 004F CALL R7 3
|
||||
0x80040E00, // 0050 RET 1 R7
|
||||
0x70020022, // 0051 JMP #0075
|
||||
0x541E000F, // 0052 LDINT R7 16
|
||||
0x541E4009, // 0052 LDINT R7 16394
|
||||
0x1C1C0C07, // 0053 EQ R7 R6 R7
|
||||
0x781E0005, // 0054 JMPF R7 #005B
|
||||
0x8C1C0908, // 0055 GETMET R7 R4 K8
|
||||
0x88240909, // 0056 GETMBR R9 R4 K9
|
||||
0x58280006, // 0057 LDCONST R10 K6
|
||||
0x8824090D, // 0056 GETMBR R9 R4 K13
|
||||
0x5828000B, // 0057 LDCONST R10 K11
|
||||
0x7C1C0600, // 0058 CALL R7 3
|
||||
0x80040E00, // 0059 RET 1 R7
|
||||
0x70020019, // 005A JMP #0075
|
||||
0x541E4009, // 005B LDINT R7 16394
|
||||
0x541E000F, // 005B LDINT R7 16
|
||||
0x1C1C0C07, // 005C EQ R7 R6 R7
|
||||
0x781E0005, // 005D JMPF R7 #0064
|
||||
0x8C1C0908, // 005E GETMET R7 R4 K8
|
||||
0x8824090D, // 005F GETMBR R9 R4 K13
|
||||
0x5828000B, // 0060 LDCONST R10 K11
|
||||
0x88240909, // 005F GETMBR R9 R4 K9
|
||||
0x58280006, // 0060 LDCONST R10 K6
|
||||
0x7C1C0600, // 0061 CALL R7 3
|
||||
0x80040E00, // 0062 RET 1 R7
|
||||
0x70020010, // 0063 JMP #0075
|
||||
|
@ -715,10 +715,9 @@ be_local_class(Matter_Plugin_Bridge_Light3,
|
|||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Bridge_Light3_invoke_request_closure) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(_X26_X23x1F517_X3B_X20Light_X203_X20RGB) },
|
||||
{ be_const_key_weak(TYPES, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(269, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, 0), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(shadow_hue, 6), be_const_var(0) },
|
||||
{ be_const_key_weak(set_hue, -1), be_const_closure(Matter_Plugin_Bridge_Light3_set_hue_closure) },
|
||||
|
|
|
@ -63,10 +63,9 @@ be_local_class(Matter_Plugin_Bridge_OnOff,
|
|||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_relay) },
|
||||
{ be_const_key_weak(NAME, 3), be_nested_str_weak(_X26_X23x1F517_X3B_X20Relay) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(266, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_OnOff)
|
||||
|
|
|
@ -261,10 +261,9 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Humidity,
|
|||
{ be_const_key_weak(TYPE, 4), be_nested_str_weak(http_humidity) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(_X26_X23x1F517_X3B_X20Humidity) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(775, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, 0), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_Sensor_Humidity)
|
||||
|
|
|
@ -263,10 +263,9 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Illuminance,
|
|||
{ be_const_key_weak(TYPE, 4), be_nested_str_weak(http_illuminance) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(_X26_X23x1F517_X3B_X20Illuminance) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(262, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_Sensor_Illuminance)
|
||||
|
|
|
@ -326,10 +326,9 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Occupancy,
|
|||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(_X26_X23x1F517_X3B_X20Occupancy) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Occupancy_init_closure) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(263, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, 0), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(ARG_TYPE, 12), be_const_static_closure(Matter_Plugin_Bridge_Sensor_Occupancy__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(parse_update, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Occupancy_parse_update_closure) },
|
||||
|
|
|
@ -252,10 +252,9 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Pressure,
|
|||
{ be_const_key_weak(TYPE, 4), be_nested_str_weak(http_pressure) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(_X26_X23x1F517_X3B_X20Pressure) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(773, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, 0), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_Sensor_Pressure)
|
||||
|
|
|
@ -258,10 +258,9 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Temp,
|
|||
{ be_const_key_weak(TYPE, 4), be_nested_str_weak(http_temperature) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(_X26_X23x1F517_X3B_X20Temperature) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(2,
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(770, -1), be_const_int(2) },
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_Sensor_Temp)
|
||||
|
|
|
@ -6,140 +6,6 @@
|
|||
|
||||
extern const bclass be_class_Matter_Plugin_Device;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: read_attribute
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||
be_nested_proto(
|
||||
11, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[13]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
/* K3 */ be_nested_str_weak(cluster),
|
||||
/* K4 */ be_nested_str_weak(attribute),
|
||||
/* K5 */ be_const_int(3),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(create_TLV),
|
||||
/* K8 */ be_nested_str_weak(U2),
|
||||
/* K9 */ be_const_int(1),
|
||||
/* K10 */ be_nested_str_weak(U1),
|
||||
/* K11 */ be_nested_str_weak(U4),
|
||||
/* K12 */ be_nested_str_weak(read_attribute),
|
||||
}),
|
||||
be_str_weak(read_attribute),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[97]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0xB8120200, // 0001 GETNGBL R4 K1
|
||||
0x88100902, // 0002 GETMBR R4 R4 K2
|
||||
0x88140503, // 0003 GETMBR R5 R2 K3
|
||||
0x88180504, // 0004 GETMBR R6 R2 K4
|
||||
0x1C1C0B05, // 0005 EQ R7 R5 K5
|
||||
0x781E0021, // 0006 JMPF R7 #0029
|
||||
0x1C1C0D06, // 0007 EQ R7 R6 K6
|
||||
0x781E0005, // 0008 JMPF R7 #000F
|
||||
0x8C1C0907, // 0009 GETMET R7 R4 K7
|
||||
0x88240908, // 000A GETMBR R9 R4 K8
|
||||
0x58280006, // 000B LDCONST R10 K6
|
||||
0x7C1C0600, // 000C CALL R7 3
|
||||
0x80040E00, // 000D RET 1 R7
|
||||
0x70020018, // 000E JMP #0028
|
||||
0x1C1C0D09, // 000F EQ R7 R6 K9
|
||||
0x781E0005, // 0010 JMPF R7 #0017
|
||||
0x8C1C0907, // 0011 GETMET R7 R4 K7
|
||||
0x8824090A, // 0012 GETMBR R9 R4 K10
|
||||
0x58280006, // 0013 LDCONST R10 K6
|
||||
0x7C1C0600, // 0014 CALL R7 3
|
||||
0x80040E00, // 0015 RET 1 R7
|
||||
0x70020010, // 0016 JMP #0028
|
||||
0x541EFFFB, // 0017 LDINT R7 65532
|
||||
0x1C1C0C07, // 0018 EQ R7 R6 R7
|
||||
0x781E0005, // 0019 JMPF R7 #0020
|
||||
0x8C1C0907, // 001A GETMET R7 R4 K7
|
||||
0x8824090B, // 001B GETMBR R9 R4 K11
|
||||
0x58280006, // 001C LDCONST R10 K6
|
||||
0x7C1C0600, // 001D CALL R7 3
|
||||
0x80040E00, // 001E RET 1 R7
|
||||
0x70020007, // 001F JMP #0028
|
||||
0x541EFFFC, // 0020 LDINT R7 65533
|
||||
0x1C1C0C07, // 0021 EQ R7 R6 R7
|
||||
0x781E0004, // 0022 JMPF R7 #0028
|
||||
0x8C1C0907, // 0023 GETMET R7 R4 K7
|
||||
0x8824090B, // 0024 GETMBR R9 R4 K11
|
||||
0x542A0003, // 0025 LDINT R10 4
|
||||
0x7C1C0600, // 0026 CALL R7 3
|
||||
0x80040E00, // 0027 RET 1 R7
|
||||
0x70020036, // 0028 JMP #0060
|
||||
0x541E0003, // 0029 LDINT R7 4
|
||||
0x1C1C0A07, // 002A EQ R7 R5 R7
|
||||
0x781E0016, // 002B JMPF R7 #0043
|
||||
0x1C1C0D06, // 002C EQ R7 R6 K6
|
||||
0x781E0002, // 002D JMPF R7 #0031
|
||||
0x4C1C0000, // 002E LDNIL R7
|
||||
0x80040E00, // 002F RET 1 R7
|
||||
0x70020010, // 0030 JMP #0042
|
||||
0x541EFFFB, // 0031 LDINT R7 65532
|
||||
0x1C1C0C07, // 0032 EQ R7 R6 R7
|
||||
0x781E0005, // 0033 JMPF R7 #003A
|
||||
0x8C1C0907, // 0034 GETMET R7 R4 K7
|
||||
0x8824090B, // 0035 GETMBR R9 R4 K11
|
||||
0x58280006, // 0036 LDCONST R10 K6
|
||||
0x7C1C0600, // 0037 CALL R7 3
|
||||
0x80040E00, // 0038 RET 1 R7
|
||||
0x70020007, // 0039 JMP #0042
|
||||
0x541EFFFC, // 003A LDINT R7 65533
|
||||
0x1C1C0C07, // 003B EQ R7 R6 R7
|
||||
0x781E0004, // 003C JMPF R7 #0042
|
||||
0x8C1C0907, // 003D GETMET R7 R4 K7
|
||||
0x8824090B, // 003E GETMBR R9 R4 K11
|
||||
0x542A0003, // 003F LDINT R10 4
|
||||
0x7C1C0600, // 0040 CALL R7 3
|
||||
0x80040E00, // 0041 RET 1 R7
|
||||
0x7002001C, // 0042 JMP #0060
|
||||
0x541E0004, // 0043 LDINT R7 5
|
||||
0x1C1C0A07, // 0044 EQ R7 R5 R7
|
||||
0x781E0011, // 0045 JMPF R7 #0058
|
||||
0x541EFFFB, // 0046 LDINT R7 65532
|
||||
0x1C1C0C07, // 0047 EQ R7 R6 R7
|
||||
0x781E0005, // 0048 JMPF R7 #004F
|
||||
0x8C1C0907, // 0049 GETMET R7 R4 K7
|
||||
0x8824090B, // 004A GETMBR R9 R4 K11
|
||||
0x58280006, // 004B LDCONST R10 K6
|
||||
0x7C1C0600, // 004C CALL R7 3
|
||||
0x80040E00, // 004D RET 1 R7
|
||||
0x70020007, // 004E JMP #0057
|
||||
0x541EFFFC, // 004F LDINT R7 65533
|
||||
0x1C1C0C07, // 0050 EQ R7 R6 R7
|
||||
0x781E0004, // 0051 JMPF R7 #0057
|
||||
0x8C1C0907, // 0052 GETMET R7 R4 K7
|
||||
0x8824090B, // 0053 GETMBR R9 R4 K11
|
||||
0x542A0003, // 0054 LDINT R10 4
|
||||
0x7C1C0600, // 0055 CALL R7 3
|
||||
0x80040E00, // 0056 RET 1 R7
|
||||
0x70020007, // 0057 JMP #0060
|
||||
0x601C0003, // 0058 GETGBL R7 G3
|
||||
0x5C200000, // 0059 MOVE R8 R0
|
||||
0x7C1C0200, // 005A CALL R7 1
|
||||
0x8C1C0F0C, // 005B GETMET R7 R7 K12
|
||||
0x5C240200, // 005C MOVE R9 R1
|
||||
0x5C280400, // 005D MOVE R10 R2
|
||||
0x7C1C0600, // 005E CALL R7 3
|
||||
0x80040E00, // 005F RET 1 R7
|
||||
0x80000000, // 0060 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
|
@ -226,6 +92,211 @@ be_local_closure(Matter_Plugin_Device_invoke_request, /* name */
|
|||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: read_attribute
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||
be_nested_proto(
|
||||
17, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[22]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
/* K3 */ be_nested_str_weak(cluster),
|
||||
/* K4 */ be_nested_str_weak(attribute),
|
||||
/* K5 */ be_const_int(3),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(create_TLV),
|
||||
/* K8 */ be_nested_str_weak(U2),
|
||||
/* K9 */ be_const_int(1),
|
||||
/* K10 */ be_nested_str_weak(U1),
|
||||
/* K11 */ be_nested_str_weak(U4),
|
||||
/* K12 */ be_nested_str_weak(Matter_TLV_array),
|
||||
/* K13 */ be_nested_str_weak(TYPES),
|
||||
/* K14 */ be_nested_str_weak(keys),
|
||||
/* K15 */ be_nested_str_weak(add_struct),
|
||||
/* K16 */ be_nested_str_weak(add_TLV),
|
||||
/* K17 */ be_nested_str_weak(stop_iteration),
|
||||
/* K18 */ be_nested_str_weak(NON_BRIDGE_VENDOR),
|
||||
/* K19 */ be_nested_str_weak(find),
|
||||
/* K20 */ be_nested_str_weak(get_admin_vendor),
|
||||
/* K21 */ be_nested_str_weak(read_attribute),
|
||||
}),
|
||||
be_str_weak(read_attribute),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[159]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0xB8120200, // 0001 GETNGBL R4 K1
|
||||
0x88100902, // 0002 GETMBR R4 R4 K2
|
||||
0x88140503, // 0003 GETMBR R5 R2 K3
|
||||
0x88180504, // 0004 GETMBR R6 R2 K4
|
||||
0x1C1C0B05, // 0005 EQ R7 R5 K5
|
||||
0x781E0021, // 0006 JMPF R7 #0029
|
||||
0x1C1C0D06, // 0007 EQ R7 R6 K6
|
||||
0x781E0005, // 0008 JMPF R7 #000F
|
||||
0x8C1C0907, // 0009 GETMET R7 R4 K7
|
||||
0x88240908, // 000A GETMBR R9 R4 K8
|
||||
0x58280006, // 000B LDCONST R10 K6
|
||||
0x7C1C0600, // 000C CALL R7 3
|
||||
0x80040E00, // 000D RET 1 R7
|
||||
0x70020018, // 000E JMP #0028
|
||||
0x1C1C0D09, // 000F EQ R7 R6 K9
|
||||
0x781E0005, // 0010 JMPF R7 #0017
|
||||
0x8C1C0907, // 0011 GETMET R7 R4 K7
|
||||
0x8824090A, // 0012 GETMBR R9 R4 K10
|
||||
0x58280006, // 0013 LDCONST R10 K6
|
||||
0x7C1C0600, // 0014 CALL R7 3
|
||||
0x80040E00, // 0015 RET 1 R7
|
||||
0x70020010, // 0016 JMP #0028
|
||||
0x541EFFFB, // 0017 LDINT R7 65532
|
||||
0x1C1C0C07, // 0018 EQ R7 R6 R7
|
||||
0x781E0005, // 0019 JMPF R7 #0020
|
||||
0x8C1C0907, // 001A GETMET R7 R4 K7
|
||||
0x8824090B, // 001B GETMBR R9 R4 K11
|
||||
0x58280006, // 001C LDCONST R10 K6
|
||||
0x7C1C0600, // 001D CALL R7 3
|
||||
0x80040E00, // 001E RET 1 R7
|
||||
0x70020007, // 001F JMP #0028
|
||||
0x541EFFFC, // 0020 LDINT R7 65533
|
||||
0x1C1C0C07, // 0021 EQ R7 R6 R7
|
||||
0x781E0004, // 0022 JMPF R7 #0028
|
||||
0x8C1C0907, // 0023 GETMET R7 R4 K7
|
||||
0x8824090B, // 0024 GETMBR R9 R4 K11
|
||||
0x542A0003, // 0025 LDINT R10 4
|
||||
0x7C1C0600, // 0026 CALL R7 3
|
||||
0x80040E00, // 0027 RET 1 R7
|
||||
0x70020074, // 0028 JMP #009E
|
||||
0x541E0003, // 0029 LDINT R7 4
|
||||
0x1C1C0A07, // 002A EQ R7 R5 R7
|
||||
0x781E0016, // 002B JMPF R7 #0043
|
||||
0x1C1C0D06, // 002C EQ R7 R6 K6
|
||||
0x781E0002, // 002D JMPF R7 #0031
|
||||
0x4C1C0000, // 002E LDNIL R7
|
||||
0x80040E00, // 002F RET 1 R7
|
||||
0x70020010, // 0030 JMP #0042
|
||||
0x541EFFFB, // 0031 LDINT R7 65532
|
||||
0x1C1C0C07, // 0032 EQ R7 R6 R7
|
||||
0x781E0005, // 0033 JMPF R7 #003A
|
||||
0x8C1C0907, // 0034 GETMET R7 R4 K7
|
||||
0x8824090B, // 0035 GETMBR R9 R4 K11
|
||||
0x58280006, // 0036 LDCONST R10 K6
|
||||
0x7C1C0600, // 0037 CALL R7 3
|
||||
0x80040E00, // 0038 RET 1 R7
|
||||
0x70020007, // 0039 JMP #0042
|
||||
0x541EFFFC, // 003A LDINT R7 65533
|
||||
0x1C1C0C07, // 003B EQ R7 R6 R7
|
||||
0x781E0004, // 003C JMPF R7 #0042
|
||||
0x8C1C0907, // 003D GETMET R7 R4 K7
|
||||
0x8824090B, // 003E GETMBR R9 R4 K11
|
||||
0x542A0003, // 003F LDINT R10 4
|
||||
0x7C1C0600, // 0040 CALL R7 3
|
||||
0x80040E00, // 0041 RET 1 R7
|
||||
0x7002005A, // 0042 JMP #009E
|
||||
0x541E0004, // 0043 LDINT R7 5
|
||||
0x1C1C0A07, // 0044 EQ R7 R5 R7
|
||||
0x781E0011, // 0045 JMPF R7 #0058
|
||||
0x541EFFFB, // 0046 LDINT R7 65532
|
||||
0x1C1C0C07, // 0047 EQ R7 R6 R7
|
||||
0x781E0005, // 0048 JMPF R7 #004F
|
||||
0x8C1C0907, // 0049 GETMET R7 R4 K7
|
||||
0x8824090B, // 004A GETMBR R9 R4 K11
|
||||
0x58280006, // 004B LDCONST R10 K6
|
||||
0x7C1C0600, // 004C CALL R7 3
|
||||
0x80040E00, // 004D RET 1 R7
|
||||
0x70020007, // 004E JMP #0057
|
||||
0x541EFFFC, // 004F LDINT R7 65533
|
||||
0x1C1C0C07, // 0050 EQ R7 R6 R7
|
||||
0x781E0004, // 0051 JMPF R7 #0057
|
||||
0x8C1C0907, // 0052 GETMET R7 R4 K7
|
||||
0x8824090B, // 0053 GETMBR R9 R4 K11
|
||||
0x542A0003, // 0054 LDINT R10 4
|
||||
0x7C1C0600, // 0055 CALL R7 3
|
||||
0x80040E00, // 0056 RET 1 R7
|
||||
0x70020045, // 0057 JMP #009E
|
||||
0x541E001C, // 0058 LDINT R7 29
|
||||
0x1C1C0A07, // 0059 EQ R7 R5 R7
|
||||
0x781E003A, // 005A JMPF R7 #0096
|
||||
0x1C1C0D06, // 005B EQ R7 R6 K6
|
||||
0x781E002F, // 005C JMPF R7 #008D
|
||||
0x8C1C090C, // 005D GETMET R7 R4 K12
|
||||
0x7C1C0200, // 005E CALL R7 1
|
||||
0x8820010D, // 005F GETMBR R8 R0 K13
|
||||
0x60240010, // 0060 GETGBL R9 G16
|
||||
0x8C28110E, // 0061 GETMET R10 R8 K14
|
||||
0x7C280200, // 0062 CALL R10 1
|
||||
0x7C240200, // 0063 CALL R9 1
|
||||
0xA802000E, // 0064 EXBLK 0 #0074
|
||||
0x5C281200, // 0065 MOVE R10 R9
|
||||
0x7C280000, // 0066 CALL R10 0
|
||||
0x8C2C0F0F, // 0067 GETMET R11 R7 K15
|
||||
0x7C2C0200, // 0068 CALL R11 1
|
||||
0x8C301710, // 0069 GETMET R12 R11 K16
|
||||
0x58380006, // 006A LDCONST R14 K6
|
||||
0x883C0908, // 006B GETMBR R15 R4 K8
|
||||
0x5C401400, // 006C MOVE R16 R10
|
||||
0x7C300800, // 006D CALL R12 4
|
||||
0x8C301710, // 006E GETMET R12 R11 K16
|
||||
0x58380009, // 006F LDCONST R14 K9
|
||||
0x883C0908, // 0070 GETMBR R15 R4 K8
|
||||
0x9440100A, // 0071 GETIDX R16 R8 R10
|
||||
0x7C300800, // 0072 CALL R12 4
|
||||
0x7001FFF0, // 0073 JMP #0065
|
||||
0x58240011, // 0074 LDCONST R9 K17
|
||||
0xAC240200, // 0075 CATCH R9 1 0
|
||||
0xB0080000, // 0076 RAISE 2 R0 R0
|
||||
0x88240112, // 0077 GETMBR R9 R0 K18
|
||||
0x8C241313, // 0078 GETMET R9 R9 K19
|
||||
0x8C2C0314, // 0079 GETMET R11 R1 K20
|
||||
0x7C2C0200, // 007A CALL R11 1
|
||||
0x7C240400, // 007B CALL R9 2
|
||||
0x4C280000, // 007C LDNIL R10
|
||||
0x1C24120A, // 007D EQ R9 R9 R10
|
||||
0x7826000B, // 007E JMPF R9 #008B
|
||||
0x8C240F0F, // 007F GETMET R9 R7 K15
|
||||
0x7C240200, // 0080 CALL R9 1
|
||||
0x8C281310, // 0081 GETMET R10 R9 K16
|
||||
0x58300006, // 0082 LDCONST R12 K6
|
||||
0x88340908, // 0083 GETMBR R13 R4 K8
|
||||
0x543A0012, // 0084 LDINT R14 19
|
||||
0x7C280800, // 0085 CALL R10 4
|
||||
0x8C281310, // 0086 GETMET R10 R9 K16
|
||||
0x58300009, // 0087 LDCONST R12 K9
|
||||
0x88340908, // 0088 GETMBR R13 R4 K8
|
||||
0x58380009, // 0089 LDCONST R14 K9
|
||||
0x7C280800, // 008A CALL R10 4
|
||||
0x80040E00, // 008B RET 1 R7
|
||||
0x70020007, // 008C JMP #0095
|
||||
0x601C0003, // 008D GETGBL R7 G3
|
||||
0x5C200000, // 008E MOVE R8 R0
|
||||
0x7C1C0200, // 008F CALL R7 1
|
||||
0x8C1C0F15, // 0090 GETMET R7 R7 K21
|
||||
0x5C240200, // 0091 MOVE R9 R1
|
||||
0x5C280400, // 0092 MOVE R10 R2
|
||||
0x7C1C0600, // 0093 CALL R7 3
|
||||
0x80040E00, // 0094 RET 1 R7
|
||||
0x70020007, // 0095 JMP #009E
|
||||
0x601C0003, // 0096 GETGBL R7 G3
|
||||
0x5C200000, // 0097 MOVE R8 R0
|
||||
0x7C1C0200, // 0098 CALL R7 1
|
||||
0x8C1C0F15, // 0099 GETMET R7 R7 K21
|
||||
0x5C240200, // 009A MOVE R9 R1
|
||||
0x5C280400, // 009B MOVE R10 R2
|
||||
0x7C1C0600, // 009C CALL R7 3
|
||||
0x80040E00, // 009D RET 1 R7
|
||||
0x80000000, // 009E RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: Matter_Plugin_Device
|
||||
********************************************************************/
|
||||
|
@ -233,25 +304,35 @@ extern const bclass be_class_Matter_Plugin;
|
|||
be_local_class(Matter_Plugin_Device,
|
||||
0,
|
||||
&be_class_Matter_Plugin,
|
||||
be_nested_map(4,
|
||||
be_nested_map(5,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(3,
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(4,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(0),
|
||||
be_const_int(1),
|
||||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Device_read_attribute_closure) },
|
||||
{ be_const_key_weak(invoke_request, 1), be_const_closure(Matter_Plugin_Device_invoke_request_closure) },
|
||||
{ be_const_key_weak(NON_BRIDGE_VENDOR, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(2,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(4631),
|
||||
be_const_int(4993),
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(4,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(3,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(0),
|
||||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
{ be_const_key_int(57, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(1,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
})) ) } )) },
|
||||
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(8,
|
||||
|
@ -265,14 +346,15 @@ be_local_class(Matter_Plugin_Device,
|
|||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
{ be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(4,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(0),
|
||||
be_const_int(1),
|
||||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(TYPES, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(0, -1), be_const_int(0) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(read_attribute, 1), be_const_closure(Matter_Plugin_Device_read_attribute_closure) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Device_invoke_request_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Device)
|
||||
);
|
||||
|
|
|
@ -206,7 +206,7 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
|
|||
0x781E0005, // 0040 JMPF R7 #0047
|
||||
0x8C1C0907, // 0041 GETMET R7 R4 K7
|
||||
0x88240908, // 0042 GETMBR R9 R4 K8
|
||||
0x58280006, // 0043 LDCONST R10 K6
|
||||
0x5828000A, // 0043 LDCONST R10 K10
|
||||
0x7C1C0600, // 0044 CALL R7 3
|
||||
0x80040E00, // 0045 RET 1 R7
|
||||
0x70020019, // 0046 JMP #0061
|
||||
|
|
|
@ -256,7 +256,7 @@ be_local_class(Matter_Plugin_Sensor_OnOff,
|
|||
be_nested_map(12,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
|
||||
{ be_const_key_weak(TYPE, 11), be_nested_str_weak(occupancy) },
|
||||
{ be_const_key_weak(TYPE, 11), be_nested_str_weak(onoff) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
|
|
|
@ -2010,7 +2010,7 @@ be_local_class(Matter_UI,
|
|||
{ be_const_key_weak(web_get_arg, -1), be_const_closure(Matter_UI_web_get_arg_closure) },
|
||||
{ be_const_key_weak(show_qrcode, 4), be_const_closure(Matter_UI_show_qrcode_closure) },
|
||||
{ be_const_key_weak(show_plugins_configuration, -1), be_const_closure(Matter_UI_show_plugins_configuration_closure) },
|
||||
{ be_const_key_weak(_CLASSES_TYPES, -1), be_nested_str_weak(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy) },
|
||||
{ be_const_key_weak(_CLASSES_TYPES, -1), be_nested_str_weak(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff) },
|
||||
{ be_const_key_weak(web_sensor, -1), be_const_closure(Matter_UI_web_sensor_closure) },
|
||||
{ be_const_key_weak(web_add_config_button, -1), be_const_closure(Matter_UI_web_add_config_button_closure) },
|
||||
{ be_const_key_weak(_CLASSES_TYPES2, 7), be_nested_str_weak(_X2Dhttp_X7Chttp_relay_X7Chttp_light0_X7Chttp_light1_X7Chttp_light2_X7Chttp_light3_X7Chttp_temperature_X7Chttp_pressure_X7Chttp_illuminance_X7Chttp_humidity_X7Chttp_occupancy) },
|
||||
|
|
Loading…
Reference in New Issue