2#include "../../Defines.h"
16#define NUMBER_GROUPS 4
17#define STRING_MAX_SIZE 40
29#define EPROM_MAIN_GATEWAY_VALUE "1gt"
31#define EPROM_MAIN_BLE_SERVER_VALUE "2bs"
33#define EPROM_MAIN_BLE_CLIENT_VALUE "3bc"
36#define EPROM_STEPPER_BUZZER_VALUE "4bz"
38#define EPROM_STEPPER_SINGLE_FEED_VALUE "5sf"
40#define EPROM_STEPPER_AUTO_FEED_VALUE "6af"
42#define EPROM_STEPPER_JACKPOT_FEED_VALUE "7jf"
44#define EPROM_STEPPER_KIND_VALUE "8sk"
46#define EPROM_STEPPER_FEEDS_PER_JACKPOT_VALUE "9jp"
48#define EPROM_SENSOR_TILT_VALUE "TILT_10"
50#define EPROM_SENSOR_PIR_VALUE "11pr"
52#define EPROM_SEMANTIC_MARKER_ZOOMED_VALUE "12sz"
55#define EPROM_DISPLAY_ON_BLANK_SCREEN_VALUE "13bk"
57#define EPROM_DISPLAY_SCREEN_TIMEOUT_VALUE "14to"
59#define EPROM_HIGH_TEMP_POWEROFF_VALUE "15pw"
61#define EPROM_IS_MINIMAL_MENU_SETTING "16mm"
63#define EPROM_STEPPER_ANGLE_FLOAT_SETTING "17sa"
66#define EPROM_NO_BUTTON_CLICK_POWEROFF_SETTING "18po"
69#define EPROM_WIFI_CREDENTIAL_1_SETTING "19w1"
71#define EPROM_WIFI_CREDENTIAL_2_SETTING "20w2"
74#define EPROM_PAIRED_DEVICE_SETTING "21pd"
77#define EPROM_DEVICE_NAME_SETTING "22dn"
80#define EPROM_FIRST_TIME_FEATURE_SETTING "23fs"
83#define EPROM_ONLY_GEN3_CONNECT_SETTING "23gs"
86#define EPROM_SCREEN_COLOR_SETTING "24sc"
89#define EPROM_BLE_SERVER_USE_DEVICE_NAME_SETTING "25bs"
92#define EPROM_BLE_USE_DISCOVERED_PAIRED_DEVICE_SETTING "26bd"
95#define EPROM_USE_DOC_FOLLOW_SETTING "27df"
98#define EPROM_SUB_DAWGPACK_SETTING "28dg"
101#define EPROM_USE_SPIFF_SETTING "29sf"
104#define EPROM_PAIRED_DEVICE_ADDRESS_SETTING "30da"
109#define EPROM_STEPPER_FACTORY_CLOCKWISE_MOTOR_DIRECTION_SETTING "31md"
112#define EPROM_SENDWIFI_WITH_BLE "32wb"
115#define EPROM_NOTIFY_BLE_DISCOVERY "33bd"
118#define EPROM_PREFERENCE_TIMER_INT_SETTING "34tm"
121#define EPROM_PREFERENCE_SUPPORT_GROUPS_SETTING "35g"
124#define EPROM_PREFERENCE_GROUP_NAMES_SETTING "36g"
127#define EPROM_PREFERENCE_DEBUG_INFO_SETTING "37db"
131#define EPROM_DEV_ONLY_SM_SETTING "38dsm"
134#define EPROM_PREFERENCE_TIMER_MAX_INT_SETTING "39x"
137#define EPROM_PREFERENCE_ATOMS_SETTING "40a"
140#define EPROM_PREFERENCE_ATOM_KIND_SETTING "41Atom"
143#define EPROM_PREFERENCE_SM_ON_PIR_SETTING "42pir"
145#define EPROM_PREFERENCE_SM_COMMAND_PIR_SETTING "43pir"
147#define EPROM_PREFERENCE_SM_COMMAND_PIR_OFF_SETTING "44pir"
149#define EPROM_PREFERENCE_ATOM_SOCKET_GLOBAL_ONOFF_SETTING "45sock"
152#define EPROM_USE_SPIFF_MQTT_SETTING "46spiff"
154#define EPROM_USE_SPIFF_QRATOM_SETTING "47spiff"
160#define EPROM_STEPPER_AUTO_MOTOR_DIRECTION_SETTING "48a"
163#define EPROM_INCLUDE_GROUP_NAMES_SETTING "49e"
168#define EPROM_STEPPER_CLOCKWISE_MOTOR_DIRECTION_SETTING "50sf"
173#define EPROM_SENSOR_PLUGS_SETTING "51sp"
178#define EPROM_SENSORS_SETTING "52sensors"
183#define EPROM_STEPPER_RPM_SETTING "53sRPM"
186#include <Preferences.h>
188#define PREFERENCES_EPROM_MAIN_NAME "MainPrefs"
223 boolean found =
false;
226 char *topicName = rindex(topic,
'/');
234 if (group && strlen(group) == 0)
243 SerialTemp.printf(
"compare: %s to %s\n", topicName, group);
244 if (strcmp(topicName, group) == 0)
255 SerialTemp.printf(
"topicInIncludeGroup(%s) =%d\n", topicName, found);
262 SerialTemp.printf(
"parseIncludeGroups %s\n", groups);
275 if (!index(groups,
','))
287 for (token = strtok_r(str,
",",&rest); token != NULL; token = strtok_r(NULL,
",", &rest))
312 SerialTemp.printf(
"savePreference .. %d = '%s'\n", preferenceID, preferenceValue.c_str());
326#define MAX_APPEND 1500
345 SerialDebug.println(
" *** preference > max, emptying .. ");
387 sprintf(str,
"%d",val);
420 SerialLots.printf(
"getPreference_mainModule[%d] = %s\n", preferenceID,
_preferenceBuffer);
438 SerialLots.print(
" CACHE preference = ");
439 SerialLots.printf(
" [%d] = ",preferenceID);
440 SerialLots.println(valBool);
447 SerialLots.print(
" preference = ");
448 SerialLots.printf(
" [%d] = ",preferenceID);
449 SerialLots.println(val);
451 valBool = (strcmp(val,
"1")==0)?
true:
false;
464 SerialLots.print(
" set CACHE preference");
465 SerialLots.printf(
" [%d] = ",preferenceID);
466 SerialLots.println(flag);
502 float fval = atof(val);
510 sprintf(str,
"%2f",val);
526 SerialTemp.println(
"setOnBootPreferences_mainModule");
561 String preferenceValue;
562 int preferenceID = i;
565 if (preferenceValue && preferenceValue.length() > 0)
576 SerialLots.println(preferenceValue);
620#ifdef TODO_THIS_CACHE
649 SerialDebug.println(
"***initPreferencesMainModule");
672#ifdef ATOM_QRCODE_MODULE
693#ifdef ATOM_SOCKET_MODULE
719#ifdef ESP_32_FEEDER_BLE_GEN3
844#ifdef ESP_M5_ATOM_LITE
1034#ifdef USE_SPIFF_MQTT_SETTING
1042#ifdef USE_SPIFF_QRATOM_SETTING
1096 SerialError.printf(
" ** NO default for preference[%d]\n", i);
1114#ifdef SERIAL_DEBUG_TEMP
1115 SerialTemp.println(
"******************");
1116 SerialTemp.println(VERSION);
1181#ifdef M5CORE2_MODULE
1182 SerialTemp.printf(
"PREFERENCE_M5Core2_SETTING:\n");
1184#if (SERIAL_DEBUG_CALL)
1198 SerialTemp.println(
" *** Example JSON messages you can modify and paste into serial monitor, no DEV required");
1201 SerialTemp.printf(
"{\"set\":\"sensors\",\"val\":\"%s\"}", (
char*)
"BuzzerSensorClass,19,22,L9110S_DCStepperClass,21,25");
1202 SerialTemp.println();
1203 SerialTemp.printf(
"{\"set\":\"sensors\",\"val\":\"%s\"}", (
char*)
"BuzzerSensorClass,21,25,ULN2003_StepperClass,23,33");
1204 SerialTemp.println();
1205 SerialTemp.printf(
"{\"set\":\"sensorPlugs\",\"val\":\"L9110S_DCStepperClass\"}");
1206 SerialTemp.println();
1207 SerialTemp.printf(
"{\"set\":\"M5AtomKind\",\"val\":\"M5HDriver\"}");
1208 SerialTemp.println();
1209 SerialTemp.printf(
"{\"set\":\"stepperAngle\",\"val\":\"0.25\"}");
1210 SerialTemp.println();
1211 SerialTemp.printf(
"{\"set\":\"stepperRPM\",\"val\":\"15.0\"}");
1212 SerialTemp.println();
1213 SerialTemp.printf(
"{\"set\":\"stepperAngle\",\"val\":\"2048.0\"}");
1214 SerialTemp.println();
1216 SerialDebug.println(
"{\"ssid\":\"Bob\", \"ssidPassword\":\"scott\"}");
1221 SerialTemp.printf(
" *** PIN USE (%d) .. check for duplicated. Will do this for you later..\n", pinUseStruct.
pinUseCount);
1227 SerialTemp.printf(
" *** PIN Count = %d\n", pinUseStruct.
pinUseCount);
1239 SerialLots.println(
"Clean EPROM.. ");
1250 SerialTemp.println(
"Setting _DiscoverM5PTClicker");
1271 SerialDebug.printf(
"M5AtomKind = %s\n", value.c_str());
1305 if (strcasecmp(atomKind,
"M5AtomScanner")==0)
1309 else if (strcasecmp(atomKind,
"M5AtomSocket")==0)
1318#define NEW_SENSORS_PREFERENCE
1324#define PRINT SerialDebug.printf
1340 PRINT(
"SENSOR: **** Null sensor ***\n");
1347 PRINT(
"SENSORS ******** \n");
1348 int count = sensors->
count;
1349 for (
int i=0; i< count; i++)
1353 PRINT(
" ******** \n");
1368 SerialDebug.println(
" **** sensorsStructs_mainModule NULL ****");
1373 for (
int i=0; i< count; i++)
1395 PRINT(
"setSensorsString_mainModule(%s)\n", sensorsString);
1397 if (!sensorsString || strlen(sensorsString)==0)
1417 SerialDebug.println(
"**** initSensorStringsFromEPROM_mainModule ****");
1428 char *copy = strdup(str);
1446 PRINT(
"*** parseSensorString_mainModule: %s\n", sensorsString);
1448 if (!sensorsString || strlen(sensorsString)==0)
1460 strcpy(str,sensorsString);
1461 strcpy(strCopy,sensorsString);
1470 for (
int whichPass = 0; whichPass<2; whichPass++)
1472#define secondPass (whichPass == 1)
1477 numSensors = arrayIndex / max;
1478 strcpy(str,strCopy);
1479 PRINT(
" ** Create sensors %d\n", numSensors);
1489 for (
char *token= strtok(str,
","); token!= NULL; token= strtok(NULL,
","))
1491 int indexInSensor = arrayIndex / max;
1492 int indexInArray = arrayIndex % max;
1496 switch (indexInArray)
1515 int pin = atoi(token);
1516 if (pin == 16 || pin == 17)
1519 SerialDebug.printf(
"*** BAD PIN: %d, setting to 22 ***\n", pin);
1523 sensorItems[indexInSensor].
pin1= pin;
1531 int pin = atoi(token);
1532 if (pin == 16 || pin == 17)
1534 SerialDebug.printf(
"*** BAD PIN: %d, setting to 22 ***\n", pin);
1538 sensorItems[indexInSensor].
pin2= pin;
1549 sensors->
count = numSensors;
1550 sensors->
sensors = sensorItems;
char * main_JSONStringForWIFICredentials()
retrieve a JSON string for the ssid and ssid_password: {'ssid':<ssid>,'ssidPassword':<pass>"}
void main_dispatchAsyncCommand(int asyncCallCommand)
checks if any async commands are in 'dispatch' mode, and if so, invokes them, and sets their flag to ...
char * getChipIdString()
3.17.24 get the chip id as a string
PinUseStruct getPinUseStruct_mainModule()
get the pin use array
#define NO_POWEROFF_AMOUNT_STRING_MAIN
#define ASYNC_CALL_CLEAN_EPROM
cleans the EPROM totally, and reboots
#define EPROM_DEV_ONLY_SM_SETTING
9.28.23 #272 only show Semantic Markers that are sent directly to the device
#define EPROM_NO_BUTTON_CLICK_POWEROFF_SETTING
sets screentimeout if not button clicks (set,noclick,val,seconds)
#define EPROM_MAIN_GATEWAY_VALUE
void cleanEPROM_mainModule()
clean the preferencesMainModule in EPROM
void savePreferenceInt_mainModule(int preferenceID, int val)
sets an int preference
boolean getDiscoverM5PTClicker()
get option
void resetSensorToDefault_mainModule()
float getPreferenceFloat_mainModule(int preferenceID)
called to set a preference (which will be an identifier and a string, which can be converted to a num...
#define EPROM_WIFI_CREDENTIAL_2_SETTING
second wifi credential
void savePreferenceBoolean_mainModule(int preferenceID, boolean flag)
save a boolean preference
#define EPROM_FIRST_TIME_FEATURE_SETTING
a firsttime feature flag (only 1 per build) 7.12.22 defaulting to TRUE
#define EPROM_PREFERENCE_SUPPORT_GROUPS_SETTING
the preference for supporting GROUPS (default true)
#define EPROM_PAIRED_DEVICE_SETTING
the guest device paired with this M5 device (or NONE)
void savePreferenceATOMKind_MainModule(String value)
returned from mainModule
#define EPROM_PREFERENCE_TIMER_MAX_INT_SETTING
11.29.23 add the max time .. so a random can be used
char * _preferenceMainModuleLookupDefaults[MAX_MAIN_PREFERENCES]
array of default values to store in the EPROM if not defined..
char _preferenceBuffer[100]
PREFERENCES for the main module.
#define EPROM_STEPPER_ANGLE_FLOAT_SETTING
sets stepper angle, a floating point number
#define EPROM_USE_DOC_FOLLOW_SETTING
NOTE: these EPROM have to be lockstep the same as the PREFERENCE definitions in MainModule....
#define EPROM_PREFERENCE_ATOM_KIND_SETTING
1.4.24 What kind of ATOM plug (set, M5AtomKind, val= {M5AtomSocket, M5AtomScanner}
void printSensors_mainModule(SensorsStruct *sensors)
print sensors, passing in a struct
#define EPROM_PREFERENCE_SM_COMMAND_PIR_SETTING
1.10.24 The Semantic Marker command is sent on PIR, and the Command to send
SensorsStruct * getSensors_mainModule()
return the sensors defined
#define EPROM_PREFERENCE_SM_COMMAND_PIR_OFF_SETTING
1.11.24 The Semantic Marker command is sent on PIR, and the Command to send
char _includeGroupsStringArray[NUMBER_GROUPS][STRING_MAX_SIZE]
resulting group names
char * _preferenceMainModuleLookupEPROMNames[MAX_MAIN_PREFERENCES]
array of preference names (those used in process()
#define EPROM_PREFERENCE_ATOMS_SETTING
1.1.24 the preference for all the ATOM plugs (format: atomType:value} .. for now just use socket:on
void appendPreference_mainModule(int preferenceID, String preferenceValue)
called to append to a a preference (which will be an identifier and a string, which can be converted ...
#define EPROM_PAIRED_DEVICE_ADDRESS_SETTING
9.3.22 eprom of the Address of desired BLE
void setDiscoverM5PTClicker(boolean flag)
#define EPROM_SENDWIFI_WITH_BLE
send WIFI to all except our device (and our paired) when
void setSensorsString_mainModule(char *sensorsString)
#define EPROM_BLE_SERVER_USE_DEVICE_NAME_SETTING
if set, the BLE Server (like PTFeeder) will tack on the device name (or none if not defined).
String _appendingPreferenceString
storage for the appending string
void resetAllPreferences_mainModule()
resets preferences.. Currently only reset all, but eventually reset(groups..)
#define EPROM_STEPPER_BUZZER_VALUE
buzzer on or off
#define EPROM_MAIN_BLE_SERVER_VALUE
BLEServer mode.
#define EPROM_STEPPER_SINGLE_FEED_VALUE
single feed mode
#define EPROM_STEPPER_CLOCKWISE_MOTOR_DIRECTION_SETTING
boolean getPreferenceBoolean_mainModule(int preferenceID)
called to set a preference (which will be an identifier and a string, which can be converted to a num...
#define EPROM_PREFERENCE_SM_ON_PIR_SETTING
1.10.24 Flag on whether a Semantic Marker command is sent on PIR, and the Command to send
void togglePreferenceBoolean_mainModule(int preferenceID)
toggles a preference boolean
#define EPROM_USE_SPIFF_SETTING
8.22.22 to turn on/off SPIFF use
void printSensor_mainModule(SensorStruct *sensor)
print sensor
#define EPROM_PREFERENCE_DEBUG_INFO_SETTING
a place to put some kind of Last Will of what went wrong .. for now (> max tries)
#define EPROM_SCREEN_COLOR_SETTING
color of the M5 screen
void resetPreference_mainModule(int preferenceID)
called to reset to blank a preference (which will be an identifier and a string, which can be convert...
#define EPROM_ONLY_GEN3_CONNECT_SETTING
if true, only BLEClient connect to GEN3 feeders..
boolean _isCachedPreferenceBoolean[MAX_MAIN_PREFERENCES]
array of boolean if the ID is cached..
void storePreference_mainModule(int preferenceID, String preferenceValue)
called to append to a a preference (which will be an identifier and a string, which can be converted ...
void initAppendingPreference_mainModule(int preferenceID)
called to init the preference. This won't save anything until storePreference called
char * getPreferenceATOMKind_MainModule()
new 1.4.24 setting ATOM kind (eg. M5AtomSocket, M5AtomScanner)
#define EPROM_STEPPER_FEEDS_PER_JACKPOT_VALUE
#define EPROM_PREFERENCE_ATOM_SOCKET_GLOBAL_ONOFF_SETTING
1.12.24 Whether the AtomSocket accepts global on/off messages
void savePreferenceFloat_mainModule(int preferenceID, float val)
called to set a preference (which will be an identifier and a string, which can be converted to a num...
#define EPROM_DISPLAY_ON_BLANK_SCREEN_VALUE
Display preferences - show messages on blank screen- boolean.
#define EPROM_SENSOR_PIR_VALUE
proximity PIR
void savePreferenceIntFromString_mainModule(int preferenceID, char *val)
sets an int, but only if a valid integer, and no signs. If bad, then a 0 is stored
#define EPROM_USE_SPIFF_MQTT_SETTING
4.4.24 for MQTT use of spiff (or not)
#define EPROM_STEPPER_AUTO_MOTOR_DIRECTION_SETTING
#define EPROM_STEPPER_FACTORY_CLOCKWISE_MOTOR_DIRECTION_SETTING
#define EPROM_INCLUDE_GROUP_NAMES_SETTING
include these topics groups..
void setOnBootPreferences_mainModule()
set some defaults on boot - that override EPROM this can be called on the HOME screen to set back to ...
#define EPROM_STEPPER_RPM_SETTING
SensorsStruct * parseSensorString_mainModule(char *str)
array
void initSensorStringsFromEPROM_mainModule()
char _preferenceBufferString[100]
buffer for the string
#define EPROM_PREFERENCE_TIMER_INT_SETTING
the preference timer
boolean _cachedPreferenceBooleanValues[MAX_MAIN_PREFERENCES]
#define EPROM_STEPPER_JACKPOT_FEED_VALUE
jackpot feed
#define EPROM_SUB_DAWGPACK_SETTING
8.17.22 to turn on/off subscribing to the dawgpack topic
#define EPROM_NOTIFY_BLE_DISCOVERY
starts the BLE Discovery notification process - which might be internal or externa (via messages).
Preferences _preferencesMainModule
preferences for MAIN
#define EPROM_USE_SPIFF_QRATOM_SETTING
4.4.24 for QRATOM use of spiff (or not)
void parseIncludeGroups(char *groups)
8.2.24 set the include group (and cache it), called (indirectly from MQTT via setIncludeGroups
#define EPROM_SENSOR_TILT_VALUE
sensor preferences for tilt on or off
#define MAX_APPEND
special preference string for saving and printing back later..
boolean topicInIncludeGroup(char *topic)
char * copyString_mainModule(char *str)
copy string
SensorsStruct * _sensorsStructs_mainModule
array of sensorStruct
#define EPROM_STEPPER_KIND_VALUE
the step kind
#define EPROM_HIGH_TEMP_POWEROFF_VALUE
sets the max temp for a poweroff
int getM5ATOMKind_MainModule()
new 1.4.24 setting ATOM kind (eg. ATOM_KIND_M5_SCANNER, ATOM_KIND_M5_SOCKET)
#define EPROM_STEPPER_AUTO_FEED_VALUE
auto feed
#define EPROM_BLE_USE_DISCOVERED_PAIRED_DEVICE_SETTING
#define PREFERENCES_EPROM_MAIN_NAME
the EPROM is in preferences.h
#define EPROM_WIFI_CREDENTIAL_1_SETTING
for now, save 2 WIFI Credentials
#define EPROM_MAIN_BLE_CLIENT_VALUE
BLEClient mode.
#define EPROM_DISPLAY_SCREEN_TIMEOUT_VALUE
sets the timeout value
int getPreferenceInt_mainModule(int preferenceID)
called to set a preference (which will be an identifier and a string, which can be converted to a num...
int _cachedPreferenceIntValues[MAX_MAIN_PREFERENCES]
another cache for the Int values..
boolean _firstTimeAtomKind
if the preference was retrieved..
#define EPROM_SENSORS_SETTING
#define EPROM_PREFERENCE_GROUP_NAMES_SETTING
the preference setting group names to subscribe (but empty or # go to wildcard, this also supports wi...
char * getPreference_mainModule(int preferenceID)
#define EPROM_SEMANTIC_MARKER_ZOOMED_VALUE
display preferences zoomed or not zoomed
SensorStruct * getSensor_mainModule(char *sensorName)
return the sensor specified or null
void setIncludeGroups(char *groups)
8.2.24 set the include group (and cache it), called from MQTT
boolean _DiscoverM5PTClicker
void readAppendingPreference_mainModule(int preferenceID)
called to init the preference. This won't save anything until storePreference called
char * getPreferenceString_mainModule(int preferenceID)
returns the preference but in it's own string buffer. As long as you use it before calling getPrefere...
void printPreferenceValues_mainModule()
print the preferences to SerialDebug
#define EPROM_IS_MINIMAL_MENU_SETTING
whether to show the minimal or expanded menu
#define EPROM_DEVICE_NAME_SETTING
the device name
boolean _isCachedPreferenceInt[MAX_MAIN_PREFERENCES]
array of boolean if the ID is cached..
#define EPROM_SENSOR_PLUGS_SETTING
void initPreferencesMainModule()
initialize the _preferencesMainLookup with EPROM lookup names
void savePreference_mainModule(int preferenceID, String preferenceValue)
called to set a preference (which will be an identifier and a string, which can be converted to a num...
void readPreferences_mainModule()
reads the preferences. Save is everytime the savePreference is called
#define PREFERENCE_USE_SPIFF_SETTING
8.22.22 to turn on/off SPIFF use (more below..)
#define PREFERENCE_PAIRED_DEVICE_ADDRESS_SETTING
the paired device for guest device feeding (6.6.22) .. but the Address 9.3.22
#define PREFERENCE_STEPPER_KIND_VALUE
uses STEPPER type
#define PREFERENCE_SENSOR_TILT_VALUE
Sensor preferences.
#define PREFERENCE_SUB_DAWGPACK_SETTING
8.17.22 to turn on/off subscribing to the dawgpack topic
#define PREFERENCE_STEPPER_SINGLE_FEED_VALUE
#define PREFERENCE_SM_COMMAND_PIR_OFF_SETTING
1.11.24 The Semantic Marker command is sent on PIR, and the Command to send on OFF (or opposite)
#define PREFERENCE_SENSOR_PLUGS_SETTING
#define PREFERENCE_STEPPER_FACTORY_CLOCKWISE_MOTOR_DIRECTION_SETTING
#define ATOM_KIND_M5_SCANNER
returned from mainModule
#define PREFERENCE_BLE_SERVER_USE_DEVICE_NAME_SETTING
if set, the BLE Server (like PTFeeder) will tack on the device name (or none if not defined).
#define PREFERENCE_ONLY_GEN3_CONNECT_SETTING
if true, only BLEClient connect to GEN3 feeders..
#define PREFERENCE_SENDWIFI_WITH_BLE
sends the WIFI to all except current device if set
#define PREFERENCE_NO_BUTTON_CLICK_POWEROFF_SETTING
#define PREFERENCE_SENSOR_PIR_VALUE
#define PREFERENCE_SUPPORT_GROUPS_SETTING
the preference for supporting GROUPS (default true)
#define PREFERENCE_INCLUDE_GROUP_NAMES_SETTING
8.2.24 don't change subscription but include these groups (eg. safeHouse,atlasDogs)
#define PREFERENCE_SEMANTIC_MARKER_ZOOMED_VALUE
Display preferences (SemanticMarker etc) - boolean.
#define PREFERENCE_STEPPER_JACKPOT_FEED_VALUE
#define PREFERENCE_WIFI_CREDENTIAL_2_SETTING
#define ATOM_KIND_M5_SOCKET
#define PREFERENCE_STEPPER_RPM_SETTING
#define PREFERENCE_MAIN_BLE_SERVER_VALUE
#define PREFERENCE_PAIRED_DEVICE_SETTING
the paired device for guest device feeding (6.6.22)
#define PREFERENCE_STEPPER_BUZZER_VALUE
stepper preferences
#define PREFERENCE_DEV_ONLY_SM_SETTING
adding AP_DEBUG_MODE to let others know that DEBUG eprom is available. Turn this OFF for non dev
#define MAX_MAIN_PREFERENCES
******* 1 greater than last value **** IMPORTANT *** and no gaps..
#define PREFERENCE_ATOMS_SETTING
1.1.24 the preference for all the ATOM plugs (format: atomType:value} .. for now just use socket:on
#define PREFERENCE_BLE_USE_DISCOVERED_PAIRED_DEVICE_SETTING
#define PREFERENCE_USE_DOC_FOLLOW_SETTING
for
#define PREFERENCE_WIFI_CREDENTIAL_1_SETTING
#define PREFERENCE_ATOM_SOCKET_GLOBAL_ONOFF_SETTING
1.12.24 Whether the AtomSocket accepts global on/off messages
#define PREFERENCE_USE_SPIFF_MQTT_SETTING
#define PREFERENCE_DEBUG_INFO_SETTING
a place to put some kind of Last Will of what went wrong .. for now (> max tries)
#define PREFERENCE_FIRST_TIME_FEATURE_SETTING
a firsttime feature flag (only 1 per build) 7.12.22 defaulting to TRUE
#define PREFERENCE_DISPLAY_SCREEN_TIMEOUT_VALUE
sets the timeout value
#define PREFERENCE_DISPLAY_ON_BLANK_SCREEN_VALUE
Display preferences - show messages on blank screen- boolean.
#define PREFERENCE_IS_MINIMAL_MENU_SETTING
sets the max temp for a poweroff
#define PREFERENCE_SCREEN_COLOR_SETTING
ithe color of the screen 0..n
#define PREFERENCE_NOTIFY_BLE_DISCOVERY
starts the BLE Discovery notification process - which might be internal or externa (via messages).
#define PREFERENCE_USE_SPIFF_QRATOM_SETTING
For MQTT writing to the QRATOM.
#define PREFERENCE_DEVICE_NAME_SETTING
the device name itself (6.6.22)
#define PREFERENCE_HIGH_TEMP_POWEROFF_VALUE
sets the max temp for a poweroff
#define PREFERENCE_STEPPER_FEEDS_PER_JACKPOT
#define PREFERENCE_GROUP_NAMES_SETTING
the preference setting group names to subscribe (but empty or # go to wildcard, this also supports wi...
#define PREFERENCE_STEPPER_ANGLE_FLOAT_SETTING
#define PREFERENCE_STEPPER_AUTO_MOTOR_DIRECTION_SETTING
#define PREFERENCE_TIMER_MAX_INT_SETTING
the preference timer MAX (pairs with PREFERENCE_TIMER_INT_SETTING)
#define PREFERENCE_MAIN_GATEWAY_VALUE
#define PREFERENCE_STEPPER_CLOCKWISE_MOTOR_DIRECTION_SETTING
#define PREFERENCE_MAIN_BLE_CLIENT_VALUE
#define PREFERENCE_SM_ON_PIR_SETTING
1.10.24 Flag on whether a Semantic Marker command is sent on PIR, and the Command to send
#define PREFERENCE_TIMER_INT_SETTING
the preference timer
#define PREFERENCE_ATOM_KIND_SETTING
1.4.24 What kind of ATOM plug (set, M5AtomKind, val= {M5AtomSocket, M5AtomScanner}
#define PREFERENCE_SM_COMMAND_PIR_SETTING
1.10.24 The Semantic Marker command is sent on PIR, and the Command to send
#define PREFERENCE_SENSORS_SETTING
#define PREFERENCE_STEPPER_AUTO_FEED_VALUE
char * pinUseArray[PIN_USE_MAX]
SensorClassType * sensorClassType
and the pointer to matching SensorClassType
SensorStruct * sensors
array of sensorStruct