From d1e14e50c8dafb4f1047d12dbbb258c2eec78188 Mon Sep 17 00:00:00 2001
From: Stephan Hadinger
Date: Wed, 2 Feb 2022 22:03:58 +0100
Subject: [PATCH] Berry add light_state class
---
lib/libesp32/berry/default/be_modtab.c | 4 +
lib/libesp32/berry/generate/be_const_strtab.h | 12 +
.../berry/generate/be_const_strtab_def.h | 2004 +++++++++--------
.../generate/be_fixed_be_class_light_state.h | 35 +
.../berry_mapping/src/be_class_wrapper.c | 2 +
.../src/be_light_state_class.cpp | 106 +
tasmota/berry/alexa/light_state.be | 75 +
tasmota/xdrv_04_light.ino | 46 +-
tasmota/xdrv_20_hue.ino | 31 +-
tasmota/xdrv_23_zigbee_3_hue.ino | 14 +-
tasmota/xdrv_52_3_berry_light_state.ino | 211 ++
11 files changed, 1509 insertions(+), 1031 deletions(-)
create mode 100644 lib/libesp32/berry/generate/be_fixed_be_class_light_state.h
create mode 100644 lib/libesp32/berry_tasmota/src/be_light_state_class.cpp
create mode 100644 tasmota/berry/alexa/light_state.be
create mode 100644 tasmota/xdrv_52_3_berry_light_state.ino
diff --git a/lib/libesp32/berry/default/be_modtab.c b/lib/libesp32/berry/default/be_modtab.c
index 71b2a4875..3a7cfc11c 100644
--- a/lib/libesp32/berry/default/be_modtab.c
+++ b/lib/libesp32/berry/default/be_modtab.c
@@ -145,6 +145,7 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = {
#ifdef ESP32
extern void be_load_tasmota_ntvlib(bvm *vm);
+extern void be_load_light_state_class(bvm *vm);
extern void be_load_wirelib(bvm *vm);
extern void be_load_onewirelib(bvm *vm);
extern void be_load_serial_lib(bvm *vm);
@@ -196,6 +197,9 @@ BERRY_API void be_load_custom_libs(bvm *vm)
be_load_md5_lib(vm);
be_load_serial_lib(vm);
be_load_ctypes_lib(vm);
+#ifdef USE_LIGHT
+ be_load_light_state_class(vm);
+#endif
#ifdef USE_ALEXA_AVS
be_load_crypto_lib(vm);
#endif
diff --git a/lib/libesp32/berry/generate/be_const_strtab.h b/lib/libesp32/berry/generate/be_const_strtab.h
index 4406e5ef7..fd2e06607 100644
--- a/lib/libesp32/berry/generate/be_const_strtab.h
+++ b/lib/libesp32/berry/generate/be_const_strtab.h
@@ -36,6 +36,8 @@ extern const bcstring be_const_str_CFG_X3A_X20running_X20;
extern const bcstring be_const_str_CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem;
extern const bcstring be_const_str_COLOR_BLACK;
extern const bcstring be_const_str_COLOR_WHITE;
+extern const bcstring be_const_str_CT;
+extern const bcstring be_const_str_DIMMER;
extern const bcstring be_const_str_EC_C25519;
extern const bcstring be_const_str_EVENT_DELETE;
extern const bcstring be_const_str_EVENT_DRAW_MAIN;
@@ -62,6 +64,9 @@ extern const bcstring be_const_str_PART_MAIN;
extern const bcstring be_const_str_POST;
extern const bcstring be_const_str_Parameter_X20error;
extern const bcstring be_const_str_RES_OK;
+extern const bcstring be_const_str_RGB;
+extern const bcstring be_const_str_RGBCT;
+extern const bcstring be_const_str_RGBW;
extern const bcstring be_const_str_Restart_X201;
extern const bcstring be_const_str_SERIAL_5E1;
extern const bcstring be_const_str_SERIAL_5E2;
@@ -493,6 +498,7 @@ extern const bcstring be_const_str_last_modified;
extern const bcstring be_const_str_leds;
extern const bcstring be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032;
extern const bcstring be_const_str_light;
+extern const bcstring be_const_str_light_state;
extern const bcstring be_const_str_line_dsc;
extern const bcstring be_const_str_list;
extern const bcstring be_const_str_list_handlers;
@@ -655,21 +661,26 @@ extern const bcstring be_const_str_set_bits_per_sample;
extern const bcstring be_const_str_set_bri;
extern const bcstring be_const_str_set_channels;
extern const bcstring be_const_str_set_chg_current;
+extern const bcstring be_const_str_set_ct;
extern const bcstring be_const_str_set_dc_voltage;
extern const bcstring be_const_str_set_dcdc_enable;
extern const bcstring be_const_str_set_exten;
extern const bcstring be_const_str_set_first_time;
extern const bcstring be_const_str_set_gain;
extern const bcstring be_const_str_set_height;
+extern const bcstring be_const_str_set_huesat;
extern const bcstring be_const_str_set_ldo_enable;
extern const bcstring be_const_str_set_ldo_voltage;
extern const bcstring be_const_str_set_light;
extern const bcstring be_const_str_set_matrix_pixel_color;
+extern const bcstring be_const_str_set_mode_ct;
+extern const bcstring be_const_str_set_mode_rgb;
extern const bcstring be_const_str_set_percentage;
extern const bcstring be_const_str_set_pixel_color;
extern const bcstring be_const_str_set_power;
extern const bcstring be_const_str_set_pwm;
extern const bcstring be_const_str_set_rate;
+extern const bcstring be_const_str_set_rgb;
extern const bcstring be_const_str_set_style_bg_color;
extern const bcstring be_const_str_set_style_line_color;
extern const bcstring be_const_str_set_style_pad_right;
@@ -681,6 +692,7 @@ extern const bcstring be_const_str_set_timer;
extern const bcstring be_const_str_set_useragent;
extern const bcstring be_const_str_set_width;
extern const bcstring be_const_str_set_x;
+extern const bcstring be_const_str_set_xy;
extern const bcstring be_const_str_set_y;
extern const bcstring be_const_str_setbits;
extern const bcstring be_const_str_seti;
diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h
index 1f0996847..3cac86202 100644
--- a/lib/libesp32/berry/generate/be_const_strtab_def.h
+++ b/lib/libesp32/berry/generate/be_const_strtab_def.h
@@ -1,693 +1,705 @@
-be_define_const_str(, "", 2166136261u, 0, 0, NULL);
+be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str__def);
be_define_const_str(_X0A, "\n", 252472541u, 0, 1, NULL);
-be_define_const_str(_X20, " ", 621580159u, 0, 1, NULL);
-be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str_group_def);
-be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_GET);
-be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_no_X20GPIO_X20specified_X20for_X20neopixelbus);
-be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_remove_rule);
-be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str_fast_loop_enabled);
-be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_ceil);
-be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_EVENT_DRAW_PART_END);
-be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_SERIAL_5N2);
-be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str_members);
-be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_SERIAL_8E2);
-be_define_const_str(_X2508x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2508x, "%08x-%04x-%04x-%04x-%04x%08x", 1670063141u, 0, 28, &be_const_str__X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29);
-be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_destructor_cb);
-be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str__persist_X2Ejson);
-be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str__X2Ep);
-be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, NULL);
-be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_area);
-be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_files);
-be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, NULL);
-be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str__X3Clambda_X3E);
-be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str_lv_obj_class);
-be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_begin);
-be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str__error);
-be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, NULL);
-be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str_send_multicast);
-be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_has_arg);
-be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, NULL);
-be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str__settings_def);
-be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_contains);
-be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str_EVENT_DRAW_PART_BEGIN);
-be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, NULL);
-be_define_const_str(_X2F, "/", 705468254u, 0, 1, &be_const_str_every_50ms);
-be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, &be_const_str_BRY_X3A_X20method_X20not_X20allowed_X2C_X20use_X20a_X20closure_X20like_X20_X27_X2F_X20args_X20_X2D_X3E_X20obj_X2Efunc_X28args_X29_X27);
-be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, NULL);
-be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str_SERIAL_6O2);
-be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_web_sensor);
-be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_minute);
-be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "
", 3546571739u, 0, 11, &be_const_str_CFG_X3A_X20loaded_X20_X27_X25s_X27);
-be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str_list);
-be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str_pin);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, "", 3147934216u, 0, 82, &be_const_str_iter);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, NULL);
-be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_lv_event_cb);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 2058443583u, 0, 110, &be_const_str_OPTION_A);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "