Skip to content

Commit

Permalink
Merge pull request #133 from letscontrolit/mega
Browse files Browse the repository at this point in the history
  • Loading branch information
Micha-he authored Sep 30, 2023
2 parents d10ffcc + 2a07cca commit be6ea83
Show file tree
Hide file tree
Showing 53 changed files with 3,889 additions and 71 deletions.
200 changes: 200 additions & 0 deletions dist/Release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,203 @@
-------------------------------------------------
Changes in release mega-20230930 (since mega-20230822)
-------------------------------------------------

Release date: za 30 sep 2023 15:46:23 CEST

Adam Groszer (1):
added InfluxDB v2 HTTP API docs and some other minors

Fabio Ancona (3):
Update README.md adding "Climate"
[DOC] Update P014 to avoid to use this Plugin with SHT2x devices
Update P014.rst

Michael Schröder (1):
Ignore more variants of own Custom.h

TD-er (83):
Update issue templates
[ADS1x15] Support ADS1015 & add sample rate selector
[ADS1x15] Add ADS1015/ADS1115 sensor type detection to task config page
[Cleanup] Add macro NR_ELEMENTS for array counting
[ADS1x15] Add option to select multiple task value outputs
[ADS1x15] Simplify storage of settings
[ADS1x15] Update documentation
[ADS1x15] Update documentation
[ADS1x15] Replace "ADS1115" with "ADS1x15" in docs and I2C scan result
[ADS1x15] Fix PBC -> PCB typo in documentation
[BMP3xx] Add support for Bosch BMP384/388/390 temp/pressure modules
[BMP3xx] Fix saving I2C address
[BMP3xx] Perform a few reads after init to initialize the IIR filter
[BMP3xx] Add detected chip + altitude compensation
[BMP3xx] Document P154 BMP388/BMP390
[BME280] Show detected sensor model like is done for ADS1x15 and BMP3xx
[Scheduler] Cleanup of Scheduler code
[Scheduler] Allow to schedule task calls to specific functions
[Scheduler] Split Various Scheduler timer types into separate .cpp files
[Cleanup] Fix build issue in WOL plugin
[Scheduler] Remove unneeded scheduler call type
[Scheduler] Cleanup includes and fix decode()
[Documentation] Document ESPEasy Functional Blocks
[Documentation] Add ESPEasy Functional block diagram
[Docs] Mark arrow between controller and MQTT broker as bidirectional
[Docs] Clarify some arrows in ESPEasy block diagram
[Task] Revert 'soft disable' task (for now...)
[Cleanup] Make deviceIndex_t a strict class
[Cleanup] Only allow PLUGIN_ADD to change Device[] vector
[Cleanup] Make pluginID_t a strict class
[Cleanup] Fix build error on ETH builds with pluginID_t
[Cleanup] Partial conversion npluginID_T to class
[Cleanup] Complete convert npluginID_t to strict class
[Cleanup] Reduce build size on ESP8266 making DeviceVector less strict
[Cleanup] Fix crashing compiler on ESP8266 builds
[Cleanup] Reduce build size to 'undo' extra added bytes in this cleanup
[Cleanup] Further reduction of build size
[Cleanup] Fix build on ESP8266 Collection A
[Cleanup] Fix build error on ESP8266 Display
[Cleanup] Reduce build size by moving small functions to .h files
[Cleanup] Use constexpr for static pluginID compares
[Cleanup] Use more constexpr for static pluginID compares
[Controller] Simplify ESPEasy core administration of CPlugins
[Cleanup] Misc code cleanup + add comments from PVS Studio
[Plugin] Simplify ESPEasy plugin registration + reduce build size
[Cleanup] Simplify code for return values internal ESPEasy commands
[Cleanup] Simplify get/set functions of VariousBits1 in SettingsStruct
[Cleanup] Remove no longer needed globals/Protocol.h/.cpp
[Neopixel] Fix build error signed/unsigned compare
[Cleanup] Apply GPIO log optimizations to reduce build size (@Ton)
[Cleanup] Fix storing new task (taskenable still doesn't work...)
[Cleanup] Fix silly bug setting tasks disabled.
[Cleanup] Reduce size of embedded lookup table to only included plugins
[Cleanup] Do not use 'Number' in DeviceStruct class
[Cleanup] Simplify DeviceIndex_sorted
[Cleanup] Fix merge issue
[Cleanup] Minor code tweaks to reduce build size
[Debug] Add "minimal" special build for analysis
[PVS Studio] Fix issues found by PVS Studio
[Cleanup] Reduce build size by moving isInitialized() to .h files
[Servo] Fix servo for ESP32-S2/C3
[Cleanup] Reduce build size for bitlevel access in Controller Settings
[Cleanup] Remove code redundancy from DevicesPage and UploadPage
[PluginStats] Fix showing stats when using 256 samples buffer
[Cleanup] Fix crash when adding new controller
[Cleanup] Disable drawing partition layout for limit build size builds
[Cleanup] Fix isNaN check in thermocouple plugin
[Debug] Add special debug build env for Display builds
[Cleanup] Reduce build size making Improv smaller
[Debug] Set special debug 'display' build to BUILD_NO_DEBUG
[Cleanup] Shorten (very) elaborate notes in P039 ThermoCouple
[Cleanup] clarify single event note + reduce GPIO command logs
[I2C scanner] Fix missing ++x; causing reboot during I2C scan
[ADC] Fix handling negative ADC values from Hall Effect sensor
[Notifications] Fix deleting notifier
[GPIO] Fix check for valid GPIO
[RTTTL] Fix parsing correct command argument
[RTTTL] Fix argument index for melody + prevent crash when changing song
[RTTTL] Fix stupid mix-up of old/new command argument parsing
[RTTTL] Only check for old/new syntax in the 1st argument
[RTTTL] I need some coffee....
[Internal temp] Fix crashes on ESP32-S2/S3/C3 + filter
[ESP32 temp] Fix specific includes for ESP32-S2

Ton Huisman (77):
[P036] Show current display content on Devices page
[P036] Wrap on-display output in `pre` tag to keep spaces and similar formatting
[P036] Remove unreachable code, other optimizations
[addHtmlDiv] Add optional `attribute` argument
[P036] Reduce Show Display font-size to 75%, code optimizations
[P023] Add Show Values for on-Display content, code improvements and optimizations
[P036] Make Interval optional
[P036] Update documentation
[P023] Add documentation
[P023] Updated screenshot
[P036] Add center/right align in preview, make preview compile-optional, code optimizations
[P036] Only disable alignment feature for 1M builds
[P036] Add new compile-time directives to Custom-sample.h
[Build] Make `Climate` build fit
[P036] Code optimizations
[P023] Minor code optimizations
[P036] Add optional user-defined display headers
[P036] Change compile-time defines to bool, change enums to uint8_t type, update changelog
[P036] Fix copy/paste error for `userDef2`
[P028] Add detection-mode setting
[P028] Ignore humidity if Sensor model BMP280 is selected
[Devices] Add event PLUGIN_WEBFORM_LOAD_ALWAYS that is also called for remote data-feed devices
[P028] Fix VType matching for remote data-feed, implement new WEBFORM_LOAD_ALWAYS event
[P028] Update documentation
[Controllers] Show correct data (or nothing) for controllers without Host or Port settings
[Controllers] Code improvement
[P036] Enable Userdefined headers by default for LIMIT_BUILD_SIZE builds
[P104] Add Dot subcommand to draw individual dots in a zone
[P104] Update documentation
[P104] Code improvements and a bugfix
[P028] Fix merge conflict
[P036] Code improvements using `constexpr`
[Rules] Improving removal of comments
[Rules] Separate comment removal from reading a line
[Release] `release.yml` script improvements
[P036] Fix merge conflicts, small source formatting improvements
[SD-card] Bugfix: Opening a file from SD-card doesn't always work
[SD-browser] Code improvements
[P153] Fix incorrect Sensor_VType setting
[SD-Card] Show SD-card CS GPIO pin in pin-selection
[P036] Bugfix in documentation-syntax
[P051] Fix device being automatically disabled and I2C scan issue
[I2C Scan] Make I2C scan more robust by adding extra wakeup
[Docs] Add I2C Scan documentation
[Docs] Additional I2C Scan documentation (mux)
[Docs] Rules example for PostToHTTP/PutToHTTP
[UI] Bugfix: Don't show - None - [SD-CARD] in GPIO selector when SD-Card is not configured (improves #4780)
[Build] Restore RTTTL feature in ESP8266 Climate build
[RTTTL] Add Async play and other improvements
[RTTTL] update documentation
[GPIO] Decrease buildsize by optimizing logging
[RTTTL] Add FEATURE_ flags to Custom-sample.h
[GPIO] Adopt optimized logging improvements (@gijs)
[Build] Add Collection G builds
[Build] Move [P154] BMP3xx to Collection G
[Build] Add checks for some external defined compiletime settings
[P036] Code formatting and optimizations
[P037] Build: Include all features in ESP32 builds
[P073] Reduce logging for BUILD_NO_DEBUG builds to reduce size
[P036] Updates for documentation
[P026][Sysvars] Add Internal temperature sensor value for ESP32
[P026][Sysvars] Feedback and fixes
[P026][Sysvars] Fix typo in comment
[P026] Add Get Config feature for all values
[P026] Add documentation
[Scripts] Handle 8M builds in WebFlasher
[P026][Sysvars] Avoid temperature reading errors on ESP32 classic (2 tries only)
[P026][Sysvars] Read temperature every second on ESP32 classic for better results
[Build] Try to use real branch name on GH Actions builds
[Build] Ignore Docs commits to trigger an Actions run
[P026][Sysvars] Explicitly disable FEATURE_INTERNAL_TEMPERATURE for ESP8266
[P026][Sysvars] Add delay() call
[Build][P026] Update documentation (without Actions run...)
[P037] Update documentation
[RTTTL] Add events for RTTTL play (async only), fix intermitted/skipped async playing
[RTTTL] Restore Cancelled event, update documentation
[P000 Docs] Update some internal links

chromoxdor (2):
Fixed error in section TaskValueSet
Update GPIO.cpp

dependabot[bot] (1):
Bump actions/checkout from 3 to 4

uwekaditz (9):
[P036] Add ticker as scroll option
Compiler error if P036_SendEvent was not set
Calculation for ticker IdxStart and IdxEnd was wrong for 64x48 display, Start page updates after network has connected in PLUGIN_ONCE_A_SECOND
Some bug fixes (only 1 line displayed)
Removed unnecessary clear() functions
Merged with mega from 2023-08-25
Wrong #ifdef P036_SEND_EVENTS
CHG: Disable scrolling or ticker if new line content received (PLUGIN_WRITE)
CHG: Code reduced if P036_ENABLE_TICKER is not used


-------------------------------------------------
Changes in release mega-20230822 (since mega-20230623)
-------------------------------------------------
Expand Down
35 changes: 32 additions & 3 deletions docs/source/Controller/C011.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ You can use this placeholders in http header and in the http body:
* ``%vname4%`` will be replaced with Valuename 4
* ``%val1%`` will be replaced with the value 1 of the device which is sending data to this controller
* ``%val2%`` will be replaced with the value 2 of the device which is sending data to this controller
* ``%val3%`` will be replaced with the value 3 of the device which is sending data to this controller
* ``%val4%`` will be replaced with the value 4 of the device which is sending data to this controller
* ``%unixtime%`` will be replaced with the Unix time (seconds since epoch)

See also System variables

You can also write things like this:

Expand All @@ -71,8 +76,8 @@ You can also write things like this:
Examples
--------

InfluxDB HTTP Api
^^^^^^^^^^^^^^^^^
InfluxDB v1 HTTP API
^^^^^^^^^^^^^^^^^^^^

* HTTP Method: ``POST``
* HTTP URI: ``write?db=testdb``
Expand All @@ -89,9 +94,33 @@ InfluxDB HTTP Api
See also `InfluxDB API description <https://docs.influxdata.com/influxdb/v1.5/guides/writing_data/#writing-multiple-points>`_

InfluxDB v2 HTTP API
^^^^^^^^^^^^^^^^^^^^

* HTTP Method: ``POST``
* HTTP URI: ``api/v2/write?bucket=yourbucket&org=yourorg``

* HTTP Header:

.. code-block:: none
Content-Type: application/x-www-form-urlencoded
Authorization: Token yourtoken
* HTTP Body:

.. code-block:: none
esp,unit=%sysname%,device=%tskname%,sensor=%vname1% value=%val1% %unixtime%%LF%%2%esp,unit=%sysname%,device=%tskname%,sensor=%vname2% value=%val2% %unixtime%%/2%%LF%%3%esp,unit=%sysname%,device=%tskname%,sensor=%vname3% value=%val3% %unixtime%%/3%%LF%%4%esp,unit=%sysname%,device=%tskname%,sensor=%vname4% value=%val4% %unixtime%%/4%%LF%
Make sure the body is all ONE single line, InfluxDB seems to be very picky about newlines.

Response should be 204 on success.


Nettemp HTTP Api
^^^^^^^^^^^^^^^^

untested but should work with something like this:

``/receiver.php?device=ip&type=%1%%vname1%%/1%%2%;%vname2%%/2%%3%;%vname3%%/3%%4%;%vname4%%/4%&value=%1%%val1%%/1%%2%;%val2%%/2%%3%;%val3%%/3%%4%;%val4%%/4%``
``/receiver.php?device=ip&type=%1%%vname1%%/1%%2%;%vname2%%/2%%3%;%vname3%%/3%%4%;%vname4%%/4%&value=%1%%val1%%/1%%2%;%val2%%/2%%3%;%val3%%/3%%4%;%val4%%/4%``
15 changes: 15 additions & 0 deletions docs/source/Plugin/P000.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,21 @@ Supported hardware

|P000_usedby_GPIO|, |P000_usedby_RTTTL|, |P000_usedby_Relay|, |P000_usedby_Servo|, |P000_usedby_LevelConverter|

Switch: :ref:`P001_Switch_page`

Doorswitch: :ref:`P001_Door_switch_page`

Relay: :ref:`P000_Relay_page`

PIR: :ref:`P001_PIR_sensor_page`

Servo: :ref:`P000_Servo_motor_page`

Buzzer: :ref:`P000_Buzzer_page`

Speaker RTTTL: :ref:`P000_Speaker_page`

Piezo element: :ref:`P000_Piezo_element_page`

Commands available
------------------
Expand Down
9 changes: 7 additions & 2 deletions docs/source/Plugin/P000_Buzzer_RTTTL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ From ESP Easy v2.0.0 its possible to play melodies via `RTTTL <https://en.wikipe

.. code-block:: none
http://<ESP IP address>/control?cmd=rtttl,14:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
http://<ESP IP address>/control?cmd=rtttl,14,:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
This plays a melody on pin 14.

Expand All @@ -68,7 +68,7 @@ To make a boot-sound on startup, create a rule like this:
.. code-block:: none
On System#Boot do
rtttl,14:d=10,o=6,b=180,c,e,g
rtttl,14,:d=10,o=6,b=180,c,e,g
endon
`A place to find more tunes <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_, all saved as txt files.
Expand All @@ -91,6 +91,11 @@ Commands

.. include:: P001_commands_RTTTL.repl

Events
------

.. include:: P001_events_RTTTL.repl

Where to buy
------------

Expand Down
4 changes: 2 additions & 2 deletions docs/source/Plugin/P000_Piezo_element_RTTTL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ From ESP Easy v2.0.0 its possible to play melodies via `RTTTL <https://en.wikipe

.. code-block:: none
http://<ESP IP address>/control?cmd=rtttl,14:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
http://<ESP IP address>/control?cmd=rtttl,14,:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
This plays a melody on pin 14.

Expand All @@ -65,7 +65,7 @@ To make a boot-sound on startup, create a rule like this:
.. code-block:: none
On System#Boot do
rtttl,14:d=10,o=6,b=180,c,e,g
rtttl,14,:d=10,o=6,b=180,c,e,g
endon
`A place to find more tunes <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_, all saved as txt files.
Expand Down
4 changes: 2 additions & 2 deletions docs/source/Plugin/P000_Speaker_RTTTL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ From ESP Easy v2.0.0 its possible to play melodies via `RTTTL <https://en.wikipe

.. code-block:: none
http://<ESP IP address>/control?cmd=rtttl,14:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
http://<ESP IP address>/control?cmd=rtttl,14,:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
This plays a melody on pin 14.

Expand All @@ -65,7 +65,7 @@ To make a boot-sound on startup, create a rule like this:
.. code-block:: none
On System#Boot do
rtttl,14:d=10,o=6,b=180,c,e,g
rtttl,14,:d=10,o=6,b=180,c,e,g
endon
`A place to find more tunes <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_, all saved as txt files.
Expand Down
6 changes: 6 additions & 0 deletions docs/source/Plugin/P001_commands_RTTTL.repl
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,10 @@ Supported hardware: |P000_usedby_RTTTL| (Ringtones etc.)
``rtttl,14,test:d=8,o=5,b=180,c6,b,c6,p,g,g-``

`More RTTTL Ringtone Downloads <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_

Since 2023-09-15:

The ``rtttl`` command, by default, now uses the `AnyRtttl library <https://github.com/end2endzone/AnyRtttl>`_, allowing asynchronous handling of the command. This has the advantage of being non-blocking, allowing ESPEasy to handle other tasks while the tune is being played, but comes with the disadvantage of the output possibly being interrupted/delayed by other (possibly blocking) tasks and events, so the music may not play continuously.

Also, the previous implementation may not have stopped sound correctly after playing a song, but as this has been corrected, so there is no longer a need to turn off the GPIO after playing a song.
"
Loading

0 comments on commit be6ea83

Please sign in to comment.