Commit Graph

523 Commits

Author SHA1 Message Date
Theo Arends 2529759974 Prep energy for four+ phase support 2023-01-25 17:05:48 +01:00
Barbudor 973e4693c2
possibly fix sleep problem (#17786) 2023-01-25 08:36:14 +01:00
Theo Arends e891830545 Prep ESP32 energy 2023-01-24 16:54:03 +01:00
Theo Arends e81d59f658 Fix Shelly Pro 4PM initial button state 2023-01-24 16:34:24 +01:00
Theo Arends ecac466e23 Fix Shelly Pro 4PM power on reset 2023-01-24 12:04:30 +01:00
Barbudor 95dee75b0b
use dB value, not quality (#17777) 2023-01-24 08:55:44 +01:00
David Gwynne 1c39ff6cef
add tuyamcubr_web_sensor to do a simple display of the dp values. (#17776)
the format shows the type+dpid on the left hand side (eg, Bool1,
Value2, Enum3, etc), and the value with %u on the right hand side.
2023-01-24 08:55:28 +01:00
David Gwynne 36fd8358d6
TuyaMCUBr: support on/true/off/false/toggle in the tuyamcubool command. (#17775)
* support on/true/off/false/toggle in the tuyamcubool command.

i wanted a tasmotized wall switch to be able to blindly send "toggle" to
a fan/light and have it do the right thing. the dp value is kept by the
driver, so it can easily read, modify, and write it.

* "on"/"off"/"toggle" etc are parsed when XdrvMailbox is set up

so i don't have to do it, i just have to use the payload.
2023-01-24 08:54:19 +01:00
Barbudor db0532de5f
ds3231 temperature sensor (#17778) 2023-01-24 08:52:43 +01:00
Theo Arends 4297fa3f3e Add Shelly Pro 4 input interrupt support 2023-01-23 12:51:02 +01:00
Theo Arends 88dd5f7f50 Fix Shelly Pro 4PM auto reset 2023-01-22 16:41:25 +01:00
yvesdm3000 3f73d5a49d
Implement Zigbee tuya_time sync. (#17765) 2023-01-22 11:50:52 +01:00
gemu d38a0c799c
Epaper deep sleep support (#17766)
* allow descriptor reload

* restart reason rrsn, database rewrite

* support for deep sleep

* revert

* restart reason
2023-01-22 10:56:06 +01:00
Theo Arends c85003c67d Prep Shelly Pro 4PM 2023-01-21 14:30:35 +01:00
s-hadinger 0743b7d2b6
Berry add up flag to ``tasmota.wifi()`` and ``tasmota.eth()``, always return MAC (#17759) 2023-01-21 13:41:36 +01:00
Benjamin Nestler 498b0e55b8
Add tuya commands CMD_GET_NETWORK_STATUS and CMD_TEST_WIFI (#17745)
* Add tuya commands CMD_GET_NETWORK_STATUS  and CMD_TEST_WIFI

* Assuming that nobody uses the tuya test wifi ssid, the payload is hardcoded.
2023-01-20 13:20:03 +01:00
Jason2866 6b4171fef9
Shelly has label `fs_1` for spiffs (#17753)
* Shelly has label `fs_1` for spiffs
2023-01-20 13:19:38 +01:00
David Gwynne 51866026d5
TuyaMCUBr: Handle "Get local time" requests from the MCU (#17750)
* handle get local time requests from the MCU.

from what i can tell from the tuya serial communication protocol
documentation, we only have to send the time if MCU requests it. this is
unlike how TUYA_SET_TIME is implementing in xdrv_16, where if
USE_TUYA_TIME is enabled it will send unsolicited time updates every
minute as well as in response to a request from the MCU.

i couldn't find an easy to check flag to see if tasmota was synced to a
real clock, so this blindly tells the MCU that our time is valid and
copies it over, the same as xdrv_16.

the tuya doco also describes a "Get system time in GMT" request and
response structure which would be mostly a copy of this code if i knew
if and where tasmota keeps track of UTC/GMT.

lastly, i'm not convinced RtcTime.day_of_week is right. it's friday
here which should be 6 if you start counting sunday as 1, but i read 2

* local time sync is implemented, but not gmtime
2023-01-20 10:07:42 +01:00
s-hadinger 61be95841f
Berry crypto.EC_P256 ECDSA signature ASN.1 (#17740) 2023-01-18 20:50:01 +01:00
Barbudor d904e0aa7f
Tuya - WIFI_STRENGTH + Save check on MCU_CONF (#17724)
* adding response to command 36 Get Wifi Strength

* more logs

* poperly check and warn if Mode 2 provide bad GPIOs

* final test on gpio
2023-01-17 04:46:00 +01:00
s-hadinger 457f706d17
Berry ``crypto.EC_P256`` ECDSA signature (required by Matter protocol) (#17723) 2023-01-16 21:48:28 +01:00
Barbudor 2d1d49504b
fix free() too early (#17710) 2023-01-15 16:20:35 +01:00
Theo Arends e0b17af307 Fix first sensor in case GlobalTemp is set wrong
Fix first of two sensors in case GlobalTemp is set wrong (#17694)
2023-01-14 16:11:08 +01:00
Theo Arends f71465a182 Repurpose SO39 for import active bandwidth
Repurpose SO39 for import active bandwidth (#17659)
2023-01-14 15:39:54 +01:00
Theo Arends 6c04cf7076 Update xdrv_122_file_settings_demo.ino 2023-01-13 17:19:46 +01:00
Theo Arends 13c16fd37b Fix xdrv_122_file_settings_demo (#17692) 2023-01-13 17:19:14 +01:00
Theo Arends 1a9e86a6b3 Fix ESP32 safeboot propagating upload 2023-01-13 11:30:30 +01:00
Theo Arends 9f8c8efac1 Delete .xdrv_65_tuyamcubr.ino.swp 2023-01-08 17:37:23 +01:00
David Gwynne 17d68750d9
WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver (#17626)
* WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver

The main difference is this driver does not try and wire MCU data points
(Dps) into the tasmota power/light/etc controls. Instead each Dp ends up
being relayed directly to MQTT and the rules subsystem. If you want to
change the state of something wired up to the MCU, you send tuyamcu
specific commands to manipulate the Dp.

Each Dp gets a type and id specific topic that is sent to MQTT. eg, Dp
id 1 type bool looks like tele/%topic%/TUYAMCUBOOL1. To change state you
send a TuyaMCUBool1 command (ie, the command index value is used as the
DpId, which is nice and symmetrical) with the new value.

Currently Rules operate on TuyaMCU#TypeDpid things, eg, "rule1 on
TuyaMCU#Bool1 do power %value% endon" toggle the power on the tasmota
device when the state of the thing on the MCU changes too.

The most obviously missing stuff at the moment is:

- better relaying of the wifi/mqtt status to the MCU
- handling wifi reset requests from the MCU
- low power stuff?
- support for sending status updates and device info queries.
- restarting the tuya mcu state machine?
- restarting the rx state machine when no bytes are rxed for a period of
  time
- time sync

* shorten the log prefix to TYB (3 chars).

requested by arendst

* use the local definition for the SET_DP command.

reaching back to the existing tuyamcu code isnt reliable.

pointed out by arendst

* put the todo list in the code so it can be tracked

* check the wifi/mqtt state every second and update the mcu if it changes.

* fix rule processing when Dp state is changed from a cmnd.

rule processing was done as part of publishing the state, but publishing
the state when it was updated by a command only happened if So59 was
set. split rule processing out of publish and call them separately as
needed.

publish is now called from teleperiod, status updates from the MCU,
and from cmnds if so59 is set. rules are called from status updates from
the MCU and from cmnds.

Co-authored-by: David Gwynne <dlg@defeat.lan.animata.net>
2023-01-08 17:35:45 +01:00
Theo Arends 12d7651758 Fix shutter JSON responses 2023-01-08 14:35:09 +01:00
Theo Arends 95690ab1b9 Add recursive rule MQTT subscribe support (#16943) 2023-01-07 17:31:10 +01:00
Theo Arends dad059737d Change PID temperature update (#17636) 2023-01-07 16:11:30 +01:00
Theo Arends 2e7496a052 Keep webserver enabled on command ``upload`` 2023-01-07 15:37:52 +01:00
Theo Arends 0b3c237627 Change strtod() into CharToFloat() saving 8k code
Change strtod() into CharToFloat() saving 8k code
2023-01-06 15:28:44 +01:00
Theo Arends af733afbe5 Fix PID-Control parameter destruction
Fix PID-Control parameter destruction and replace all atof() by CharToFloat() saving 8k code size (#17618)
2023-01-06 14:58:19 +01:00
s-hadinger 33d6dbed3d
No IP address shown when in AP moode (#17599) (#17619) 2023-01-06 14:03:16 +01:00
Theo Arends 8275cb776e Fix rule mqtt subscribe payload size
Increase rule event buffer from 100 to 256 characters (#16943)
2023-01-05 15:02:55 +01:00
Jason2866 6b5f0e4e7c
Prepare support for JL1101 PHY (#17607) 2023-01-05 13:04:06 +01:00
Theo Arends cd182a5814 Add TfsLoadString() 2023-01-04 12:00:09 +01:00
s-hadinger d59caa7203
Berry ``crypto.AES_CCM`` (required by Matter protocol) (#17586) 2023-01-03 20:26:46 +01:00
gemu 82ed5f0d06
Modbus section (#17583)
* modbus section

* Update xnrg_29_modbus.ino

* Update xnrg_29_modbus.ino

* Update xnrg_29_modbus.ino
2023-01-03 17:41:37 +01:00
Theo Arends 3810b78ef8 Add energy var update at power on next day 2023-01-03 12:24:34 +01:00
s-hadinger dfc01cd3a4
Fix crash when getting IP address (#17576) 2023-01-03 09:33:31 +01:00
Theo Arends 555b434361 Fix Energy single column values 2023-01-02 17:48:51 +01:00
Theo Arends 14ee8decf7 Update changelogs
Add support for PCA9632 4-channel 8-bit PWM driver as light driver by Pascal Heinrich (#17557)
2023-01-01 14:29:41 +01:00
kaedwen 25b4040283
Light driver for PCA9632 (#17557)
* added PCA9632 driver

* compiling

* added BUILD and DEVICES section

* added PCA9632 module

* use I2C_SDA/SCL

* light driver working

* bulk write and pin mapping

* remove debugging

* remove debugging

* adjust comments

Co-authored-by: Pascal Heinrich <kaedwen@heinrich.blue>
2023-01-01 14:02:22 +01:00
Theo Arends c63919d783 Change Energy totals max supported value
- Change Energy totals max supported value from +/-21474.83647 to +/-2147483.647 kWh
- Bump version to v12.3.1.3
2023-01-01 11:32:30 +01:00
gemu ca82877362
fix multiple subscribes (#17567) 2023-01-01 09:54:17 +01:00
Theo Arends 20a50ffc2e Revert Tuya rewrite
- Update changelogs
2022-12-31 16:08:59 +01:00
Theo Arends 587e8299d6 Add debugging info to modbus.ino 2022-12-30 16:56:36 +01:00
gemu 22803e3e3d
Sml update (#17541)
* fix sysvarsbug, update sml

* major rewrite
2022-12-30 08:41:54 +01:00
Barbudor 99d33e3023
PCF8574 Overridable address ranges (#17539)
* pcf8574 overridable address ranges

* fix comment

* better test on USE_MCP230xx

* missing change
2022-12-29 21:55:28 +01:00
s-hadinger ef4138bdaa
Support for IPv6 only networks on Ethernet (not yet Wifi) (#17527) 2022-12-27 21:59:34 +01:00
s-hadinger 1ae8b381ba
Fix warnings when compiling Zigbee (#17524) 2022-12-27 20:55:51 +01:00
Barbudor bd4fe78775
fix typo (#17511) 2022-12-27 12:07:37 +01:00
Barbudor 4a47514a25
PCF8574 input pin initialization fix (#17499)
* step1 - quick test patch

* mistake, pullup should be disabled

* 2nd test version

* refactoring

* final
2022-12-23 21:17:24 +01:00
Jason2866 9f23151f78
Fix tasmota32-zbbrdgpro compile with core 2.0.6 (#17496)
* Fix tasmota32-zbbrdgpro compile with core 2.0.6

* only ESP32
2022-12-23 20:03:58 +01:00
s-hadinger f5f7ff4fb8
Minor changes to Berry crypto (#17494) 2022-12-23 18:31:19 +01:00
stefanbode 0c588f2ff4
better fix on init (#17488)
try to avoid get  5000 if the init value is 65535. More focus on setting the standard of 500 on nearly any case
2022-12-23 09:53:10 +01:00
s-hadinger 42e3862970
Berry hkdf (#17487)
* Berry crypto add `HKDF_HMAC_SHA256`

* add HKDF option
2022-12-22 22:39:06 +01:00
s-hadinger 970e36f44d
Berry crypto add ``random`` to generate series of random bytes (#17482) 2022-12-22 18:57:20 +01:00
stefanbode 3c1531bf1c
shuttermotorstop init value, new max 5000 (#17484)
new max value (5 seconds)
shuttertilt logic check (avoid Theo's indefinite running shutter)
2022-12-22 17:02:01 +01:00
Theo Arends b3f12476cc Remove debug logging 2022-12-22 16:09:41 +01:00
s-hadinger f06c07996c
Berry crypto add ``EC_P256`` and ``PBKDF2_HMAC_SHA256`` algorithms required by Matter protocol (#17473) 2022-12-22 10:09:13 +01:00
Theo Arends b2d3921778 Fix shutter logging 2022-12-21 15:26:42 +01:00
s-hadinger d670f476ba
Berry add crypto AES_CTR, HDMAC_SHA256, MD5 (#17451) 2022-12-19 22:30:54 +01:00
stefanbode 59fc09acc4
Fix on init procedure (#17447)
* fix output

* Avoid wrong init parameter

#17403
2022-12-19 20:31:02 +01:00
gemu 1cdd5c3f08
Udisplay support for rgb displays (#17414)
* add gt911

* add rgb display mode

* add gt911

* add gt911

* add gt911

* add sunton descriptor

* fix divide by zero crash with sunton
2022-12-18 14:06:04 +01:00
s-hadinger 30ace5a3f3
Berry support for `crypto.SHA256` (#17430) 2022-12-17 23:38:57 +01:00
s-hadinger 9abe7b1af9
Support for IPv6 DNS records (AAAA) and IPv6 ``Ping`` for ESP32 and ESP8266 (#17417) 2022-12-17 10:08:35 +01:00
sedderz 72c9bca4d3
ArtNet DMX - Added RGBWW support for single lights (#17398)
* ArtNet DMX - Added RGBWW support for single lights

* ArtNet DMX - Fix offset for single light

Co-authored-by: sedgi <james@jsedgwick.com>
2022-12-16 17:30:59 +01:00
s-hadinger f8b56e1058
Zigbee fix crash on ESP8266 #17397 (#17405) 2022-12-15 22:52:19 +01:00
stefanbode 2902c93b29
functionality upgrade (#17380)
* functionality update see below:

- added shutterxxx0 command to change all shutters in parallel. Similar to power0 command
- added flexible ShutterMotorstop time to control the time between one relay OFF and the next ON. Now not blocking anymore other operations
- fix recent bug "shuttermode x" not working anymore
- changed autoconfig behavior to avoid SHORT CIRCUIT on missing interlock setting or wrong shuttermode

* Adding motorstop time for shutters

* Adding motorstop command for shutters

* func update

- added shutterxxx0 command to change all shutters in parallel. Similar to power0 command
- added flexible ShutterMotorstop time to control the time between one relay OFF and the next ON. Now not blocking anymore other operations
- fix recent bug "shuttermode x" not working anymore
- changed autoconfig behavior to avoid SHORT CIRCUIT on missing interlock setting or wrong shuttermode

* typo fix

* regression fix on "shutterposition stopclose"

* fix mulithread timing issue
2022-12-14 11:25:41 +01:00
s-hadinger ce0a0d05a9
MQTT now uses Tasmota's DNS resolver instead of LWIP (#17387) 2022-12-13 21:46:20 +01:00
s-hadinger 0a57545e11
Berry tcpclient uses Tasmota resolver (#17386) 2022-12-13 21:41:20 +01:00
s-hadinger b1fca09ad2
Ping use ip_addr_t (#17385)
* Ping use ip_addr_t

* Fix non-IPv6 compilation
2022-12-13 21:41:12 +01:00
s-hadinger 7e27945e5a
ESP32 fix ``Ping`` (#17373) 2022-12-12 23:07:14 +01:00
Theo Arends 062a2e3a7e Fix RtcNtpServer induced exception on ESP32
Fix RtcNtpServer induced exception on ESP32 (#17338)
2022-12-11 12:19:03 +01:00
Theo Arends 4f70f4d33e
Merge pull request #17342 from stefanbode/shutterdev
Code optimizatons
2022-12-11 10:49:04 +01:00
stefanbode c4bb3366a2
Update xdrv_27_shutter.ino 2022-12-10 23:52:53 +01:00
Stephan Hadinger 32bfd2a27b Berry refactor webclient POST/PUT/PATCH/DELETE 2022-12-10 18:58:42 +01:00
Theo Arends 41d79183f3 Delete xdrv_90_dingtian_relay.ino 2022-12-10 16:56:12 +01:00
Theo Arends 5e23d78bf2 Update credits 2022-12-10 16:55:04 +01:00
Stephan Hadinger 4a32623a51 IPv6 improvements 2022-12-10 13:44:16 +01:00
Theo Arends 1098ec2098
Merge pull request #17184 from fightforlife/development_eb3ble_retries
BLE eQ3 - allow to set retries at runtime
2022-12-09 10:55:18 +01:00
Theo Arends b06a511a44
Merge pull request #17182 from fightforlife/development_eb3ble_hassmode
BLE eQ3 - fix hassmode, idle no longer supported
2022-12-09 10:54:37 +01:00
gemu2015 561f6fd480 fix text escape 2022-12-09 09:32:14 +01:00
Stephan Hadinger 20c8348654 Fix compilation 2022-12-08 19:42:04 +01:00
Stephan Hadinger 2f1b2ec5fd IPv6 support for Ethernet (ESP32) 2022-12-08 19:06:51 +01:00
stefanbode d2472ef56f
Update xdrv_27_shutter.ino 2022-12-08 18:54:45 +01:00
stefanbode c98164a400
Update xdrv_27_shutter.ino 2022-12-08 18:36:17 +01:00
stefanbode 27bbec0d40
Update xdrv_27_shutter.ino 2022-12-08 18:08:12 +01:00
stefanbode 8320a944d8
removed index from shuttermode 2022-12-08 12:55:34 +01:00
gemu2015 a83c45e3ad fix regression from latest commit 2022-12-08 06:43:26 +01:00
gemu2015 237695de22 fix recursion 2022-12-07 08:52:13 +01:00
stefanbode 35475d9353
Avoid ghost switching in position 0 and 100
confirming the position and setting the tilt in 0 and 100% causes ghost switching of the relays. #16435
2022-12-06 16:27:34 +01:00
stefanbode 687e38f6b5
Fix #17282
fix reboot on "shutter" command
2022-12-06 09:27:51 +01:00
s-hadinger e7d40b8d11
Merge pull request #17270 from s-hadinger/berry_crypto_def
Berry crypto module, with AES_GCM by default and EC_CC25519 optional
2022-12-04 19:43:27 +01:00
Stephan Hadinger ec17440662 Berry crypto module, with AES_GCM by default and EC_CC25519 optional 2022-12-04 19:20:11 +01:00
Stephan Hadinger 70f73edf9e Fix type for BinaryInValue 2022-12-04 19:15:42 +01:00