Many libraries are installed, perhaps some are a consequence of the
installation of other libraries or part of the Arduino world. This
list shows libraries have been intentionally installed and
that the library manager shows as installed.
Built in libraries are not listed.
Intentional
installations in this list are listed with the library revision
that was current at the historical point when the the library was
added and/or the code was
validated. Revision numbers in this list may not be current.
Updates to these libraries are shown in the source control revision
history below. Libraries installed but used only for
other projects are listed in case there is an interaction.
Revision | Size | ZIP file | Changes |
NextRelease |
Not logged in |
Pending changes follow.
|
20220422 |
Not logged in |
Add parameter to determine if processor pins are used for
I/O or for SCL and SDA of the I2C bus. I2C devices now
report by counting if they are in use. The MS8607 must
decide if the pins are used for I/O because there is one
on the processor module. Otherwise if an I2C device is
present I2C is used an I/O pins are disabled.
Pin counting is now performed with interrupts off as an
interlock.
Improve warning when SensorTypeID_t does not fit in one
byte.
Properly report VCNL404 messages (were reporting as
BME280).
Do not try and start ranging when the VL53L1X is not
present.
Reorder menu items into alphabetical order.
|
20211112 |
Not logged in |
Fix problems showing BME280 sensors that are not
present.
Fix help for GAS command.
Add distance report for VL53L1X, add SDdistance
datatype. Add this device to data reporting.
Add SDuvIndex datatype for UV index. Disable some code for
the obsolete VEML6075. Complete and disable the output and
database entries for this device.
Correct the output of the SDpresence datatype so all
format types work.
Comment correction for ESP32 platform differences.
Add a distance page and a UV index page.
|
20211029 |
Not logged in |
Add 'Object Present' sensor using previously implemented VCNL4040
code for proximity, add SDpresence datatype and
PROXIMITY_THRESHOLD parameter for it. 'Object Present' is now in
data history, associated graphs etc. New menu link and
associated HTML page name added
also.
Update presentation for missing slave ID detection.
|
20211019 |
Not logged in |
Update comments in .H files for BME280 and CCS811 to
reflect that they now log values.
Update comments in LOGGER.INO to reflect that OSAPI.H,
TWI.h and user_interface.h are properly left out. The
commented out lines will eventually be removed.
In LOGGERWIFI.H note that using WiFi.h does not work for
the ESP8266 platform.
Add VCNL4040 and VL5311 reads to performSensorReading.
Update comments in SparkFunCCS811.cpp to discuss what is
added.
Add code to support VCNL4040 using SparkFun Libraries.
Support for creating the sensor and logging values is not
added yet.
Add empty service routine to read VL53L1X values. The
sensor is not created yet and real values are not read.
|
20210927 |
Not logged in |
Added Sparkfun VEML library 1.1.4.
Adafruit GFX Library was 1.10.10 now 1.10.12.
Database expanded to 256 bytes per sample, version 4. Old
version 3 still supported if it is found on an SD
card. Some support for version 2. The new version will be
created when a database is created.
Configuration header size increased to match element size.
A performance issue noted in the code no loger seems to
occur. Expansion of header and sensors is conditional on
database version. Report database version. Report that a
check is needed for too many pulse counters in new
database versions that might expand the number.
When a database file does not have a complete sample at
the end treat it as a read error.
Number of sensors expanded to 128.
BME280 temperature/pressure/humidity added to database.
SparkFun library used to read values instead of private
code. Add SensorBME280
device.
CCS811 CO2 and tVOC added to database. SparkFun ibrary
used to read values. Add SensorCCS811 device.
MQTT publishes that the LOGGER is listening for commands.
MQtt publish both a complete message as before and a latest
value message.
MS8607 atmospheric pressure is never negative. Same for humidity.
Turn debugging off in
parsing.cpp.
Note that processor voltage might be better as unsigned,
but do not change it.
Add datatypes for CO2 and tVOC.
Report space available for additional sensors.
Fix off by one bugs comparing sensorID to MAX_SENSORS.
While dumping an element only do a loggerFastYield between
sensors. This caused a stack dump.
Make several devices quiet when debugMessageLevel is low
and the device is not found. Disabled when debugging is on
in the module.
Note that the VEML6075 is obsolete and should not be added
to the database. Use the SparkFun library to read the
values. There are conflicts between direct register reads
and using the library, notes added.
Add menu items and web pages for gasses (CO2) and volatile compounds
(tVOC). Alphabetize sensor list in the menu.
|
20210905 |
Not logged in |
CCS811 library debugged on LOGGER, ESP32 Dev Module and
SparkFun ESP32 Thing platforms. Lots of issues resloved.
Notes in the SparkFunCCS811.cpp module.
SparkFun libraries distributed to SparkFun.
|
20210913 |
Not logged in |
SparkFun modules posted to Github site.
Print more limited CCS811 data on reads for verification.
Improve DEBUG_LEVEL conditions on CCS811.
Mark CCS811 as missing each time ccs811Init is called.
Report more registers.
Report the platform in the STATUS command.
Add flash services dump to DATABASE command.
Handle ESP32 vs ESP8266 platform differences in file
system calls. Filenames must start with path on ESP32.
FILE_APPEND is missing on ESP8266. Establish pins that
work for SD card support on the ESP32. The
OLD_FLASH_SS_PIN is not used on the ESP32. Directory
listing is supported on ESP32.
Correct report of sample older than the start of the
database error.
Resolve platform differences related to the Wire
interface.
Rename platform detecting conditionals to use longer
ARDUINO_xxx names.
Repair calculation of temperature and humidity for the
MS8607.
Update pin initialization table to accomodate ESP32 pin
usage.
|
20210902 |
Not logged in |
Library update to Adafruit Busio 1.9.1 was 1.9.0
ESP8266 board update to 3.0.2 FAILS still using 2.7.4. The
HTTPupdate interface is deprecated and removed. Need to
figure out how to replace it.
Major rework to SparkFun CCS811 libraries. Handle error
cases and required delays. Add dump services in the LOGGER
code that expose the issues and report problems.
Change style of I2C register setting to better support
arbitrary devices allowing registers to be set and read.
Some updates to PIN command controls to allow for more ESP32 pins
and better management of ON, OFF and input and pullup
cases.
ESP32 conditionals added to support environment changes on
that platform. Changes related to web server support,
which pins are used for I2C. Updates to I2C reset methods.
I2C pin control changes to properly use pullups and never
drive the pin high. High is achieved by changing the pin
to an input. Add published busy test for hard coded I2C
support.
More frequent watchdog feeds are required in startup and
other places related to ESP32 platform.
Properly report illegal or absent temperatures on dumps.
Use library code for the BME280. Use library code for the
CCS811 but the library needs major improvements so take a
private copy.
In TCA9539 first determine if the I2C address is a BME280
and do not configure the TCA9539 if so.
Make #if (DEBUG_LEVEL > 0) the pervasive style of testing.
Do not allow missing parens.
Make the update class name symbolic so a different name
can be used on the ESP32 platform.
Add reporting of ESP32 libraries to the copyright notices.
|
20210820 |
Not logged in |
ESP32 platform builds and loads. It comes up and
talks to the serial port. It finds the network and gets an
IP address. The web browser does not bring up pages. Most
of the code is not tested. CCS811 is not found.
LED_BUILTIN is not available onthe ESP32. Set it to pin
34.
Wire.requestFrom expects slightly different data types on
ESP32.
Rework iotuplink.cpp to handle include file names and
arguments for ESP32.
Move watchdog services to a module and call them as
subroutines so ESP32 platform differences can be handled
in one place.
Rework reboot reason logic to handle ESP32 differences.
Add a normalized hardware reason to help use common code.
Create loggerwifi.h as a central place for ESP32
WiFi include file differences.
Disable WiFi sleep code for ESP32. The services are not
present.
Disabel deep sleep for ESP32.
Rework update.cpp to handle different ESP32 class names
and include file names. Disable callbacks on ESP32 because
they are not available.
Use hardware serial ports instead of software serial ports
for Modbus interface. Likely a different serial port than
0 must be used.
Many changes to SD card output. The ESP8266 supported
'.write' with String and pointer to char * arguments. The
ESP32 does not. New routines to write to File objects are
created and used pervasively. This needs more robut
testting on files written to the SD card to save
parameters, save Time status and many others.
This occurs in files: emailalerts.cpp, flashservices.cpp,
namehistory.cpp, parameters.cpp, timehistory.cpp,
usersensornames.cpp
|
20210815 |
Not logged in |
Library update to Adafruit Busio 1.8.3 was 1.8.2
Update libraries, likely code from these is not in use.
RTClib may be used.
Adafruit LED Backpack Library was 1.1.9 now 1.1.10.
Adafruit SleepyDog Library was 1.4.0 now 1.5.0.
RTClib 1.14.1 was 1.13.0.
Add ESP32 board, version 1.0.6 is used.
Annotae changes needed for expanding the LogElement_t
size. No changes made yet.
Centralize the inclusion of WiFi.h so board dependancies
can be in one place.
Move use of WiFiClientSecure.h to inside the
emailsender.cpp
module which uses it instead of the .h file.
Deprecate the use of TWI.h, osapi.h and user_interface.h
these no longer seem necessary.
Move inclusion of SoftwareSerial.h and HardwareSerial.h to
the .CPP file of wattnodertu instead of the .H.
Added support (but not data storage) for VL53L1X, BME280
and CCS811.
Rework CHANGER to expand the LogElement_t size to 256 and
to parse either the old or new format.
|
20210730 |
Not logged in |
PROXIMITY and UV commands added to support VEML6075
optical UV light and VCNL4040 UV light, White light and
Proximity sensors. These sensors are not yet added to the
database and can only be accessed by their commands.
MS5637 barometric pressure is now supported by updating
the MS8607 support. The new sensor is exactly the same
without the humidity.
i2cWriteBlock is used by the new sensors. Long delay in
that code
appropriate for EEPROM writes is eliminated. Success is
now reported.
Clearing I2C devices by pushing multiple clocks is
improved. New devices do not assume that power cycles are
available. Sparcfun connections do not support power
cycling these
devices.
sensorLibrary debug messages improved and then turned off.
Sleeping headers on the configuration page added.
Sketch uses 551589 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50652 bytes (61%) of dynamic memory, leaving
31268 bytes for local variables. Maximum is 81920 bytes.
|
20210718 |
Not logged in |
Feature added to display Modbus SlaveID.
Modus version included.
Expose wattNodeMeter as a global.
Sketch uses 552665 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50700 bytes (61%) of dynamic memory, leaving 31220 bytes for local variables. Maximum is 81920 bytes. 31268 bytes for local variables. Maximum is 81920 bytes.
|
20210712 |
Not logged in |
MQTT subscribes to messages correctly.
MQTT support.
Sketch uses 550961 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50708 bytes (61%) of dynamic memory, leaving
31212 bytes for local variables. Maximum is 81920 bytes.
|
20210709 |
Not logged in |
Library update to Adafruit Busio 1.8.2.
Library time update to 1.6.1
Basic integration with MQTT. Test code publishes a hello
world message and recieves an inTopic message. No user
interface or data services yet.
Sketch uses 548797 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50756 bytes (61%) of dynamic memory, leaving 31164 bytes for local variables. Maximum is 81920 bytes.
|
20210702 |
Not logged in |
Modus version included.
Turn off dataservices debug code.
Increase KWH sensor count for modbus build.
Limit to Kwh sensor for Kwh pages.
Do not put Kwh sensors in the generic sensor list, causes
confusion when the graphs do not work.
Repair names of energy registers.
Improve main menu naming.
Sketch uses 544637 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50352 bytes (61%) of dynamic memory, leaving 31568 bytes for local variables. Maximum is 81920 bytes.
|
20210701 |
Not logged in |
Increase allowed jitter to 4.
Rework some Sensor library code for better code sharing.
Add some menu links to give direct access to Modbus setup and units
settings.
Sketch uses 547069 bytes (57%) of program storage space. Maximum is 958448 bytes.
Global variables use 50360 bytes (61%) of dynamic memory, leaving 31560 bytes for local variables. Maximum is 81920 bytes.
|
20210618 |
Not logged in |
Convert modbus floating point values to use decimal places of the
wattnoderegisters.h table to convert floating point
numbers to internal fixed point numbers that go into the
database. Consider changing what is stored to store the
floating point number in all cases where 4 bytes are used.
Add proper reporting of Meter type Kwh sensors as
different from pulse count type Kwh sensors.
Better documentation of Modbus parallel tables of entries
and the tables that control which registers are logged.
Add notes about the library bug related to 0 length
messages invoked indirectly from i2cservicesReadFromSlave.
Rework the selector support to handle Meter and pulse
count Kwh sensors.
Improve network status time reporting to include the time
of the report in human form.
Improve time collection from the clock chip to report
debug information includeing human readable time.
Use shared routines for some HEX and fixed point
printouts.
Sketch uses 546973 bytes (57%) of program storage space. Maximum is 958448 bytes.
Global variables use 50360 bytes (61%) of dynamic memory, leaving
31560 bytes for local variables. Maximum is 81920 bytes.
|
20210608 |
Not logged in |
Fix library bug for TWI loop count of 0.
Better handling of modbus kwh energy values. Pass them as
floating point results. Store them as floating point for
previous vs current cell of table and graph.
Reduce intervals loop to 16 per cycle instead of 32. The
larger group took too long before letting other tasks go.
Sketch uses 546081 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50032 bytes (61%) of dynamic memory, leaving 31888 bytes for local variables. Maximum is 81920 bytes.
|
20210531 |
Not logged in |
Modbus graphs work. More testing needed. Provide counting
of Kwh sensors. Add menu item for Kwh meter senors as
differentiated from pulse counters. Reduce number of
modbus registers in standard build so they fit in the
database block.
Enhance ELEMENT command to take a unix time.
Improve database and element dumps.
Sketch uses 544333 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50032 bytes (61%) of dynamic memory, leaving
31888 bytes for local variables. Maximum is 81920 bytes.
|
20210526 |
Not logged in |
Add support for Modbus Kwh differences from one sample to
the next, similar to pulse counting.
When ~DR interrupts occur at too high a rate postpone I/O
card reads so the processing does not become overwhelmed.
Sketch uses 541137 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50040 bytes (61%) of dynamic
memory, leaving 31880 bytes for local variables. Maximum is 81920 bytes.
|
20210524 |
Not logged in |
Some updates to handling of unconfigured LAN.
Improved time update reporting.
Sketch uses 539909 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50032 bytes (61%) of dynamic memory, leaving 31888 bytes for local variables. Maximum is 81920 bytes.
|
20210521 |
Not logged in |
Turn off debugging code in many places. Leave it on in
networking. Make some places depend on debugMessageLevel that
used to depend on DEBUG_LEVEL of high numbers.
Rework checks for LAN configuration. Turn off network
report if no LAN is configured.
Add markers with ???? for places to add Modbus kwh support.
Sketch uses 539053 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50028 bytes (61%) of dynamic memory, leaving 31892 bytes for local variables. Maximum is 81920 bytes. Global variables use 50036 bytes (61%) of dynamic memory, leaving 31884 bytes for local variables. Maximum is 81920 bytes.
|
20210516 |
Not logged in |
IoT support output value setting from a server. Cooperates with
web pages on the server to set output values on command.
An example of the usage is the Ventus2 Charger Control
system.
Elevate some debugging messages to debugMessageLevel 2 and
above.
Fix bugs in network reconnect support. Improve debugging
messages in that module.
Partial implementation of SDkwh. Goal is to have that data
type work like pulse conting for Kwh.
Repair Boot time reports that sometimes had negative
values. Simplify the code using millis() to determine the
uptime.
Comments in time services.
Sketch uses 547609 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50036 bytes (61%) of dynamic memory, leaving 31884 bytes for local variables. Maximum is 81920 bytes.
|
20210510 |
Not logged in |
Change handling of MS8607 to suppress display of missing
sensors when modbus is present.
Report MAC address on web page.
Sketch uses 530796 bytes (50%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50004 bytes (61%) of dynamic memory, leaving 31916 bytes for local variables. Maximum is 81920 bytes.
|
20210509 |
Not logged in |
First Modbus release
Updated modbus web page message.
Improve debug messaging for WattNode sensor.
Update report of SDseconds datatype. Frequency of modbus
1035 is floating point not integer output repaired.
Sketch uses 530796 bytes (50%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50004 bytes (61%) of dynamic memory, leaving 31916 bytes for local variables. Maximum is 81920 bytes.
|
20210421 |
Not logged in |
Read Differential pressure prior to each web page display
to make the sensor update faster for web page display.
Sketch uses 545265 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50024 bytes (61%) of dynamic memory, leaving 31896 bytes for local variables. Maximum is 81920 bytes.
|
20210418 |
Not logged in |
DEBUG control of reading ADC one at a timve vs 8 at a
time.
|
20210416a |
Not logged in |
Allow writing of airflow permanent parameters.
Sketch uses 545061 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50024 bytes (61%) of dynamic memory, leaving 31896 bytes for local variables. Maximum is 81920 bytes.
|
20210416 |
Not logged in |
Repair computation using area factor to get correct
result. Allow proper input of area factor.
Move airflow parameter settings around to isolate them to
the airflow sensor currently in use.
Add a (secret) method to erase all parameters: PARAMETER
ERASE ALL.
Add CRLF to some error messages.
Increase sixe of decimalPlaces to allow for 4 digit fixed
point fractions.
Sketch uses 545065 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50024 bytes (61%) of dynamic memory, leaving 31896 bytes for local variables. Maximum is 81920 bytes.
|
20210414 |
Not logged in |
Complete airflow sensor support for HC210. Add range
setting. Add a web page for Airflow setup. Add automatic
refresh to airflow page.
Add Airflow Sensor zeroing for all differential pressure
sensors.
Correct serial number printout at startup.
Parameter SET button on pages is now in same column as the
field.
Convert to an array of Differential Pressure sensors allow
the sensor type to be automatically identified.
Sketch uses 544665 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 50020 bytes (61%) of dynamic memory, leaving 31900 bytes for local variables. Maximum is 81920 bytes.
|
20210410 |
Not logged in |
Allow console serial number setting.
Add Command to test Pressure sensor init.
Add DLVR_INIT command. Improve SERIAL command to allow
setting serial number.
Rework many hex print routines to use serialHEXxxx style
usage that saves space.
Complete support for Superior Sensor Technology sensor.
Many I2C sensors can now be checked for at the same
address. Only one can exist.
Sketch uses 543477 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49952 bytes (60%) of dynamic memory, leaving 31968 bytes for local variables. Maximum is 81920 bytes.
|
20210409 |
Not logged in |
Airflow page automatically refreshes. Provide for
dfferential pressure transducer zeroing. Remove special
pressure datatypes.
Add Command to test Pressure sensor init.
Rework many hex print routines to use serialHEXxxx style
usage that saves space.
Complete support for Superior Sensor Technology sensor.
Many I2C sensors can now be checked for at the same
address. Only one can exist.
Sketch uses 543477 bytes (52%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49952 bytes (60%) of dynamic memory, leaving 31968 bytes for local variables. Maximum is 81920 bytes.
|
20210407 |
Not logged in |
Add Superior Technology sensor to DLVR module.
Implementation of read is incomplete.
Update Airflow display to get proper decimal places.
Change names of DLVR routines to be non-vendor specific.
MAX11615 improve documentation and setup of device.
Move conversion of inches to FPM to be a service.
Sketch uses 542097 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49924 bytes (60%) of dynamic memory, leaving
31996 bytes for local variables. Maximum is 81920 bytes.
|
20210404 |
Not logged in |
Add mimimalist airflow page in a new airflow.cpp module.
Change Millivolts from a ration of 1024 to a ratio of
1000, the conversion from counts in 1024 ratio is moved
into the device reading code. Other voltage readers do
not have the same ratio. COde to support datatype
conversion is moved to one place.
More instrumentation in MS11615 code. There is a bug
reading voltage on pins 1-7 not 0.
Guage vs differential DLVR parameter added.
Sketch uses 541292 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49868 bytes (60%) of dynamic memory, leaving 32052 bytes for local variables. Maximum is 81920 bytes.
|
20210328 |
Not logged in |
Update libraries, like code from these is not in use.
RTClib may be used.
Adafruit GFX Library was 1.10.6 now 1.10.7.
Some usage of printHEXnumber routines to save space. Create LN
versions of them.
Allow pressure from DLVR to be 32 bits. Provide for
multiple DLVR sensors at different addresses each sensor
controls the number of decimal places and bits to store in
the database. Split the
sensor creation to allow for compatibility.
Provide a pressure range configuration variable for DLVR
sensors. Likely will need more than one, but this may
become part of the sensor address configuration. Rework
what prints in various debug modes. Compute pressure in 64
bits in anticipation of DHLR sensors which use 24 bit
shifts.
Add units conversion for SDpressure types. FPM is
calculated by formula from inches w.g.
Move Modbus sensor creation to processorSensors. Still
needs to have conflict resolution dealt with.
More debug output control in Modbus code.
Add retries to MS8607 calibration reading. This is likely
not necessary the CRC errors that motivated it were caused
by having two sensors attached at once. Improve debug
reporting.
Split settings page moving pulse counter rations to a new
page.
Improve button action list to save appropriate variables
to permanent memory. Use variable setting feature in
several places in the list.
Sketch uses 539676 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49788 bytes (60%) of dynamic memory, leaving 32132 bytes for local variables. Maximum is 81920 bytes. |
20210327 |
Not logged in |
Change DLVR initialization to support seperate invocations
for each address. Add a second invocation. Change datatype
name to not mention the I2C address.
The library core_esp8266_si2c.cpp lost the patch for 0
length Twi::readFrom call. Updated in the library.
Better control of modbus debug messages.
Fix finding ADC when modbus code is present. Better I2C
init is required.
Remove M2X from menu. Support for the page remains.
|
20210325 |
Not logged in |
Isolate DLVR debugging code to DEBUG_LEVEL conditionals
and adjust which messages print with varying
debugMessageLevel.
Perform a power cycle at DLVR startup. On Rev 3 hardware
startup worked. On Rev 4 hardware the device was not found
without the reset that happens in the I/O power ON cycle.
Disable IOT uplink when the time is set to 0. Add a
message to the web page to indicate this.
Record the start time for I/O power on.
Change pressure units description to inH2O.
|
20210324 |
Not logged in |
A number of string copies from PRGMEM storage were broken.
These were in the area of parameter storage and recovery.
Web pages associated with these parameter settings would
hang due to a processor crash when the parameter was set.
The FPSTR construct was missing in many of these places.
Logging of WattNode/Modbus registers is now defined by a
separate table from the table that defines the register
usage.
Reporting of unused Modbus methods is now only at hiher
DEBUG_LEVEL settings.
Reading sequences of Modbus registers now does retries on
failures or errors.
Handling readback of Modbus write operations is improved
or created.
Handling of Modbus replies is centralized and cleaned up.
Database overflow is reported if too many sensors are
created. Summary of database space is improved.
Code space is saved when DEBUG_LEVEL is 0 in the
parameters module.
MODBUS_EXCLUSIVE is turned off. New information is emitted
with the version number if it is on. When this is on many
sensors are not put in the database creating more space
for modbus registers. Turning it on saves code space for
those sensor creations.
Sensor dumping no longer puts out two copies of the units.
Units are now available in two forms, the abbreviation
used when a number is output and the name associated with
a description or column heading.
A modbus address of 0xff is present when parameter memory
is not initialized. This is now treated as Modbus devices
not being present.
Several new unit types are created associated with modbus
register reporting.
The voltage units were split into DC volts typically from
an ADC and AC units typically from WattNode Modbus devices.
A new web page is created for presenting AC voltages.
A combined printout of a number with leading space is
created. This can occasionally save space.
Format for web emissions printed extra stuff because of
missing break; statements.
A combined printout of number and hex number is created and used in
a number of places to save space.
Several strings as arguments to printouts were missing the
F() construct to force those strings to program space.
Samples newer than the database were incorrectly reported.
Database catchup reported long code delays when it should
have allowed them.
Some delays were too short and when debug code was turned
on reported loop too long messages.
Names used for too long a time in service loops were
changed to show they are calls from the main loop.
Sketch uses 535396 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49672 bytes (60%) of dynamic memory, leaving 32248 bytes for local variables. Maximum is 81920 bytes.
|
20210322 |
Not logged in |
This is version 1(84).
Added AC volts units. There be issues with DC volt
presentations. Needs investigation.
Added MODBUS_EXCLUSIVE switch that configures the sensors
to not create I2C sensors saving room in 128 bytes for
more Modbus sensors. Still not room for all. This also
saves code space.
Sketch uses 521832 bytes (49%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49628 bytes (60%) of dynamic memory, leaving 32292 bytes for local variables. Maximum is 81920 bytes.
|
20210320 |
Not logged in |
Complete logging of Modbus registers. Only a limited
number are possible due to space restrictions competing
with other registers. I/O expander logging could be
disabled to expand the number of modbus registers.
Report space required for all dynamic modbus registers.
Sketch uses 535580 bytes (51%) of program storage space. Maximum is 1044464 bytes.
Global variables use 49664 bytes (60%) of dynamic memory, leaving 32256 bytes for local variables. Maximum is 81920 bytes.
|
20210318 |
Not logged in |
Improve Modbus instructions.
Consolidate function naming code saving space.
Rename some subroutines for clarity on their purpose.
Report unexpected functions for the WattNode meter.
Handle Write responses only as packets are received.
Eliminate packet processing for those packets.
Add sleep support to Modbus code.
|
20210317 |
Not logged in |
Fix problems setting values. Add hex input.
Fix issues with modbux reads. Resolve some interference
issues. Add refresh button to modbus pages. Update
instructions.
|
20210316 |
Not logged in |
Add retries to sequenced Modbus reads.
|
20210314 |
Not logged in |
Modbus integrated with base logger. Some issues remain
with modbus and I2C interference. Modbus test
implementation is no longer in use and the code is out of
date.
|
20210309 |
Not logged in |
No changes to base logger. Modbus test implementation now
included. Completed service routines adding CRC check on
returned packet from meter.
|
20210301 |
Not logged in |
Update libraries, likely code from these is not in use.
RTClib may be used.
Adafruit GFX Library was 1.10.2 now 1.10.6.
Adafruit GPS was 1.5.2 now 1.5.4.
Adafruit LET Backpack 1.1.9 (1.1.8 was used up to
1(88)).
Adafruit SleepyDog Library was 1.3.2 now 1.4.0.
Adafruit STMPE610 was 1.1.2 now 1.1.3.
Adafruit TouchScreen was 1.1.0 now 1.1.1.
RTClib 1.13.0 (was 1.12.0 then 1.12.5 up to 1(88)).
|
20210227 |
Not logged in |
Improvements to time chip handling, mostly associated with
debug reporting enabled at DEBUG 1. When to update system
clock and when to update time chip is improved. Reports
now show how much drift has occured.
Copyright and version updates.
|
20210223 |
Not logged in |
Fix error in onewire debug dump code.
Improvements to MS8607 debug code. Add retries for failed
conversion starts. New modules seem to require this.
Improvements to sensor reporting for IoT uplink. Sensors
can now be properly created in the loghistory.php service.
Improvements to sensor counts and space reporting.
Loaded this version in all new modules from Network PCB.
|
20210104 |
Not logged in |
First backup since the conversion to the Unix based
DRAGONNORTHserver.
Improvements to IoT uplink code. Turn on Debugging. Turn
off link simulation. Better handling of desired output for
pins. Might be working. Emit URL for debugging purposes
when an uplink is done. Improvements and bug fixes in
loghistory.php.
Improvements to sensor reporting for IoT uplink. Sensors
can now be properly created in the loghistory.php service.
Error checking improvements in TCA9539 handling.
Repairs to Onewire handling of long delays. Bug fixes in timeout
handling. Prevents improper handling of onewire devices
when it takes too long. Onewire system now gets notified
to handle the problem properly.
|
20201017 |
Not logged in |
Uplink of native LOGGER sensors on the loggeriotsetup page
now works. The sensor is uplinked with a bogus sequence
number of the unix time stamp for the sample time.
Interactions to get historic sensor values filled in
remain.
|
20201016 |
Not logged in |
Complete iotuplink controls for I/O pins. The stubs
mentioned in the 20200927 submission are resolved. Parsing
$DESIRED-OUTPUT
<name> <value> in a page read by the LOGGER
tells the system to set the desired value of an I/O pin.
The pin is not changed to an output by this that must be
done by controlling the pin on the web pages. $END-STATUS
tells the LOGGER that all commands are complete. The
LOGGER IoT page Test IO Setting button causes a page read.
The page may contain commands. Reporting sensor
status will read pages as confirmation and will see these
commands. This confirmation is not completely implemented
yet.
Add a requirement to type DESTROY in a new field when initializing the
database.
Update database creation to require a safe (NTP) time when
creating a new database. Improve errors associated with
this.
Add additional test button to IOT control page. Test is to
trigger pin output state updates. This is a test mechanism
only which tests the connectivity of the control
mechanisms to the page read from the server.
Add code to handle desired output pin states. This is
supported only by stubs and not connected to the real
outputs yet.
Parse two arguments from $keyword lines in IOT response.
|
20200908 |
Not logged in |
Upgrade to Arduino 1.8.13.
Rework reboot for wraparound. Noticed a bug after a month
of operation. Did not check if the bug was still present,
that is hard to do. Force a reboot now if current millis
is greater than 2**31.
|
20200728 |
Not logged in |
LOGHISTORY.PHP CreateDatabase action works. AddSample action
works. CreateNode action is NIY and should be updated
to create sensors and associated datatypes on the node. CreateSensor action is NIY.
Trivial display of history works.
|
20200728 |
Not logged in |
Added LOGHISTORY.PHP to the web page. This creates and
displays entries in a simple database in the cloud.
Eventually code will be added to the LOGGER to create
entries and display them much as M2X did. Nothing on the
LOGGER side yet and the tables are primative. Nodes and
sensor creation forms exist and do nothing. A few table
entries are displayed. A few samples are displayed. Mostly
created so code will be backed up.
|
20200809 |
Not logged in |
Added a LOGGER IoT server page that mirrors the M2X page.
Not all fields are available yet. Both pages are
operational. Instructions in the M2X page are updated to
reflect that AT&T has discontinued M2X support.
|
20200619 |
Not logged in |
Move millisecond time wraparound to services loop.
Integrate it with delayed reboot that allows a web request
to perform a task to get an ACK page displayed before the
reboot occurs. Move reboot notification after button
processing so ACK of button press shows the ACK message.
Delay reboots by REBOOT_DELAY in all cases.
Rename webStartPage to webservicesStartPage. Make sure all
cases do alerts. Rename webEndPage to webservicesEndPage.
|
20200616 |
Not logged in |
Add ALERTS command to read a file of alert bindings. Add
the concept of a valid range for various sensor types. If
the sensor is out of range send an alert to the user
typically by email. Other alert types are proposed. The
entire history of alert bindings is kept in the file on
the SD card. As they are read the latest binding overrides
all previous bindings. The bindings are read at boot time.
Change how ONEWIRE command works it now accepts the
conversion delay and not just a flag as an argument.
Increase normal conversion time to 1 second from 750 ms.
Looking for why Temperature_0 is always hot. Another
onewire device in the same location also shows hotter than
ambient. Add more messages when debugMessageLevel is high.
Rename the GETNTP command to NTPGETTIME.
Add PHISTORY command to read parameter history file. Save
parameter changes to a history file. If parameters are not
recovered from flash read the history file to set them.
Add the concept of user names for sensors. Save and
recover at boot these name
bindings in a file on the SD card.
Fix a bug in how the SD card is found on old cards. The
bug caused the SD card to be missing on every other boot.
Rework code to find the SD card on startup.
An automatic reboot may happen if the SD card is searched
on the old pins on a new board. This only happens after
errors or if the SD card ID code fails to find the card at
startup. (Possible if the card was missing last time.)
Rename the flag in the startup code that always turns on Access point
mode.
Update M2X comments now that it is missing.
Update device ID support for most devices to have a print
flag.
Rework the format of the parameter table.
Fix a bug in temperature conversion to degrees F in
graphs.
Convert some code to common subroutines in support of
changes to establish, save and restore a band of minimum
and maximum values for a sensor. Report those values as
part of the class. Add printout of min and max values to
the table dump of the sensor class. Add setting min and
max values to the class. Rework printout code to support
setting these values as part of the sensor settings.
Fix nameing of service to print fixed point numbers. Fix
stringToLong to work on 32 bit numbers. Expose fixed point
printing service and hex printing service.
Fix most web page header printouts to report issues and
errors.
Make tinme change reporting quieter unless
debugMessageLevel is higher.
|
20200529 |
Not logged in |
Rework firmware update. Callbacks now available. Reporting
of sucess and failure is improved. Two version numbers are
created for testing other than the version number these
are the same code.
Reconfigure the chart area to get time axis headings to
display.
A history of parameter (permanent variable) settings is saved to a file as well as
to permament memory. Only the users variables are saved.
These will be recovered from the file if reading them from
memory fails. In this way the users configuration follows
the SD card if that card is moved to new hardware. This
also takes care of the intermittent failure to read the
parameters from memory.
Increase network timeout to 2000 in hope that will allow
code download on a lower quality link.
|
20200522 |
Not logged in |
Completed email alert system. Time between emails is a new
field on several pages.
Add yields when reading files from the SD card. A yield is
performed after reading each line. Time history, name
history and alert history are all updated.
Add services to emit a sensor name and value to a string.
Suppress NTP time adjustment printout unless debugMessageLevel is
elevated.
Web page argument handling is centralized for application
specific page arguments and added to all
application specific pages. This is the same basic method
as has been used for page arguments that are handled by
the non-application specific webservices. User warnings
generated by webAlertIssues are added to a few pages that
did not have them (missing database etc.).
|
20200520 |
Not logged in |
Install esp8266 version 2.7.1 replacing 2.6.3.
Add controls and web pages for setting alert ranges. Email
messages are not sent yet. This adds the ALERTS command.
Read the alert ranges (and eventually email configuration)
from a file at startup. Add upper and lower limit values
to sensors.
Improve initial temperature handling, especially how
onewire temperature is reported before the first sample is
completed.
Add some services for reading and reporting HEX values.
Also for fixed point numbers.
Improve control of Onewire debugging messages.
If a time adjustment can not be written to the history
file do not keep trying. The retry happens when the SD
card is missing.
Rename the GETNTPTIME command to NTPGETTIME.
|
20200518 |
Not logged in |
Improve formating of STATUS command output.
Improve messages associated with not finding the SD card.
Change the checking protocol for finding the SD card to
automatically detect old vs new pinning and prevent
continuous crashes when old pinning is selected on
hardware with new pinning. Code that intereacts with the
SD card now quietly handles a system where the card is not
inserted.
Reporting of reboot reasons for software induced reboots
did not catch all cases of these and reported some as
reboots due to a bug or crash.
A failure to log a NTP clock time adjustment resulted in
continuous messages when the SD card was missing. This
message is now emitted only
once.
The XML history example is now a live link instead of
just simple text.
|
20200516 |
Not logged in |
Add the concept of a user name for a sensor. These names
are logged in a side file on the SD card in a way that
post analysis could show what name was in use when a
sample was taken. The USER_NAME command is added to test
the internal support for this feature. The feature is seen
on the Sensor Configuration page.
A test command 'LED' to turn the built in LED on and off is
added.
Off by one errors that caused inaccurate sampling time
when not sleeping are fixed. The bug was introduced with
the sleep code.
Reset of the I2C bus is integrated with the I2C code. A
bus reset function is added and used in the I2C code. The
reset must still be coordinated with the I/O power code
because powering on I2C chips without proper reset can
cause latchup. The code to support this is moved around,
but, it still works the same way. The I2C reset routine now calls
the power code. Other I2C code calls the reset code. The
power code must still always do an I2C reset.
M2X code now aborts without putting data on web pages if
off. AT&T no longer supports M2X.
Names of some networkservices routines now follow the
module naming convention.
Security checks are updated to allow pages to display
differently when writing is not allowed (signature not
given). This is used on the Sensor Configuration page as
part of user names for a sensor.
Table row framing is moved out of the low level Sensor
print code. The caller is now responsible for row framing.
The sensor print just puts out the TD fields of the row.
Some disabled debug code is put under DEBUG_LEVEL control
rather than being completely turned off.
The Access Point name is displayed on the system status
panel.
The frequency of NTP time logs in the time history is
reduced. One occurs at each non-sleeping boot. Small
adjustments may not be logged.
|
20200511 |
Not logged in |
Log when time is set to keep a record that allows database
fixup. Setting time from the database is always logged.
Setting time from other sources is logged if the other
source is of high quality and a low quality log happened.
There is no need to log high quality times if one already
happened. The DB_TIME_SET command is added to test and
support this. A timehistory web page is added.
Fix bugs associated with multiple files to read/write and
improve logic to save space in the namehistory code.
Handle some fringe cases in taking samples and starting to
sleep where negative time in MS was not being compared
correctly and resulting in a failure to sleep.
Reboot on MS timer wraparound. This is every 24 days.
When entering deep sleep use the lowest power
RF_DISABLED wakeup mode.
Improve messages for the DEBUG command.
|
20200510 |
Not logged in |
Some change in a prior release caused pulse counting pin
pulses to cause a crash. This is fixed by conditioning the
SCL and SDA pins to be input types in the ISR. The problem
caused a panic in a yield call, probably by the Wire code
fixing or handling an error condition.
Fix DEBUG command so it can set level 0.
Add support for dynamic adjustment of microsecond to
millisecond ratio. Reduce jitter allowed to 2 seconds.
Repair formatting of pin changes messages.
Allow longer delays in network setup and search for
networks.
Improve reports associate with edge sensitive device
detection.
Deep sleep for network startup checks hardware startup state
rather than the software shutdown flag.
|
20200508 |
Not logged in |
Add DEBUG command to control debugging output. Many
changes to control messages. This works in cooperation
with the DEBUG_LEVEL macros which now only enable and
disable code. Which outputs are emitted are now controlled
by the DEBUG command. The setting of the debugMessageLevel
is stored permanently. Remove the VERBOSE command, this
replaces that function.
Add DEEP_SLEEP command to test deep sleep mode.
Control output pin state prior to deep sleep. Add code to
put pins in a low power state that can be used even if not
sleeping.
Add reports for the status of the flash database. Control
them based on the DEBUG command.
Improve handling of GPS sentences and how they report time
adjustments. GPS sentence parsing is lightly tested.
Add reports of the previous I/O power status to the POWER
command.
Change the database header to use tenth seconds to measure
time between samples. The old version used milliseconds
and stored the value in 16 bits. Both database type are
recognized and using an old database is safe. the
DATABASE_MINOR_VERSION is now 4.
Add the capability of deep sleeping between samples. When
this is enable web access is no longer available. The
device must be power cycled to regain web access. NOTE:
pressing the reboot button does not look like a power
cycle to the software and will not regain access, this
looks the same as a wake from deep sleep to the software.
The network and associate web services are not turned on
after a deep sleep. If deep sleeping is on after a power
cycle the system will stay awake for a while so the user
can regain control via normal web activity. Two power
cycles may be required. NTP time services are not read
when waking from deep sleep, a clock chip is required.
Code download controls and prevents deep sleeping for an
extended interval.
Completely restructure the dataservices module related to
how it decides to take the next sample. Taking samples
prior to knowing the time is no longer supported. These
changes are in support of the deep sleep capability.
Improved debug message handling is part of this change.
Rename the DataBaseState_t enum DatabaseOldVersion to
DatabaseBadVersion. Update the debug messages related to
it.
Update DEBUG message control for DLVR pressure.
Update DEBUG message control for MAX11615.
Update DEBUG message control for SI7006A20.
Update DEBUG message control for TCA9539.
Update DEBUG message control for MS8607.
Update DEBUG message control for Onewire. Improve clock
chip support. Add retries for clock chip communication.
Allow the USB flash device to be controlled by GPIO10 or
GPIO16 depending on the processor board version. Automatically detect
and remember the board type based on the presence of a
clock chip. Old boards can handle the presence of a clock
chip so long as the first time the processor board is started the
clock chip is not present. The processor notices and
remembers this in a permanent variable. If permanent
variables are cleared the value of FLASH_SS_PIN may have
to be reset manually, 16 for old boards 10 for new.
Rename all flashservices global routines and variables to
have the complete prefix in their name.
Record the time to boot (in milliseconds). This is used in
deep sleeping.
Counts of unexpected reboots are improved. Deep sleep is
not counted as a reboot.
Network startup code is moved to the network module in
anticipation of being able to start and stop these
services dynamically. That is not yet implemented.
The loggerYield() functions at startup behave differently,
not forcing samples out so startup can complete properly.
Add retries to reading permanent variables.
Handle negative times when dumping amounts of time.
Formatting in the version printout is improved.
Web page controls for deep sleep are added. The methods of
controling and responding to buttons are improved and are
now used for sleeping ON/OFF and temperature units
selection. Button background color control is fixed and
allows for a selectable color when a button is emitted.
Some potential bugs are fixed due to a failure to wake up
for a cycle when a web page controlled value is changed.
Wakeup is now set whenever a web page resets and reloads.
Performing this task is centralized.
When the used gets a web page sleep is prevented for a
time. Currently set to 3 minutes.
Update DS3232RTC to 1.2.12 from 1.2.9
Update library Adafruit Circuit Playground to 1.10.4 from
1.10.3.
Notice that the include of SD.H works properly if placed
at the top of the module. It also appears that a memory
leak when the NTP time server was probed is now fixed.
|
20200423 |
Not logged in |
Add testing of light and deep sleep.
Add support for clock chip periodic interrupts to allow
testing of a possible sleep methodology. Also add support
for deep sleep (from a web page button) and associated recovery by reboot of the
system. This support is still only for testing sleep
characteristics. In debug modes control an I/O card output pin as deep
sleep is entered for testing.
Add support for the SD card FLASH_SS_PIN to be in
different places to free up GPIO16 for deep sleep
recovery.
Improve time detection and reporting of test that turns network by holding
down the onewire data line.
Increase the NTP time request interval to 4 hours from 1.
This is based on observations of how often a real change
is needed.
Make some subroutines local to their module which helps
Doxygen warnings.
Save some space in non-debug mode by turning off symbolic
names for pins.
Add code to stand down the pin states when entering sleep.
This will also be a place to put code that stands down I/O
devices, but, there is no such code currently required.
Many comment upgrades to reduce Doxygen errors and
warnings.
Some additional files added to the backup.
|
20200417 |
Not logged in |
Upgrade to Arduino 1.8.12.
Add CLOCK_INTERRUPTS command to
test clock chip periodic interrupts. This command and the
associated support is presently for testing only. It was
used to determing that clock chip interrupts can cause a
processor reboot which might support deep sleeping. Deep
sleep is more likely to be supported by use of ESP
features that involve connecting GPIO16 to RST and need
another I/O pin (GPIO10 on the ESP-12E).
Improve discussion of element logging that is skipped
because time in the database is the same or newer than the
time of the element to be logged.
Improve timeout handling for web sending interactions.
This eliminates an issue where distant or slow connections
got dropouts in pages being presented.
Add pin definitions for GPIO9 and GPIO10. Improve notes
about FLASH_SS_PIN for planned change to use GPIO10 for
this purpose on the next hardware spin freeing GPIO16 for
sleep wakeup code that reboots the processor by connecting
GPIO16 to the processor RST pin.
Improve handling of ~DR signals. Most of changes relate to
improved error handling and reporting when an additional
cycle is required because ~DR stayed on after the first
pass. Some cases get postponed until the next cycle with
flags set to improve reporting of why postponement
happened. An extra read is done to see if the ~DR signal
clears on the first cycle or is a real indication of new
processing required. Which device address saw changes is
reported when pin changes are checked so high level code
can take appropriate action and do better logging.
Watch the onewire signal to see if switch SW1 is held
down. This is (will be) used as an indication that networking should
be turned on for an interval. Incomplete battery handling
related to turning on the network and turning it off so
sleeping can occur is added. Some battery operation support is
added but this support is largely incomplete.
Save a modest amount of code space by keeping pin names
in a data table only when debugging is turned on.
Add discussion of sleep modes.
Improve discussion of sleep strategy.
Add debugging feature that
sets I/O pin 16 when shallow sleeping should occur. Add
more sleep testing features. Sleep implementation is not
complete.
The pins on the AC card used to detect which card is
present need a pullup. Drive them high to save
power when the pullup is in place. This also prevents multiple
~DR interrupts when the pins are left floating.
Make NTP time services quieter unless debugging is turned
on. Improve messages when delta to NTP report is 0.
Change menu to have an Exports section currently populated
by the XML page.
Code space report:
Sketch uses 459024 bytes (43%) of program storage space.
Maximum is 1044464 bytes.
Global variables use 44100 bytes (53%) of dynamic memory, leaving
37820 bytes for local variables.
Maximum is 81920 bytes.
Same as 1x67 with different version number to test
downloads.
Revet timeout on WiFiClient to 1000 after parsing header.
The short timeout is requred to allow command lines to
operate promptly. If the timeout is left short fragments
of the web page are lost on slower clients or distant
network connections.
Increase handleClient delay to 1500.
Break up some long lines is number INPUT on web pages.
Report code update errors in some cases.
Add additional yields to sensor reads. Do not do flush of
web streams at each yield.
|
20200306a |
Not logged in |
Add loggerFastYield and call it wherever loggerYield is
done wvery N times.
|
20200306 |
Not logged in |
Change loggerYield to not do a flush.
|
20200304 |
Not logged in |
Better reporting of NOT_DATA_READY.
Improve sequencing of the OneWire sampling and other uses
of the OneWire pin. (for WiFi on period trigger).
Add support for triggering a WiFi network on period. The
network is still always on, just the trigger of the on
period is implemented.
Shrink the size of some blocks of web page data to
the network.
Add additional DEBUG reporting of pin state and pin on periods.
|
20200207 |
Not logged in |
Install esp8266 version 2.6.3 replacing 2.6.2.
Rework buffering sending partial content to the server.
The old method could have gotten errors when only a
partial string remained depending on exactly how
Stirng.substring worked.
Reformat command table.
Add Data Map page to display the map of the datastructure saved at
each sample interval. Move some definitions to independent
modules that can be shared with the CHANGER code.
Some space savings in static string allocations.
Make last temperature a signed number.
Better checking if humidity and pressure devices are both
present at address 0x40. Add a warning to the user.
Add the concept of named periods.
Add the concept of boolean permanent variables. Use it to
add display in degrees F vs degrees C.
|
20191226 |
Not logged in |
Resolve a number of minor compiler warnings, removes some
arguments and some routines. Enable more compiler
warnings.
Provide for boolean permanent variables. This still needs
to display the choices as a selection of YES or NO as values
instead of numbers.
Allow Names for Periods to contain spaces.
Add background colors to Named Period columns.
Move parameter setting from page arguments to a central
subroutine. Call page starting routines more uniformly
providing for security and button handling. Fixes some
non-working REBOOT buttons. Add the concept of parameters
resolution that is only allowed when writing is allowed to
permit these support routines to be more general.
Provide for content in the EMAIL_TEST command.
Add temperature units of F vs C. Remove a table of unit
names in favor of code that emits the name. This allows the
names to adjust for the units that change (C vs F).
|
20191222 |
Not logged in |
Remove use of time.h in favor of timelib.h.
Add Named Periods services and web page. Allowing user to
establish a name for a data set.
Add support for the MAX31826 temperature reading. The
EEPROM is not supported.
|
20191220 |
Not logged in |
Recognize the DS28EA000 and treat it as a simple
temperature device. Recognize the DS28E07 and properly
ignore it as an unrecognized device.
Fix bug in Firmware reload page that ignored the button.
Recognize and ignore several additonal onewire device types.
Convert to non-secure email sending. Now operational and
turned on. No alerts configured yet to send messages.
SMTP configuration parameters for email reporting added.
Service routine updated to simpler interface.
Rework storage of permanent variable names so they do not
consume dynamic data storage.
Secure SMTP sending class removed. It did not work
probably due to space conflicts.
Save space in RAM by better String and F() usage. Make
command list into a macro. Make pararmeter list into a
macro.
Move getField to general purpose services.
Normalize include file names. Fix capitalization.
Install Servo by Michael Margolois 1.1.6 replacing 1.1.5.
|
20191216 |
Not logged in |
Install Arduino AVR version 1.8.2 replacing 1.8.1.
Install esp8266 version 2.6.2 replacing 2.6.1.
Install Time by Michael Margolois 1.5.0 replacing 1.4.0.
Add test code for sending email. There are issuse with
space and security. This test currently disables normal
processing it is currently turned off.
Improve use of F() and associated String calls to save
space.
|
20191213 |
Not logged in |
Add web page for reload of firmware.
Many space saving updates by eliminating conversions to
String types before calls to subroutines. Some of these
improve performance by eliminating the free storage
allocation of creating strings. More such optimizations
remain.
|
20191209 |
Not logged in |
Add HANG commmand for testing watchdog reboots.
Formating updates for output.
Rework checking for delays to use more common code, use
more static string arguments and to disable more cases
unless debugging is turned on.
Add support for the DS2417 and DS2415 time chips. Accept
time from a time chip
when it is available on startup. Rework onewire code to
allow for chips that do not supply a CRC with their data.
(This code is now tested.)
Add user visible reports of too many onewire devices seen.
Report changes in stored parameters only when there is a
differnce.
Detect reboot causes better. Note reboots due to system power up and count unexpected
reboots independently from power on reboots our update
reboots. Report more
reboot type information.
Remove underline decorations from menu items. Rework some
menu formatting.
Add UPDATE command to update from a Binary file on the
Dragonnorth server. Web page support not yet available.
Install Adafruit Circuit Playground version 1.10.3.
replacing 1.10.2.
|
20191121 |
Not logged in |
Install Adafruit Circuit Playground version 1.10.2
replacing 1.10.1. Install esp8266 board version 2.6.1
replacing 2.5.2.
Update routines that check for delay to use constant ROM
string arguments. Rename a number of these routines to use
different names based on argument type. Find a bug with
the inclusion of the SD.h library that caused conversion
to dynamic strings at the call to the time routines.
Change web page output to include CR LF after each block
of HTML. This makes automatic formatting work when the
source HTML is captured from the browser and placed in an
editor.
Improve comments associated with ISRs, sleeping and locking.
Add code to support onewire clock chips DS2417 and DS2415.
Add detection and reporting of a number of other onewire sensors without
support for those sensors. Set time from these chips at
boot and store time in them as time is set by other means.
One of the chips is selected to use for this purpose. The
same chip will always be selected in a static hardware
configuration.
This code is untested.
Rename some routines and variables
in anticipation of adding onewire sensors other than
temperature.
|
20191114 |
Not logged in |
Provide menu items for more sensor types.
Move all javascript to the head portion of the web page.
Improve timeservices debug reporting.
Fix bug reporting time since boot when time is not yet
set.
GPM and LPM implementation completed.
Change the ESP command to be a CPU command.
Isolate time checks from loggerYield.
Testing and status code added to espserver.cpp.
Proper recovery of pin types at boot.
Convert time checks for delay to use constant string
arguments.
Improve some time checks. Remove a few unnecessary checks.
Isolate what the checks apply to so reporting will be
better.
Resolve issues passing F() arguments to subroutines that
were quietly converting arguments of ROM strings to String
type.
|
20191104 |
Not logged in |
Correct errors in production of web pages that resulted in
non-matching blocks. This causes some devices to look like
they had lost data.
|
20191030 |
Not logged in |
Add loggerYield calls in web services support code to
ensure data is logged while waiting for web services.
|
20191028 |
Not logged in |
Also built as 1(47)-127.
When a line from a WiFi client and the line is not
terminated with a LF wait a little while (10ms) to see if
more characters show up. This resolves issues where
clicking on a button seemed to lose the arguments that
were used to display the current page.
Find and partially repair issues in client handling that resulted in
poor performance when the LOGGER satisfied a request for a
web page. The original code was
stuck in handleClient() until the web client terminiated
(or a related timeout occured). This failure improved by
limiting the retry activity to 550 ms.
The handleClient() routine was called
frequently (this is now required). The new timeout limits
how long waiting can be.
Handle parameters to a web page that use only LF to end a
line. CR LF pairs are still what is normally expected. A
lone CR is never expected. This prevented long hangs when
the lone LF occured.
Initialize pins to be inputs by default. Improve pin
status initialization related to recovering pin status at
startup. Do not recover pin status for pins that control
edge detection hardware.
Rework menu to improve clarity, seperate items derived
from pulses from actual sensors. Expose Temperature,
Humidity and voltage directly.
Improve delay checking. Adjust some allowed delay times to larger
numbers.
Improve some comment formatting to support DOXYGEN.
Improve reporting of NTP time updated when no time
difference is noticed.
Make I/O expander pin configurations and desired outputs part of the
data saved across reboots.
|
20191023 |
Not logged in |
Add table to get liters per minute from pulses. Gallons
per minute are computed internally from liters per minute
units.
Add humidity page. Rework menu to identify sensors and pin
types.
Change default home page.
Add Voltages to the menu. Make selection of sensor types
more generic.
In handleClient go back to looping until the client is
available or disconnects.
|
20191021 |
Not logged in |
Some changes prior to 20191009 are reported here.
Report timing and status in espserver.cpp. This helps find
a bug in web page header parsing where lines formed
without CR LF pairs wait for a timeout. The timeout is
reduced but the bug is not really repaired.
Update comment format for improved DOXYGEN parsing.
Change the network up test timing so it uses 13 minutes
instead of 10. This helps determing what the cause of a
reboot is.
Add the ICACHE_RAM_ATTR attribute to ISR routines so the
latest version of the locator will place them properly.
Add flow services for LPM based on a counter. The ratios
are hard coded and need to be updated. A parallel set of
pages for GPM should also be implemented using the same
set of ratios and a known ratio between liters and
gallons.
When running as an access point do not go to the WAN for
time.
Improve messages printed when an NTP time update shows no
delta.
Update copyright and version notices.
Add direct menu support for presenting temperature pages.
Add additional reporting of long delays with
timeservicesCheckForDelay calls.
Remove license grants to Airborne Sensors.
|
20191009 |
Not logged in |
Convert to Arduino 1.8.10 and update libraries to the
latest versions.
Rework as needed for Windows 10 and winzip 24. Repair some
zip operations to include more things in the release.
|
20171224 |
Not logged in |
Allow "" for the value of a parameter to clear the value
in the PARAMETER_SET command.
Add a page to report average RPM in an interval based on
the pulse count inputs.
Do a better job of limiting to pulse counting pins. Used
for new RPM page and on the Kilowatt hours page.
Repair some off by 1 issues in the number of columns in a
graph and lines in a table of values. Also update the
start and end times of the graph so the first and last
bars are not partially obscured.
Initialze the map of pulse counting pins to sensorID. This
fixes a latent bug if the map was ever used with some
cells uninitialized. This also allows the RPM and Kwh
pages to skip pins that are not pulse counting pins. The
old code worked because the pulse counting pins were
always in a group at the beginning of the list of pins.
Add a test to see if a sensor ID is a pulse counting pin.
Fix error reports for non-existant parameter name to
include an EOL.
|
20171030 |
Not logged in |
Report cause of reboots.
Report count of reboots.
Detect software reboots and report that as the cause of a
reboot. A software reload followed by a reset button push
will report a cause of UNKNOWN.
Add SLEEP command support for making the network sleep.
This is only for power consumption testing during a
controlled sleep.
|
20171008 |
Not logged in |
Repaired reboot reason so it is reset after each boot. It
should now say the reboot reason is unknown if a crash
occured. Add a count of the number of reboots.
Report the array of bits that marks if a variable should
be uploaded to the M2X cloud as a numeric value instead of
a string.
Turn on reporting of database start and end times and
indexes.
|
20170913 |
Not logged in |
Added GPS fix parsing commands. They only look at the time
and are largely untested. If a $GPZDA message is recieved
on the serial port the time is set. Time services are
updated to log that the time setting came from a GPS
message.
Added the concept of a read transaction to flash
processing. This eliminates the need to open and close the
file for each sample that is read and dramatically
improves the speed of displaying a large number of points.
|
20170903 |
Not logged in |
Added Sleep command for testing low power processor sleep
modes. The implementation is incomplete.
Report the last reboot cause in a number of places.
Fix format of MAC address reporting.
Fix reporting of numeric permament variables.
Provide a link to the security setting page in the main
menu.
|
20170615 |
Not logged in |
Rename all public i2cservices routines to start with the full
prefix 'i2cservices'.
Update some ??? comments to improve the discussions. Make
some into @@@ comments.
Proper humidity reporting from the MS8607
pressure/temperature/humidity device. More complete
temperature compensation as well.
Add 10 minutes as an allowed interval for the time between
samples. Add a quarter of the year as an allowed time
period in the choices of web presentations.
|
20170522 |
Not logged in |
DNS now works. The Time server is first tried via DNS
lookup. If that fails there is a static IP coded that may
work.
Fix a bug in the detection of the AC module. The module
will now only operate if the jumper above left of R82 is
shorted. the 1(32) version would never detect an AC
module.
The calculation of the MS8607 pressure and temperature now
do the second order adjustment specified in the data
sheet. This is a complex change to the calculation with
two inflection points one at 20C and the other at -15C.
I/O expander pins are renamed IOx_P00 - IOx_P17.
|
20170521 |
Not logged in |
When a reboot occurs if time is not available use the
latest time in the database.
Improve DNS code, but, using it hangs when it tries to
translate the name of the time server. Update the static
IP of the default time server.
Add more debugging printouts to the onewire code.
Add Atmospheric Pressure datatype and use it to report
MS8607 pressure in millibars.
Add automatic detection of I/O module type. Report if an
unexpected type is at any address. Allowing 4 I/O modules
of arbitrary type is possible but the database would then
need to handle configurations differently or pre-allocate
all possible types.
Rename the DVLR table of I2C addresses.
|
20170514 |
Not logged in |
Update MS8607 code to properly read an convert pressure
and temperature values. Humidity still has no response,
does not seem to be a hardware issue, several modules fail
in the same way. Lots of
issues and inefficient time to read remain to be resolved.
Report the hardware serial number in web pages and version
printouts.
Update parameter reporting to have number, string and HEX
types. This makes reports of Onewire devices better. There
is no support for the HEX type to be a settable
parameter.
|
20170430 |
Not logged in |
Released as 1(30)-100
Prevent early error about how long onewire waits for the
first result.
Report I2C errors more cleanly.
Add SerialNumber parameter to allow a Logger hardware
serial number to be set and reported. The software only
allows it to be set once.
Repair temperature sensor creation for placeholder
temperature sensors.
Improved MS8607 support still does not properly detect and
initialize the component. Add sensor types to support
MS8607.
Initialize onewire sensors in a better place so
temperature sensors will always be in the same place in
the database structure.
Change AC detector bit order of the I/O chip to match the
production layout as built by AMI.
Report Serial number on the web pages.
|
20170424 |
Not logged in |
Updates to recognize different types of I/O cards that
occur at the same I2C address.
Add MS8607 pressure device. Add I2C support for a read
operation without reading data.
Add a hardware version that is stored as a permanent
variable. Currently not needed to ID hardware.
Update onewire testing to give new parts found a unique
new Temperature_xxx name. Realize that 8 temperature parts
should always be created, but, not done yet.
Fix some outputting formating.
|
20170327 |
Not logged in |
Emit uints as part of sensor information on sensors page.
Add controls to emit hours, minutes and seconds fields as
part of an ammount of time output. Emit the hours and
seconds in a few places where that makes the interface
more understandable.
Add a new control to set number of columns as an amount of time
which computes the count based on the current time span.
Make calculation of interval a part of the start and end times central
function. This fixes bugs in setting the interval and
presenting it properly.
Update the chart boilerplate. This may improve the
emission of time labels at the bottom of the chart.
Improve some Doxygen comments.
Fix bug in calculation of average amps in an interval.
|
20170315 |
Not logged in |
Set a more sensible DEFAULT_INTERVAL.
Report system status in menu panel.
Rework formatting of version numbers on version page and
in footer.
Rework time capture for all interval reporting pages per
suggestions from David.
Limit heap space reports at startup.
Turn off M2X debugging. Turn off network debugging.
Improve reporting of sensors in use, use report in menu
status.
Improve and correct reporting of amount of time to show
leading 0s. Same for emitting a number. Control leading 0s
when emitting a number to supply them or not as
appropriate.
Report time since logging started.
Fix area of graph to allow more digits in column units.
|
20170309 |
Not logged in |
Record when logging started and present up time.
Print a list of networks at startup. This seems to clear
up a number of hangs and bad presentations when the LAN
network can not be found.
Isolate database declarations so they can be used in a PC
application.
Enable M2X debugging reports.
Increase columns in the graph.
|
20170216 |
Not logged in |
Increase delay that triggers console reports of long
usage.
Add buttons to move forward/back by Minute, Hour, Day,
Week, Month and Year. Change misspelled names of selector
subroutines.
Update size of numeric input fields to match real number
sizes.
When pulse counting pins are not available report that KW
and Pulse count pages are not available.
Improve time delay reporting at the start of web page
display.
|
20170213 |
Not logged in |
Improve the reporting in the STATUS command.
Add a CONNECT command to force a network reconnect. Add
logic to the network module that allows users of the
network to report sucess or failure on usage. If a bunch
of failures happen in a row try to reconnect to the
network.
Improve handling of the sensors that need to call a
pre-read function a while before taking a sample. Make
sure that a failure in wait for completion of the pre-read
routines prior to taking a sample does not prevent the
system from taking the next sample.
Rework pulse pin handling to do the counting in ISRs. When
the I2C system is busy during the ISR then postpone the
count for the main loop. This prevents missed counts due
to long operation times in the main loop.
Improve yield reporting for excessive time taken in the main loop
routines.
Add control of which sensors are supposed to uplink to
M2X. (Cloud logging.)
Improve onewire reporting of errors. Add retries when a
CRC error occurs on a read. Add improvements to make sure
parasitic reads will work properly. Test parasitic reads
(two sensors are OK).
Fix a number of places that should have used SensorID_t
datatype.
Reconcile a number of ??? comments.
Once we know the time never decide that time is invalid.
Invalid time can prevent logging in the database.
|
20170210 |
Not logged in |
Convert pulse sensing to an ISR so pulses will not get
missed when there are long intervals in the main loop. Add
ISR read support to the I2C module. Postpone the pulse
counting if the interrupt occurs during some other I2C
read. Read all pins as a single word to reduce the I2C
traffic. Handle cases where the pins are scatterd among
many I2C modules.
Rename i2cXXX routines to be i2cservicesXXX.
Add a watchdog test command. Try to ensure that the
watchdog is on and will fire if code does not run. There
still appear to be system hangs that do not fire the
watchdog.
Print the Sensor ID to the console when verbose printing
the sensor info.
Eliminate loggerYield with no indication of what code
wants to yield.
Make checking for unexpected delays the responsibility of
the routines called out of the main loop. The main loop
retains one check for 500ms. Any delay that makes a major
contribution to that must be checked in the service code.
Report the reason for the last reboot.
|
20170207 |
Not logged in |
Fix a bug where changing the start and end times did
not update the graph until the next page load.
Add the ESP command to dump processor characteristics
and space.
Add M2X reports of all sensors in an element as one
HTTP message. Previous code did these one at a time.
Change reporting of sensor names to report the C string
version of the name.
Add reports of heap storage usage. Reboot if heap storage
gets low. Add a report variable that logs in permanent
memory the reason for the last reboot.
|
20170205 |
Not logged in |
Report lists of sensors on lines of a table instead of
as lines with line breaks.
Integrage M2X. Add a configuration page for M2X. Report
periodically to M2X. Add the concept of fetching a
floating point value for a SensorIR in an element.
Improve checking for maximum expected delays to allow
for long delays that are expected. The previous code
had a fixed maximum.
|
20170202 |
Not logged in |
Prevent divide by 0 if the number of intervals is
small.
Fix several bugs in the calculation of intervals and
the presentation of intervals that msde the table and
graph different from each other and had the endpoints
different from the declared time span.
Fix a bug where the table at the end of a page was not
closed properly.
|
20170131 |
Not logged in |
Add loggerYield() and call it in many places to allow
database sampling and logging to go on in the face of
other task activity. Report long time delays.
Add checks for long task delays.
Fix a bug where a blank line intended for the web
output was being printed to the console.
Fix a bug in the counting of disabled sensors.
Add a discussion of how pin counting should be moved to
an ISR. This is not implemented yet.
Add fractional amount of time printing services. Use
these services to print the length of intervals being
graphed and the total time presented in the graph.
|
20170129 |
Not logged in |
Fix I/O pin control page so a sensible pin of an I/O
module that is present is always
selected and displayed as the default pin. (Previously
tried to display a pin of a missing module.)
Prevent a divide by 0 error in calculating temperature
when bad data is returned from a onewire device (all
0s were probably observed).
Fix a bug in calculation of pulses over all time and in
calculation of total pulses. Old code got too few
counts and the all time calculation stopped at the end
of the interval being inspected.
Add support for reporting Watt Hours, similar to
reporting pulses but adjusting units and adjusting for
the ratio of pulses to milliwatt hours. Add 8 permanent
variables to manage the adjustment. As defaults Pulse_0
and Pulse_1 are set up for 15 amp CTs. Pulse_2-5 are
set up for 100 amp CTs and Pulse6-7 are set up for 400
amp CTs.
Clean up naming of subroutines that read earliest sample time
and newest sample time.
Improve handling and reporting of onewire devices that
as a result of read errors get bad values for counts
per degree C.
Fix selection of I/O pins to restrict selection to only
pins of I/O modules that are present.
Try to put time markers on the graphs X axis. Not working
correctly yet.
Save RAM at web page registration by using
String(F("")) construct.
|
20170125a |
Not logged in |
Additional improvement to database catchup.
XML control page implemented. Menu updated to go to
that page which invokes the original XML download with
user supplied arguments. Some documentation on the page
for the XML download.
Onewire devices now convert temperature in parallel
reducing the total time to less than 1 second. Sampling
1 per second should now work.
|
20170125 |
Not logged in |
Much faster database catchup.
|
20170123a |
Not logged in |
Fix a bug in XML output where the closing tags were
lost.
|
20170123 |
Not logged in |
Rename menu items. Create Sensors page with only the
values. Create Sensor configuration page with all
sensor details.
|
20170122 |
Not logged in |
Fix a bug in graphing when illegal values are present
in the database. Those values must get a placeholder in
the array of elements being graphed or the graph will
not display.
Truncate the DLVR_Temp sensor name so it fits in the
available space in the internal table of names.
Rework the naming in the menu, changes the names of
some pages. Use History and Sensors for the new names.
Sensors now does a simple list of all sensors.
Use 'Columns in the Graph' and 'Lines in the table'
instead of 'Samples'.
Change the name of the Sensors page to Current Sensor
Values have it emit the non-verbose form. Add a Sensor
Configurations page with the verbose sensor output.
Fix discussion of adding Temperature sensors to wait in
the right places.
Add verbose printout to sensor printing, this changes
how XML is emitted by not emitting the units field for
sensor printout.
Add verbose/non-verbose dump to the SENSORS command.
|
20170121 |
Not logged in |
Handle cases where there are no points to graph. Give a
sensible user depiction.
Better reporting of database existence and creation.
Report database issues on web pages. Sequence the
database up so retries are handled nicely and the
system is quiet if the database is missing from a
missing card.
Improve handling and reporting of time between samples.
Report times that are too long to read all
temperatures.
Repair time triggers to work off the millis() counter
rather than the Unix clock. This resolves issues if the
clock jumps due to time setting.
Resolve issues where sensor reading might need more time to complete befor a
sample is logged.
Improve debugging printout to use the DEBUG_LEVEL
symbol pervasively. Better control what is printed in
cases where the level is set to 1.
Improve the naming of sensors to hide the I2C address
in most cases while still keeping sensor names unique.
Improve some internal subroutine calls to accept String
arguments and use the F("") structure to reduce the RAM
footprint.
Add a reboot button to the network configuration page.
Keep track of number of sensors displayed so web pages
can produduce errors or sensible messages when there is
no underlying data. Print a sensible message instead of
a chart with an obscure message.
Improve reporting of Si7006 configuration and state.
Improve knowlege of when the device is present because
serial number read errors occur with high processor
voltage.
Make date and time reporting for web pages part of the
timeservices module
Report the I2C address used when reporting the sensor
details.
|
20170117 |
Not logged in |
Put hacks in core_esp8266_si2c.c library to better
identify why writes fail. Include bug fix for 0 length
reads.
Fix minor compilation problems in SMALL_CONSOLE build.
Fix problems in output conversion of DLVR sensor.
Disable DEBUG_PRINT outputs.
Fix problems in determining if a humidity sensor is
present. Fix problems reading the user register and the
heater configuration, report these values. Attempt to
fix reading the serial number but that does not seem to
work. Code around the issue. Add commands to better
debug I2C issues.
Add reset support to i2cservices. Add commands to pulse
the SDA and SCL lines. Turn off DEBUG_OUTPUT in I2C reporting.
Fix compilation warnings for initialization order in
espserver.cpp. Fix compilation warnings for unused
arguments in several modules.
Rework I/O card power on sequence and reset the I2C
support when power is turned on.
Clean up presentation of Access point and Network to
join. Add setting sample reading frequency.
Clean up reporting of illegal temperatures and of
temperatures that take on the initial value in flash.
|
20170113 |
Not logged in |
Version 1(8)-52.
Improve ISCAN to do single address on request.
Allow disabling of EXPERT mode.
Change default bytes of address for IREAD command.
Resolve a number of compile time warnings related to
comparing different data types.
Add DEBUG_OUTPUT to I2C reporting so it can be turned
off.
Change some menu item names. Add Version to the menu.
Print copyright notices for Lesser GPL libraries.
Fix a bug in reporting of missing I/O pins so it
reports NO PINS when the board is missing.
Fix a bug in triggering time updates from the web
pages. Report if time is not set.
Make use of GMT obvious.
|
20170110 |
Not logged in |
Add a web page to manage the database. Add a mechanisim
to erase the database. Add a reboot button.
Add a web page to manage the onewire history. Add a
mechanism to erase the onewire history. Add a reboot
button. Move the onewire history list to this page.
Change the names of the sensors in the list to
Temperature_xx from ONEWIRE_xx.
Complete the DLVR pressure sensor services.
Rework use of constant strings to store them in flash.
Make more service subroutines accept strings instead of
constant pointers because a quoted string is actually
stored in RAM. Use the F("") structure to force strings
to flash. Use println instead of \n.
Review consoleio, security, sensorlibrary, services,
tca9539, timeservices, webservices, webpages and
xmlservices modules.
Use service routines to test argument presence so F("")
can be used as arguments instead of simple quoted
strings.
Repair elapsed time comparisons in i2cservices to avoid
wraparound bugs. Fix handling in i2cReadFromSlave to
not use write operations.
No longer use a delay in the search for networks. It is
not needed.
Normalize the language that discusses permanent
variables to call them parameters in user facing
locations.
Update usage of "" to be F("") where possible.
Add services to support empty string detection and
indentation printout.
Add indentation control in sensor printout. Fix
indentation of the XML file output.
|
20170107 |
Not logged in |
Fix a bug where a disabled sensor could be emitted.
Fix a bug in the code that prevents creation of
duplicate uniqueIDs. Handle creation of a duplicate
correctly, turn the sensor on when identified.
Find and repair a number of prints of single characters
that put the character in a string instead of emitting
it directly.
Report totals sensors and bits used in SENSOR summary.
Store onewire sensors found in permanent variables. For
all of the sensors read from permanent variables create
a sensor and disable the sensor. As the sensors are
detected enable them. This ensures that the
temperatures will have the same name and location in
the database and thus that sensor data reported against
a single unique ID will always come from the same
sensor. Improve reporting of sensors found and the
associated IDs.
Add the concept of reporting a string of HEX digits to
permanent paramters, this is used for onwire IDs.
Tickle the watchdog more places in initialization.
Use symbolic program name for access point SSID creation.
Code around missing TimeLib.h in older Arduino
versions.
Report element storage time in microseconds rather than
milliseconds.
Update printout of Version and copyright at startup.
Rework a number of printout services to have dump
styles which return a String and print styles to emit a
string.
Improve clarity of database version reporting.
Update pressure sensor initialization and humidity
sensor initialization to always create
the sensors and to disable the sensors if not present.
Decommit non-blocking flash services support.
Rework I2C console messages to improve clarity of
the printout showing what is an I2C address.
Rework use of setTime to report time differences and
use proper units as arguments to prevent compile time
errors.
|
20170105 |
Not logged in |
Released as 1(4)-43
Add onewire historical sensor setup to keep sensor ID
and order in the face of sensor removal and addition.
Rename consoleioLoop to avoid a conflict with a new
library.
|
20170104 |
Not logged in |
Improved startup reporting. Improved version reporting.
Improved onewire dumping. Improve formatting of network
status output.
Fix Onewire temperature error reporting to properly
emit ILLEGAL_TEMPERATURE value and to properly hide any
data reports with that value.
Handle onewire temperature reads in sequence by
creating onewireservicesLoop(). Manage
type S parts and non-type S parts better and with less
special code.
Create a
generic mechanism to preread sensors that require long
setup times N
seconds before a sample is logged.
Tickle the watchdog more places during startup. Add
yield() calls in places to allow better networking
behavior.
Improve EEPROM writing to avoid writes that do not
change the value.
Increase allowed command lengths in console I/O.
Added DLVR support including PRESSURE command. (Device
reading is not working.)
Rework I2C conversions to run in the background.
When saving a parameter to the EEPROM skip the write if
the value is unchanged.
Update format of I2C address output to include leading
0s.
Pervasive change to string constants to use the F()
mechanism and reduce the dynamic memory used for
strings by 25K bytes.
|
20170101 |
Not logged in |
Add time measurement to the STATUS command.
Perform better WiFi initialization to make power cycles
more reliable.
Review all ??? comments. Trigger time update from the
web on button press.
|
20161230 |
Not logged in |
Limit output to a single sensor works. Sensors all will
configure to the same place in the 128 byte block.
Improve interval totals.
|
20161224 |
Not logged in |
Major restructure of sensor creation and reporting.
Trying to reinit sensors with the same uniqueIDs and
failing.
|
20161220 |
Not logged in |
Number of sensors increased. Number of pulse counters
increased. Output order on web page changed
to newest first.
|
20161219 |
Not logged in |
Humidity sensor works.
|
20161205 |
Not logged in |
ADC pin sensing works. Latches do not.
|
20161129 |
Not logged in |
Update ADC input. Partly working.
|
20161116 |
Not logged in |
Rework release and build mechanisms.
Update ONEWIRE command to read all devices present.
Fix reading method of PIN command to properly get the
port address. Still crashes if used.
|
20161113 |
Not logged in |
Addition of NETWORK command to display network status
on the console.
|
20160328 |
Not logged in |
Addition of security model. Addition of DOXYGEN
documentation.
|
20160323 |
Not logged in |
XML file creation.
|
20160322 |
Not logged in |
Manual time setting on a web page.
|
20160320 |
Not logged in |
Pulse counting removed from processor and moved to
TCA9539 sensor module.
|
20160315 |
Not logged in |
Major rework for common code with ESPcamera.
|
20160311 |
Not logged in |
Chip select for SD card was on GPIO 15, when the small
PJRC adapter is used this causes a problem when
booting, the device boot to the boot loader all the
time. This control has been moved to GPIO 16 to avoid
this issue.
|
20160311 |
Not logged in |
TCA9539 I/O Control from web page is complete.
Update formatting of Sensor output. Update naming of
some controls.
Rework Sensor configuration to work a bit at a time.
Configure individual processor pins and individual pins
of the TCA9539. Interval counting is disabled.
Integration of TCA9539 works for input and output.
Output controlled only from console commands. Input
integrated with web pages.
|
20160307 |
Not logged in |
Mode reporting updated. Format of samples repaired.
|
20160226 |
Not logged in |
I2C reading and identify is working. Not yet doing
anything with the I2C parts. Currently recognize an I/O
expander and a Pressure sensor.
|
20160224 |
Not logged in |
Accept manual time setting as OK for database use.
|
20160223 |
Not logged in |
Better logic at startup for AP mode choices.
Better error reporting for network issues. Stay in AP
startup mode if we don't know what network to join.
|
20160222a |
Not logged in |
Added a restriction of data types for display.
|
20160222 |
Not logged in |
Issues with adding Frequency1 were an alignment fault
trying to read a 4 byte value on a 2 byte boundary.
These issues are now resolved.
|
20160221 |
Not logged in |
Pulse counting back on. I2C off.
Frequency1 off. Frequency2 on.
Graphing improvements.
|
20160215a |
Not logged in |
Rework to use new log format which supports dynamic
variable creation. Lots of formatting changes. Rework
I/O to use the virtual print class to enable better
sharing.
Added OneWire support. Added automatic configuration.
Added new element format, dumps and associated support
but not yet using it for logging. Added sensors page
that lists sensors detected. Added IP address to
network page.
|