Merge branch 'development' into pre-release-9.3.0

This commit is contained in:
Theo Arends 2021-02-12 11:01:37 +01:00
commit e7a27893b3
15 changed files with 950 additions and 67 deletions

View File

@ -84,6 +84,26 @@ jobs:
name: firmware
path: ./build_output
tasmota32-bluetooth:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-bluetooth
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-minimal:
runs-on: ubuntu-latest
steps:

View File

@ -824,6 +824,26 @@ jobs:
path: ./build_output
tasmota32-bluetooth:
needs: tasmota_pull
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
pip install -U platformio
- name: Run PlatformIO
run: |
platformio run -e tasmota32-bluetooth
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-knx:
needs: tasmota_pull
runs-on: ubuntu-latest
@ -1442,6 +1462,7 @@ jobs:
[ ! -f ./mv_firmware/firmware/tasmota32-web*.* ] || mv ./mv_firmware/firmware/tasmota32-web*.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-odroidgo.* ] || mv ./mv_firmware/firmware/tasmota32-odroidgo.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-core2.* ] || mv ./mv_firmware/firmware/tasmota32-core2.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-bluetooth.* ] || mv ./mv_firmware/firmware/tasmota32-bluetooth.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-knx.* ] || mv ./mv_firmware/firmware/tasmota32-knx.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./firmware/tasmota32/languages/
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./firmware/tasmota/languages/

View File

@ -824,6 +824,26 @@ jobs:
path: ./build_output
tasmota32-bluetooth:
needs: tasmota_pull
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
pip install -U platformio
- name: Run PlatformIO
run: |
platformio run -e tasmota32-bluetooth
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-knx:
needs: tasmota_pull
runs-on: ubuntu-latest
@ -1442,6 +1462,7 @@ jobs:
[ ! -f ./mv_firmware/firmware/tasmota32-web*.* ] || mv ./mv_firmware/firmware/tasmota32-web*.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-odroidgo.* ] || mv ./mv_firmware/firmware/tasmota32-odroidgo.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-core2.* ] || mv ./mv_firmware/firmware/tasmota32-core2.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-bluetooth.* ] || mv ./mv_firmware/firmware/tasmota32-bluetooth.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-knx.* ] || mv ./mv_firmware/firmware/tasmota32-knx.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./firmware/tasmota32/languages/
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./firmware/tasmota/languages/

View File

@ -0,0 +1,754 @@
/**
******************************************************************************
* @file font24.c
* @author MCD Application Team
* @version V1.0.0
* @date 18-February-2014
* @brief This file provides text font24 for STM32xx-EVAL's LCD driver.
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "fonts.h"
#include <pgmspace.h>
const uint8_t Font24_Table_7seg [] PROGMEM =
{
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @72 '!' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x01,0x00,0x00, // #
0x01,0x00,0x00, // #
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @144 '"' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x0e,0x70,0x00, // ### ###
0x0e,0x70,0x00, // ### ###
0x0e,0x70,0x00, // ### ###
0x04,0x20,0x00, // # #
0x04,0x20,0x00, // # #
0x04,0x20,0x00, // # #
0x04,0x20,0x00, // # #
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @216 '#' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x06,0x60,0x00, // ## ##
0x06,0x60,0x00, // ## ##
0x06,0x60,0x00, // ## ##
0x06,0x60,0x00, // ## ##
0x06,0x60,0x00, // ## ##
0x3f,0xf8,0x00, // ###########
0x3f,0xf8,0x00, // ###########
0x06,0x60,0x00, // ## ##
0x0c,0xc0,0x00, // ## ##
0x3f,0xf8,0x00, // ###########
0x3f,0xf8,0x00, // ###########
0x0c,0xc0,0x00, // ## ##
0x0c,0xc0,0x00, // ## ##
0x0c,0xc0,0x00, // ## ##
0x0c,0xc0,0x00, // ## ##
0x0c,0xc0,0x00, // ## ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @288 '$' (17 pixels wide)
0x00,0x00,0x00, //
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x07,0xb0,0x00, // #### ##
0x0f,0xf0,0x00, // ########
0x18,0x70,0x00, // ## ###
0x18,0x70,0x00, // ## ###
0x1c,0x00,0x00, // ###
0x0f,0x80,0x00, // #####
0x07,0xe0,0x00, // ######
0x00,0xf0,0x00, // ####
0x18,0x30,0x00, // ## ##
0x1c,0x30,0x00, // ### ##
0x1c,0x70,0x00, // ### ###
0x1f,0xe0,0x00, // ########
0x1b,0xc0,0x00, // ## ####
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @360 '%' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x07,0x80,0x00, // ####
0x0f,0xc0,0x00, // ######
0x1c,0xe0,0x00, // ### ###
0x18,0x60,0x00, // ## ##
0x18,0x60,0x00, // ## ##
0x1c,0xe0,0x00, // ### ###
0x0f,0xf8,0x00, // #########
0x07,0xe0,0x00, // ######
0x1f,0xf0,0x00, // #########
0x07,0x38,0x00, // ### ###
0x06,0x18,0x00, // ## ##
0x06,0x18,0x00, // ## ##
0x07,0x38,0x00, // ### ###
0x03,0xf0,0x00, // ######
0x01,0xe0,0x00, // ####
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @432 '&' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x03,0xf0,0x00, // ######
0x07,0xf0,0x00, // #######
0x0c,0x60,0x00, // ## ##
0x0c,0x00,0x00, // ##
0x0c,0x00,0x00, // ##
0x06,0x00,0x00, // ##
0x07,0x00,0x00, // ###
0x0f,0x9c,0x00, // ##### ###
0x1d,0xfc,0x00, // ### #######
0x18,0xf0,0x00, // ## ####
0x18,0x70,0x00, // ## ###
0x0f,0xfc,0x00, // ##########
0x07,0xdc,0x00, // ##### ###
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @504 ''' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x01,0x00,0x00, // #
0x01,0x00,0x00, // #
0x01,0x00,0x00, // #
0x01,0x00,0x00, // #
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @576 '(' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x18,0x00, // ##
0x00,0x38,0x00, // ###
0x00,0x70,0x00, // ###
0x00,0xf0,0x00, // ####
0x00,0xe0,0x00, // ###
0x00,0xe0,0x00, // ###
0x01,0xc0,0x00, // ###
0x01,0xc0,0x00, // ###
0x01,0xc0,0x00, // ###
0x01,0xc0,0x00, // ###
0x01,0xc0,0x00, // ###
0x01,0xc0,0x00, // ###
0x00,0xe0,0x00, // ###
0x00,0xe0,0x00, // ###
0x00,0x70,0x00, // ###
0x00,0x70,0x00, // ###
0x00,0x38,0x00, // ###
0x00,0x18,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @648 ')' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x18,0x00,0x00, // ##
0x1c,0x00,0x00, // ###
0x0e,0x00,0x00, // ###
0x0e,0x00,0x00, // ###
0x07,0x00,0x00, // ###
0x07,0x00,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x03,0x80,0x00, // ###
0x07,0x00,0x00, // ###
0x07,0x00,0x00, // ###
0x0f,0x00,0x00, // ####
0x0e,0x00,0x00, // ###
0x1c,0x00,0x00, // ###
0x18,0x00,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @720 '*' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x1d,0xb8,0x00, // ### ## ###
0x1f,0xf8,0x00, // ##########
0x07,0xe0,0x00, // ######
0x03,0xc0,0x00, // ####
0x03,0xc0,0x00, // ####
0x06,0x60,0x00, // ## ##
0x06,0x60,0x00, // ## ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @792 '+' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x3f,0xfc,0x00, // ############
0x3f,0xfc,0x00, // ############
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @864 ',' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0xe0,0x00, // ###
0x00,0xc0,0x00, // ##
0x01,0xc0,0x00, // ###
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x03,0x00,0x00, // ##
0x03,0x00,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @936 '-' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x1f,0xf8,0x00, // ##########
0x1f,0xf8,0x00, // ##########
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @1008 '.' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x03,0xc0,0x00, // ####
0x03,0xc0,0x00, // ####
0x03,0xc0,0x00, // ####
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @1080 '/' (17 pixels wide)
0x00,0x18,0x00, // ##
0x00,0x18,0x00, // ##
0x00,0x38,0x00, // ###
0x00,0x30,0x00, // ##
0x00,0x70,0x00, // ###
0x00,0x60,0x00, // ##
0x00,0x60,0x00, // ##
0x00,0xc0,0x00, // ##
0x00,0xc0,0x00, // ##
0x01,0x80,0x00, // ##
0x01,0x80,0x00, // ##
0x03,0x00,0x00, // ##
0x03,0x00,0x00, // ##
0x06,0x00,0x00, // ##
0x06,0x00,0x00, // ##
0x0e,0x00,0x00, // ###
0x0c,0x00,0x00, // ##
0x1c,0x00,0x00, // ###
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x18,0x00,0x00, // ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x0f,0xfc,0x00, // ##########
0x0f,0xfc,0x00, // ##########
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x0f,0xfc,0x00, // ##########
0x0f,0xfc,0x00, // ##########
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x00,0x00, //
// @0 ' ' (17 pixels wide)
0x00,0x00,0x00, //
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x18,0x03,0x00, // ## ##
0x07,0xfc,0x00, // #########
0x07,0xfc,0x00, // #########
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x03,0x00, // ##
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
// @1872 ':' (17 pixels wide)
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0xf0,0x00, // ####
0x00,0xf0,0x00, // ####
0x00,0xf0,0x00, // ####
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0xf0,0x00, // ####
0x00,0xf0,0x00, // ####
0x00,0xf0,0x00, // ####
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00, //
0x00,0x00,0x00 //
};
sFONT Font24_7seg = {
Font24_Table_7seg,
17, /* Width */
24, /* Height */
};
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@ -51,8 +51,6 @@
/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
#define USE_TINY_FONT
typedef struct _tFont
{
const uint8_t *table;
@ -66,6 +64,7 @@ extern sFONT Font20;
extern sFONT Font16;
extern sFONT Font12;
extern sFONT Font8;
extern sFONT Font24_7seg;
#ifdef __cplusplus
}

View File

@ -31,10 +31,7 @@
//#define USE_ALL_EPD_FONTS
//#define USE_GFX_FONTS
#define USE_TINY_FONT
#ifdef ESP32
#define USE_ICON_FONT
#endif
#define USE_7SEG_FONT
uint8_t wr_redir=0;
@ -247,6 +244,11 @@ void Renderer::setTextFont(uint8_t f) {
selected_font = &Font24;
#endif
break;
case 4:
#ifdef USE_7SEG_FONT
selected_font = &Font24_7seg;
break;
#endif
default:
selected_font = &Font12;
break;

View File

@ -27,6 +27,7 @@ default_envs =
; tasmota-zbbridge
; tasmota-ir
; tasmota32
; tasmota32-bluetooth
; tasmota32-webcam
; tasmota32-minimal
; tasmota32-lite

View File

@ -58,6 +58,11 @@ board_build.partitions = esp32_partition_app1984k_spiffs12M.csv
build_flags = ${common32.build_flags} -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -DFIRMWARE_M5STACK_CORE2
lib_extra_dirs = lib/libesp32, lib/lib_basic, lib/lib_i2c, lib/lib_rf, lib/lib_div, lib/lib_ssl, lib/lib_display, lib/lib_audio
[env:tasmota32-bluetooth]
extends = env:tasmota32
build_flags = ${common32.build_flags} -DFIRMWARE_BLUETOOTH
lib_extra_dirs = lib/libesp32, lib/lib_basic, lib/lib_i2c, lib/lib_ssl
[env:tasmota32-minimal]
extends = env:tasmota32
build_flags = ${common32.build_flags} -DFIRMWARE_MINIMAL

View File

@ -117,6 +117,29 @@
#endif // USE_SCRIPT
#endif // FIRMWARE_M5STACK_CORE2
/*********************************************************************************************\
* [tasmota32-bluetooth.bin]
* Provide an image with BLE support
\*********************************************************************************************/
#ifdef FIRMWARE_BLUETOOTH
#undef CODE_IMAGE_STR
#define CODE_IMAGE_STR "bluetooth"
#undef MODULE
#define MODULE WEMOS // [Module] Select default module from tasmota_template.h
#undef FALLBACK_MODULE
#define FALLBACK_MODULE WEMOS // [Module2] Select default module on fast reboot where USER_MODULE is user template
#define USE_UFILESYS
#define USE_SDCARD
#define GUI_TRASH_FILE
#define USE_ADC
#define USE_BLE_ESP32 // Enable new BLE driver
#define USE_MI_ESP32 // (ESP32 only) Add support for ESP32 as a BLE-bridge (+9k2 mem, +292k flash)
#endif // FIRMWARE_BLUETOOTH
#endif // ESP32
#endif // _TASMOTA_CONFIGURATIONS_ESP32_H_

View File

@ -2379,6 +2379,7 @@ const uint8_t kModuleNiceList[] PROGMEM = {
#endif // USE_M5STACK_CORE2
};
// !!! Update this list in the same order as kModuleNiceList !!!
const char kModuleNames[] PROGMEM =
"ESP32-DevKit|"
#ifdef USE_WEBCAM
@ -2401,6 +2402,7 @@ const char kModuleNames[] PROGMEM =
#endif // USE_M5STACK_CORE2
;
// !!! Update this list in the same order as SupportedModules !!!
const mytmplt kModules[] PROGMEM = {
{ // WEMOS - Espressif ESP32-DevKitC - Any ESP32 device like WeMos and NodeMCU hardware (ESP32)
AGPIO(GPIO_USER), // 0 (I)O GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK

View File

@ -2828,58 +2828,62 @@ void CmndRgbwwTable(void)
void CmndFade(void)
{
// Fade - Show current Fade state
// Fade 0 - Turn Fade Off
// Fade On - Turn Fade On
// Fade Toggle - Toggle Fade state
switch (XdrvMailbox.payload) {
case 0: // Off
case 1: // On
Settings.light_fade = XdrvMailbox.payload;
break;
case 2: // Toggle
Settings.light_fade ^= 1;
break;
if (2 == XdrvMailbox.index) {
// Home Assistant backwards compatibility, can be removed mid 2021
} else {
// Fade - Show current Fade state
// Fade 0 - Turn Fade Off
// Fade On - Turn Fade On
// Fade Toggle - Toggle Fade state
switch (XdrvMailbox.payload) {
case 0: // Off
case 1: // On
Settings.light_fade = XdrvMailbox.payload;
break;
case 2: // Toggle
Settings.light_fade ^= 1;
break;
}
#ifdef USE_DEVICE_GROUPS
if (XdrvMailbox.payload >= 0 && XdrvMailbox.payload <= 2) SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_FADE, Settings.light_fade);
#endif // USE_DEVICE_GROUPS
if (!Settings.light_fade) { Light.fade_running = false; }
}
#ifdef USE_DEVICE_GROUPS
if (XdrvMailbox.payload >= 0 && XdrvMailbox.payload <= 2) SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_FADE, Settings.light_fade);
#endif // USE_DEVICE_GROUPS
if (!Settings.light_fade) { Light.fade_running = false; }
ResponseCmndStateText(Settings.light_fade);
}
void CmndSpeed(void)
{
if (XdrvMailbox.index == 2) {
if (2 == XdrvMailbox.index) {
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 40)) {
Light.fade_once_enabled = true;
Light.fade_once_value = XdrvMailbox.payload > 0;
Light.fade_once_value = (XdrvMailbox.payload > 0);
Light.speed_once_enabled = true;
Light.speed_once_value = XdrvMailbox.payload;
if (!Light.fade_once_value) { Light.fade_running = false; }
}
return;
}
// Speed 1 - Fast
// Speed 40 - Very slow
// Speed + - Increment Speed
// Speed - - Decrement Speed
if (1 == XdrvMailbox.data_len) {
if (('+' == XdrvMailbox.data[0]) && (Settings.light_speed > 1)) {
XdrvMailbox.payload = Settings.light_speed - 1;
ResponseCmndNumber(Light.speed_once_value);
} else {
// Speed 1 - Fast
// Speed 40 - Very slow
// Speed + - Increment Speed
// Speed - - Decrement Speed
if (1 == XdrvMailbox.data_len) {
if (('+' == XdrvMailbox.data[0]) && (Settings.light_speed > 1)) {
XdrvMailbox.payload = Settings.light_speed - 1;
}
else if (('-' == XdrvMailbox.data[0]) && (Settings.light_speed < 40)) {
XdrvMailbox.payload = Settings.light_speed + 1;
}
}
else if (('-' == XdrvMailbox.data[0]) && (Settings.light_speed < 40)) {
XdrvMailbox.payload = Settings.light_speed + 1;
}
}
if ((XdrvMailbox.payload > 0) && (XdrvMailbox.payload <= 40)) {
Settings.light_speed = XdrvMailbox.payload;
if ((XdrvMailbox.payload > 0) && (XdrvMailbox.payload <= 40)) {
Settings.light_speed = XdrvMailbox.payload;
#ifdef USE_DEVICE_GROUPS
SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_SPEED, Settings.light_speed);
SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_SPEED, Settings.light_speed);
#endif // USE_DEVICE_GROUPS
}
ResponseCmndNumber(Settings.light_speed);
}
ResponseCmndNumber(Settings.light_speed);
}
void CmndWakeupDuration(void)

View File

@ -4317,6 +4317,23 @@ int16_t Run_script_sub(const char *type, int8_t tlen, struct GVARS *gv) {
WSContentFlush();
goto next_line;
}
else if (!strncmp(lp, "rapp", 3)) {
lp+=4;
// skip one space after cmd
char tmp[256];
Replace_Cmd_Vars(lp ,1 , tmp, sizeof(tmp));
ResponseAppend_P(PSTR("%s"), tmp);
goto next_line;
}
#ifdef USE_SENDMAIL
else if (!strncmp(lp, "sm", 2)) {
lp+=3;
char tmp[256];
Replace_Cmd_Vars(lp ,1 , tmp, sizeof(tmp));
SendMail(tmp);
goto next_line;
}
#endif
else if (!strncmp(lp,"=>",2) || !strncmp(lp,"->",2) || !strncmp(lp,"+>",2) || !strncmp(lp,"print",5)) {
// execute cmd
uint8_t sflag = 0,pflg = 0,svmqtt,swll;
@ -7192,8 +7209,13 @@ void ScriptJsonAppend(void) {
}
if (*lp!=';') {
// send this line to mqtt
Replace_Cmd_Vars(lp, 1, tmp, sizeof(tmp));
ResponseAppend_P(PSTR("%s"), tmp);
if (!strncmp(lp, "%=#", 3)) {
// subroutine
lp = scripter_sub(lp + 1, 0);
} else {
Replace_Cmd_Vars(lp, 1, tmp, sizeof(tmp));
ResponseAppend_P(PSTR("%s"), tmp);
}
}
if (*lp==SCRIPT_EOL) {
lp++;

View File

@ -318,6 +318,24 @@ int StrCmpNoCase(char const *Str1, char const *Str2) // Compare case sensistive
}
}
float TuyaAdjustedTemperature(uint16_t packetValue, uint8_t res)
{
switch (res)
{
case 1:
return (float)packetValue / 10.0;
break;
case 2:
return (float)packetValue / 100.0;
break;
case 3:
return (float)packetValue / 1000.0;
break;
default:
return (float)packetValue;
break;
}
}
/*********************************************************************************************\
* Internal Functions
\*********************************************************************************************/
@ -732,7 +750,7 @@ void TuyaProcessStatePacket(void) {
} else { res = Settings.flag2.temperature_resolution; }
GetTextIndexed(sname, sizeof(sname), (fnId-71), kTuyaSensors);
ResponseClear(); // Clear retained message
Response_P(PSTR("{\"TuyaSNS\":{\"%s\":%s}}"), sname, dtostrfd(packetValue, res, tempval)); // sensor update is just on change
Response_P(PSTR("{\"TuyaSNS\":{\"%s\":%s}}"), sname, dtostrfd(TuyaAdjustedTemperature(packetValue, res), res, tempval)); // sensor update is just on change
MqttPublishPrefixTopicRulesProcess_P(TELE, PSTR(D_CMND_SENSOR));
}
}
@ -1295,7 +1313,7 @@ void TuyaSensorsShow(bool json)
GetTextIndexed(sname, sizeof(sname), (sensor-71), kTuyaSensors);
ResponseAppend_P(PSTR("\"%s\":%s"), sname,
(Tuya.SensorsValid[sensor-71] ? dtostrfd(Tuya.Sensors[sensor-71], res, tempval) : PSTR("null")));
(Tuya.SensorsValid[sensor-71] ? dtostrfd(TuyaAdjustedTemperature(Tuya.Sensors[sensor-71], res), res, tempval) : PSTR("null")));
added = true;
}
#ifdef USE_WEBSERVER
@ -1303,11 +1321,11 @@ void TuyaSensorsShow(bool json)
if (TuyaGetDpId(sensor) != 0) {
switch (sensor) {
case 71:
WSContentSend_Temp("", Tuya.Sensors[0]);
WSContentSend_Temp("", TuyaAdjustedTemperature(Tuya.Sensors[0], Settings.flag2.temperature_resolution));
break;
case 72:
WSContentSend_PD(PSTR("{s}" D_TEMPERATURE " Set{m}%s " D_UNIT_DEGREE "%c{e}"),
dtostrfd(Tuya.Sensors[1], Settings.flag2.temperature_resolution, tempval), TempUnit());
dtostrfd(TuyaAdjustedTemperature(Tuya.Sensors[1], Settings.flag2.temperature_resolution), Settings.flag2.temperature_resolution, tempval), TempUnit());
break;
case 73:
WSContentSend_PD(HTTP_SNS_HUM, "", dtostrfd(Tuya.Sensors[2], Settings.flag2.temperature_resolution, tempval));

View File

@ -1419,9 +1419,8 @@ void SML_Decode(uint8_t index) {
}
} else {
// compare value
uint8_t found=1, use_uval = 1;
uint32_t ebus_uval=99;
float ebus_dval;
uint8_t found=1;
double ebus_dval=99;
float mbus_dval=99;
while (*mp!='@') {
if (meter_desc_p[mindex].type=='o' || meter_desc_p[mindex].type=='c') {
@ -1445,19 +1444,18 @@ void SML_Decode(uint8_t index) {
cp++;
} else if (!strncmp(mp,"UUuuUUuu",8)) {
uint32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
ebus_uval=val;
ebus_dval=val;
mbus_dval=val;
mp+=8;
cp+=4;
} else if (*mp=='U' && *(mp+1)=='U' && *(mp+2)=='u' && *(mp+3)=='u'){
uint16_t val = cp[1]|(cp[0]<<8);
mbus_dval=val;
ebus_uval=val;
ebus_dval=val;
mp+=4;
cp+=2;
} else if (!strncmp(mp,"SSssSSss",8)) {
int32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
use_uval = 0;
ebus_dval=val;
mbus_dval=val;
mp+=8;
@ -1465,25 +1463,23 @@ void SML_Decode(uint8_t index) {
} else if (*mp=='u' && *(mp+1)=='u' && *(mp+2)=='U' && *(mp+3)=='U'){
uint16_t val = cp[0]|(cp[1]<<8);
mbus_dval=val;
ebus_uval=val;
ebus_dval=val;
mp+=4;
cp+=2;
} else if (*mp=='u' && *(mp+1)=='u') {
uint8_t val = *cp++;
mbus_dval=val;
ebus_uval=val;
ebus_dval=val;
mp+=2;
} else if (*mp=='s' && *(mp+1)=='s' && *(mp+2)=='S' && *(mp+3)=='S') {
int16_t val = *cp|(*(cp+1)<<8);
mbus_dval=val;
use_uval = 0;
ebus_dval=val;
mp+=4;
cp+=2;
} else if (*mp=='S' && *(mp+1)=='S' && *(mp+2)=='s' && *(mp+3)=='s') {
int16_t val = cp[1]|(cp[0]<<8);
mbus_dval=val;
use_uval = 0;
ebus_dval=val;
mp+=4;
cp+=2;
@ -1491,14 +1487,12 @@ void SML_Decode(uint8_t index) {
else if (*mp=='s' && *(mp+1)=='s') {
int8_t val = *cp++;
mbus_dval=val;
use_uval = 0;
ebus_dval=val;
mp+=2;
}
else if (!strncmp(mp,"ffffffff",8)) {
uint32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
float *fp=(float*)&val;
use_uval = 0;
ebus_dval=*fp;
mbus_dval=*fp;
mp+=8;
@ -1508,7 +1502,6 @@ void SML_Decode(uint8_t index) {
// reverse word float
uint32_t val= (cp[1]<<0)|(cp[0]<<8)|(cp[3]<<16)|(cp[2]<<24);
float *fp=(float*)&val;
use_uval = 0;
ebus_dval=*fp;
mbus_dval=*fp;
mp+=8;
@ -1588,9 +1581,9 @@ void SML_Decode(uint8_t index) {
// ebus pzem or mbus or raw
if (*mp=='b') {
mp++;
uint8_t shift=*mp&7;
ebus_uval>>=shift;
ebus_uval&=1;
uint8_t shift = *mp&7;
ebus_dval = (uint32_t)ebus_dval>>shift;
ebus_dval = (uint32_t)ebus_dval&1;
mp+=2;
}
if (*mp=='i') {
@ -1613,8 +1606,6 @@ void SML_Decode(uint8_t index) {
uint8_t crc = SML_PzemCrc(&smltbuf[mindex][0],6);
if (crc!=smltbuf[mindex][6]) goto nextsect;
dval=mbus_dval;
} else if (use_uval) {
dval=ebus_uval;
} else {
dval=ebus_dval;
}

View File

@ -53,7 +53,7 @@ struct EZOStruct {
{
// Transmit our command verbatim
Wire.beginTransmission(addr);
Wire.write(cmd, len);
Wire.write((uint8_t*)cmd, len);
if (Wire.endTransmission() != 0) {
return;
}