-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new webcam driver over latest dev. #19280
Conversation
see #19015 for info on the previous PR. The cam ran on that PR for 28 days (and is still running on that). This PR is the exact same driver, pasted on top of current dev. I have not done extensive testiing on latest dev.... @gemu2015 - I would appreciate your thoughts and feedback, as the originator of the original driver, and a great inspiraiton. I beleive I've solved some of the underlying issues with some boards (lack of reset line), but also made signifiant improvement in reliability by accessing stuff only from one place. Also, I hope it still fully supports your Scripts based stuff - but now does support Berry, with a few extra features for reading poictures, etc. directly which will enable use with possible current/future AI technologies, as well as sending images to remote locations (e.g. google drive, or ftp). Happy to discuss any time. |
i am busy with other things, but made a short check with my s3cam.
have to check in more detail what is wrong, but will take some time |
thankyou @gemu2015 - I will fix the compilation thing with RTSP disabled tonight, and re-check and post my user config. |
now also compiled for esp32 cam and it works with and without script. |
hmm.. it could be that by putting the cam in a separate core/thread, it's starving the i2s audio processing. Certainly, the cam does run 'as fast as it can' - e.g. at max framerate if not transferring the video anywhere. |
@gemu2015 - I just ordered the required audio modules (I hope they are right). |
does not seem to be related to i2s however. disabled all audio code and got the result below
|
Yep, it uses rom based jpg routines - so some of my modified conversion routines may not 'fit' (but should not be run in the above log). 1/ would you be happy with a br, Simon Edit: I took the plunge and bought this one: https://www.amazon.co.uk/gp/product/B0BMQ8F7FN/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1 |
check pin_pwdn before using it n 0x105!!!
fixed without RTSP build, and a small change around us of pin_pwdn (like, don't use it if it's not configured...). |
@gemu2015 - do I need some special config for it to find layer3.h when USE_SHINE is enabled for audio? |
@btsimonh Audio Bridge does not require MP3, it uses binary streaming over UDP (bidirectional, half duplex). |
I'm thinking my first usecase for audio would be just bringing it to the web interface - seems this is supported, but uses the mp3 encoder :(. I'll try again with a full clean & build, and if that fails, examine the build files in more detail (complete rebuild really stresses my 10 yr old 8gb i7). My second use case MAY be to look at streaming the audio with the video over RTSP, but that's much more involved, coordinating the video and audio, capturing the timestamps, and modifying the rtsp library for the muxing. New toys should arrive later today. |
Video with audio would be very cool. i was working on a door station with bidirectional audio which works very well with audio. i postponed this now and leave it to other folks. |
#define USE_WEBCAM remark: |
@gemu2015 - what board do you build for S3? Seems if I just build S3, I get no PSRAM, but if I build tasmota32s3-qio_opi-all I get lgvl.h errors from scirpter. Now trying a modified tasmota32s3-qio_opi-all.... I have it 'working' but seems wifi and cam interfere, but maybe because no PSRAM. |
…ng to 'disbale cam' value (15).
fixes put in place such that S3 does not crash on startup.
to get PSRAM running. |
@gemu2015 - your opinion on S3 webserving timings appreciated. Edit: I have reproduced your exact mediation error - investigating. The reason there is no backtrace is because it's at task destruction. |
@gemu2015 - pls try again. |
@btsimonh according to wifi issues keep in mind that the cam clock line is a severe source of interference with the wifi signal. all my cam problems i had also with esp32 cams came from that line (provided a stable power supply) i also have had wifi issues with my rgb display (sunton) also from interference with high speed display clock. i had to adjust display clock to minimize this effect. |
tried wcclock 10, and initial results are good. at the default of 20, i was gettgin twice the framerate I expected (50 at low res?), so maybe the s3 somehow runs the clock line faster.... will report on stability now. |
note. wcclock 11 or 12 gives better results than wcclock 10. So I guess 10mhz is bad... and detuning it is better. (1-200 ms web response at 10, 30ms resonse at 11.) For my hardware ... and wifi interaction :( 11-> not great (14/27fps). edit: testing more values this morning. |
@arendst - I'm pretty happy with this now. It's fine on S3 - with the caveat that my board's clock line is very noisy as the observations above indicate. Over the coming weeks, I'll look at an autoconf for my specific board; I beleive that autoconf runs some berry at startup, and so could pre-configure the clock. I have concerns over the webcam driver as a whole - but they apply to both new and old. e.g. if there is no pin config, it will default to something close to the AIThinker board, and this could in theory prevent full boot. I think it would be better in the absence of pin config to not try to start the camera hardware. It may also be better to have a default wcclock which is detuned from 20mhz, since 20mhz seems to be a bad one for wifi interferance. But ALL sample code has 20mhz.... so maybe that's the recommended for the cameras. The new driver does allow One thing of general note for ESP32 (maybe only S3?) was that one issue I discovered was that an addLog() very close to a task ending caused a guru mediation (invalid access). I added an (excessive) delay after the addLog(), and never saw the issue again. This may have implications for other use of tasks on TAS. It appears that addLog within a running task is fine - it's just if that class terminates very shortly after the addLog. I looked at the logging source, and could not see anything obvious, but it's as though we're keeping a pointer to task memory, and using it after addLog returns (i.e. in this case task termination). br, Simon |
p.s. I did not experiment with audio as well yet. It will be a few months before I can get to play with those new toys... |
@btsimonh are you calling addLog in your camera thread? |
@barbudor - addLog is protected by a mutex in ESP32, so should be safe. It's been heavily tested in BLE some years ago, but maybe not this specific circumstance of a thread ending. |
My 2 cents. The standard Webcam driver setup should only include the Webcam feature. |
@Jason2866 - I could re-work again to slim down, disable motion, but I'd like to leave the TAS commands for picture saving/reading jpeg in for Berry use. What I'd have in mind is:1/ Add I do not anticipate any major feature changes, except for the motion being optional. But... I'll be out of action for about a month from wed (holiday then business), so it's not going to be quick, unless I had help. I would guess that the revision could be available in 8-12 weeks, or 16 weeks to include some further long-period tests. So we have three options ref this PR:1/ put on hold and anticipate a future update. I'm happy with any of the above, although getting feedback on performance and features would be nice. Size comparison:(expand to understand @Jason2866 's valid concerns). Build Size comparisonBases on building WITHOUT scripts (since with scripts includes motion code linking...). DRAM increases by 172 bytes. 'new' driver:
'old' driver:
V2 driver with motion features removed: Used static DRAM: 53548 bytes ( 71032 remain, 43.0% used) |
As it's esp32 it's not so much the size increase but the possible lack of complete compatibility with the current driver. For me I feel you tend to go a long way to add features you need while losing the compatible and possibly legacy functionality. I suggest to keep your driver as a V2 version for users feeling comfortable to use it while keeping the current driver for all current users feeling comfortable with it's current performance. |
@arendst - I agree with you. In this case I strived to retain every existing feature, but it's not possible to test them all without help, and for those from whom I need the help most, time is a precious comodity. |
I did an hour of work to separate the motion features, and (see sizes added to above) there is a significant saving (8k reduction of flash compared to release driver. 11k reduction of DRAM compared to release driver), even over the original driver. I did not try to run it yet, but it builds fine with and without motion. I suggest this is a worthwhile effort regardless of which is default. Let me test a little, and if it's the same as the PR for normal and S3, I'll update as above, but also with the separation (separate .ino file for motion, so making it simpler as well). |
…ion of motion code (big hit). Change from using USE_WEBCAM_LEGACY to USE_WEBCAM_V2
All done.
to enable and enable all features. |
Fine for me now 👍 Like the performance gain! |
@Jason2866 - thankyou for running it up. I believe that my S3 board is hardware compromised (Freenove - I'll report to them at some point, they seem quite responsive. I got s/n 85, so it's a fairly new board for them). They ran XCLK all around the houses. At some point I'll remove the pin on that GPIO to reduce the stub. Edit: |
I installed the new development snapshot and it works really decently... I did not test any of the motion features, but from what I saw so far it is soooooooo more stable and faster compared to the other version - amazing... PS: just a thought, because the question about the potential applications came. up. I'm using multiple of those cams in a PTZ fashion, driving the 2 servos through berry like this. The real problem I have is that it is hard to get control buttons right into the Tasmota interface - did not find an easy way to do so yet... |
@belveder79 - using Berry, you should be able to serve a simple html webpage from the SD card or flash. This would then allow you to create a page dedicated to the PTZ control, rather than use the webui as a basis. |
@btsimonh very cool, will check out... thx |
* Berry `var` allowed in with walrus operator `:=` (arendst#19018) * Berry `var` allowed in with walrus operator `:=` * fix regression * Revert "Berry `var` allowed in with walrus operator `:=` (arendst#19018)" (arendst#19019) This reverts commit 8f06552. * Implement deepsleep(0) Implement deepsleep(0) as command ``restart 9`` (arendst#19024) * Update change logs * Partition Wizard is now able to convert to safeboot from Shelly partition layout (arendst#19034) * Update changelogs * Hot fix for gitpod and CI (pio core v6.1.8 is faulty) (arendst#19044) * Use pio v6.1.7 * Accelerate path.listdir() (arendst#18927) * Accelerate path.listdir() * restore old behavior, push filename only and not the full path to the list * Revert "Hot fix for gitpod and CI (pio core v6.1.8 is faulty) (arendst#19044)" (arendst#19051) This reverts commit c4f899a. * Create GC9A01_display.ini (arendst#19043) * Fix to Partition_Wizard for shelly (arendst#19056) * Fix BUG: Zigbee devices cannot be added through routing nodes (arendst#19036) * `BrRestart` now supports web handlers to work after Berry restart (arendst#19057) * ESP32 LVGL library from v8.3.7 to v8.3.8 (no functional change) (arendst#19058) * ESP32 LVGL library from v8.3.7 to v8.3.8 (no functional change) * Update changelog * Matter increase logs in save_fabrics (arendst#19060) * Enhance ZC-Dimmer for falling and leading edge dimmer (arendst#19054) * Update tasmota_types.h * Update xdrv_68_zerocrossDimmer.ino * fix modbus-tcp, add U32,U64 etc (arendst#19063) * Berry added `getgbl` performance counter to `debug.counters()` (arendst#19070) * Berry add `getgbl` counter * Berry added `getgbl` performance counter to `debug.counters()` * Matter fix bug when saving Force Static endpoints (arendst#19071) * Matter improve latency for remote commands (arendst#19072) * Matter increase logs when storing sessions (arendst#19073) * Enable ESP32 shutter driver Enable ESP32 shutter driver (arendst#18295) * Bump version v13.0.0.2 Update changelogs * Set ESP32-C3 max supported ADC channels to 5 * Matter add mini-profiler (arendst#19075) * Update changelogs * Update decode-status.py to synchronize SetOption154/155 (arendst#19078) I noticed that the translation for SetOption154/155 bits did not match tasmota_types.h: https://github.com/arendst/Tasmota/blob/development/tasmota/include/tasmota_types.h#L190-L191 * Matter fix session not being removed from memory (arendst#19081) * Matter fix session not being removed from memory * Fix * File UI changes (arendst#19014) * Remove recursion into folders on Manage Files. May be enabled with UFILESYS_RECURSEFOLDERS_GUI. On Edit of a file, Save and Magane btuttons return to the folder containgint the file being edited. On delete file, UI returns to the folder that the deleted file was in. * Make newfile put in in the current folder, and return to current folder on save of manage button. * Add folderOnly and FileOnly functions to reduce code duplication. Enable folder delete. Enable folder listing to be aborted (x in browser) Disbale ESP32 Download Task. Needs attention. Allow folder create from newfile name. * Configuration file save and restore .xdrvsetXXX Configuration file save and restore now backup and restore ``.xdrvsetXXX`` files too (arendst#18295) * Berry `_class` can be used in `static var` initialization code (arendst#19088) * Verify correct functionality * Update changelogs * Berry minor fixes from upstream (arendst#19091) * Fix driver config restore * Fix driver config backup and restore Fix driver config backup and restore (arendst#18295) * Fix possible buffer overflow * Zero-Cross Dimmer fixes (arendst#19109) * Fix Zero-Cross flickering on Savedata * Fix reboot on DIMMER usage with Zero-Cross * Fix Flickering on dimmer 0 * Berry add `energy.update_total()` to call `EnergyUpdateTotal()` from energy driver (arendst#19117) * Sync with Berry upstream (arendst#19119) * Berry extend `range(lower, upper, incr)` to arbitrary increment (arendst#19120) * Update Berry windows exe to latest (arendst#19121) * Berry updated syntax highlighting plugin for VSCode (arendst#19123) * Berry check arguments for `range()` (arendst#19124) * Berry fix syntax highlighting for escaped chars (arendst#19126) * Fix typo * Berry update grammar (arendst#19129) * More user-friendly defaults for DisplayMode and DisplayDimmer (arendst#19138) Changing default for DisplayMode from 1 to 0. Users are getting confused by the display doing something they did not ask for (and not being aware of DisplayMode). This got worse with LVGL/HASPmota displays becoming common, with users having much less reason to dive into the old DisplayXxxxx commands. And it may even be hard to see that it is even a display of time/date causing the display to flicker. Changing default for DisplayDimmer from 10% to 50%. The low brightness of 10% is not always easy to see, especially in daylight. 50% is generally better, while not going "full blast" with 100%. * Berry add metrics for memory allocation/deallocation/reallocation (arendst#19150) * Zigbee DIYRuZ_Geiger (arendst#19151) * Berry `tasmota.loglevel()` and `tasmota.rtc_utc()` for faster performance (arendst#19152) * Berry add AES CCM decrypting in a single call to avoid any object allocation (arendst#19153) * New DEEPSLEEP topic for HA + Battery Level % support (arendst#19134) * New LWT on deepsleep To allow better integration into HA LWT topic will report details of sleep status: 16:54:04.388 MQT: hm/tele/ESP_3284D1/LWT = {"Sleep":{"Time":"2023-07-17T16:55:03","Sleep":1689612844,"Wakeup":1689612903}} * Revert LWT back to non JSON Send DeelSleep on LWT Send Deepsleep parameters on topic DeepSleep * Setting default for batteryLevel * Enable BatteryPercentSet Changing the battery level e.g. by rule * Added Battery % to status message * added battery_level_percent * Added battery % support in STATE message * Enable setting battery level 101 is reserved for power-plug. No battery Level reported * Setting default for battery Level 101 is reserved for power plug 0..100 normal battery values * Revert back LWT to Offline Removed "DeepSleep" LWT status until further decision is made. Current implementation is technical sufficient for HA to detect a battery powered device * Added discovery message after deepsleep change * Added discovery for battery and deepsleep * Matter latency improvement for single attribute reads and single commands (arendst#19158) * Solidified Code updated * Fix default battery level - Fix default battery level (arendst#19160) - Bump version to v13.0.0.3 * Update changelogs * Fix compilation (arendst#19134) * MAX17043 sensor integration (arendst#18788) * Restart MAX17043 from the scratch * revert change * Changed battery capacity in charge (capacity is the Ah value of the battery, this degrades over time when battery ages) * merge * Changing xsns_109 to 110 * fix nr * removed old xsns109 * Update I2CDEVICES.md * clean-up usage of Interface * Update change logs * Berry SK6812_GRBW crash (arendst#19166) * Update italian language (arendst#19169) * changing reference to xsns109 (arendst#19170) * fix empty line problem (arendst#19171) * Update de_DE.h * Refactor MAX17043 driver * Refactor MAX17043 driver Refactor MAX17043 driver optional enable library (default off providing smaller footprint (-250 bytes) * Add alternative for PCA9685 Add alternative for PCA9685 as define PCA9685_V2 (arendst#18805) * Update changelogs * Core 2.0.11 (arendst#19181) * Update changelogs * Berry `mqtt.publish` now distinguishes between `string` and `bytes` (arendst#19196) * Berry improve tasmota.scale_uint() (arendst#19197) * Make TCPStart ip filter more IPv6 friendly (arendst#19199) * IRremoteESP8266 library from v2.8.5 to v2.8.6 (arendst#19212) * ensure minimum interrupt time (arendst#19211) prevent interrupts <30 micro seconds because sometimes see crashes on esp8266. esp32 stop of interrupt >30microseconds and < 105microseconds * Zigbee decode Aqara 0000/FF01 attribute 03 as Temperature (arendst#19210) * Zigbee decode Aqara 0000/FF01 attribute 03 as Temperature * Changed to AqaraTemperature * Four files which used #ifdef EPS8266 instead of #ifdef ESP8266 - which e.g. broke the MFRC522 functionality between 12.5 and 13.x. (arendst#19209) * Auto detect flash size and adjust FS (arendst#349) (arendst#19215) * Reduced log level for TeleInfo (arendst#19216) * unsigned overflow fixed (arendst#19221) fixed overflow on negative value with dimmer 100% * Fix fabric saving exception (arendst#19224) * Berry bytes `get` and `set` work for 3 bytes values (arendst#19225) * Berry bytes `get` and `set` work for 3 bytes values * Fix error message * fix 4MB PIO script upload regression * Matter increased polling frequency for local switches/occupancy (arendst#19242) * Fade would fail when the difference between start and target would be too small (arendst#19246) * Matter support for fabric_filtered request (for Google compatibility) (arendst#19249) * Update changelogs * Integrate MAX17043 driver mechanisms in xsns_110 (arendst#19219) * Fixing SHUTTERINVERT issues (arendst#19243) * fix wrong inverted shutter * fix inverted shutter for esp32 * Update changelogs * Matter support for large atribute responses (arendst#19252) Support for responses (arrays) that do not fit in a single UDP packer Do not remove children fabrics * Matter fix auto-configuration Relay indices (arendst#19255) * Update changelogs * Change console height Change console height from default 318 pixels to viewport (arendst#19241) * Save some more code bytes * add wifitest3 (arendst#19259) * Zigbee Berry minor fix and cleaning (arendst#19257) * Zigbee Berry minor fix and cleaning * Fix compilation * Fix compilation when IPv6 is not supported (arendst#19260) * Fix console min height * Fix console Firefox layout * Change shutterbutton hold behavior with grouptopic (arendst#19263) * skip stop on hold if grouptopic If shutterbutton is defined with a grouptopic send on HOLD, there is no stop on releasing the button. All shutters will move to defined position * do not stop on hold release if group submitt If mqtt broadcast is defined on hold then release the hold button will not anymore stop the local shutter. All shutter will move to defined position * Update ru_RU.h (arendst#19214) * Prepare for Arduino v3 / esp-idf v5 (arendst#19264) * Bump version to v13.0.0.4 * Prepare for Arduino v3 / esp-idf v5 2nd batch (arendst#19265) * Tasmota based on Arduino 3.0.0 (arendst#19270) * more idf5.1 preps: Berry SPI (arendst#19273) * Improvements to thermostat debug output (arendst#19279) * add: update DEBUG_THERMOSTAT to only control the virtual switch Also, debug output is still generated but end user can control this debug level 3 * add: debug output of main controller parameters when thermostat enabled Also, add units for debug outputs added to make them more intelligible * Update xdrv_39_thermostat.ino * add: debug message when sensor is detected as not alive fix: display thermostat number in debug messages * add: log message prefix string for thermostat * Update xdrv_39_thermostat.ino fix: typos in comments add: debug messages * add: debug prefix for thermostat * add: debug prefix added to output lines * fix: comment typos and small grammatical changes for clarity * add: debug prefix 'THE' added to debug output * add section safeboot_flags in platform_tasmota32.ini (arendst#19281) This will make it easier to ignore a bunch of libraries in order to speed up builds without polluting the ENV sections too much. Usage: [env:my_safeboot_env] lib_ignore = ${safeboot_flags.lib_ignore} * use common safeboot flags (arendst#19282) * fix IRAM_ATTR specified both in function declaration and definition (arendst#19286) * Improvements to PID controller driver (arendst#19285) * add: update DEBUG_THERMOSTAT to only control the virtual switch Also, debug output is still generated but end user can control this debug level 3 * add: debug output of main controller parameters when thermostat enabled Also, add units for debug outputs added to make them more intelligible * Update xdrv_39_thermostat.ino * add: debug message when sensor is detected as not alive fix: display thermostat number in debug messages * add: log message prefix string for thermostat * Update xdrv_39_thermostat.ino fix: typos in comments add: debug messages * add: debug prefix for thermostat * add: debug prefix added to output lines * fix: comment typos and small grammatical changes for clarity * add: debug prefix 'THE' added to debug output * add: display PID status and key info on web output * fix: remove extraneous comments that included unused code fragments * add: local sensor handling improvements add: define a local sensor name add: define the local sensor measurement parameter add: limit sensor not seen error message to every 60 seconds to avoid flooding the logs add: include interval since which sensor data was last updated fix: properly update the maximum interval time so missing sensor data is properly alerted * Update xdrv_49_pid.ino * Typo architceture → architecture (arendst#19288) * avoid unnecessary compiling of specific libraries in lib32_div for most builds (arendst#19293) * ESP32: pass flashmode at build time to macro definition (arendst#19299) * pass flashmode at build time to macro definition * fix 8266 builds * fix: properly detect device is offline after maximum misses reached (arendst#19298) * Update changelogs * [DS18x20] Enhance use of aliases (arendst#19026) * [DS18x20] Enhance use of aliases `defineDS18x20_USE_ID_AS_NAME`: Always show part of the address, even for one sensor `#define DS18x20_USE_ID_ALIAS`: The command `DS18Alias` can now be use with alphanumeric aliases, which replace the sensor name * [DS18x20] change to calloc() * fix OneWire for IDF5.1 and C2/C6 (arendst#19303) * fix OneWire for IDF5.1 and C2/C6 * Use Onewire in arduino30 builds * use SOC specific defines for C2,C3 and C6 * Removes software based no load threshold. (arendst#19302) Lowers ADE7953 builtin no load detection threshold to be able to measure 5 watt power levels. * Update changelogs * Creates a place to put the customer boards (arendst#19309) * Add commands to allow setting of timeprop parameters (arendst#19310) * add: commands to set timeprop settings * Update my_user_config.h * fix: properly generated json response to commands * Sync dev with release v13.1 * Update platformio_tasmota32.ini (arendst#19313) * add: shutdown command for PID controller (arendst#19318) * Add variables to rules Add variables ``%power<1..28>%`` and ``%switch<1..28>%`` to rules (arendst#19331) * Update switch comments * fix shutterinvert (arendst#19341) * fix shutterinvert * fix shutterinvert * Update changelogs * Changed display invert setting Changed display invert setting after tasmota start in uDisplay driver (arendst#19337) * add platformio_tasmota_core3_env.ini to gitignore * Remove debug messages (arendst#19365) * Fix compile warning * Phase 1 support C2/C6 * Phase 1 support C2/C6 * Phase 1 support C2/C6 * Phase 1 support C2/C6 * Add new webcam driver over latest dev. (arendst#19280) * Add new webcam driver over latest dev. To use the old one, define USE_WEBCAM_LAGACY * enable build without RTSP. check pin_pwdn before using it n 0x105!!! * more fixes around pwdn. Make wcresolution -1 set the resoltuion setting to 'disbale cam' value (15). * fix task stop - wait for debug to leave-> prevents guru. pin task to core 0. * split motion from other code. Add USE_WEBCAM_MOTION to control inclusion of motion code (big hit). Change from using USE_WEBCAM_LEGACY to USE_WEBCAM_V2 * logging minimisation - behind WEBCAM_DEV_DEBUG * Shutter ESP32 fixes (arendst#19362) * fix esp32 shutter * fix shutterinvert+shutterbutton * Phase 2 support C2/C6 * ignore esp-nimble-cpp (arendst#19369) in core 2.0.11 * Phase 2 support C2/C6 * Fix Core 3 compilation * Fix Core 3 compilation * prepare transition to esp-nimble-cpp (arendst#19370) * Platform ESP32 2023.08.01 (arendst#19371) * Neopixel add SPI driver for C2 and some minor updates (arendst#19372) * fix inverted shutter inconsistencies (arendst#19374) * inverted shutter fix on overflow * fix inverted_shutter > 9 fix on inverted shutter at esp32. fix tilt behavior on inverted shutter * fix tilt behavior on inverted shutter * do not use NimBLE-Arduino for Mi32-legacy (arendst#19375) * Fix compilation * Arduino.3.0: enable Audio libs compile by disabling incompatible I2S driver (arendst#19377) * i2s off for Arduino 3.0 * fix compile of uDisplay with IDF5.x on ESP32S3 (arendst#19378) * Fix idf chip revision * Revert "Fix idf chip revision" This reverts commit e5cb367. * Teleinfo power fix (arendst#19381) * fix power arendst#19244 * cosmetic display * Fix idf chip revision * Fix crash of uDisplay on ESP32S3 with IDF5.1 (arendst#19383) * fix compile of uDisplay with IDF5.x on ESP32S3 * fix crash with uDisplay on S3 with IDF5.1 * Consolidate esp32 hardware info * Finally add ESP32-P4 ;-) * translate label (arendst#19385) * Update change logs * Fix rotary edge cases (arendst#19164) * Fix crash in IRHVAC (arendst#19389) * Update changelogs * Allow ADE7880 user defines (arendst#19391) * Fix IRHVAC crash v2 * Added passive mode for Sen5x sensor (required for Ike@ Vindstyrka) (arendst#19388) * Added a passive mode in sen5x sensor for parasitic installations. This skips reset & initialization of sensor on startup and reduces the polling to every 10 seconds to not interfere with and confuse the other I2C master on the bus, e.g. Ike* Vindstyrka. * Removed obsolete updateCount. Cleanup. * Update decode-status * EnergyMargins - always send MQTT telemetry message (arendst#19397) * Add twilight info to GUI (arendst#19334) * fix and improve pzem_dc (arendst#19402) * enable more driver for Arduino 3.0 * More Arduino 3.0 env * Final change to GUI twilight * Fix xdrv_122_file_settings_demo buffer overflow (arendst#19405) * expected changes for arduino30 (arendst#19421) * Add ESP32-C6 GPIO26/28 in template Add ESP32-C6 GPIO26/28 in template as Red pins used by flash (QIO) but optionally free if DIO/DOUT * Allow display of revision v0.0 * build safeboot bin for C2/C6 (arendst#19422) * build safeboot bin for C2/C6 * add C2/C6 safeboot to CI * Enable core3 env settings before Pio starts * Revert "build safeboot bin for C2/C6 (arendst#19422)" (arendst#19423) This reverts commit f840f51. * Build C2/C6 safeboot firmwares in GH Actions (arendst#19424) * Added compiler option for doubleclick window (arendst#19428) * sorry... (arendst#19429) * Fixed PCF8574 mode 1 - Fixed PCF8574 mode 1 with base relays exception 3/28 regression from v12.4.0.4 (arendst#19408) - Bump version v13.1.0.2 * Support for HDMI CEC protocol (arendst#19434) * Berry fast_loop is now called every 5ms whatever the Sleep value (arendst#19436) * all output parts for I2S and IDF5.1 (arendst#19440) * Update italian language (arendst#19442) * Berry make mdns compatible with non-IPv6 builds (arendst#19444) * Berry move solidified code to C (arendst#19446) * Fix compilation on Arduino 3 (arendst#19447) * Fix compilation on Arduino 3 * Fix compilation * Berry cleaned udp class (arendst#19449) * Berry move mapping from C++ to C (arendst#19450) * Reduce IRAM consumption of HDMI CEC to 1453 bytes (arendst#19452) * Reduce IRAM consumption of HDMI CEC to 1453 bytes * Add changelog * enable IPv6 and Matter (arendst#19456) * Fix migration error to filesystem settings (arendst#19454) * `Sendmail` upgraded to ESP-Mail-Client v3.4.9 from v1.2.0, using BearSSL instead of MbedTLS (arendst#19460) * `Sendmail` upgraded to ESP-Mail-Client v3.4.9 from v1.2.0, using BearSSL instead of MbedTLS * Fix compilation on ESP8266 * Fix compilation * fix compilation * fix shine for gcc12 (arendst#19458) * Enable ESP Mail Client in core 30 (arendst#19461) * Enable multipress events on buttons (arendst#19465) * Update changelogs * Support for IPv6 link-local zones for esp-idf 5.1 (arendst#19469) * cosmetic changes only (arendst#19468) - reorder functions alphabetically - reformat equations for better reading following guidelines - adding comment for understanding * Fix TLS by removing redundant BearSSL code from libmail (arendst#19472) * Fix compilation of IRRemoteESP8266 for core3 (arendst#19473) * Fix typo in berry mqtt (arendst#19477) * Don't reset the MAX17043 battery fuel gauge after waking from Deep Sleep (arendst#19412) * fix: don't reset the device when coming out of deep sleep * fix: move debug log message to inside the device validation * Update xsns_110_max17043.ino * add: update global battery percentage when max17043 reports new value * Matter events phase 1 (arendst#19484) * Zigbee fix warnings with Arduino3 (arendst#19486) * Fix core 2.0.12 exception * Fix possible MQTT disconnect exception * Tasmota ESP32 core 2.0.12 (arendst#19463) * Matter consolidate attributes per cluster (arendst#19493) * Improved parsing of accumulation data from HRG-15 rain sensor (arendst#19485) * fix: more robust parsing of accumulation data * fix: further parsing checks * Update xdrv_29_deepsleep.ino (arendst#19492) * Fix MAX17043 invalid JSON (arendst#19495) * Clean up support command code * Fix ESP8266 compilation (arendst#19485) * Add BL0942 baudrate selection * fix hardware serial port swap on ESP8266 (arendst#19505) * Fix hidden invalid character * Fix invalid character * fix compile errors on exotic windows codepages (arendst#19508) * Fix BL0942 higher baudrates * Add frequency to BL0942 * ESP32 LVGL library from v8.3.8 to v8.3.9 (no functional change) (arendst#19510) * Matter virtual lights (arendst#19511) * Fix ESP32C3 relay click on restart * Fix Arduino3 compilation * Update changelogs * Bump version v13.1.0.3 * Matter support for Virtual Devices controllable via Rules or Berry (arendst#19520) * Fix typo * Solidified Code updated * Update changelogs * fix: add command data to cmnd response (arendst#19524) * Matter add virtual sensors (arendst#19530) * Tasmota Core 2.0.13 (arendst#395) (arendst#19533) Tasmota Core 2.0.13 * Fix IR compilation for ESP32 with Arduino3 (arendst#19537) * Update RELEASENOTES.md * Preps for IDF5.1: microphone/input for i2s audio (arendst#19544) * fix codec compilation on IDF5.1 (arendst#19546) * I2S improvements to MP3 play (arendst#19547) * Fix DS18B20 for ESP32 with over 33 gpios * Update changelogs --------- Co-authored-by: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Co-authored-by: Theo Arends <11044339+arendst@users.noreply.github.com> Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com> Co-authored-by: Christian Baars <Baars@gmx.de> Co-authored-by: MIzzzzon <MIzzzzon@users.noreply.github.com> Co-authored-by: xsp1989 <xsp1989@126.com> Co-authored-by: stefanbode <stefan_bode@web.de> Co-authored-by: gemu <gmutz2010@googlemail.com> Co-authored-by: sfromis <47082390+sfromis@users.noreply.github.com> Co-authored-by: btsimonh <simon@yellaumbrella.tv> Co-authored-by: s-hadinger <s-hadinger@users.noreply.github.com> Co-authored-by: Vincent de Groot <53112521+Vincent1964@users.noreply.github.com> Co-authored-by: bovirus <1262554+bovirus@users.noreply.github.com> Co-authored-by: msedv <lists@msedv.at> Co-authored-by: Christian Baars <baars@klinikum-brandenburg.de> Co-authored-by: usr44 <140394475+usr44@users.noreply.github.com> Co-authored-by: Paul Blacknell <blacknell@users.noreply.github.com> Co-authored-by: Дилян Палаузов <dpa-github@aegee.org> Co-authored-by: SteWers <42718143+SteWers@users.noreply.github.com> Co-authored-by: paulusbrand <75862178+paulusbrand@users.noreply.github.com> Co-authored-by: Martin <79449686+marsman7@users.noreply.github.com> Co-authored-by: Charles <hallard04@free.fr> Co-authored-by: Andre H. Beckedorf <evilJazz@users.noreply.github.com> Co-authored-by: Barbudor <barbudor@barbudor.net> Co-authored-by: Norbert Richter <norbert.richter@prsolution.eu> Co-authored-by: blakadder <blakadder@users.noreply.github.com>
Description:
To use the old one, define USE_WEBCAM_LEGACY
This is a re-submisison of the webcam PR, with the implementation of it changed to by default replace the old one, making this PR generate a directly testable and usable binary.
Runs all camera stuff from a task.
Never fails at startup on my (very bad) esp32cam board.
Enables motion detect, Timelapse, direct image saving etc. from Berry scripts and as TAS commands.
Increased reliability. Increased flexibility.
Documented here: https://github.com/btsimonh/TasmotaBerryPLay/blob/master/tasdocs/esp32cam.md
Example Timelapse and Motion here (needs more description, but works very well. Can use staticfileserving from the other PR to provide direct viewing and download of complete image sets.
Should work with Scripts, but not tested for a while (@gemu2015 ?).
Checklist:
Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass