Matter consolidate attributes per cluster (#19493)

This commit is contained in:
s-hadinger 2023-09-10 22:11:08 +02:00 committed by GitHub
parent ad00d9ec5b
commit 059d1197c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
82 changed files with 8477 additions and 6228 deletions

View File

@ -25,6 +25,20 @@ end
var prefix_dir = "src/embedded/"
var prefix_out = "src/solidify/"
def sort(l)
# insertion sort
for i:1..size(l)-1
var k = l[i]
var j = i
while (j > 0) && (l[j-1] > k)
l[j] = l[j-1]
j -= 1
end
l[j] = k
end
return l
end
def clean_directory(dir)
var file_list = os.listdir(dir)
for f : file_list
@ -78,6 +92,7 @@ end
clean_directory(prefix_out)
var src_file_list = os.listdir(prefix_dir)
src_file_list = sort(src_file_list)
for src_file : src_file_list
if src_file[0] == '.' continue end
parse_file(src_file, prefix_out)

View File

@ -179,7 +179,7 @@ BE_FUNC_CTYPE_DECLARE(matter_get_ip_bytes, "&", "s")
extern int matter_publish_command(bvm *vm);
#include "solidify/solidified_Matter_inspect.h"
#include "solidify/solidified_Matter_0_Inspect.h"
extern const bclass be_class_Matter_TLV; // need to declare it upfront because of circular reference
#include "solidify/solidified_Matter_Path.h"
@ -201,7 +201,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_IM_Subscription.h"
#include "solidify/solidified_Matter_IM.h"
#include "solidify/solidified_Matter_Control_Message.h"
#include "solidify/solidified_Matter_Plugin.h"
#include "solidify/solidified_Matter_Plugin_0.h"
#include "solidify/solidified_Matter_Base38.h"
#include "solidify/solidified_Matter_UI.h"
#include "solidify/solidified_Matter_Device.h"
@ -209,37 +209,42 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "../generate/be_matter_certs.h"
#include "solidify/solidified_Matter_Plugin_Root.h"
#include "solidify/solidified_Matter_Plugin_Aggregator.h"
#include "solidify/solidified_Matter_Plugin_Device.h"
#include "solidify/solidified_Matter_Plugin_OnOff.h"
#include "solidify/solidified_Matter_Plugin_Light0.h"
#include "solidify/solidified_Matter_Plugin_Light1.h"
#include "solidify/solidified_Matter_Plugin_Light2.h"
#include "solidify/solidified_Matter_Plugin_Light3.h"
#include "solidify/solidified_Matter_Plugin_Shutter.h"
#include "solidify/solidified_Matter_Plugin_ShutterTilt.h"
#include "solidify/solidified_Matter_Plugin_Sensor.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Pressure.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Temp.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Illuminance.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Humidity.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Occupancy.h"
#include "solidify/solidified_Matter_Plugin_Sensor_OnOff.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_Bridge_HTTP.h"
#include "solidify/solidified_Matter_Plugin_Bridge_OnOff.h"
#include "solidify/solidified_Matter_Plugin_Bridge_Light0.h"
#include "solidify/solidified_Matter_Plugin_Bridge_Light1.h"
#include "solidify/solidified_Matter_Plugin_Bridge_Light2.h"
#include "solidify/solidified_Matter_Plugin_Bridge_Light3.h"
#include "solidify/solidified_Matter_Plugin_Bridge_Sensor.h"
#include "solidify/solidified_Matter_Plugin_Bridge_Sensor_Pressure.h"
#include "solidify/solidified_Matter_Plugin_Bridge_Sensor_Temp.h"
#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_Bridge_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_1_Root.h"
#include "solidify/solidified_Matter_Plugin_2_Aggregator.h"
#include "solidify/solidified_Matter_Plugin_1_Device.h"
#include "solidify/solidified_Matter_Plugin_2_OnOff.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_OnOff.h"
#include "solidify/solidified_Matter_Plugin_2_Light0.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light0.h"
#include "solidify/solidified_Matter_Plugin_3_Light1.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light1.h"
#include "solidify/solidified_Matter_Plugin_4_Light2.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light2.h"
#include "solidify/solidified_Matter_Plugin_3_Light3.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light3.h"
#include "solidify/solidified_Matter_Plugin_2_Shutter.h"
#include "solidify/solidified_Matter_Plugin_3_ShutterTilt.h"
#include "solidify/solidified_Matter_Plugin_2_Sensor.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Temp.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Occupancy.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_OnOff.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_2_Bridge_HTTP.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_OnOff.h"
#include "solidify/solidified_Matter_Plugin_3_Bridge_Light0.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Light1.h"
#include "solidify/solidified_Matter_Plugin_5_Bridge_Light2.h"
#include "solidify/solidified_Matter_Plugin_5_Bridge_Light3.h"
#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Occupancy.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Contact.h"
/*********************************************************************************************\
* Get a bytes() object of the certificate DAC/PAI_Cert
@ -290,6 +295,7 @@ module matter (scope: global, strings: weak) {
sort, closure(matter_sort_closure)
jitter, closure(matter_jitter_closure)
inspect, closure(matter_inspect_closure)
consolidate_clusters, closure(matter_consolidate_clusters_closure)
Profiler, class(be_class_Matter_Profiler)
// Status codes
@ -422,10 +428,15 @@ module matter (scope: global, strings: weak) {
Plugin_Aggregator, class(be_class_Matter_Plugin_Aggregator) // Aggregator
Plugin_Device, class(be_class_Matter_Plugin_Device) // Generic device (abstract)
Plugin_OnOff, class(be_class_Matter_Plugin_OnOff) // Relay/Light behavior (OnOff)
Plugin_Virt_OnOff, class(be_class_Matter_Plugin_Virt_OnOff) // Relay/Light virtual (OnOff)
Plugin_Light0, class(be_class_Matter_Plugin_Light0) // OnOff Light
Plugin_Virt_Light0, class(be_class_Matter_Plugin_Virt_Light0) // OnOff Light Virtual
Plugin_Light1, class(be_class_Matter_Plugin_Light1) // Dimmable Light
Plugin_Virt_Light1, class(be_class_Matter_Plugin_Virt_Light1) // Dimmable Light Virtual
Plugin_Light2, class(be_class_Matter_Plugin_Light2) // Color Temperature Light
Plugin_Virt_Light2, class(be_class_Matter_Plugin_Virt_Light2) // Color Temperature Light Virtual
Plugin_Light3, class(be_class_Matter_Plugin_Light3) // Extended Color Light
Plugin_Virt_Light3, class(be_class_Matter_Plugin_Virt_Light3) // Extended Color Light Virtual
Plugin_Shutter, class(be_class_Matter_Plugin_Shutter) // Shutter
Plugin_ShutterTilt, class(be_class_Matter_Plugin_ShutterTilt) // Shutter + Tilt
Plugin_Sensor, class(be_class_Matter_Plugin_Sensor) // Generic Sensor

View File

@ -74,3 +74,31 @@ def inspect(p)
end
end
matter.inspect = inspect
#############################################################
# consolidate_clusters
#
# Build a consolidated map of all the `CLUSTERS` static vars
# from the inheritance hierarchy
#@ solidify:matter.consolidate_clusters,weak
def consolidate_clusters(cl, m)
var cl_parent = super(cl).CLUSTERS
var ret = {}
# clone cl_parent
for k: cl_parent.keys()
# print(f"{k=} {cl_parent[k]=}")
ret[k] = cl_parent[k].copy()
end
# add all keys from m
# print("--- step 2")
for k: m.keys()
# print(f"{k=} {ret.find(k)=} {m[k]=}")
var l = ret.find(k)
if l == nil l = [] end
ret[k] = l + m[k]
end
# print(ret)
return ret
end
matter.consolidate_clusters = consolidate_clusters

View File

@ -664,6 +664,23 @@ class Matter_Device
return nil
end
#############################################################
# Find plugin by endpoint
def find_plugin_by_friendly_name(name)
if (name == nil) || (size(name) == 0) return nil end # invalid name
var idx = 0
while idx < size(self.plugins)
var pl = self.plugins[idx]
var pl_name = pl.get_name()
if (pl_name != nil) && (size(pl_name) > 0) && (pl_name == name)
return pl
end
idx += 1
end
return nil
end
#############################################################
# Persistance of Matter Device parameters
#
@ -1514,6 +1531,7 @@ class Matter_Device
#
def register_commands()
tasmota.add_cmd("MtrJoin", /cmd_found, idx, payload, payload_json -> self.MtrJoin(cmd_found, idx, payload, payload_json))
tasmota.add_cmd("MtrUpdate", /cmd_found, idx, payload, payload_json -> self.MtrUpdate(cmd_found, idx, payload, payload_json))
end
#####################################################################
@ -1531,7 +1549,51 @@ class Matter_Device
tasmota.resp_cmnd_done()
end
#####################################################################
# `MtrUpdate`
#
# MtrUpdate {"ep":1, "Power":1}
# MtrUpdate {"Name":"ep1", "Power":1}
# MtrUpdate {"Name":"My_virtual_light", "Power":1}
#
def MtrUpdate(cmd_found, idx, payload, payload_json)
if payload_json == nil return tasmota.resp_cmnd("Invalid JSON") end
var key_i
if (key_i := tasmota.find_key_i(payload_json, 'Device')) != nil
var pl = self.find_plugin_by_name_or_ep(payload[key_i])
if (pl == nil) return tasmota.resp_cmnd("Invalid Device") end
if (!pl.virtual) return tasmota.resp_cmnd("Device is not virtual") end
# find endpoint (plugin) by name
# can be:
# - integer: endpoint number
# - "ep<n>": endpoint number
# - "<name>": friendly name for endpoint
end
tasmota.resp_cmnd_done()
end
#####################################################################
# find_plugin_by_name_or_ep
#
# `name`can be:
# - integer: endpoint number
# - "ep<n>": endpoint number
# - "<name>": friendly name for endpoint
def find_plugin_by_name_or_ep(name)
if type(name) == 'int'
if (name > 0) return self.find_plugin_by_endpoint(name) end
elif type(name) == 'string'
if name[0..1] == "ep"
var ep_num = int(name[2..])
if ep_num > 0 return self.find_plugin_by_endpoint(ep_num) end
else
return self.find_plugin_by_friendly_name(name)
end
end
return nil # invalid type
end
end
matter.Device = Matter_Device

View File

@ -128,24 +128,25 @@ class Matter_Plugin
# Build a consolidated map of all the `CLUSTERS` static vars
# from the inheritance hierarchy
def consolidate_clusters()
def real_super(o) return super(o) end # enclose `super()` in a static function to disable special behavior for super in instances
var ret = {}
var o = self # start with self
while o != nil # when we rich highest class, `super()` returns `nil`
var CL = o.CLUSTERS
for k: CL.keys()
# check if key already exists
if !ret.contains(k) ret[k] = [] end
for attr: CL[k] # iterate on values
if ret[k].find(attr) == nil
ret[k].push(attr)
end
end
end
return self.CLUSTERS
# def real_super(o) return super(o) end # enclose `super()` in a static function to disable special behavior for super in instances
# var ret = {}
# var o = self # start with self
# while o != nil # when we rich highest class, `super()` returns `nil`
# var CL = o.CLUSTERS
# for k: CL.keys()
# # check if key already exists
# if !ret.contains(k) ret[k] = [] end
# for attr: CL[k] # iterate on values
# if ret[k].find(attr) == nil
# ret[k].push(attr)
# end
# end
# end
o = real_super(o)
end
return ret
# o = real_super(o)
# end
# return ret
end
#############################################################

View File

@ -19,19 +19,16 @@
import matter
# dummy declaration for solidification
class Matter_Plugin end
#@ solidify:Matter_Plugin_Device,weak
class Matter_Plugin_Device : Matter_Plugin
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
0x0039: [3,5,0x0A,0x0F,0x11,0x12], # 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 = { 0x0013: 1 } # fake type
static var NON_BRIDGE_VENDOR = [ 0x1217, 0x1381 ] # Fabric VendorID not supporting Bridge mode
# Inherited
@ -182,5 +179,13 @@ class Matter_Plugin_Device : Matter_Plugin
end
end
#############################################################
# update_virtual
#
# Update internal state for virtual devices
def update_virtual(payload_json)
# pass
end
end
matter.Plugin_Device = Matter_Plugin_Device

View File

@ -21,15 +21,12 @@ import matter
# Matter plug-in for root behavior
# dummy declaration for solidification
class Matter_Plugin end
#@ solidify:Matter_Plugin_Root,weak
class Matter_Plugin_Root : Matter_Plugin
static var TYPE = "root" # name of the plug-in in json
static var NAME = "Root node" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
0x001F: [0,2,3,4], # Access Control Cluster, p.461
0x0028: [0,1,2,3,4,5,6,7,8,9,0x0A,0x0F,0x11,0x12,0x13],# Basic Information Cluster cluster 11.1 p.565
@ -45,7 +42,7 @@ class Matter_Plugin_Root : Matter_Plugin
0x003C: [0,1,2], # Administrator Commissioning Cluster 11.18 p.725
0x003E: [0,1,2,3,4,5], # Node Operational Credentials Cluster 11.17 p.704
0x003F: [] # Group Key Management Cluster 11.2 p.572
}
})
static var TYPES = { 0x0016: 1 } # Root node
#############################################################

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for root behavior
# dummy declaration for solidification
class Matter_Plugin end
#@ solidify:Matter_Plugin_Aggregator,weak
class Matter_Plugin_Aggregator : Matter_Plugin

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_Bridge_HTTP.GetOptionReader,weak
#@ solidify:Matter_Plugin_Bridge_HTTP,weak
@ -36,17 +33,17 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
static var UPDATE_CMD = "Status 11" # command to send for updates
static var PROBE_TIMEOUT = 1700 # timeout of 1800 ms for probing, which gives at least 1s for TCP recovery
static var SYNC_TIMEOUT = 500 # timeout of 700 ms for probing
static var CLUSTERS = {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
# 0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
# static var CLUSTERS = {
# # 0x001D: inherited # Descriptor Cluster 9.5 p.453
# # 0x0003: inherited # Identify 1.2 p.16
# # 0x0004: inherited # Groups 1.3 p.21
# # 0x0005: inherited # Scenes 1.4 p.30 - no writable
# # 0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
# 0x0028: [0,1,2,3,4,5,6,7,8,9,0x0A,0x0F,0x12,0x13],# Basic Information Cluster cluster 11.1 p.565
# 0x0039: [0x11] # Bridged Device Basic Information 9.13 p.485
# # 0x0028: [0,1,2,3,4,5,6,7,8,9,0x0A,0x0F,0x12,0x13],# Basic Information Cluster cluster 11.1 p.565
# # 0x0039: [0x11] # Bridged Device Basic Information 9.13 p.485
}
# }
var http_remote # instance of Matter_HTTP_remote

View File

@ -21,22 +21,20 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_Light0,weak
class Matter_Plugin_Light0 : Matter_Plugin_Device
static var TYPE = "light0" # name of the plug-in in json
static var NAME = "Light 0 On" # display name of the plug-in
static var UPDATE_TIME = 250 # update every 250ms
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class,
{
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
}
})
static var TYPES = { 0x0100: 2 } # OnOff Light, but not actually used because Relay is managed by OnOff
# Inherited
@ -140,5 +138,24 @@ class Matter_Plugin_Light0 : Matter_Plugin_Device
end
end
#############################################################
# find_val_i - get value of map case insensitive
static def find_val_i(m, k)
var key_i = tasmota.find_key_i(m, k)
return m.find(key_i)
end
#############################################################
# update_virtual
#
# Update internal state for virtual devices
def update_virtual(payload_json)
var val_onoff = self.find_val_i(payload_json, 'Power')
if val_onoff != nil
self.set_onoff(bool(val_onoff))
end
super(self).update_virtual(payload_json)
end
end
matter.Plugin_Light0 = Matter_Plugin_Light0

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_OnOff,weak
class Matter_Plugin_OnOff : Matter_Plugin_Device
@ -33,17 +30,23 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var ARG_HINT = "Relay<x> number"
static var UPDATE_TIME = 250 # update every 250ms
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
}
})
static var TYPES = { 0x010A: 2 } # On/Off Plug-in Unit
var tasmota_relay_index # Relay number in Tasmota (zero based)
var shadow_onoff # fake status for now # TODO
# Inherited
# var device # reference to the `device` global object
# var endpoint # current endpoint
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
# var tick # tick value when it was last updated
# var node_label # name of the endpoint, used only in bridge mode, "" if none
# var virtual # (bool) is the device pure virtual (i.e. not related to a device implementation by Tasmota)
var tasmota_relay_index # Relay number in Tasmota (zero based)
#############################################################
# Constructor
@ -65,12 +68,14 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
# Update shadow
#
def update_shadow()
var state = tasmota.get_power(self.tasmota_relay_index - 1)
if state != nil
if self.shadow_onoff != nil && self.shadow_onoff != bool(state)
self.attribute_updated(0x0006, 0x0000)
if !self.virtual
var pow = tasmota.get_power(self.tasmota_relay_index - 1)
if pow != nil
if self.shadow_onoff != bool(pow)
self.attribute_updated(0x0006, 0x0000)
end
self.shadow_onoff = pow
end
self.shadow_onoff = state
end
super(self).update_shadow()
end
@ -78,9 +83,16 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
#############################################################
# Model
#
def set_onoff(v)
tasmota.set_power(self.tasmota_relay_index - 1, bool(v))
self.update_shadow()
def set_onoff(pow)
if !self.virtual
tasmota.set_power(self.tasmota_relay_index - 1, bool(pow))
self.update_shadow()
else
if pow != self.shadow_onoff
self.attribute_updated(0x0006, 0x0000)
self.shadow_onoff = pow
end
end
end
#############################################################
@ -122,17 +134,14 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
self.update_shadow_lazy()
if command == 0x0000 # ---------- Off ----------
self.set_onoff(false)
self.update_shadow()
self.publish_command('Power', 0)
return true
elif command == 0x0001 # ---------- On ----------
self.set_onoff(true)
self.update_shadow()
self.publish_command('Power', 1)
return true
elif command == 0x0002 # ---------- Toggle ----------
self.set_onoff(!self.shadow_onoff)
self.update_shadow()
self.publish_command('Power', self.shadow_onoff ? 1 : 0)
return true
end

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_Sensor,weak
class Matter_Plugin_Sensor : Matter_Plugin_Device

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_Shutter,weak
class Matter_Plugin_Shutter : Matter_Plugin_Device
@ -32,13 +29,13 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
static var ARG = "shutter" # additional argument name (or empty if none)
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var ARG_HINT = "Relay<x> number"
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
0x0102: [0,5,7,0xA,0xB,0xD,0xE,0x17,0xFFFC,0xFFFD], # Window Covering 5.3 p.289
}
})
static var TYPES = { 0x0202: 2 } # New data model format and notation
var tasmota_shutter_index # Shutter number in Tasmota (zero based)

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_HTTP end
#@ solidify:Matter_Plugin_Bridge_Light0,weak
class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
@ -34,13 +31,13 @@ class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
# static var UPDATE_TIME = 3000 # update every 3s
# static var UPDATE_CMD = "Status 11" # command to send for updates
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
}
})
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)

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_HTTP end
#@ solidify:Matter_Plugin_Bridge_Sensor,weak
class Matter_Plugin_Bridge_Sensor : Matter_Plugin_Bridge_HTTP

View File

@ -21,22 +21,19 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Light0 end
#@ solidify:Matter_Plugin_Light1,weak
class Matter_Plugin_Light1 : Matter_Plugin_Light0
static var TYPE = "light1" # name of the plug-in in json
static var NAME = "Light 1 Dimmer" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
# 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 } # Dimmable Light
# Inherited

View File

@ -21,15 +21,12 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Light1 end
#@ solidify:Matter_Plugin_Light3,weak
class Matter_Plugin_Light3 : Matter_Plugin_Light1
static var TYPE = "light3" # name of the plug-in in json
static var NAME = "Light 3 RGB" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
@ -37,7 +34,7 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
# 0x0006: inherited # On/Off 1.5 p.48
# 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 } # Extended Color Light
# Inherited

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_Sensor_Contact,weak
class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
@ -33,9 +30,9 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
static var ARG_HINT = "Switch<x> number"
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var UPDATE_TIME = 750 # update every 750ms
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0045: [0,0xFFFC,0xFFFD], # Boolean State p.70 - no writable
}
})
static var TYPES = { 0x0015: 1 } # Contact Sensor, rev 1
var tasmota_switch_index # Switch number in Tasmota (one based)

View File

@ -21,17 +21,14 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Sensor end
#@ solidify:Matter_Plugin_Sensor_Humidity,weak
class Matter_Plugin_Sensor_Humidity : Matter_Plugin_Sensor
static var TYPE = "humidity" # name of the plug-in in json
static var NAME = "Humidity" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0405: [0,1,2,0xFFFC,0xFFFD], # Humidity Measurement p.102 - no writable
}
})
static var TYPES = { 0x0307: 2 } # Humidity Sensor, rev 2
#############################################################

View File

@ -21,17 +21,14 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Sensor end
#@ solidify:Matter_Plugin_Sensor_Illuminance,weak
class Matter_Plugin_Sensor_Illuminance : Matter_Plugin_Sensor
static var TYPE = "illuminance" # name of the plug-in in json
static var NAME = "Illuminance" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0400: [0,1,2,0xFFFC,0xFFFD], # Illuminance Measurement p.95 - no writable
}
})
static var TYPES = { 0x0106: 2 } # Illuminance Sensor, rev 2
#############################################################

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_Sensor_Occupancy,weak
class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
@ -33,9 +30,9 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
static var ARG_HINT = "Switch<x> number"
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var UPDATE_TIME = 750 # update every 750ms
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0406: [0,1,2,0xFFFC,0xFFFD], # Occupancy Sensing p.105 - no writable
}
})
static var TYPES = { 0x0107: 2 } # Occupancy Sensor, rev 2
var tasmota_switch_index # Switch number in Tasmota (one based)

View File

@ -19,9 +19,6 @@
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Device end
#@ solidify:Matter_Plugin_Sensor_OnOff,weak
class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
@ -31,9 +28,9 @@ class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
static var ARG_HINT = "Switch<x> number"
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var UPDATE_TIME = 750 # update every 750ms
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
}
})
static var TYPES = { 0x0850: 2 } # OnOff Sensor, rev 2
var tasmota_switch_index # Switch number in Tasmota (one based)

View File

@ -21,17 +21,14 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Sensor end
#@ solidify:Matter_Plugin_Sensor_Pressure,weak
class Matter_Plugin_Sensor_Pressure : Matter_Plugin_Sensor
static var TYPE = "pressure" # name of the plug-in in json
static var NAME = "Pressure" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0403: [0,1,2,0xFFFC,0xFFFD], # Pressure Measurement
}
})
static var TYPES = { 0x0305: 2 } # Pressure Sensor, rev 2
#############################################################

View File

@ -21,17 +21,14 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Sensor end
#@ solidify:Matter_Plugin_Sensor_Temp,weak
class Matter_Plugin_Sensor_Temp : Matter_Plugin_Sensor
static var TYPE = "temperature" # name of the plug-in in json
static var NAME = "Temperature" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0402: [0,1,2,0xFFFC,0xFFFD], # Temperature Measurement p.97 - no writable
}
})
static var TYPES = { 0x0302: 2 } # Temperature Sensor, rev 2
#############################################################

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Shutter end
#@ solidify:Matter_Plugin_ShutterTilt,weak
class Matter_Plugin_ShutterTilt : Matter_Plugin_Shutter
@ -31,13 +28,13 @@ class Matter_Plugin_ShutterTilt : Matter_Plugin_Shutter
static var NAME = "Shutter + Tilt" # display name of the plug-in
# inherited static var ARG = "shutter" # additional argument name (or empty if none)
# inherited static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
0x0102: [7,0xC,0xF,0xFFFC], # Window Covering 5.3 p.289
}
})
# inherited static var TYPES = { 0x0202: 2 } # New data model format and notation
# below is inherited

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Light0 end
#@ solidify:Matter_Plugin_Bridge_Light1,weak
class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
@ -31,14 +28,14 @@ class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
static var NAME = "Light 1 Dimmer" # display name of the plug-in
# static var ARG = "relay" # additional argument name (or empty if none)
# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
# 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 } # Dimmable Light
var shadow_bri

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Light0 end
#@ solidify:Matter_Plugin_Bridge_OnOff,weak
class Matter_Plugin_Bridge_OnOff : Matter_Plugin_Bridge_Light0

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_HTTP end
#@ solidify:Matter_Plugin_Bridge_Sensor_Contact,weak
class Matter_Plugin_Bridge_Sensor_Contact : Matter_Plugin_Bridge_HTTP
@ -35,9 +32,9 @@ class Matter_Plugin_Bridge_Sensor_Contact : Matter_Plugin_Bridge_HTTP
static var UPDATE_TIME = 5000 # update every 5s
static var UPDATE_CMD = "Status 8" # command to send for updates
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0045: [0,0xFFFC,0xFFFD], # Boolean State p.70 - no writable
}
})
static var TYPES = { 0x0015: 1 } # Contact Sensor, rev 1
var tasmota_switch_index # Switch number in Tasmota (one based)

View File

@ -21,18 +21,15 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Sensor end
#@ solidify:Matter_Plugin_Bridge_Sensor_Humidity,weak
class Matter_Plugin_Bridge_Sensor_Humidity : Matter_Plugin_Bridge_Sensor
static var TYPE = "http_humidity" # name of the plug-in in json
static var NAME = "Humidity" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0405: [0,1,2,0xFFFC,0xFFFD], # Humidity Measurement p.102 - no writable
}
})
static var TYPES = { 0x0307: 2 } # Humidity Sensor, rev 2
#############################################################

View File

@ -21,18 +21,15 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Sensor end
#@ solidify:Matter_Plugin_Bridge_Sensor_Illuminance,weak
class Matter_Plugin_Bridge_Sensor_Illuminance : Matter_Plugin_Bridge_Sensor
static var TYPE = "http_illuminance" # name of the plug-in in json
static var NAME = "Illuminance" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0400: [0,1,2,0xFFFC,0xFFFD], # Illuminance Measurement p.95 - no writable
}
})
static var TYPES = { 0x0106: 2 } # Illuminance Sensor, rev 2
#############################################################

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_HTTP end
#@ solidify:Matter_Plugin_Bridge_Sensor_Occupancy,weak
class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Bridge_HTTP
@ -35,9 +32,9 @@ class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Bridge_HTTP
static var UPDATE_TIME = 5000 # update every 5s
static var UPDATE_CMD = "Status 8" # command to send for updates
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0406: [0,1,2,0xFFFC,0xFFFD], # Occupancy Sensing p.105 - no writable
}
})
static var TYPES = { 0x0107: 2 } # Occupancy Sensor, rev 2
var tasmota_switch_index # Switch number in Tasmota (one based)

View File

@ -21,18 +21,15 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Sensor end
#@ solidify:Matter_Plugin_Bridge_Sensor_Pressure,weak
class Matter_Plugin_Bridge_Sensor_Pressure : Matter_Plugin_Bridge_Sensor
static var TYPE = "http_pressure" # name of the plug-in in json
static var NAME = "Pressure" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0403: [0,1,2,0xFFFC,0xFFFD], # Pressure Measurement
}
})
static var TYPES = { 0x0305: 2 } # Temperature Sensor, rev 2
#############################################################

View File

@ -21,18 +21,15 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Sensor end
#@ solidify:Matter_Plugin_Bridge_Sensor_Temp,weak
class Matter_Plugin_Bridge_Sensor_Temp : Matter_Plugin_Bridge_Sensor
static var TYPE = "http_temperature" # name of the plug-in in json
static var NAME = "Temperature" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0402: [0,1,2,0xFFFC,0xFFFD], # Temperature Measurement p.97 - no writable
}
})
static var TYPES = { 0x0302: 2 } # Temperature Sensor, rev 2
#############################################################

View File

@ -21,15 +21,12 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Light1 end
#@ solidify:Matter_Plugin_Light2,weak
class Matter_Plugin_Light2 : Matter_Plugin_Light1
static var TYPE = "light2" # name of the plug-in in json
static var NAME = "Light 2 CT" # display name of the plug-in
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
@ -37,7 +34,7 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
# 0x0006: inherited # On/Off 1.5 p.48
# 0x0008: inherited # Level Control 1.6 p.57
0x0300: [7,8,0xF,0x400B,0x400C,0xFFFC,0xFFFD], # Color Control 3.2 p.111
}
})
static var TYPES = { 0x010C: 2 } # Color Temperature Light
# Inherited

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Light1 end
#@ solidify:Matter_Plugin_Bridge_Light2,weak
class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
@ -31,7 +28,7 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
static var NAME = "Light 2 CT" # display name of the plug-in
# static var ARG = "relay" # additional argument name (or empty if none)
# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
@ -39,7 +36,7 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
# 0x0006: inherited # On/Off 1.5 p.48
# 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 } # Dimmable Light
var shadow_ct

View File

@ -21,9 +21,6 @@ import matter
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Bridge_Light1 end
#@ solidify:Matter_Plugin_Bridge_Light3,weak
class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
@ -31,7 +28,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
static var NAME = "Light 3 RGB" # display name of the plug-in
# static var ARG = "relay" # additional argument name (or empty if none)
# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var CLUSTERS = {
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
@ -39,7 +36,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
# 0x0006: inherited # On/Off 1.5 p.48
# 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 } # Extended Color Light
var shadow_hue, shadow_sat # 0..254

View File

@ -0,0 +1,40 @@
#
# Matter_Plugin_Virt_Light0.be - implements the behavior for a virtual Light (OnOff only)
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import matter
# Matter plug-in for core behavior
#@ solidify:Matter_Plugin_Virt_Light0,weak
class Matter_Plugin_Virt_Light0 : Matter_Plugin_Light0
static var TYPE = "v_light0" # name of the plug-in in json
static var NAME = "(v) Light 0 On" # display name of the plug-in
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
#############################################################
# Constructor
def init(device, endpoint, config)
super(self).init(device, endpoint, config)
self.virtual = true
end
end
matter.Plugin_Virt_Light0 = Matter_Plugin_Virt_Light0

View File

@ -0,0 +1,40 @@
#
# Matter_Plugin_Virt_Light1.be - implements the behavior for a virtual Light 1 channel (Dimmer)
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import matter
# Matter plug-in for core behavior
#@ solidify:Matter_Plugin_Virt_Light1,weak
class Matter_Plugin_Virt_Light1 : Matter_Plugin_Light1
static var TYPE = "v_light1" # name of the plug-in in json
static var NAME = "(v) Light 1 Dimmer" # display name of the plug-in
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
#############################################################
# Constructor
def init(device, endpoint, config)
super(self).init(device, endpoint, config)
self.virtual = true
end
end
matter.Plugin_Virt_Light1 = Matter_Plugin_Virt_Light1

View File

@ -0,0 +1,40 @@
#
# Matter_Plugin_Virt_Light2.be - implements the behavior for a virtual Light with 2 channel (CT)
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import matter
# Matter plug-in for core behavior
#@ solidify:Matter_Plugin_Virt_Light2,weak
class Matter_Plugin_Virt_Light2 : Matter_Plugin_Light2
static var TYPE = "v_light2" # name of the plug-in in json
static var NAME = "(v) Light 2 CT" # display name of the plug-in
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
#############################################################
# Constructor
def init(device, endpoint, config)
super(self).init(device, endpoint, config)
self.virtual = true
end
end
matter.Plugin_Virt_Light2 = Matter_Plugin_Virt_Light2

View File

@ -0,0 +1,40 @@
#
# Matter_Plugin_Virt_Light3.be - implements the behavior for a virtual Light with 3 channels (RGB)
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import matter
# Matter plug-in for core behavior
#@ solidify:Matter_Plugin_Virt_Light3,weak
class Matter_Plugin_Virt_Light3 : Matter_Plugin_Light3
static var TYPE = "v_light3" # name of the plug-in in json
static var NAME = "(v) Light 3 RGB" # display name of the plug-in
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
#############################################################
# Constructor
def init(device, endpoint, config)
super(self).init(device, endpoint, config)
self.virtual = true
end
end
matter.Plugin_Virt_Light3 = Matter_Plugin_Virt_Light3

View File

@ -0,0 +1,40 @@
#
# Matter_Plugin_Virt_OnOff.be - implements the behavior for a Virtual Relay
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import matter
# Matter plug-in for core behavior
#@ solidify:Matter_Plugin_Virt_OnOff,weak
class Matter_Plugin_Virt_OnOff : Matter_Plugin_OnOff
static var TYPE = "v_relay" # name of the plug-in in json
static var NAME = "(v) Relay" # display name of the plug-in
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
#############################################################
# Constructor
def init(device, endpoint, config)
super(self).init(device, endpoint, config)
self.virtual = true
end
end
matter.Plugin_Virt_OnOff = Matter_Plugin_Virt_OnOff

View File

@ -496,8 +496,8 @@ class Matter_UI
var typ = class_types[i]
if typ == ''
webserver.content_send("<option value=''></option>")
elif typ == '-http'
webserver.content_send("<option value='' disabled>--- Tasmota Remote ---</option>")
elif typ == '-virtual'
webserver.content_send("<option value='' disabled>--- Virtual Devices ---</option>")
else
var nam = self.device.get_plugin_class_displayname(typ)
webserver.content_send(format("<option value='%s'%s>%s</option>", typ, (typ == cur) ? " selected" : "", nam))

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_inspect.h */
/* Solidification of Matter_0_Inspect.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -227,5 +227,79 @@ be_local_closure(matter_inspect, /* name */
);
/*******************************************************************/
/********************************************************************
** Solidified function: consolidate_clusters
********************************************************************/
be_local_closure(matter_consolidate_clusters, /* name */
be_nested_proto(
9, /* nstack */
2, /* argc */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(CLUSTERS),
/* K1 */ be_nested_str_weak(keys),
/* K2 */ be_nested_str_weak(copy),
/* K3 */ be_nested_str_weak(stop_iteration),
/* K4 */ be_nested_str_weak(find),
}),
be_str_weak(consolidate_clusters),
&be_const_str_solidified,
( &(const binstruction[45]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
0x88080500, // 0003 GETMBR R2 R2 K0
0x600C0013, // 0004 GETGBL R3 G19
0x7C0C0000, // 0005 CALL R3 0
0x60100010, // 0006 GETGBL R4 G16
0x8C140501, // 0007 GETMET R5 R2 K1
0x7C140200, // 0008 CALL R5 1
0x7C100200, // 0009 CALL R4 1
0xA8020006, // 000A EXBLK 0 #0012
0x5C140800, // 000B MOVE R5 R4
0x7C140000, // 000C CALL R5 0
0x94180405, // 000D GETIDX R6 R2 R5
0x8C180D02, // 000E GETMET R6 R6 K2
0x7C180200, // 000F CALL R6 1
0x980C0A06, // 0010 SETIDX R3 R5 R6
0x7001FFF8, // 0011 JMP #000B
0x58100003, // 0012 LDCONST R4 K3
0xAC100200, // 0013 CATCH R4 1 0
0xB0080000, // 0014 RAISE 2 R0 R0
0x60100010, // 0015 GETGBL R4 G16
0x8C140301, // 0016 GETMET R5 R1 K1
0x7C140200, // 0017 CALL R5 1
0x7C100200, // 0018 CALL R4 1
0xA802000E, // 0019 EXBLK 0 #0029
0x5C140800, // 001A MOVE R5 R4
0x7C140000, // 001B CALL R5 0
0x8C180704, // 001C GETMET R6 R3 K4
0x5C200A00, // 001D MOVE R8 R5
0x7C180400, // 001E CALL R6 2
0x4C1C0000, // 001F LDNIL R7
0x1C1C0C07, // 0020 EQ R7 R6 R7
0x781E0002, // 0021 JMPF R7 #0025
0x601C0012, // 0022 GETGBL R7 G18
0x7C1C0000, // 0023 CALL R7 0
0x5C180E00, // 0024 MOVE R6 R7
0x941C0205, // 0025 GETIDX R7 R1 R5
0x001C0C07, // 0026 ADD R7 R6 R7
0x980C0A07, // 0027 SETIDX R3 R5 R7
0x7001FFF0, // 0028 JMP #001A
0x58100003, // 0029 LDCONST R4 K3
0xAC100200, // 002A CATCH R4 1 0
0xB0080000, // 002B RAISE 2 R0 R0
0x80040600, // 002C RET 1 R3
})
)
);
/*******************************************************************/
/********************************************************************/
/* End of solidification */

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin.h */
/* Solidification of Matter_Plugin_0.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -1059,98 +1059,22 @@ be_local_closure(Matter_Plugin_every_250ms, /* name */
********************************************************************/
be_local_closure(Matter_Plugin_consolidate_clusters, /* name */
be_nested_proto(
12, /* nstack */
2, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
1, /* has sup protos */
( &(const struct bproto*[ 1]) {
be_nested_proto(
3, /* nstack */
1, /* argc */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
be_str_weak(real_super),
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0
0x7C040200, // 0002 CALL R1 1
0x80040200, // 0003 RET 1 R1
})
),
}),
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_weak(CLUSTERS),
/* K1 */ be_nested_str_weak(keys),
/* K2 */ be_nested_str_weak(contains),
/* K3 */ be_nested_str_weak(find),
/* K4 */ be_nested_str_weak(push),
/* K5 */ be_nested_str_weak(stop_iteration),
}),
be_str_weak(consolidate_clusters),
&be_const_str_solidified,
( &(const binstruction[53]) { /* code */
0x84040000, // 0000 CLOSURE R1 P0
0x60080013, // 0001 GETGBL R2 G19
0x7C080000, // 0002 CALL R2 0
0x5C0C0000, // 0003 MOVE R3 R0
0x4C100000, // 0004 LDNIL R4
0x20100604, // 0005 NE R4 R3 R4
0x7812002C, // 0006 JMPF R4 #0034
0x88100700, // 0007 GETMBR R4 R3 K0
0x60140010, // 0008 GETGBL R5 G16
0x8C180901, // 0009 GETMET R6 R4 K1
0x7C180200, // 000A CALL R6 1
0x7C140200, // 000B CALL R5 1
0xA802001E, // 000C EXBLK 0 #002C
0x5C180A00, // 000D MOVE R6 R5
0x7C180000, // 000E CALL R6 0
0x8C1C0502, // 000F GETMET R7 R2 K2
0x5C240C00, // 0010 MOVE R9 R6
0x7C1C0400, // 0011 CALL R7 2
0x741E0002, // 0012 JMPT R7 #0016
0x601C0012, // 0013 GETGBL R7 G18
0x7C1C0000, // 0014 CALL R7 0
0x98080C07, // 0015 SETIDX R2 R6 R7
0x601C0010, // 0016 GETGBL R7 G16
0x94200806, // 0017 GETIDX R8 R4 R6
0x7C1C0200, // 0018 CALL R7 1
0xA802000D, // 0019 EXBLK 0 #0028
0x5C200E00, // 001A MOVE R8 R7
0x7C200000, // 001B CALL R8 0
0x94240406, // 001C GETIDX R9 R2 R6
0x8C241303, // 001D GETMET R9 R9 K3
0x5C2C1000, // 001E MOVE R11 R8
0x7C240400, // 001F CALL R9 2
0x4C280000, // 0020 LDNIL R10
0x1C24120A, // 0021 EQ R9 R9 R10
0x78260003, // 0022 JMPF R9 #0027
0x94240406, // 0023 GETIDX R9 R2 R6
0x8C241304, // 0024 GETMET R9 R9 K4
0x5C2C1000, // 0025 MOVE R11 R8
0x7C240400, // 0026 CALL R9 2
0x7001FFF1, // 0027 JMP #001A
0x581C0005, // 0028 LDCONST R7 K5
0xAC1C0200, // 0029 CATCH R7 1 0
0xB0080000, // 002A RAISE 2 R0 R0
0x7001FFE0, // 002B JMP #000D
0x58140005, // 002C LDCONST R5 K5
0xAC140200, // 002D CATCH R5 1 0
0xB0080000, // 002E RAISE 2 R0 R0
0x5C140200, // 002F MOVE R5 R1
0x5C180600, // 0030 MOVE R6 R3
0x7C140200, // 0031 CALL R5 1
0x5C0C0A00, // 0032 MOVE R3 R5
0x7001FFCF, // 0033 JMP #0004
0x80040400, // 0034 RET 1 R2
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1
})
)
);

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Device.h */
/* Solidification of Matter_Plugin_1_Device.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -7,85 +7,23 @@
extern const bclass be_class_Matter_Plugin_Device;
/********************************************************************
** Solidified function: invoke_request
** Solidified function: update_virtual
********************************************************************/
be_local_closure(Matter_Plugin_Device_invoke_request, /* name */
be_local_closure(Matter_Plugin_Device_update_virtual, /* name */
be_nested_proto(
13, /* nstack */
4, /* argc */
2, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(command),
/* K4 */ be_const_int(3),
/* K5 */ be_const_int(0),
/* K6 */ be_const_int(1),
/* K7 */ be_nested_str_weak(Matter_TLV_struct),
/* K8 */ be_nested_str_weak(add_TLV),
/* K9 */ be_nested_str_weak(U2),
/* K10 */ be_nested_str_weak(invoke_request),
}),
be_str_weak(invoke_request),
0, /* has constants */
NULL, /* no const */
be_str_weak(update_virtual),
&be_const_str_solidified,
( &(const binstruction[51]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140702, // 0002 GETMBR R5 R3 K2
0x88180703, // 0003 GETMBR R6 R3 K3
0x1C1C0B04, // 0004 EQ R7 R5 K4
0x781E0016, // 0005 JMPF R7 #001D
0x1C1C0D05, // 0006 EQ R7 R6 K5
0x781E0002, // 0007 JMPF R7 #000B
0x501C0200, // 0008 LDBOOL R7 1 0
0x80040E00, // 0009 RET 1 R7
0x70020010, // 000A JMP #001C
0x1C1C0D06, // 000B EQ R7 R6 K6
0x781E0009, // 000C JMPF R7 #0017
0x8C1C0907, // 000D GETMET R7 R4 K7
0x7C1C0200, // 000E CALL R7 1
0x8C200F08, // 000F GETMET R8 R7 K8
0x58280005, // 0010 LDCONST R10 K5
0x882C0909, // 0011 GETMBR R11 R4 K9
0x58300005, // 0012 LDCONST R12 K5
0x7C200800, // 0013 CALL R8 4
0x900E0705, // 0014 SETMBR R3 K3 K5
0x80040E00, // 0015 RET 1 R7
0x70020004, // 0016 JMP #001C
0x541E003F, // 0017 LDINT R7 64
0x1C1C0C07, // 0018 EQ R7 R6 R7
0x781E0001, // 0019 JMPF R7 #001C
0x501C0200, // 001A LDBOOL R7 1 0
0x80040E00, // 001B RET 1 R7
0x70020014, // 001C JMP #0032
0x541E0003, // 001D LDINT R7 4
0x1C1C0A07, // 001E EQ R7 R5 R7
0x781E0002, // 001F JMPF R7 #0023
0x501C0200, // 0020 LDBOOL R7 1 0
0x80040E00, // 0021 RET 1 R7
0x7002000E, // 0022 JMP #0032
0x541E0004, // 0023 LDINT R7 5
0x1C1C0A07, // 0024 EQ R7 R5 R7
0x781E0002, // 0025 JMPF R7 #0029
0x501C0200, // 0026 LDBOOL R7 1 0
0x80040E00, // 0027 RET 1 R7
0x70020008, // 0028 JMP #0032
0x601C0003, // 0029 GETGBL R7 G3
0x5C200000, // 002A MOVE R8 R0
0x7C1C0200, // 002B CALL R7 1
0x8C1C0F0A, // 002C GETMET R7 R7 K10
0x5C240200, // 002D MOVE R9 R1
0x5C280400, // 002E MOVE R10 R2
0x5C2C0600, // 002F MOVE R11 R3
0x7C1C0800, // 0030 CALL R7 4
0x80040E00, // 0031 RET 1 R7
0x80000000, // 0032 RET 0
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
)
);
@ -458,6 +396,92 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: invoke_request
********************************************************************/
be_local_closure(Matter_Plugin_Device_invoke_request, /* name */
be_nested_proto(
13, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(command),
/* K4 */ be_const_int(3),
/* K5 */ be_const_int(0),
/* K6 */ be_const_int(1),
/* K7 */ be_nested_str_weak(Matter_TLV_struct),
/* K8 */ be_nested_str_weak(add_TLV),
/* K9 */ be_nested_str_weak(U2),
/* K10 */ be_nested_str_weak(invoke_request),
}),
be_str_weak(invoke_request),
&be_const_str_solidified,
( &(const binstruction[51]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140702, // 0002 GETMBR R5 R3 K2
0x88180703, // 0003 GETMBR R6 R3 K3
0x1C1C0B04, // 0004 EQ R7 R5 K4
0x781E0016, // 0005 JMPF R7 #001D
0x1C1C0D05, // 0006 EQ R7 R6 K5
0x781E0002, // 0007 JMPF R7 #000B
0x501C0200, // 0008 LDBOOL R7 1 0
0x80040E00, // 0009 RET 1 R7
0x70020010, // 000A JMP #001C
0x1C1C0D06, // 000B EQ R7 R6 K6
0x781E0009, // 000C JMPF R7 #0017
0x8C1C0907, // 000D GETMET R7 R4 K7
0x7C1C0200, // 000E CALL R7 1
0x8C200F08, // 000F GETMET R8 R7 K8
0x58280005, // 0010 LDCONST R10 K5
0x882C0909, // 0011 GETMBR R11 R4 K9
0x58300005, // 0012 LDCONST R12 K5
0x7C200800, // 0013 CALL R8 4
0x900E0705, // 0014 SETMBR R3 K3 K5
0x80040E00, // 0015 RET 1 R7
0x70020004, // 0016 JMP #001C
0x541E003F, // 0017 LDINT R7 64
0x1C1C0C07, // 0018 EQ R7 R6 R7
0x781E0001, // 0019 JMPF R7 #001C
0x501C0200, // 001A LDBOOL R7 1 0
0x80040E00, // 001B RET 1 R7
0x70020014, // 001C JMP #0032
0x541E0003, // 001D LDINT R7 4
0x1C1C0A07, // 001E EQ R7 R5 R7
0x781E0002, // 001F JMPF R7 #0023
0x501C0200, // 0020 LDBOOL R7 1 0
0x80040E00, // 0021 RET 1 R7
0x7002000E, // 0022 JMP #0032
0x541E0004, // 0023 LDINT R7 5
0x1C1C0A07, // 0024 EQ R7 R5 R7
0x781E0002, // 0025 JMPF R7 #0029
0x501C0200, // 0026 LDBOOL R7 1 0
0x80040E00, // 0027 RET 1 R7
0x70020008, // 0028 JMP #0032
0x601C0003, // 0029 GETGBL R7 G3
0x5C200000, // 002A MOVE R8 R0
0x7C1C0200, // 002B CALL R7 1
0x8C1C0F0A, // 002C GETMET R7 R7 K10
0x5C240200, // 002D MOVE R9 R1
0x5C280400, // 002E MOVE R10 R2
0x5C2C0600, // 002F MOVE R11 R3
0x7C1C0800, // 0030 CALL R7 4
0x80040E00, // 0031 RET 1 R7
0x80000000, // 0032 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Device
********************************************************************/
@ -465,43 +489,21 @@ extern const bclass be_class_Matter_Plugin;
be_local_class(Matter_Plugin_Device,
1,
&be_class_Matter_Plugin,
be_nested_map(7,
be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(invoke_request, 1), be_const_closure(Matter_Plugin_Device_invoke_request_closure) },
{ be_const_key_weak(read_attribute, 4), be_const_closure(Matter_Plugin_Device_read_attribute_closure) },
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
{ be_const_key_weak(update_virtual, -1), be_const_closure(Matter_Plugin_Device_update_virtual_closure) },
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Device_invoke_request_closure) },
{ be_const_key_weak(read_attribute, 5), be_const_closure(Matter_Plugin_Device_read_attribute_closure) },
{ be_const_key_weak(init, 1), be_const_closure(Matter_Plugin_Device_init_closure) },
{ be_const_key_weak(virtual, -1), be_const_var(0) },
{ be_const_key_weak(TYPES, 6), 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(19, -1), be_const_int(1) },
})) ) } )) },
{ be_const_key_weak(NON_BRIDGE_VENDOR, 2), 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(virtual, 6), be_const_var(0) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Device_init_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(4,
be_const_map( * be_nested_map(5,
( (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(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
@ -513,6 +515,24 @@ be_local_class(Matter_Plugin_Device,
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ 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, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(4,
@ -522,6 +542,22 @@ be_local_class(Matter_Plugin_Device,
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ 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_str_weak(Matter_Plugin_Device)

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Root.h */
/* Solidification of Matter_Plugin_1_Root.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -2073,11 +2073,78 @@ be_local_class(Matter_Plugin_Root,
{ be_const_key_weak(invoke_request, 2), be_const_closure(Matter_Plugin_Root_invoke_request_closure) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Root_X20node) },
{ be_const_key_weak(CLUSTERS, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(13,
be_const_map( * be_nested_map(15,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(60, -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(1),
be_const_int(2),
})) ) } )) },
{ be_const_key_int(31, -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(2),
be_const_int(3),
be_const_int(4),
})) ) } )) },
{ be_const_key_int(62, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
})) ) } )) },
{ be_const_key_int(48, 9), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
})) ) } )) },
{ be_const_key_int(49, -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(3),
be_const_int(4),
be_const_int(65532),
})) ) } )) },
{ be_const_key_int(50, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
{ be_const_key_int(51, -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(2),
be_const_int(8),
})) ) } )) },
{ be_const_key_int(52, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
{ be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(63, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
{ be_const_key_int(40, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(15,
@ -2098,33 +2165,17 @@ be_local_class(Matter_Plugin_Root,
be_const_int(18),
be_const_int(19),
})) ) } )) },
{ be_const_key_int(62, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
})) ) } )) },
{ be_const_key_int(63, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
{ be_const_key_int(56, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(56, -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(1),
be_const_int(7),
})) ) } )) },
{ be_const_key_int(44, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3,
{ be_const_key_int(57, -1), 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(0),
be_const_int(1),
be_const_int(2),
be_const_int(17),
})) ) } )) },
{ be_const_key_int(43, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(2,
@ -2132,48 +2183,12 @@ be_local_class(Matter_Plugin_Root,
be_const_int(0),
be_const_int(1),
})) ) } )) },
{ be_const_key_int(31, -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(2),
be_const_int(3),
be_const_int(4),
})) ) } )) },
{ be_const_key_int(60, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(44, 8), 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(1),
be_const_int(2),
})) ) } )) },
{ be_const_key_int(48, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
})) ) } )) },
{ be_const_key_int(49, 2), 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(3),
be_const_int(4),
be_const_int(65532),
})) ) } )) },
{ be_const_key_int(50, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
{ be_const_key_int(51, -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(2),
be_const_int(8),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(TYPES, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Aggregator.h */
/* Solidification of Matter_Plugin_2_Aggregator.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_HTTP.h */
/* Solidification of Matter_Plugin_2_Bridge_HTTP.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -227,63 +227,11 @@ void be_load_GetOptionReader_class(bvm *vm) {
extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
/********************************************************************
** Solidified function: init
** Solidified function: web_values
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_init, /* name */
be_local_closure(Matter_Plugin_Bridge_HTTP_web_values, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(find),
/* K2 */ be_nested_str_weak(ARG_HTTP),
/* K3 */ be_nested_str_weak(http_remote),
/* K4 */ be_nested_str_weak(device),
/* K5 */ be_nested_str_weak(register_http_remote),
/* K6 */ be_nested_str_weak(PROBE_TIMEOUT),
/* K7 */ be_nested_str_weak(register_cmd_cb),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[20]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x8C100701, // 0008 GETMET R4 R3 K1
0x88180102, // 0009 GETMBR R6 R0 K2
0x7C100400, // 000A CALL R4 2
0x88140104, // 000B GETMBR R5 R0 K4
0x8C140B05, // 000C GETMET R5 R5 K5
0x5C1C0800, // 000D MOVE R7 R4
0x88200106, // 000E GETMBR R8 R0 K6
0x7C140600, // 000F CALL R5 3
0x90020605, // 0010 SETMBR R0 K3 R5
0x8C140107, // 0011 GETMET R5 R0 K7
0x7C140200, // 0012 CALL R5 1
0x80000000, // 0013 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: every_250ms
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_every_250ms, /* name */
be_nested_proto(
3, /* nstack */
5, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@ -291,54 +239,26 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_every_250ms, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(http_remote),
/* K1 */ be_nested_str_weak(scheduler),
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(_X26lt_X3B_X2D_X2D_X20_X28),
/* K4 */ be_nested_str_weak(NAME),
/* K5 */ be_nested_str_weak(_X29_X20_X2D_X2D_X26gt_X3B),
}),
be_str_weak(every_250ms),
be_str_weak(web_values),
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
0x7C040200, // 0002 CALL R1 1
0x80000000, // 0003 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: web_value_onoff
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_web_value_onoff, /* name */
be_nested_proto(
3, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_weak(_X3Cb_X3EOn_X3C_X2Fb_X3E),
/* K1 */ be_nested_str_weak(Off),
/* K2 */ be_nested_str_weak(),
}),
be_str_weak(web_value_onoff),
&be_const_str_solidified,
( &(const binstruction[10]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x20080202, // 0001 NE R2 R1 R2
0x780A0004, // 0002 JMPF R2 #0008
0x78060001, // 0003 JMPF R1 #0006
0x58080000, // 0004 LDCONST R2 K0
0x70020000, // 0005 JMP #0007
0x58080001, // 0006 LDCONST R2 K1
0x70020000, // 0007 JMP #0009
0x58080002, // 0008 LDCONST R2 K2
0x80040400, // 0009 RET 1 R2
( &(const binstruction[ 9]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x8C080101, // 0001 GETMET R2 R0 K1
0x7C080200, // 0002 CALL R2 1
0x8C080302, // 0003 GETMET R2 R1 K2
0x88100104, // 0004 GETMBR R4 R0 K4
0x00120604, // 0005 ADD R4 K3 R4
0x00100905, // 0006 ADD R4 R4 K5
0x7C080400, // 0007 CALL R2 2
0x80000000, // 0008 RET 0
})
)
);
@ -425,6 +345,43 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_call_remote_sync, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: web_value_onoff
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_web_value_onoff, /* name */
be_nested_proto(
3, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_weak(_X3Cb_X3EOn_X3C_X2Fb_X3E),
/* K1 */ be_nested_str_weak(Off),
/* K2 */ be_nested_str_weak(),
}),
be_str_weak(web_value_onoff),
&be_const_str_solidified,
( &(const binstruction[10]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x20080202, // 0001 NE R2 R1 R2
0x780A0004, // 0002 JMPF R2 #0008
0x78060001, // 0003 JMPF R1 #0006
0x58080000, // 0004 LDCONST R2 K0
0x70020000, // 0005 JMP #0007
0x58080001, // 0006 LDCONST R2 K1
0x70020000, // 0007 JMP #0009
0x58080002, // 0008 LDCONST R2 K2
0x80040400, // 0009 RET 1 R2
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: update_shadow
********************************************************************/
@ -468,6 +425,81 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_update_shadow, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: parse_http_response
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_parse_http_response, /* name */
be_nested_proto(
12, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[12]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(http_remote),
/* K2 */ be_nested_str_weak(device_is_alive),
/* K3 */ be_nested_str_weak(device),
/* K4 */ be_nested_str_weak(tick),
/* K5 */ be_nested_str_weak(json),
/* K6 */ be_nested_str_weak(load),
/* K7 */ be_nested_str_weak(contains),
/* K8 */ be_nested_str_weak(StatusSNS),
/* K9 */ be_nested_str_weak(StatusSTS),
/* K10 */ be_nested_str_weak(StatusSHT),
/* K11 */ be_nested_str_weak(parse_update),
}),
be_str_weak(parse_http_response),
&be_const_str_solidified,
( &(const binstruction[39]) { /* code */
0x24100300, // 0000 GT R4 R1 K0
0x78120023, // 0001 JMPF R4 #0026
0x88100101, // 0002 GETMBR R4 R0 K1
0x8C100902, // 0003 GETMET R4 R4 K2
0x50180200, // 0004 LDBOOL R6 1 0
0x7C100400, // 0005 CALL R4 2
0x88100103, // 0006 GETMBR R4 R0 K3
0x88100904, // 0007 GETMBR R4 R4 K4
0xA4160A00, // 0008 IMPORT R5 K5
0x8C180B06, // 0009 GETMET R6 R5 K6
0x5C200400, // 000A MOVE R8 R2
0x7C180400, // 000B CALL R6 2
0x4C1C0000, // 000C LDNIL R7
0x781A0017, // 000D JMPF R6 #0026
0x8C200D07, // 000E GETMET R8 R6 K7
0x58280008, // 000F LDCONST R10 K8
0x7C200400, // 0010 CALL R8 2
0x78220002, // 0011 JMPF R8 #0015
0x94180D08, // 0012 GETIDX R6 R6 K8
0x541E0007, // 0013 LDINT R7 8
0x7002000C, // 0014 JMP #0022
0x8C200D07, // 0015 GETMET R8 R6 K7
0x58280009, // 0016 LDCONST R10 K9
0x7C200400, // 0017 CALL R8 2
0x78220002, // 0018 JMPF R8 #001C
0x94180D09, // 0019 GETIDX R6 R6 K9
0x541E000A, // 001A LDINT R7 11
0x70020005, // 001B JMP #0022
0x8C200D07, // 001C GETMET R8 R6 K7
0x5828000A, // 001D LDCONST R10 K10
0x7C200400, // 001E CALL R8 2
0x78220001, // 001F JMPF R8 #0022
0x94180D09, // 0020 GETIDX R6 R6 K9
0x541E000C, // 0021 LDINT R7 13
0x8C20010B, // 0022 GETMET R8 R0 K11
0x5C280C00, // 0023 MOVE R10 R6
0x5C2C0E00, // 0024 MOVE R11 R7
0x7C200600, // 0025 CALL R8 3
0x80000000, // 0026 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: is_local_device
********************************************************************/
@ -494,68 +526,51 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_is_local_device, /* name */
/********************************************************************
** Solidified function: parse_update
** Solidified function: init
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_parse_update, /* name */
be_local_closure(Matter_Plugin_Bridge_HTTP_init, /* name */
be_nested_proto(
3, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
be_str_weak(parse_update),
&be_const_str_solidified,
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: web_values_prefix
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix, /* name */
be_nested_proto(
10, /* nstack */
1, /* argc */
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(PREFIX),
/* K4 */ be_nested_str_weak(html_escape),
/* K5 */ be_nested_str_weak(),
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(find),
/* K2 */ be_nested_str_weak(ARG_HTTP),
/* K3 */ be_nested_str_weak(http_remote),
/* K4 */ be_nested_str_weak(device),
/* K5 */ be_nested_str_weak(register_http_remote),
/* K6 */ be_nested_str_weak(PROBE_TIMEOUT),
/* K7 */ be_nested_str_weak(register_cmd_cb),
}),
be_str_weak(web_values_prefix),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[15]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x8C080101, // 0001 GETMET R2 R0 K1
0x7C080200, // 0002 CALL R2 1
0x8C0C0302, // 0003 GETMET R3 R1 K2
0x60140018, // 0004 GETGBL R5 G24
0x88180103, // 0005 GETMBR R6 R0 K3
0x780A0003, // 0006 JMPF R2 #000B
0x8C1C0304, // 0007 GETMET R7 R1 K4
0x5C240400, // 0008 MOVE R9 R2
0x7C1C0400, // 0009 CALL R7 2
0x70020000, // 000A JMP #000C
0x581C0005, // 000B LDCONST R7 K5
0x7C140400, // 000C CALL R5 2
0x7C0C0400, // 000D CALL R3 2
0x80000000, // 000E RET 0
( &(const binstruction[20]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x8C100701, // 0008 GETMET R4 R3 K1
0x88180102, // 0009 GETMBR R6 R0 K2
0x7C100400, // 000A CALL R4 2
0x88140104, // 000B GETMBR R5 R0 K4
0x8C140B05, // 000C GETMET R5 R5 K5
0x5C1C0800, // 000D MOVE R7 R4
0x88200106, // 000E GETMBR R8 R0 K6
0x7C140600, // 000F CALL R5 3
0x90020605, // 0010 SETMBR R0 K3 R5
0x8C140107, // 0011 GETMET R5 R0 K7
0x7C140200, // 0012 CALL R5 1
0x80000000, // 0013 RET 0
})
)
);
@ -723,11 +738,11 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
/********************************************************************
** Solidified function: web_values
** Solidified function: web_values_prefix
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_web_values, /* name */
be_local_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix, /* name */
be_nested_proto(
5, /* nstack */
10, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@ -737,24 +752,30 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_web_values, /* name */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(web_values_prefix),
/* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(_X26lt_X3B_X2D_X2D_X20_X28),
/* K4 */ be_nested_str_weak(NAME),
/* K5 */ be_nested_str_weak(_X29_X20_X2D_X2D_X26gt_X3B),
/* K3 */ be_nested_str_weak(PREFIX),
/* K4 */ be_nested_str_weak(html_escape),
/* K5 */ be_nested_str_weak(),
}),
be_str_weak(web_values),
be_str_weak(web_values_prefix),
&be_const_str_solidified,
( &(const binstruction[ 9]) { /* code */
( &(const binstruction[15]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x8C080101, // 0001 GETMET R2 R0 K1
0x7C080200, // 0002 CALL R2 1
0x8C080302, // 0003 GETMET R2 R1 K2
0x88100104, // 0004 GETMBR R4 R0 K4
0x00120604, // 0005 ADD R4 K3 R4
0x00100905, // 0006 ADD R4 R4 K5
0x7C080400, // 0007 CALL R2 2
0x80000000, // 0008 RET 0
0x8C0C0302, // 0003 GETMET R3 R1 K2
0x60140018, // 0004 GETGBL R5 G24
0x88180103, // 0005 GETMBR R6 R0 K3
0x780A0003, // 0006 JMPF R2 #000B
0x8C1C0304, // 0007 GETMET R7 R1 K4
0x5C240400, // 0008 MOVE R9 R2
0x7C1C0400, // 0009 CALL R7 2
0x70020000, // 000A JMP #000C
0x581C0005, // 000B LDCONST R7 K5
0x7C140400, // 000C CALL R5 2
0x7C0C0400, // 000D CALL R3 2
0x80000000, // 000E RET 0
})
)
);
@ -762,74 +783,23 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_web_values, /* name */
/********************************************************************
** Solidified function: parse_http_response
** Solidified function: parse_update
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_parse_http_response, /* name */
be_local_closure(Matter_Plugin_Bridge_HTTP_parse_update, /* name */
be_nested_proto(
12, /* nstack */
4, /* argc */
3, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[12]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(http_remote),
/* K2 */ be_nested_str_weak(device_is_alive),
/* K3 */ be_nested_str_weak(device),
/* K4 */ be_nested_str_weak(tick),
/* K5 */ be_nested_str_weak(json),
/* K6 */ be_nested_str_weak(load),
/* K7 */ be_nested_str_weak(contains),
/* K8 */ be_nested_str_weak(StatusSNS),
/* K9 */ be_nested_str_weak(StatusSTS),
/* K10 */ be_nested_str_weak(StatusSHT),
/* K11 */ be_nested_str_weak(parse_update),
}),
be_str_weak(parse_http_response),
0, /* has constants */
NULL, /* no const */
be_str_weak(parse_update),
&be_const_str_solidified,
( &(const binstruction[39]) { /* code */
0x24100300, // 0000 GT R4 R1 K0
0x78120023, // 0001 JMPF R4 #0026
0x88100101, // 0002 GETMBR R4 R0 K1
0x8C100902, // 0003 GETMET R4 R4 K2
0x50180200, // 0004 LDBOOL R6 1 0
0x7C100400, // 0005 CALL R4 2
0x88100103, // 0006 GETMBR R4 R0 K3
0x88100904, // 0007 GETMBR R4 R4 K4
0xA4160A00, // 0008 IMPORT R5 K5
0x8C180B06, // 0009 GETMET R6 R5 K6
0x5C200400, // 000A MOVE R8 R2
0x7C180400, // 000B CALL R6 2
0x4C1C0000, // 000C LDNIL R7
0x781A0017, // 000D JMPF R6 #0026
0x8C200D07, // 000E GETMET R8 R6 K7
0x58280008, // 000F LDCONST R10 K8
0x7C200400, // 0010 CALL R8 2
0x78220002, // 0011 JMPF R8 #0015
0x94180D08, // 0012 GETIDX R6 R6 K8
0x541E0007, // 0013 LDINT R7 8
0x7002000C, // 0014 JMP #0022
0x8C200D07, // 0015 GETMET R8 R6 K7
0x58280009, // 0016 LDCONST R10 K9
0x7C200400, // 0017 CALL R8 2
0x78220002, // 0018 JMPF R8 #001C
0x94180D09, // 0019 GETIDX R6 R6 K9
0x541E000A, // 001A LDINT R7 11
0x70020005, // 001B JMP #0022
0x8C200D07, // 001C GETMET R8 R6 K7
0x5828000A, // 001D LDCONST R10 K10
0x7C200400, // 001E CALL R8 2
0x78220001, // 001F JMPF R8 #0022
0x94180D09, // 0020 GETIDX R6 R6 K9
0x541E000C, // 0021 LDINT R7 13
0x8C20010B, // 0022 GETMET R8 R0 K11
0x5C280C00, // 0023 MOVE R10 R6
0x5C2C0E00, // 0024 MOVE R11 R7
0x7C200600, // 0025 CALL R8 3
0x80000000, // 0026 RET 0
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
)
);
@ -899,6 +869,36 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_register_cmd_cb, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: every_250ms
********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_every_250ms, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(http_remote),
/* K1 */ be_nested_str_weak(scheduler),
}),
be_str_weak(every_250ms),
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
0x7C040200, // 0002 CALL R1 1
0x80000000, // 0003 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Bridge_HTTP
********************************************************************/
@ -906,35 +906,31 @@ extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_Bridge_HTTP,
1,
&be_class_Matter_Plugin_Device,
be_nested_map(24,
be_nested_map(23,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(ARG_HTTP, 23), be_nested_str_weak(url) },
{ be_const_key_weak(register_cmd_cb, 11), be_const_closure(Matter_Plugin_Bridge_HTTP_register_cmd_cb_closure) },
{ be_const_key_weak(SYNC_TIMEOUT, -1), be_const_int(500) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_init_closure) },
{ be_const_key_weak(http_remote, -1), be_const_var(0) },
{ be_const_key_weak(GetOptionReader, 1), be_const_class(be_class_GetOptionReader) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak() },
{ be_const_key_weak(CLUSTERS, 21), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(0,
( (struct bmapnode*) &(const bmapnode[]) {
})) ) } )) },
{ be_const_key_weak(every_250ms, 12), be_const_closure(Matter_Plugin_Bridge_HTTP_every_250ms_closure) },
{ be_const_key_weak(PREFIX, -1), be_nested_str_weak(_X7C_X20_X3Ci_X3E_X25s_X3C_X2Fi_X3E_X20) },
{ be_const_key_weak(web_value_onoff, 7), be_const_closure(Matter_Plugin_Bridge_HTTP_web_value_onoff_closure) },
{ be_const_key_weak(parse_http_response, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_parse_http_response_closure) },
{ be_const_key_weak(web_values, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_web_values_closure) },
{ be_const_key_weak(TYPE, 20), be_nested_str_weak() },
{ be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2011) },
{ be_const_key_weak(ARG, 14), be_nested_str_weak() },
{ be_const_key_weak(is_local_device, 19), be_const_closure(Matter_Plugin_Bridge_HTTP_is_local_device_closure) },
{ be_const_key_weak(web_values_prefix, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix_closure) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_read_attribute_closure) },
{ be_const_key_weak(parse_update, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_parse_update_closure) },
{ be_const_key_weak(update_shadow, 22), be_const_closure(Matter_Plugin_Bridge_HTTP_update_shadow_closure) },
{ be_const_key_weak(call_remote_sync, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_call_remote_sync_closure) },
{ be_const_key_weak(PROBE_TIMEOUT, -1), be_const_int(1700) },
{ be_const_key_weak(every_250ms, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_every_250ms_closure) },
{ be_const_key_weak(ARG, -1), be_nested_str_weak() },
{ be_const_key_weak(call_remote_sync, 5), be_const_closure(Matter_Plugin_Bridge_HTTP_call_remote_sync_closure) },
{ be_const_key_weak(web_value_onoff, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_web_value_onoff_closure) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak() },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(3000) },
{ be_const_key_weak(update_shadow, 22), be_const_closure(Matter_Plugin_Bridge_HTTP_update_shadow_closure) },
{ be_const_key_weak(web_values, 21), be_const_closure(Matter_Plugin_Bridge_HTTP_web_values_closure) },
{ be_const_key_weak(PREFIX, -1), be_nested_str_weak(_X7C_X20_X3Ci_X3E_X25s_X3C_X2Fi_X3E_X20) },
{ be_const_key_weak(SYNC_TIMEOUT, 19), be_const_int(500) },
{ be_const_key_weak(is_local_device, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_is_local_device_closure) },
{ be_const_key_weak(PROBE_TIMEOUT, 18), be_const_int(1700) },
{ be_const_key_weak(http_remote, 1), be_const_var(0) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_init_closure) },
{ be_const_key_weak(ARG_HTTP, -1), be_nested_str_weak(url) },
{ be_const_key_weak(NAME, 17), be_nested_str_weak() },
{ be_const_key_weak(parse_update, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_parse_update_closure) },
{ be_const_key_weak(web_values_prefix, 9), be_const_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix_closure) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_read_attribute_closure) },
{ be_const_key_weak(register_cmd_cb, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_register_cmd_cb_closure) },
{ be_const_key_weak(parse_http_response, -1), be_const_closure(Matter_Plugin_Bridge_HTTP_parse_http_response_closure) },
{ be_const_key_weak(GetOptionReader, -1), be_const_class(be_class_GetOptionReader) },
})),
be_str_weak(Matter_Plugin_Bridge_HTTP)
);

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Light0.h */
/* Solidification of Matter_Plugin_2_Light0.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -7,138 +7,37 @@
extern const bclass be_class_Matter_Plugin_Light0;
/********************************************************************
** Solidified function: read_attribute
** Solidified function: find_val_i
********************************************************************/
be_local_closure(Matter_Plugin_Light0_read_attribute, /* name */
be_local_closure(Matter_Plugin_Light0_find_val_i, /* name */
be_nested_proto(
12, /* nstack */
4, /* argc */
2, /* varg */
7, /* nstack */
2, /* argc */
4, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_const_int(0),
/* K6 */ be_nested_str_weak(set),
/* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(shadow_onoff),
/* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
( &(const binstruction[45]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0005, // 0004 LDINT R7 6
0x1C1C0A07, // 0005 EQ R7 R5 R7
0x781E001B, // 0006 JMPF R7 #0023
0x8C1C0104, // 0007 GETMET R7 R0 K4
0x7C1C0200, // 0008 CALL R7 1
0x1C1C0D05, // 0009 EQ R7 R6 K5
0x781E0005, // 000A JMPF R7 #0011
0x8C1C0706, // 000B GETMET R7 R3 K6
0x88240907, // 000C GETMBR R9 R4 K7
0x88280108, // 000D GETMBR R10 R0 K8
0x7C1C0600, // 000E CALL R7 3
0x80040E00, // 000F RET 1 R7
0x70020010, // 0010 JMP #0022
0x541EFFFB, // 0011 LDINT R7 65532
0x1C1C0C07, // 0012 EQ R7 R6 R7
0x781E0005, // 0013 JMPF R7 #001A
0x8C1C0706, // 0014 GETMET R7 R3 K6
0x88240909, // 0015 GETMBR R9 R4 K9
0x58280005, // 0016 LDCONST R10 K5
0x7C1C0600, // 0017 CALL R7 3
0x80040E00, // 0018 RET 1 R7
0x70020007, // 0019 JMP #0022
0x541EFFFC, // 001A LDINT R7 65533
0x1C1C0C07, // 001B EQ R7 R6 R7
0x781E0004, // 001C JMPF R7 #0022
0x8C1C0706, // 001D GETMET R7 R3 K6
0x88240909, // 001E GETMBR R9 R4 K9
0x542A0003, // 001F LDINT R10 4
0x7C1C0600, // 0020 CALL R7 3
0x80040E00, // 0021 RET 1 R7
0x70020008, // 0022 JMP #002C
0x601C0003, // 0023 GETGBL R7 G3
0x5C200000, // 0024 MOVE R8 R0
0x7C1C0200, // 0025 CALL R7 1
0x8C1C0F0A, // 0026 GETMET R7 R7 K10
0x5C240200, // 0027 MOVE R9 R1
0x5C280400, // 0028 MOVE R10 R2
0x5C2C0600, // 0029 MOVE R11 R3
0x7C1C0800, // 002A CALL R7 4
0x80040E00, // 002B RET 1 R7
0x80000000, // 002C RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: update_shadow
********************************************************************/
be_local_closure(Matter_Plugin_Light0_update_shadow, /* name */
be_nested_proto(
8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(virtual),
/* K1 */ be_nested_str_weak(light),
/* K2 */ be_nested_str_weak(get),
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_class(be_class_Matter_Plugin_Light0),
/* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(find_key_i),
/* K3 */ be_nested_str_weak(find),
/* K4 */ be_nested_str_weak(power),
/* K5 */ be_nested_str_weak(shadow_onoff),
/* K6 */ be_nested_str_weak(attribute_updated),
/* K7 */ be_const_int(0),
/* K8 */ be_nested_str_weak(update_shadow),
}),
be_str_weak(update_shadow),
be_str_weak(find_val_i),
&be_const_str_solidified,
( &(const binstruction[26]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x74060011, // 0001 JMPT R1 #0014
0xA4060200, // 0002 IMPORT R1 K1
0x8C080302, // 0003 GETMET R2 R1 K2
0x7C080200, // 0004 CALL R2 1
0x4C0C0000, // 0005 LDNIL R3
0x200C0403, // 0006 NE R3 R2 R3
0x780E000B, // 0007 JMPF R3 #0014
0x8C0C0503, // 0008 GETMET R3 R2 K3
0x58140004, // 0009 LDCONST R5 K4
0x4C180000, // 000A LDNIL R6
0x7C0C0600, // 000B CALL R3 3
0x88100105, // 000C GETMBR R4 R0 K5
0x20100604, // 000D NE R4 R3 R4
0x78120004, // 000E JMPF R4 #0014
0x8C100106, // 000F GETMET R4 R0 K6
0x541A0005, // 0010 LDINT R6 6
0x581C0007, // 0011 LDCONST R7 K7
0x7C100600, // 0012 CALL R4 3
0x90020A03, // 0013 SETMBR R0 K5 R3
0x60040003, // 0014 GETGBL R1 G3
0x5C080000, // 0015 MOVE R2 R0
0x7C040200, // 0016 CALL R1 1
0x8C040308, // 0017 GETMET R1 R1 K8
0x7C040200, // 0018 CALL R1 1
0x80000000, // 0019 RET 0
( &(const binstruction[10]) { /* code */
0x58080000, // 0000 LDCONST R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
0x5C140000, // 0003 MOVE R5 R0
0x5C180200, // 0004 MOVE R6 R1
0x7C0C0600, // 0005 CALL R3 3
0x8C100103, // 0006 GETMET R4 R0 K3
0x5C180600, // 0007 MOVE R6 R3
0x7C100400, // 0008 CALL R4 2
0x80040800, // 0009 RET 1 R4
})
)
);
@ -198,36 +97,46 @@ be_local_closure(Matter_Plugin_Light0_set_onoff, /* name */
/********************************************************************
** Solidified function: init
** Solidified function: update_virtual
********************************************************************/
be_local_closure(Matter_Plugin_Light0_init, /* name */
be_local_closure(Matter_Plugin_Light0_update_virtual, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(shadow_onoff),
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_str_weak(find_val_i),
/* K1 */ be_nested_str_weak(Power),
/* K2 */ be_nested_str_weak(set_onoff),
/* K3 */ be_nested_str_weak(update_virtual),
}),
be_str_weak(init),
be_str_weak(update_virtual),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x50100000, // 0008 LDBOOL R4 0 0
0x90020204, // 0009 SETMBR R0 K1 R4
0x80000000, // 000A RET 0
( &(const binstruction[19]) { /* code */
0x8C080100, // 0000 GETMET R2 R0 K0
0x5C100200, // 0001 MOVE R4 R1
0x58140001, // 0002 LDCONST R5 K1
0x7C080600, // 0003 CALL R2 3
0x4C0C0000, // 0004 LDNIL R3
0x200C0403, // 0005 NE R3 R2 R3
0x780E0004, // 0006 JMPF R3 #000C
0x8C0C0102, // 0007 GETMET R3 R0 K2
0x60140017, // 0008 GETGBL R5 G23
0x5C180400, // 0009 MOVE R6 R2
0x7C140200, // 000A CALL R5 1
0x7C0C0400, // 000B CALL R3 2
0x600C0003, // 000C GETGBL R3 G3
0x5C100000, // 000D MOVE R4 R0
0x7C0C0200, // 000E CALL R3 1
0x8C0C0703, // 000F GETMET R3 R3 K3
0x5C140200, // 0010 MOVE R5 R1
0x7C0C0400, // 0011 CALL R3 2
0x80000000, // 0012 RET 0
})
)
);
@ -324,6 +233,182 @@ be_local_closure(Matter_Plugin_Light0_invoke_request, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(Matter_Plugin_Light0_init, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(shadow_onoff),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x50100000, // 0008 LDBOOL R4 0 0
0x90020204, // 0009 SETMBR R0 K1 R4
0x80000000, // 000A RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: update_shadow
********************************************************************/
be_local_closure(Matter_Plugin_Light0_update_shadow, /* name */
be_nested_proto(
8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(virtual),
/* K1 */ be_nested_str_weak(light),
/* K2 */ be_nested_str_weak(get),
/* K3 */ be_nested_str_weak(find),
/* K4 */ be_nested_str_weak(power),
/* K5 */ be_nested_str_weak(shadow_onoff),
/* K6 */ be_nested_str_weak(attribute_updated),
/* K7 */ be_const_int(0),
/* K8 */ be_nested_str_weak(update_shadow),
}),
be_str_weak(update_shadow),
&be_const_str_solidified,
( &(const binstruction[26]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x74060011, // 0001 JMPT R1 #0014
0xA4060200, // 0002 IMPORT R1 K1
0x8C080302, // 0003 GETMET R2 R1 K2
0x7C080200, // 0004 CALL R2 1
0x4C0C0000, // 0005 LDNIL R3
0x200C0403, // 0006 NE R3 R2 R3
0x780E000B, // 0007 JMPF R3 #0014
0x8C0C0503, // 0008 GETMET R3 R2 K3
0x58140004, // 0009 LDCONST R5 K4
0x4C180000, // 000A LDNIL R6
0x7C0C0600, // 000B CALL R3 3
0x88100105, // 000C GETMBR R4 R0 K5
0x20100604, // 000D NE R4 R3 R4
0x78120004, // 000E JMPF R4 #0014
0x8C100106, // 000F GETMET R4 R0 K6
0x541A0005, // 0010 LDINT R6 6
0x581C0007, // 0011 LDCONST R7 K7
0x7C100600, // 0012 CALL R4 3
0x90020A03, // 0013 SETMBR R0 K5 R3
0x60040003, // 0014 GETGBL R1 G3
0x5C080000, // 0015 MOVE R2 R0
0x7C040200, // 0016 CALL R1 1
0x8C040308, // 0017 GETMET R1 R1 K8
0x7C040200, // 0018 CALL R1 1
0x80000000, // 0019 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
be_local_closure(Matter_Plugin_Light0_read_attribute, /* name */
be_nested_proto(
12, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_const_int(0),
/* K6 */ be_nested_str_weak(set),
/* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(shadow_onoff),
/* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
( &(const binstruction[45]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0005, // 0004 LDINT R7 6
0x1C1C0A07, // 0005 EQ R7 R5 R7
0x781E001B, // 0006 JMPF R7 #0023
0x8C1C0104, // 0007 GETMET R7 R0 K4
0x7C1C0200, // 0008 CALL R7 1
0x1C1C0D05, // 0009 EQ R7 R6 K5
0x781E0005, // 000A JMPF R7 #0011
0x8C1C0706, // 000B GETMET R7 R3 K6
0x88240907, // 000C GETMBR R9 R4 K7
0x88280108, // 000D GETMBR R10 R0 K8
0x7C1C0600, // 000E CALL R7 3
0x80040E00, // 000F RET 1 R7
0x70020010, // 0010 JMP #0022
0x541EFFFB, // 0011 LDINT R7 65532
0x1C1C0C07, // 0012 EQ R7 R6 R7
0x781E0005, // 0013 JMPF R7 #001A
0x8C1C0706, // 0014 GETMET R7 R3 K6
0x88240909, // 0015 GETMBR R9 R4 K9
0x58280005, // 0016 LDCONST R10 K5
0x7C1C0600, // 0017 CALL R7 3
0x80040E00, // 0018 RET 1 R7
0x70020007, // 0019 JMP #0022
0x541EFFFC, // 001A LDINT R7 65533
0x1C1C0C07, // 001B EQ R7 R6 R7
0x781E0004, // 001C JMPF R7 #0022
0x8C1C0706, // 001D GETMET R7 R3 K6
0x88240909, // 001E GETMBR R9 R4 K9
0x542A0003, // 001F LDINT R10 4
0x7C1C0600, // 0020 CALL R7 3
0x80040E00, // 0021 RET 1 R7
0x70020008, // 0022 JMP #002C
0x601C0003, // 0023 GETGBL R7 G3
0x5C200000, // 0024 MOVE R8 R0
0x7C1C0200, // 0025 CALL R7 1
0x8C1C0F0A, // 0026 GETMET R7 R7 K10
0x5C240200, // 0027 MOVE R9 R1
0x5C280400, // 0028 MOVE R10 R2
0x5C2C0600, // 0029 MOVE R11 R3
0x7C1C0800, // 002A CALL R7 4
0x80040E00, // 002B RET 1 R7
0x80000000, // 002C RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Light0
********************************************************************/
@ -331,20 +416,20 @@ extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_Light0,
1,
&be_class_Matter_Plugin_Device,
be_nested_map(11,
be_nested_map(13,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X200_X20On) },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
{ be_const_key_weak(shadow_onoff, -1), be_const_var(0) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light0) },
{ be_const_key_weak(shadow_onoff, 8), be_const_var(0) },
{ be_const_key_weak(TYPES, 5), 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(256, -1), be_const_int(2) },
})) ) } )) },
{ be_const_key_weak(set_onoff, 2), be_const_closure(Matter_Plugin_Light0_set_onoff_closure) },
{ be_const_key_weak(CLUSTERS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
{ be_const_key_weak(find_val_i, 4), be_const_static_closure(Matter_Plugin_Light0_find_val_i_closure) },
{ be_const_key_weak(read_attribute, 8), be_const_closure(Matter_Plugin_Light0_read_attribute_closure) },
{ be_const_key_weak(update_virtual, 1), be_const_closure(Matter_Plugin_Light0_update_virtual_closure) },
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Light0_invoke_request_closure) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Light0_init_closure) },
{ be_const_key_weak(update_shadow, -1), be_const_closure(Matter_Plugin_Light0_update_shadow_closure) },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X200_X20On) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3,
@ -353,11 +438,61 @@ be_local_class(Matter_Plugin_Light0,
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(set_onoff, 3), be_const_closure(Matter_Plugin_Light0_set_onoff_closure) },
{ 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(256, -1), be_const_int(2) },
})) ) } )) },
{ be_const_key_weak(update_shadow, 0), be_const_closure(Matter_Plugin_Light0_update_shadow_closure) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light0_read_attribute_closure) },
{ be_const_key_weak(init, 1), be_const_closure(Matter_Plugin_Light0_init_closure) },
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Light0_invoke_request_closure) },
})),
be_str_weak(Matter_Plugin_Light0)
);

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_OnOff.h */
/* Solidification of Matter_Plugin_2_OnOff.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -6,46 +6,6 @@
extern const bclass be_class_Matter_Plugin_OnOff;
/********************************************************************
** Solidified function: set_onoff
********************************************************************/
be_local_closure(Matter_Plugin_OnOff_set_onoff, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(set_power),
/* K2 */ be_nested_str_weak(tasmota_relay_index),
/* K3 */ be_const_int(1),
/* K4 */ be_nested_str_weak(update_shadow),
}),
be_str_weak(set_onoff),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x88100102, // 0002 GETMBR R4 R0 K2
0x04100903, // 0003 SUB R4 R4 K3
0x60140017, // 0004 GETGBL R5 G23
0x5C180200, // 0005 MOVE R6 R1
0x7C140200, // 0006 CALL R5 1
0x7C080600, // 0007 CALL R2 3
0x8C080104, // 0008 GETMET R2 R0 K4
0x7C080200, // 0009 CALL R2 1
0x80000000, // 000A RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: init
********************************************************************/
@ -84,60 +44,169 @@ be_local_closure(Matter_Plugin_OnOff_init, /* name */
/********************************************************************
** Solidified function: update_shadow
** Solidified function: invoke_request
********************************************************************/
be_local_closure(Matter_Plugin_OnOff_update_shadow, /* name */
be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
11, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(get_power),
/* K2 */ be_nested_str_weak(tasmota_relay_index),
/* K3 */ be_const_int(1),
/* K4 */ be_nested_str_weak(shadow_onoff),
/* K5 */ be_nested_str_weak(attribute_updated),
/* K6 */ be_const_int(0),
/* K7 */ be_nested_str_weak(update_shadow),
( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(command),
/* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_const_int(0),
/* K6 */ be_nested_str_weak(set_onoff),
/* K7 */ be_nested_str_weak(publish_command),
/* K8 */ be_nested_str_weak(Power),
/* K9 */ be_const_int(1),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(shadow_onoff),
}),
be_str_weak(update_shadow),
be_str_weak(invoke_request),
&be_const_str_solidified,
( &(const binstruction[29]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
0x880C0102, // 0002 GETMBR R3 R0 K2
0x040C0703, // 0003 SUB R3 R3 K3
0x7C040400, // 0004 CALL R1 2
0x4C080000, // 0005 LDNIL R2
0x20080202, // 0006 NE R2 R1 R2
0x780A000E, // 0007 JMPF R2 #0017
0x88080104, // 0008 GETMBR R2 R0 K4
0x4C0C0000, // 0009 LDNIL R3
0x20080403, // 000A NE R2 R2 R3
0x780A0009, // 000B JMPF R2 #0016
0x88080104, // 000C GETMBR R2 R0 K4
0x600C0017, // 000D GETGBL R3 G23
0x5C100200, // 000E MOVE R4 R1
0x7C0C0200, // 000F CALL R3 1
0x20080403, // 0010 NE R2 R2 R3
0x780A0003, // 0011 JMPF R2 #0016
0x8C080105, // 0012 GETMET R2 R0 K5
0x54120005, // 0013 LDINT R4 6
0x58140006, // 0014 LDCONST R5 K6
0x7C080600, // 0015 CALL R2 3
0x90020801, // 0016 SETMBR R0 K4 R1
0x60080003, // 0017 GETGBL R2 G3
0x5C0C0000, // 0018 MOVE R3 R0
0x7C080200, // 0019 CALL R2 1
0x8C080507, // 001A GETMET R2 R2 K7
0x7C080200, // 001B CALL R2 1
0x80000000, // 001C RET 0
( &(const binstruction[52]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140702, // 0002 GETMBR R5 R3 K2
0x88180703, // 0003 GETMBR R6 R3 K3
0x541E0005, // 0004 LDINT R7 6
0x1C1C0A07, // 0005 EQ R7 R5 R7
0x781E002B, // 0006 JMPF R7 #0033
0x8C1C0104, // 0007 GETMET R7 R0 K4
0x7C1C0200, // 0008 CALL R7 1
0x1C1C0D05, // 0009 EQ R7 R6 K5
0x781E0009, // 000A JMPF R7 #0015
0x8C1C0106, // 000B GETMET R7 R0 K6
0x50240000, // 000C LDBOOL R9 0 0
0x7C1C0400, // 000D CALL R7 2
0x8C1C0107, // 000E GETMET R7 R0 K7
0x58240008, // 000F LDCONST R9 K8
0x58280005, // 0010 LDCONST R10 K5
0x7C1C0600, // 0011 CALL R7 3
0x501C0200, // 0012 LDBOOL R7 1 0
0x80040E00, // 0013 RET 1 R7
0x7002001D, // 0014 JMP #0033
0x1C1C0D09, // 0015 EQ R7 R6 K9
0x781E0009, // 0016 JMPF R7 #0021
0x8C1C0106, // 0017 GETMET R7 R0 K6
0x50240200, // 0018 LDBOOL R9 1 0
0x7C1C0400, // 0019 CALL R7 2
0x8C1C0107, // 001A GETMET R7 R0 K7
0x58240008, // 001B LDCONST R9 K8
0x58280009, // 001C LDCONST R10 K9
0x7C1C0600, // 001D CALL R7 3
0x501C0200, // 001E LDBOOL R7 1 0
0x80040E00, // 001F RET 1 R7
0x70020011, // 0020 JMP #0033
0x1C1C0D0A, // 0021 EQ R7 R6 K10
0x781E000F, // 0022 JMPF R7 #0033
0x8C1C0106, // 0023 GETMET R7 R0 K6
0x8824010B, // 0024 GETMBR R9 R0 K11
0x78260000, // 0025 JMPF R9 #0027
0x50240001, // 0026 LDBOOL R9 0 1
0x50240200, // 0027 LDBOOL R9 1 0
0x7C1C0400, // 0028 CALL R7 2
0x8C1C0107, // 0029 GETMET R7 R0 K7
0x58240008, // 002A LDCONST R9 K8
0x8828010B, // 002B GETMBR R10 R0 K11
0x782A0001, // 002C JMPF R10 #002F
0x58280009, // 002D LDCONST R10 K9
0x70020000, // 002E JMP #0030
0x58280005, // 002F LDCONST R10 K5
0x7C1C0600, // 0030 CALL R7 3
0x501C0200, // 0031 LDBOOL R7 1 0
0x80040E00, // 0032 RET 1 R7
0x80000000, // 0033 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: set_onoff
********************************************************************/
be_local_closure(Matter_Plugin_OnOff_set_onoff, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(virtual),
/* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(set_power),
/* K3 */ be_nested_str_weak(tasmota_relay_index),
/* K4 */ be_const_int(1),
/* K5 */ be_nested_str_weak(update_shadow),
/* K6 */ be_nested_str_weak(shadow_onoff),
/* K7 */ be_nested_str_weak(attribute_updated),
/* K8 */ be_const_int(0),
}),
be_str_weak(set_onoff),
&be_const_str_solidified,
( &(const binstruction[22]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A000A, // 0001 JMPT R2 #000D
0xB80A0200, // 0002 GETNGBL R2 K1
0x8C080502, // 0003 GETMET R2 R2 K2
0x88100103, // 0004 GETMBR R4 R0 K3
0x04100904, // 0005 SUB R4 R4 K4
0x60140017, // 0006 GETGBL R5 G23
0x5C180200, // 0007 MOVE R6 R1
0x7C140200, // 0008 CALL R5 1
0x7C080600, // 0009 CALL R2 3
0x8C080105, // 000A GETMET R2 R0 K5
0x7C080200, // 000B CALL R2 1
0x70020007, // 000C JMP #0015
0x88080106, // 000D GETMBR R2 R0 K6
0x20080202, // 000E NE R2 R1 R2
0x780A0004, // 000F JMPF R2 #0015
0x8C080107, // 0010 GETMET R2 R0 K7
0x54120005, // 0011 LDINT R4 6
0x58140008, // 0012 LDCONST R5 K8
0x7C080600, // 0013 CALL R2 3
0x90020C01, // 0014 SETMBR R0 K6 R1
0x80000000, // 0015 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: <lambda>
********************************************************************/
be_local_closure(Matter_Plugin_OnOff__X3Clambda_X3E, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
be_str_weak(_X3Clambda_X3E),
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x60040009, // 0000 GETGBL R1 G9
0x5C080000, // 0001 MOVE R2 R0
0x7C040200, // 0002 CALL R1 1
0x80040200, // 0003 RET 1 R1
})
)
);
@ -266,121 +335,59 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
/********************************************************************
** Solidified function: invoke_request
** Solidified function: update_shadow
********************************************************************/
be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
be_local_closure(Matter_Plugin_OnOff_update_shadow, /* name */
be_nested_proto(
11, /* nstack */
4, /* argc */
6, /* nstack */
1, /* 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(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(command),
/* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_const_int(0),
/* K6 */ be_nested_str_weak(set_onoff),
/* K7 */ be_nested_str_weak(update_shadow),
/* K8 */ be_nested_str_weak(publish_command),
/* K9 */ be_nested_str_weak(Power),
/* K10 */ be_const_int(1),
/* K11 */ be_const_int(2),
/* K12 */ be_nested_str_weak(shadow_onoff),
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(virtual),
/* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(get_power),
/* K3 */ be_nested_str_weak(tasmota_relay_index),
/* K4 */ be_const_int(1),
/* K5 */ be_nested_str_weak(shadow_onoff),
/* K6 */ be_nested_str_weak(attribute_updated),
/* K7 */ be_const_int(0),
/* K8 */ be_nested_str_weak(update_shadow),
}),
be_str_weak(invoke_request),
be_str_weak(update_shadow),
&be_const_str_solidified,
( &(const binstruction[58]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140702, // 0002 GETMBR R5 R3 K2
0x88180703, // 0003 GETMBR R6 R3 K3
0x541E0005, // 0004 LDINT R7 6
0x1C1C0A07, // 0005 EQ R7 R5 R7
0x781E0031, // 0006 JMPF R7 #0039
0x8C1C0104, // 0007 GETMET R7 R0 K4
0x7C1C0200, // 0008 CALL R7 1
0x1C1C0D05, // 0009 EQ R7 R6 K5
0x781E000B, // 000A JMPF R7 #0017
0x8C1C0106, // 000B GETMET R7 R0 K6
0x50240000, // 000C LDBOOL R9 0 0
0x7C1C0400, // 000D CALL R7 2
0x8C1C0107, // 000E GETMET R7 R0 K7
0x7C1C0200, // 000F CALL R7 1
0x8C1C0108, // 0010 GETMET R7 R0 K8
0x58240009, // 0011 LDCONST R9 K9
0x58280005, // 0012 LDCONST R10 K5
0x7C1C0600, // 0013 CALL R7 3
0x501C0200, // 0014 LDBOOL R7 1 0
0x80040E00, // 0015 RET 1 R7
0x70020021, // 0016 JMP #0039
0x1C1C0D0A, // 0017 EQ R7 R6 K10
0x781E000B, // 0018 JMPF R7 #0025
0x8C1C0106, // 0019 GETMET R7 R0 K6
0x50240200, // 001A LDBOOL R9 1 0
0x7C1C0400, // 001B CALL R7 2
0x8C1C0107, // 001C GETMET R7 R0 K7
0x7C1C0200, // 001D CALL R7 1
0x8C1C0108, // 001E GETMET R7 R0 K8
0x58240009, // 001F LDCONST R9 K9
0x5828000A, // 0020 LDCONST R10 K10
0x7C1C0600, // 0021 CALL R7 3
0x501C0200, // 0022 LDBOOL R7 1 0
0x80040E00, // 0023 RET 1 R7
0x70020013, // 0024 JMP #0039
0x1C1C0D0B, // 0025 EQ R7 R6 K11
0x781E0011, // 0026 JMPF R7 #0039
0x8C1C0106, // 0027 GETMET R7 R0 K6
0x8824010C, // 0028 GETMBR R9 R0 K12
0x78260000, // 0029 JMPF R9 #002B
0x50240001, // 002A LDBOOL R9 0 1
0x50240200, // 002B LDBOOL R9 1 0
0x7C1C0400, // 002C CALL R7 2
0x8C1C0107, // 002D GETMET R7 R0 K7
0x7C1C0200, // 002E CALL R7 1
0x8C1C0108, // 002F GETMET R7 R0 K8
0x58240009, // 0030 LDCONST R9 K9
0x8828010C, // 0031 GETMBR R10 R0 K12
0x782A0001, // 0032 JMPF R10 #0035
0x5828000A, // 0033 LDCONST R10 K10
0x70020000, // 0034 JMP #0036
0x58280005, // 0035 LDCONST R10 K5
0x7C1C0600, // 0036 CALL R7 3
0x501C0200, // 0037 LDBOOL R7 1 0
0x80040E00, // 0038 RET 1 R7
0x80000000, // 0039 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: <lambda>
********************************************************************/
be_local_closure(Matter_Plugin_OnOff__X3Clambda_X3E, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
be_str_weak(_X3Clambda_X3E),
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x60040009, // 0000 GETGBL R1 G9
0x5C080000, // 0001 MOVE R2 R0
0x7C040200, // 0002 CALL R1 1
0x80040200, // 0003 RET 1 R1
( &(const binstruction[27]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x74060012, // 0001 JMPT R1 #0015
0xB8060200, // 0002 GETNGBL R1 K1
0x8C040302, // 0003 GETMET R1 R1 K2
0x880C0103, // 0004 GETMBR R3 R0 K3
0x040C0704, // 0005 SUB R3 R3 K4
0x7C040400, // 0006 CALL R1 2
0x4C080000, // 0007 LDNIL R2
0x20080202, // 0008 NE R2 R1 R2
0x780A000A, // 0009 JMPF R2 #0015
0x88080105, // 000A GETMBR R2 R0 K5
0x600C0017, // 000B GETGBL R3 G23
0x5C100200, // 000C MOVE R4 R1
0x7C0C0200, // 000D CALL R3 1
0x20080403, // 000E NE R2 R2 R3
0x780A0003, // 000F JMPF R2 #0014
0x8C080106, // 0010 GETMET R2 R0 K6
0x54120005, // 0011 LDINT R4 6
0x58140007, // 0012 LDCONST R5 K7
0x7C080600, // 0013 CALL R2 3
0x90020A01, // 0014 SETMBR R0 K5 R1
0x60040003, // 0015 GETGBL R1 G3
0x5C080000, // 0016 MOVE R2 R0
0x7C040200, // 0017 CALL R1 1
0x8C040308, // 0018 GETMET R1 R1 K8
0x7C040200, // 0019 CALL R1 1
0x80000000, // 001A RET 0
})
)
);
@ -392,21 +399,22 @@ be_local_closure(Matter_Plugin_OnOff__X3Clambda_X3E, /* name */
********************************************************************/
extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_OnOff,
2,
1,
&be_class_Matter_Plugin_Device,
be_nested_map(16,
be_nested_map(15,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(shadow_onoff, 4), be_const_var(1) },
{ be_const_key_weak(tasmota_relay_index, 12), be_const_var(0) },
{ be_const_key_weak(init, 14), be_const_closure(Matter_Plugin_OnOff_init_closure) },
{ be_const_key_weak(update_shadow, 10), be_const_closure(Matter_Plugin_OnOff_update_shadow_closure) },
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_OnOff_invoke_request_closure) },
{ be_const_key_weak(set_onoff, -1), be_const_closure(Matter_Plugin_OnOff_set_onoff_closure) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_OnOff_init_closure) },
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(Matter_Plugin_OnOff__X3Clambda_X3E_closure) },
{ be_const_key_weak(update_shadow, 15), be_const_closure(Matter_Plugin_OnOff_update_shadow_closure) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Relay) },
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
{ be_const_key_weak(ARG_TYPE, 1), be_const_static_closure(Matter_Plugin_OnOff__X3Clambda_X3E_closure) },
{ be_const_key_weak(tasmota_relay_index, 13), be_const_var(0) },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
{ be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(relay) },
{ be_const_key_weak(NAME, 7), be_nested_str_weak(Relay) },
{ be_const_key_weak(CLUSTERS, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3,
@ -415,17 +423,63 @@ be_local_class(Matter_Plugin_OnOff,
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_weak(TYPES, 9), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(parse_configuration, 8), be_const_closure(Matter_Plugin_OnOff_parse_configuration_closure) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_OnOff_read_attribute_closure) },
{ 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(266, -1), be_const_int(2) },
})) ) } )) },
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_OnOff_invoke_request_closure) },
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(relay) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_OnOff_read_attribute_closure) },
{ be_const_key_weak(parse_configuration, -1), be_const_closure(Matter_Plugin_OnOff_parse_configuration_closure) },
})),
be_str_weak(Matter_Plugin_OnOff)
);

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor.h */
/* Solidification of Matter_Plugin_2_Sensor.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Shutter.h */
/* Solidification of Matter_Plugin_2_Shutter.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -664,7 +664,7 @@ be_local_class(Matter_Plugin_Shutter,
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Shutter_invoke_request_closure) },
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(258, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(10,
@ -679,6 +679,54 @@ be_local_class(Matter_Plugin_Shutter,
be_const_int(23),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(update_shadow, 5), be_const_closure(Matter_Plugin_Shutter_update_shadow_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Light0.h */
/* Solidification of Matter_Plugin_3_Bridge_Light0.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -488,7 +488,7 @@ be_local_class(Matter_Plugin_Bridge_Light0,
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
{ be_const_key_weak(parse_update, -1), be_const_closure(Matter_Plugin_Bridge_Light0_parse_update_closure) },
{ be_const_key_weak(CLUSTERS, 15), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3,
@ -496,6 +496,54 @@ be_local_class(Matter_Plugin_Bridge_Light0,
be_const_int(0),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 9), be_const_closure(Matter_Plugin_Bridge_Light0_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Sensor.h */
/* Solidification of Matter_Plugin_3_Bridge_Sensor.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Light1.h */
/* Solidification of Matter_Plugin_3_Light1.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -507,9 +507,19 @@ be_local_class(Matter_Plugin_Light1,
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light1_read_attribute_closure) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X201_X20Dimmer) },
{ be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(7,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(29, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(8, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -519,6 +529,51 @@ be_local_class(Matter_Plugin_Light1,
be_const_int(17),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ 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(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(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(6, -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_weak(init, -1), be_const_closure(Matter_Plugin_Light1_init_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Light3.h */
/* Solidification of Matter_Plugin_3_Light3.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -620,8 +620,74 @@ be_local_class(Matter_Plugin_Light3,
})) ) } )) },
{ be_const_key_weak(shadow_hue, 2), be_const_var(0) },
{ be_const_key_weak(CLUSTERS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(2),
be_const_int(3),
be_const_int(15),
be_const_int(17),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
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_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(5, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(6, -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(768, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(9,
( (struct bvalue*) &(const bvalue[]) {

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor_Contact.h */
/* Solidification of Matter_Plugin_3_Sensor_Contact.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -265,14 +265,62 @@ be_local_class(Matter_Plugin_Sensor_Contact,
{ be_const_key_weak(update_shadow, -1), be_const_closure(Matter_Plugin_Sensor_Contact_update_shadow_closure) },
{ be_const_key_weak(tasmota_switch_index, 6), be_const_var(0) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(69, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
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_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(69, 2), 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(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(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 4), be_const_closure(Matter_Plugin_Sensor_Contact_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor_Humidity.h */
/* Solidification of Matter_Plugin_3_Sensor_Humidity.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -191,9 +191,40 @@ be_local_class(Matter_Plugin_Sensor_Humidity,
{ be_const_key_weak(read_attribute, 2), be_const_closure(Matter_Plugin_Sensor_Humidity_read_attribute_closure) },
{ be_const_key_weak(pre_value, 4), be_const_closure(Matter_Plugin_Sensor_Humidity_pre_value_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1029, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
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_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(1029, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -201,6 +232,23 @@ be_local_class(Matter_Plugin_Sensor_Humidity,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ 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(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(TYPE, 6), be_nested_str_weak(humidity) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor_Illuminance.h */
/* Solidification of Matter_Plugin_3_Sensor_Illuminance.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -203,9 +203,47 @@ be_local_class(Matter_Plugin_Sensor_Illuminance,
{ be_const_key_weak(read_attribute, 2), be_const_closure(Matter_Plugin_Sensor_Illuminance_read_attribute_closure) },
{ be_const_key_weak(pre_value, 4), be_const_closure(Matter_Plugin_Sensor_Illuminance_pre_value_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1024, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ 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, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(1024, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -213,6 +251,16 @@ be_local_class(Matter_Plugin_Sensor_Illuminance,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(TYPE, 6), be_nested_str_weak(illuminance) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor_Occupancy.h */
/* Solidification of Matter_Plugin_3_Sensor_Occupancy.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -279,9 +279,47 @@ be_local_class(Matter_Plugin_Sensor_Occupancy,
{ be_const_key_weak(update_shadow, 5), be_const_closure(Matter_Plugin_Sensor_Occupancy_update_shadow_closure) },
{ be_const_key_weak(NAME, 6), be_nested_str_weak(Occupancy) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1030, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ 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, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(1030, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -289,6 +327,16 @@ be_local_class(Matter_Plugin_Sensor_Occupancy,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 4), be_const_closure(Matter_Plugin_Sensor_Occupancy_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor_OnOff.h */
/* Solidification of Matter_Plugin_3_Sensor_OnOff.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -252,7 +252,7 @@ be_local_class(Matter_Plugin_Sensor_OnOff,
{ be_const_key_weak(shadow_onoff, -1), be_const_var(1) },
{ be_const_key_weak(tasmota_switch_index, 6), be_const_var(0) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3,
@ -260,6 +260,54 @@ be_local_class(Matter_Plugin_Sensor_OnOff,
be_const_int(0),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 4), be_const_closure(Matter_Plugin_Sensor_OnOff_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor_Pressure.h */
/* Solidification of Matter_Plugin_3_Sensor_Pressure.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -190,8 +190,20 @@ be_local_class(Matter_Plugin_Sensor_Pressure,
{ be_const_key_weak(read_attribute, 2), be_const_closure(Matter_Plugin_Sensor_Pressure_read_attribute_closure) },
{ be_const_key_weak(pre_value, 4), be_const_closure(Matter_Plugin_Sensor_Pressure_pre_value_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(1027, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
@ -200,6 +212,42 @@ be_local_class(Matter_Plugin_Sensor_Pressure,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(TYPE, 6), be_nested_str_weak(pressure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Sensor_Temp.h */
/* Solidification of Matter_Plugin_3_Sensor_Temp.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -203,7 +203,7 @@ be_local_class(Matter_Plugin_Sensor_Temp,
{ be_const_key_weak(read_attribute, 2), be_const_closure(Matter_Plugin_Sensor_Temp_read_attribute_closure) },
{ be_const_key_weak(pre_value, 4), be_const_closure(Matter_Plugin_Sensor_Temp_pre_value_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1026, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
@ -213,6 +213,54 @@ be_local_class(Matter_Plugin_Sensor_Temp,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(TYPE, 6), be_nested_str_weak(temperature) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_ShutterTilt.h */
/* Solidification of Matter_Plugin_3_ShutterTilt.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -437,15 +437,73 @@ be_local_class(Matter_Plugin_ShutterTilt,
{ be_const_key_weak(parse_sensors, 7), be_const_closure(Matter_Plugin_ShutterTilt_parse_sensors_closure) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Shutter_X20_X2B_X20Tilt) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(258, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(4,
be_const_list( * be_nested_list(14,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(5),
be_const_int(7),
be_const_int(10),
be_const_int(11),
be_const_int(13),
be_const_int(14),
be_const_int(23),
be_const_int(65532),
be_const_int(65533),
be_const_int(7),
be_const_int(12),
be_const_int(15),
be_const_int(65532),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_ShutterTilt_invoke_request_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Light1.h */
/* Solidification of Matter_Plugin_4_Bridge_Light1.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -555,9 +555,19 @@ be_local_class(Matter_Plugin_Bridge_Light1,
{ be_const_key_weak(TYPE, 2), be_nested_str_weak(http_light1) },
{ be_const_key_weak(shadow_bri, 8), be_const_var(0) },
{ be_const_key_weak(CLUSTERS, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(7,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(29, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(8, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -567,6 +577,51 @@ be_local_class(Matter_Plugin_Bridge_Light1,
be_const_int(17),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ 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(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(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(6, -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_weak(set_bri, -1), be_const_closure(Matter_Plugin_Bridge_Light1_set_bri_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_OnOff.h */
/* Solidification of Matter_Plugin_4_Bridge_OnOff.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Sensor_Contact.h */
/* Solidification of Matter_Plugin_4_Bridge_Sensor_Contact.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -349,14 +349,62 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Contact,
{ be_const_key_weak(UPDATE_TIME, 14), be_const_int(5000) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Contact_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(69, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
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_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(69, 2), 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(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(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(TYPES, 12), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Sensor_Humidity.h */
/* Solidification of Matter_Plugin_4_Bridge_Sensor_Humidity.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -240,9 +240,40 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Humidity,
{ be_const_key_weak(pre_value, 1), be_const_closure(Matter_Plugin_Bridge_Sensor_Humidity_pre_value_closure) },
{ be_const_key_weak(web_values, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Humidity_web_values_closure) },
{ be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1029, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
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_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(1029, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -250,6 +281,23 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Humidity,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ 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(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 7), be_const_closure(Matter_Plugin_Bridge_Sensor_Humidity_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Sensor_Illuminance.h */
/* Solidification of Matter_Plugin_4_Bridge_Sensor_Illuminance.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -244,9 +244,47 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Illuminance,
{ be_const_key_weak(pre_value, 1), be_const_closure(Matter_Plugin_Bridge_Sensor_Illuminance_pre_value_closure) },
{ be_const_key_weak(web_values, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Illuminance_web_values_closure) },
{ be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1024, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ 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, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(1024, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -254,6 +292,16 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Illuminance,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 7), be_const_closure(Matter_Plugin_Bridge_Sensor_Illuminance_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Sensor_Occupancy.h */
/* Solidification of Matter_Plugin_4_Bridge_Sensor_Occupancy.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -366,9 +366,47 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Occupancy,
{ be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
{ be_const_key_weak(parse_update, 5), be_const_closure(Matter_Plugin_Bridge_Sensor_Occupancy_parse_update_closure) },
{ be_const_key_weak(CLUSTERS, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1030, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ 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, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(1030, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@ -376,6 +414,16 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Occupancy,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(tasmota_switch_index, 9), be_const_var(0) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Sensor_Pressure.h */
/* Solidification of Matter_Plugin_4_Bridge_Sensor_Pressure.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -231,8 +231,20 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Pressure,
{ be_const_key_weak(pre_value, 1), be_const_closure(Matter_Plugin_Bridge_Sensor_Pressure_pre_value_closure) },
{ be_const_key_weak(web_values, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Pressure_web_values_closure) },
{ be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(1027, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
( (struct bvalue*) &(const bvalue[]) {
@ -241,6 +253,42 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Pressure,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 7), be_const_closure(Matter_Plugin_Bridge_Sensor_Pressure_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Sensor_Temp.h */
/* Solidification of Matter_Plugin_4_Bridge_Sensor_Temp.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -249,7 +249,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Temp,
{ be_const_key_weak(pre_value, 1), be_const_closure(Matter_Plugin_Bridge_Sensor_Temp_pre_value_closure) },
{ be_const_key_weak(web_values, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Temp_web_values_closure) },
{ be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1026, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5,
@ -259,6 +259,54 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Temp,
be_const_int(2),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(3, 2), 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(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(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
})) ) } )) },
{ be_const_key_weak(read_attribute, 7), be_const_closure(Matter_Plugin_Bridge_Sensor_Temp_read_attribute_closure) },

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Light2.h */
/* Solidification of Matter_Plugin_4_Light2.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -449,8 +449,74 @@ be_local_class(Matter_Plugin_Light2,
{ be_const_key_weak(ct_max, 1), be_const_var(2) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X202_X20CT) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(2),
be_const_int(3),
be_const_int(15),
be_const_int(17),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
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_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(5, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(6, -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(768, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Light2.h */
/* Solidification of Matter_Plugin_5_Bridge_Light2.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -546,8 +546,74 @@ be_local_class(Matter_Plugin_Bridge_Light2,
{ be_const_key_weak(web_values, 11), be_const_closure(Matter_Plugin_Bridge_Light2_web_values_closure) },
{ be_const_key_weak(ct_max, -1), be_const_var(2) },
{ be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(2),
be_const_int(3),
be_const_int(15),
be_const_int(17),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
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_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(5, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(6, -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(768, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {

View File

@ -1,4 +1,4 @@
/* Solidification of Matter_Plugin_Bridge_Light3.h */
/* Solidification of Matter_Plugin_5_Bridge_Light3.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@ -733,8 +733,74 @@ be_local_class(Matter_Plugin_Bridge_Light3,
{ be_const_key_weak(set_hue, -1), be_const_closure(Matter_Plugin_Bridge_Light3_set_hue_closure) },
{ be_const_key_weak(read_attribute, 13), be_const_closure(Matter_Plugin_Bridge_Light3_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
be_const_map( * be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(2),
be_const_int(3),
be_const_int(15),
be_const_int(17),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(17),
be_const_int(3),
be_const_int(5),
be_const_int(10),
be_const_int(15),
be_const_int(17),
be_const_int(18),
})) ) } )) },
{ be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(6,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
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_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(5, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(8,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(1),
be_const_int(2),
be_const_int(3),
be_const_int(4),
be_const_int(5),
be_const_int(65532),
be_const_int(65533),
})) ) } )) },
{ be_const_key_int(6, -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(768, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(9,
( (struct bvalue*) &(const bvalue[]) {

View File

@ -0,0 +1,71 @@
/* Solidification of Matter_Plugin_9_Virt_Light0.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
extern const bclass be_class_Matter_Plugin_Virt_Light0;
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(Matter_Plugin_Virt_Light0_init, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(virtual),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x50100200, // 0008 LDBOOL R4 1 0
0x90020204, // 0009 SETMBR R0 K1 R4
0x80000000, // 000A RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Virt_Light0
********************************************************************/
extern const bclass be_class_Matter_Plugin_Light0;
be_local_class(Matter_Plugin_Virt_Light0,
0,
&be_class_Matter_Plugin_Light0,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(ARG_HINT, 3), be_nested_str_weak(_Not_X20used_) },
{ be_const_key_weak(NAME, 2), be_nested_str_weak(_X28v_X29_X20Light_X200_X20On) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(v_light0) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Virt_Light0_init_closure) },
{ be_const_key_weak(ARG, 1), be_nested_str_weak() },
})),
be_str_weak(Matter_Plugin_Virt_Light0)
);
/*******************************************************************/
void be_load_Matter_Plugin_Virt_Light0_class(bvm *vm) {
be_pushntvclass(vm, &be_class_Matter_Plugin_Virt_Light0);
be_setglobal(vm, "Matter_Plugin_Virt_Light0");
be_pop(vm, 1);
}
/********************************************************************/
/* End of solidification */

View File

@ -0,0 +1,71 @@
/* Solidification of Matter_Plugin_9_Virt_Light1.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
extern const bclass be_class_Matter_Plugin_Virt_Light1;
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(Matter_Plugin_Virt_Light1_init, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(virtual),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x50100200, // 0008 LDBOOL R4 1 0
0x90020204, // 0009 SETMBR R0 K1 R4
0x80000000, // 000A RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Virt_Light1
********************************************************************/
extern const bclass be_class_Matter_Plugin_Light1;
be_local_class(Matter_Plugin_Virt_Light1,
0,
&be_class_Matter_Plugin_Light1,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(ARG_HINT, 3), be_nested_str_weak(_Not_X20used_) },
{ be_const_key_weak(NAME, 2), be_nested_str_weak(_X28v_X29_X20Light_X201_X20Dimmer) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(v_light1) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Virt_Light1_init_closure) },
{ be_const_key_weak(ARG, 1), be_nested_str_weak() },
})),
be_str_weak(Matter_Plugin_Virt_Light1)
);
/*******************************************************************/
void be_load_Matter_Plugin_Virt_Light1_class(bvm *vm) {
be_pushntvclass(vm, &be_class_Matter_Plugin_Virt_Light1);
be_setglobal(vm, "Matter_Plugin_Virt_Light1");
be_pop(vm, 1);
}
/********************************************************************/
/* End of solidification */

View File

@ -0,0 +1,71 @@
/* Solidification of Matter_Plugin_9_Virt_Light2.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
extern const bclass be_class_Matter_Plugin_Virt_Light2;
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(Matter_Plugin_Virt_Light2_init, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(virtual),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x50100200, // 0008 LDBOOL R4 1 0
0x90020204, // 0009 SETMBR R0 K1 R4
0x80000000, // 000A RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Virt_Light2
********************************************************************/
extern const bclass be_class_Matter_Plugin_Light2;
be_local_class(Matter_Plugin_Virt_Light2,
0,
&be_class_Matter_Plugin_Light2,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(ARG_HINT, 3), be_nested_str_weak(_Not_X20used_) },
{ be_const_key_weak(NAME, 2), be_nested_str_weak(_X28v_X29_X20Light_X202_X20CT) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(v_light2) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Virt_Light2_init_closure) },
{ be_const_key_weak(ARG, 1), be_nested_str_weak() },
})),
be_str_weak(Matter_Plugin_Virt_Light2)
);
/*******************************************************************/
void be_load_Matter_Plugin_Virt_Light2_class(bvm *vm) {
be_pushntvclass(vm, &be_class_Matter_Plugin_Virt_Light2);
be_setglobal(vm, "Matter_Plugin_Virt_Light2");
be_pop(vm, 1);
}
/********************************************************************/
/* End of solidification */

View File

@ -0,0 +1,71 @@
/* Solidification of Matter_Plugin_9_Virt_Light3.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
extern const bclass be_class_Matter_Plugin_Virt_Light3;
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(Matter_Plugin_Virt_Light3_init, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(virtual),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x50100200, // 0008 LDBOOL R4 1 0
0x90020204, // 0009 SETMBR R0 K1 R4
0x80000000, // 000A RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Virt_Light3
********************************************************************/
extern const bclass be_class_Matter_Plugin_Light3;
be_local_class(Matter_Plugin_Virt_Light3,
0,
&be_class_Matter_Plugin_Light3,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(ARG_HINT, 3), be_nested_str_weak(_Not_X20used_) },
{ be_const_key_weak(NAME, 2), be_nested_str_weak(_X28v_X29_X20Light_X203_X20RGB) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(v_light3) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Virt_Light3_init_closure) },
{ be_const_key_weak(ARG, 1), be_nested_str_weak() },
})),
be_str_weak(Matter_Plugin_Virt_Light3)
);
/*******************************************************************/
void be_load_Matter_Plugin_Virt_Light3_class(bvm *vm) {
be_pushntvclass(vm, &be_class_Matter_Plugin_Virt_Light3);
be_setglobal(vm, "Matter_Plugin_Virt_Light3");
be_pop(vm, 1);
}
/********************************************************************/
/* End of solidification */

View File

@ -0,0 +1,71 @@
/* Solidification of Matter_Plugin_9_Virt_OnOff.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
extern const bclass be_class_Matter_Plugin_Virt_OnOff;
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(Matter_Plugin_Virt_OnOff_init, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(virtual),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x5C180200, // 0004 MOVE R6 R1
0x5C1C0400, // 0005 MOVE R7 R2
0x5C200600, // 0006 MOVE R8 R3
0x7C100800, // 0007 CALL R4 4
0x50100200, // 0008 LDBOOL R4 1 0
0x90020204, // 0009 SETMBR R0 K1 R4
0x80000000, // 000A RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_Virt_OnOff
********************************************************************/
extern const bclass be_class_Matter_Plugin_OnOff;
be_local_class(Matter_Plugin_Virt_OnOff,
0,
&be_class_Matter_Plugin_OnOff,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(ARG_HINT, 3), be_nested_str_weak(_Not_X20used_) },
{ be_const_key_weak(NAME, 2), be_nested_str_weak(_X28v_X29_X20Relay) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(v_relay) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Virt_OnOff_init_closure) },
{ be_const_key_weak(ARG, 1), be_nested_str_weak() },
})),
be_str_weak(Matter_Plugin_Virt_OnOff)
);
/*******************************************************************/
void be_load_Matter_Plugin_Virt_OnOff_class(bvm *vm) {
be_pushntvclass(vm, &be_class_Matter_Plugin_Virt_OnOff);
be_setglobal(vm, "Matter_Plugin_Virt_OnOff");
be_pop(vm, 1);
}
/********************************************************************/
/* End of solidification */

View File

@ -1627,8 +1627,8 @@ be_local_closure(Matter_UI_plugin_option, /* name */
/* K6 */ be_nested_str_weak(),
/* K7 */ be_nested_str_weak(content_send),
/* K8 */ be_nested_str_weak(_X3Coption_X20value_X3D_X27_X27_X3E_X3C_X2Foption_X3E),
/* K9 */ be_nested_str_weak(_X2Dhttp),
/* K10 */ be_nested_str_weak(_X3Coption_X20value_X3D_X27_X27_X20disabled_X3E_X2D_X2D_X2D_X20Tasmota_X20Remote_X20_X2D_X2D_X2D_X3C_X2Foption_X3E),
/* K9 */ be_nested_str_weak(_X2Dvirtual),
/* K10 */ be_nested_str_weak(_X3Coption_X20value_X3D_X27_X27_X20disabled_X3E_X2D_X2D_X2D_X20Virtual_X20Devices_X20_X2D_X2D_X2D_X3C_X2Foption_X3E),
/* K11 */ be_nested_str_weak(device),
/* K12 */ be_nested_str_weak(get_plugin_class_displayname),
/* K13 */ be_nested_str_weak(_X3Coption_X20value_X3D_X27_X25s_X27_X25s_X3E_X25s_X3C_X2Foption_X3E),