From 0dda8fc224d5b23385e64b97fff1bc8f1a150641 Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Sun, 28 Jul 2024 18:10:25 +0200 Subject: [PATCH] Matter fix circular references in WaterLeak and Rain sensors (#21862) --- .../src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be | 2 +- .../src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be | 2 +- .../berry_matter/src/embedded/Matter_Plugin_z_All.be | 8 ++++++++ .../solidified_Matter_Plugin_9_Virt_Sensor_Rain.h | 4 ++-- .../solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h | 4 ++-- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be index 5e811fae0..c43d8d624 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be @@ -24,7 +24,7 @@ import matter #@ solidify:Matter_Plugin_Virt_Sensor_Rain,weak -class Matter_Plugin_Virt_Sensor_Rain : Matter_Plugin_Virt_Sensor_Rain +class Matter_Plugin_Virt_Sensor_Rain : Matter_Plugin_Sensor_Rain static var TYPE = "v_rain" # name of the plug-in in json static var DISPLAY_NAME = "v.Rain" # display name of the plug-in static var ARG = "" # no arg for virtual device diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be index 264435193..0e032b08f 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be @@ -24,7 +24,7 @@ import matter #@ solidify:Matter_Plugin_Virt_Sensor_Waterleak,weak -class Matter_Plugin_Virt_Sensor_Waterleak : Matter_Plugin_Virt_Sensor_Waterleak +class Matter_Plugin_Virt_Sensor_Waterleak : Matter_Plugin_Sensor_Waterleak static var TYPE = "v_waterleak" # name of the plug-in in json static var DISPLAY_NAME = "v.Waterleak" # display name of the plug-in static var ARG = "" # no arg for virtual device diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_z_All.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_z_All.be index 8aa126950..5e0853885 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_z_All.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_z_All.be @@ -21,6 +21,14 @@ import matter # this is used to solidify plugins list in Matter_Device +###################################################################### +# Register all classes to the `matter` module before solidification +# +# Scans all classes starting with `Plugin_` +# Add to a map from class.TYPE -> class +# and set an attribute `plugins_classes` to the module `matter` +# before final solidification. +###################################################################### def register_native_classes() var plugins_classes = {} # try to register any class that starts with 'Plugin_' diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h index 66881e1b5..499f6db30 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h @@ -9,10 +9,10 @@ extern const bclass be_class_Matter_Plugin_Virt_Sensor_Rain; /******************************************************************** ** Solidified class: Matter_Plugin_Virt_Sensor_Rain ********************************************************************/ -extern const bclass be_class_Matter_Plugin_Virt_Sensor_Rain; +extern const bclass be_class_Matter_Plugin_Sensor_Rain; be_local_class(Matter_Plugin_Virt_Sensor_Rain, 0, - &be_class_Matter_Plugin_Virt_Sensor_Rain, + &be_class_Matter_Plugin_Sensor_Rain, be_nested_map(5, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(VIRTUAL, 3), be_const_bool(1) }, diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h index f33b2921e..7fe1705c2 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h @@ -9,10 +9,10 @@ extern const bclass be_class_Matter_Plugin_Virt_Sensor_Waterleak; /******************************************************************** ** Solidified class: Matter_Plugin_Virt_Sensor_Waterleak ********************************************************************/ -extern const bclass be_class_Matter_Plugin_Virt_Sensor_Waterleak; +extern const bclass be_class_Matter_Plugin_Sensor_Waterleak; be_local_class(Matter_Plugin_Virt_Sensor_Waterleak, 0, - &be_class_Matter_Plugin_Virt_Sensor_Waterleak, + &be_class_Matter_Plugin_Sensor_Waterleak, be_nested_map(5, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(VIRTUAL, 3), be_const_bool(1) },