arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
22.17k stars 4.8k forks source link

AFter Update to 11.1.0 all Files on SD CARD are renamed #15363

Closed helmar74 closed 2 years ago

helmar74 commented 2 years ago

PROBLEM DESCRIPTION

Hi,

I updated my Infodisply to Tasmota 11.1.0. After the upgrade all lot of my files where renamed like this:

image

With Version 11.0.0 it looked like this:

image

Maybe I have to set something in user_config_override.h?

Anyone an idea what causes the issue?

REQUESTED INFORMATION

Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!

- [ ] If using rules, provide the output of this command: `Backlog Rule1; Rule2; Rule3`:
```lua
  Rules output here:
- [ ] Set `weblog` to 4 and then, when you experience your issue, provide the output of the Console log:
```lua
  Console output here:

TO REPRODUCE

Steps to reproduce the behavior:

EXPECTED BEHAVIOUR

A clear and concise description of what you expected to happen.

SCREENSHOTS

If applicable, add screenshots to help explain your problem.

ADDITIONAL CONTEXT

Add any other context about the problem here.

(Please, remember to close the issue when the problem has been addressed)

barbudor commented 2 years ago

Is it the same SDCard ? You didn't reformatted it since you upgraded ?

The files are not renamed but it is showing the FAT 8.3 filenames instead of the usual FAT32 long filenames. FAT32 always has 2 entries for each file : 1 in the old 8.3 mode compatible with old "DOS" and the long filename.

@s-hadinger @Jason2866 I can't reproduce on the internal flash filesystem and I don't have (yet) a board with SDcard. May be something a recent change in the library handling SDcard ?

helmar74 commented 2 years ago

Is it the same SDCard ? You didn't reformatted it since you upgraded ?

The files are not renamed but it is showing the FAT 8.3 filenames instead of the usual FAT32 long filenames. FAT32 always has 2 entries for each file : 1 in the old 8.3 mode compatible with old "DOS" and the long filename.

@s-hadinger @Jason2866 I can't reproduce on the internal flash filesystem and I don't have (yet) a board with SDcard. May be something a recent change in the library handling SDcard ?

Yes it is the same SD Card and No the SDCard hasn't been formated. I'm using the same SD Card since ~1,5 half year and it always worked, when I updated to the current tasmota version

Here's the result of UfsType on Working Tasmota 11.0.0:

15:50:00.046 CMD: UfsType
15:50:00.054 MQT: stat/esp32_1/RESULT = {"UfsType":[1,3]}
Jason2866 commented 2 years ago

Can not reproduce

Bildschirmfoto 2022-04-13 um 22 43 15
helmar74 commented 2 years ago

@Jason2866 Precompiled or selfcompiled?

I'm using the following options in user_config_override.h

#define USE_UFILESYS
#define USE_SDCARD

Can that cause trouble?

helmar74 commented 2 years ago

I commented put #define USE_UFILESYS

still the same issue..

Reverted back to 11.0.0, that works flawless

Here's my user_config_override.h :

/*
  user_config_override.h - user configuration overrides my_user_config.h for Tasmota

  Copyright (C) 2020  Theo Arends

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef _USER_CONFIG_OVERRIDE_H_
#define _USER_CONFIG_OVERRIDE_H_

// force the compiler to show a warning to confirm that this file is included
#warning **** user_config_override.h: Using Settings from this File ****

/*****************************************************************************************************\
 * USAGE:
 *   To modify the stock configuration without changing the my_user_config.h file:
 *   (1) copy this file to "user_config_override.h" (It will be ignored by Git)
 *   (2) define your own settings below
 *
 ******************************************************************************************************
 * ATTENTION:
 *   - Changes to SECTION1 PARAMETER defines will only override flash settings if you change define CFG_HOLDER.
 *   - Expect compiler warnings when no ifdef/undef/endif sequence is used.
 *   - You still need to update my_user_config.h for major define USE_MQTT_TLS.
 *   - All parameters can be persistent changed online using commands via MQTT, WebConsole or Serial.
\*****************************************************************************************************/

// -- Master parameter control --------------------
#undef  CFG_HOLDER
#define CFG_HOLDER        4617                   // [Reset 1] Change this value to load SECTION1 configuration parameters to flash

// -- Setup your own Wifi settings  ---------------
#undef  STA_SSID1
#define STA_SSID1         "XXXXXXXXXXXX"             // [Ssid1] Wifi SSID

#undef  STA_PASS1
#define STA_PASS1         "XXXXXXXXXXXXXX"     // [Password1] Wifi password

// -- Setup your own MQTT settings  ---------------
#undef  MQTT_HOST
#define MQTT_HOST         "192.168.1.xxx" // [MqttHost]

#undef  MQTT_PORT
#define MQTT_PORT         1883                   // [MqttPort] MQTT port (10123 on CloudMQTT)

// You might even pass some parameters from the command line ----------------------------
// Ie:  export PLATFORMIO_BUILD_FLAGS='-DUSE_CONFIG_OVERRIDE -DMY_IP="192.168.1.99" -DMY_GW="192.168.1.1" -DMY_DNS="192.168.1.1"'

/*
#ifdef MY_IP
#undef  WIFI_IP_ADDRESS
#define WIFI_IP_ADDRESS   MY_IP                  // Set to 0.0.0.0 for using DHCP or enter a static IP address
#endif

#ifdef MY_GW
#undef  WIFI_GATEWAY
#define WIFI_GATEWAY      MY_GW                  // if not using DHCP set Gateway IP address
#endif

#ifdef MY_DNS
#undef  WIFI_DNS
#define WIFI_DNS          MY_DNS                 // If not using DHCP set DNS IP address (might be equal to WIFI_GATEWAY)
#endif

*/

// Meine Änderungen
#undef PROJECT
#define PROJECT                "sonoffStandard"         // PROJECT is used as the default topic delimiter

#undef OTA_URL
#define OTA_URL                "http://192.168.1.xxx:8080/static/firmware/" PROJECT ".ino.bin"  // [OtaUrl]

#undef MQTT_GRPTOPIC
#define MQTT_GRPTOPIC          "sonoffStandardGruppe"        // [GroupTopic] MQTT Group topic

#undef LATITUDE
#define LATITUDE               148.574519         // [Latitude] Your location to be used with sunrise and sunset
#undef LONGITUDE
#define LONGITUDE              112.580595          // [Longitude] Your location to be used with sunrise and sunset

#undef APP_TIMEZONE
#define APP_TIMEZONE           99                 // [Timezone] +1 hour (Amsterdam) (-13 .. 14 = hours from UTC, 99 = use TIME_DST/TIME_STD)

#undef MY_LANGUAGE
#define MY_LANGUAGE            de_DE           // German in Germany

#undef USE_DOMOTICZ

#undef USE_HOME_ASSISTANT

#undef USE_EMULATION_HUE

#undef USE_EMULATION_WEMO

#undef ROTARY_V1

#undef USE_SHUTTER

#undef USE_DEEPSLEEP

#undef USE_EXS_DIMMER

#undef USE_WS2812_CTYPE
#define USE_WS2812_CTYPE     NEO_GRBW           // Color type (NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW)

#undef USE_ADC_VCC
#define USE_ADC_VCC                              // Display Vcc in Power status. Disable for use as Analog input on selected devices

#undef USE_BMP
#define USE_BMP                                // [I2cDriver10] Enable BMP085/BMP180/BMP280/BME280 sensors (I2C addresses 0x76 and 0x77) (+4k4 code)

#undef USE_BME680
#define USE_BME680                           // Enable support for BME680 sensor using Bosch BME680 library (+4k code)

#undef USE_BH1750
#define USE_BH1750                             // [I2cDriver11] Enable BH1750 sensor (I2C address 0x23 or 0x5C) (+0k5 code)

#undef USE_VEML6070_RSET

#undef USE_VEML6070_SHOW_RAW

#undef USE_TSL2561
#define USE_TSL2561                            // [I2cDriver16] Enable TSL2561 sensor (I2C address 0x29, 0x39 or 0x49) using library Joba_Tsl2561 (+2k3 code)

#undef USE_APDS9960_GESTURE 

#undef USE_APDS9960_PROXIMITY

#undef USE_APDS9960_COLOR

#undef USE_APDS9960_STARTMODE

#undef  USE_MAX44009
#define USE_MAX44009                           // [I2cDriver28] Enable MAX44009 Ambient Light sensor (I2C addresses 0x4A and 0x4B) (+0k8 code)

#undef USE_ADE7953                            // [I2cDriver7] Enable ADE7953 Energy monitor as used on Shelly 2.5 (I2C address 0x38) (+1k5)

#undef USE_DISPLAY
#define USE_DISPLAY                            // Add I2C Display Support (+2k code)

#undef USE_SPI
#define USE_SPI                                  // Hardware SPI using GPIO12(MISO), GPIO13(MOSI) and GPIO14(CLK) in addition to two user selectable GPIOs(CS and DC)

#undef USE_DISPLAY

#define USE_DISPLAY                            // Add SPI Display support for 320x240 and 480x320 TFT
#undef USE_DISPLAY_ILI9341                  // [DisplayModel 4] Enable ILI9341 Tft 480x320 display (+19k code)

#undef USE_DISPLAY_EPAPER_29
#define USE_DISPLAY_EPAPER_29                // [DisplayModel 5] Enable e-paper 2.9 inch display (+19k code)

#undef USE_SR04
#define USE_SR04                                 // Add support for HC-SR04 ultrasonic devices (+1k code)

#undef USE_IR_REMOTE                            // Send IR remote commands using library IRremoteESP8266 and ArduinoJson (+4k3 code, 0k3 mem, 48 iram)

#undef USE_IR_RECEIVE                         // Support for IR receiver (+7k2 code, 264 iram)

#undef USE_TX20_WIND_SENSOR
#define USE_TX20_WIND_SENSOR                     // Add support for La Crosse TX20 anemometer (+2k6/0k8 code)

// Für ST 7786 Display (LilyGO TTGO)
#undef USE_DISPLAY_ST7789
#define USE_DISPLAY_ST7789

// Für RA 8876 SPI DISPLAY

#undef USE_DISPLAY_RA8876
#define USE_DISPLAY_RA8876
//***************************************
// Aus https://github.com/arendst/Tasmota/issues/10392
// Schreibt Init-Meldung auf das Display
#define SHOW_SPLASH  

// Analoge Uhr anzeigen
#define USE_AWATCH

#define USE_UFILESYS
#define USE_SDCARD
//Für Anzeige von JPEG Bildern 
#define JPEG_PICTS 
// Wegen Compilefehler
#undef USE_RULES 
#define USE_SCRIPT

// Dateien auch in der WEBGUI löschen
#define GUI_TRASH_FILE

#endif  // _USER_CONFIG_OVERRIDE_H_

and platform_override:

; ***  Example PlatformIO Project Configuration Override File   ***
; ***  Changes done here override settings in platformio.ini    ***
;
; *****************************************************************
; ***  to activate rename this file to platformio_override.ini  ***
; *****************************************************************
;
; Please visit documentation for the options and examples
; http://docs.platformio.org/en/stable/projectconf.html

[platformio]
; For best Gitpod performance remove the ";" in the next line. Needed Platformio files are cached and installed at first run
;core_dir = .platformio

; *** Build/upload environment
default_envs            =
; *** Uncomment the line(s) below to select version(s)
;                          tasmota
;                          tasmota-debug
;                          tasmota-minimal
;                          tasmota-lite
;                          tasmota-knx
;                          tasmota-sensors
;                          tasmota-display
;                          tasmota-zbbridge
;                          tasmota-ir
                          tasmota32
;                          tasmota32-bluetooth
;                          tasmota32-webcam
;                          tasmota32-knx
;                          tasmota32-sensors
;                          tasmota32-display
;                          tasmota32-ir
;                          tasmota32solo1
;                          tasmota32c3
;                          tasmota32s2
;                          tasmota32-odroidgo
;                          tasmota32-core2

[env]
; Activate Development core by removing ";" the next lines
;platform                = https://github.com/platformio/platform-espressif8266.git
;platform_packages       = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git
;                          mcspr/toolchain-xtensa @ ~5.100300.211127
;                          platformio/tool-esptoolpy @ ~1.30100
;build_unflags           = ${common.build_unflags}
;                          -Wswitch-unreachable
;build_flags             = ${common.build_flags}
;                          -D PIO_FRAMEWORK_ARDUINO_MMU_CACHE16_IRAM48_SECHEAP_SHARED
;                          -Wno-switch-unreachable
; *** Optional Debug messages
;                         -DDEBUG_TASMOTA_CORE
;                         -DDEBUG_TASMOTA_DRIVER
;                         -DDEBUG_TASMOTA_SENSOR
; Build variant 1MB = 1MB firmware no filesystem (default)
board                   = ${common.board}
; Build variant 2MB = 1MB firmware, 1MB filesystem (most Shelly devices)
;board                   = esp8266_2M1M
; Build variant 4MB = 1MB firmware, 1MB OTA, 2MB filesystem (WEMOS D1 Mini, NodeMCU, Sonoff POW)
;board                   = esp8266_4M2M
;board_build.f_cpu       = 160000000L
;board_build.f_flash     = 40000000L
;monitor_speed           = 115200
; *** Serial port used for erasing/flashing the ESP82xx
;upload_port             = COM5
extra_scripts           = ${esp_defaults.extra_scripts}
;                          pio-tools/obj-dump.py
lib_ldf_mode            = ${common.lib_ldf_mode}
lib_compat_mode         = ${common.lib_compat_mode}
lib_ignore              =
                          Servo(esp8266)
                          ESP8266AVRISP
                          ESP8266LLMNR
                          ESP8266NetBIOS
                          ESP8266SSDP
                          SP8266WiFiMesh
                          Ethernet(esp8266)
                          GDBStub
                          TFT_Touch_Shield_V2
                          ESP8266HTTPUpdateServer
                          ESP8266WiFiMesh
                          EspSoftwareSerial
                          SPISlave
                          Hash
; Disable next if you want to use ArduinoOTA in Tasmota (default disabled)
                          ArduinoOTA
lib_extra_dirs          = ${library.lib_extra_dirs}

[env:tasmota32_base]
; *** Uncomment next line ";" to enable development Tasmota Arduino version ESP32
;platform                = https://github.com/Jason2866/platform-espressif32/releases/download/v2.0.2.1/platform-espressif32-2.0.2.1.zip
build_unflags           = ${esp32_defaults.build_unflags}
; Aktivierung von PSRAM mit build Flag -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue -lc-psram-workaround -lm-psram-workaround
; Bis Tasmota v 9.5.0 nur -DBOARD_HAS_PSRAM
; Ab Tasmota v 9.5.0.1 neue platformio_override.ini
; Ab Tasmota v 9.5.0.9 muss das Build Flag -DHAS_PSRAM_FIX hinzugefügt werden. Mit weblog 4 und anschliessendem restart 1 wird PSRAM angezeigt:
; Ab Tasmota v 10.0.04 nur noch Build Flags -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue 
; 00:00:00.002 HDW: ESP32-D0WD (PSRAM) 
; 00:00:00.002 HDW: FoundPSRAM=1 CanUsePSRAM=1
; Anzeige ob PSRAM verwendet wird auch im Information Reiter im Webinterface
; damit auch große Bilder angezeigt werden können
; WEitere Infos siehe 
; https://github.com/arendst/Tasmota/issues/10392 
; https://github.com/arendst/Tasmota/issues/12390
; https://github.com/arendst/Tasmota/issues/13325
;build_flags             = ${esp32_defaults.build_flags}
build_flags             = ${esp32_defaults.build_flags} -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue 

; Build variant ESP32 4M Flash, Tasmota 1856k Code/OTA, 320k LITTLEFS (default)
; Auskommentiert für Infodisplay
board                   = esp32_4M
; Build variant ESP32 8M Flash, Tasmota 2944k Code/OTA, 2112k LITTLEFS
;board                   = esp32_8M
; Build variant ESP32 16M Flash, Tasmota 2944k Code/OTA, 10M LITTLEFS
;board                   = esp32_16M
; CPU Frequenz auf 240 MHz einstellen:
board_build.f_cpu       = 240000000L
;board_build.f_flash     = 40000000L
monitor_speed           = 115200
; *** Serial port used for erasing/flashing the ESP32
;upload_port             = ${common.upload_port}
upload_port             = COM4
;upload_speed            = 115200
upload_resetmethod      = ${common.upload_resetmethod}
extra_scripts           = ${esp32_defaults.extra_scripts}
;                          pio-tools/obj-dump.py
lib_ignore              =
                          ESP32 Azure IoT Arduino
                          ESP32 Async UDP
                          ESP32 BLE Arduino
;                          SimpleBLE
                          NetBIOS
                          ESP32
                          Preferences
                          BluetoothSerial
; Disable next if you want to use ArduinoOTA in Tasmota32 (default disabled)
                          ArduinoOTA

lib_extra_dirs           = ${library.lib_extra_dirs}
; *** ESP32 lib. ALWAYS needed for ESP32 !!!
                          lib/libesp32
; *** comment the following line if you dont use LVGL in a Tasmota32 build. Reduces compile time
                          lib/libesp32_lvgl
; *** uncomment the following line if you use Bluetooth or Apple Homekit in a Tasmota32 build. Reduces compile time
;                          lib/libesp32_div
; *** uncomment the following line if you use Epaper driver epidy in your Tasmota32 build. Reduces compile time 
;                          lib/libesp32_eink

[library]
shared_libdeps_dir      = lib
; *** Library disable / enable for variant Tasmota(32). Disable reduces compile time
; *** !!! Disabling needed libs will generate compile errors !!!
; *** The resulting firmware will NOT be different if you leave all libs enabled
; *** Disabling by putting a ";" in front of the lib name
; *** If you dont know what it is all about, do not change
lib_extra_dirs           =
; *** Only disabled for Tasmota minimal and Tasmota light. For all other variants needed!
                           lib/lib_basic
; **** I2C devices. Most sensors. Disable only if you dont have ANY I2C device enabled
                           lib/lib_i2c
; *** Displays. Disable if you dont have any Display activated
                           lib/lib_display
; *** Bear SSL and base64. Disable if you dont have SSL or TLS activated
                           lib/lib_ssl
; *** Audio needs a lot of time to compile. Mostly not used functions. Recommended to disable
                           lib/lib_audio
; *** RF 433 stuff (not RF Bridge). Recommended to disable
                           lib/lib_rf
; *** Mostly not used functions. Recommended to disable
                           lib/lib_div

I need SCRIPTS, SDCARD, Display RA8876 Display Support. I also compile ST7789 Display as I want to use this firmware for a other device also.

Maybe something change in the files above from version 11.0.0 to 11.1.0 which now causes the error?

Jason2866 commented 2 years ago

No, looks like using a framework without long file names support. We had a short time such a version. Delete folder .platformio and try again.

helmar74 commented 2 years ago

No, looks like using a framework without long file names support. We had a short time such a version. Delete folder .platformio and try again.

Yeah that did the trick. I deleted .platformio folder in C:\Users\USER After that platformio addon was installed newly on VSC. After recompiling the files look like this: image

Many thanks for all your support!