NEWS
[gelöst] Tasmota Custom Firmware
-
@chaot
Meine selber kompilierten bins sind schon nahe an den 400k dran und gezippt eh drunter
Ich habe mal vor langer Zeit mit den minimal bins gearbeitet und jedes mal schlechte Laune gehabt. Seit ich das selber kompiliere, kann ich mich wegen Tasmota einfach nicht mehr aufregen, es funktioniert einfach so wie ich es will -
@jan1 said in Tasmota Custom Firmware:
Ich weiß nicht mal was Gitpod ist
... hier sind Doc's zu Gitpod innerhalb Github
Gestartet wird z.B. so https://gitpod.io/#https://github.com/arendst/Tasmota/tree/master -
@raspiuser
Ach so, ich mach das mit VSCode was dann eben wie Gitpod ist, nur anders
Ist aber eigentlich egal welches Tool man zum Kompilieren und editieren verwendet, solange die mit Tasmota kompatibel sind -
@raspiuser said in Tasmota Custom Firmware:
Vielleicht habe ich mich unklar ausgedrückt ...
WELCHE Datei muss ich WIE ändern ? d.h. WO nehme ich die "//" raus bzw. diese dazu um NUR "A4988" und "DE in den Einstellungen von TASMOTA zu sehen ?
Hier nochmal MEIN (s.o.) eigentliches Problem.
Ich habe also in der user_config_override.h die "A4988" eingetragen und sonst nix. WAS muss ich mit "//" auskomentieren um die .bin klein zu kriegen ?
Ich sehe da wohl den Wald vor lauter Bäumen nicht .../* user_config_override.h - user configuration overrides my_user_config.h for Tasmota Copyright (C) 2021 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_ /*****************************************************************************************************\ * 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. \*****************************************************************************************************/ /* Examples : // -- 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 "YourSSID" // [Ssid1] Wifi SSID #undef STA_PASS1 #define STA_PASS1 "YourWifiPassword" // [Password1] Wifi password // -- Setup your own MQTT settings --------------- #undef MQTT_HOST #define MQTT_HOST "your-mqtt-server.com" // [MqttHost] #undef MQTT_PORT #define MQTT_PORT 1883 // [MqttPort] MQTT port (10123 on CloudMQTT) #undef MQTT_USER #define MQTT_USER "YourMqttUser" // [MqttUser] Optional user #undef MQTT_PASS #define MQTT_PASS "YourMqttPass" // [MqttPassword] Optional password // 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 // !!! Remember that your changes GOES AT THE BOTTOM OF THIS FILE right before the last #endif !!! */ #ifndef USE_A4988_STEPPER #define USE_A4988_STEPPER // A4988/DRV8825 stepper motor (+10k5 code) #endif #endif // _USER_CONFIG_OVERRIDE_H_
-
@raspiuser
Das ist recht einfach, denn alles was in der Userconfig drin steht wird von dem was in der userconfig_override drin steht überschrieben. Somit ist es sehr sinnvoll alles in der override mit rei n zu nehmen, was man haben möchte und da gehört WiFi und MQTT auf alle Fälle schon mal dazu. Schau Dir meine override an und pack einfach das was Du willst dazu. Diese Datei kannst dann einfach in den Tasmota Ordner kopieren und das was rein soll die // am Anfang weg, schon kommt das gewünschte bin raus. -
@jan1 said in Tasmota Custom Firmware:
meine override
... also deine "override" bringt bei meinem kompilieren eine Fehlermeldung.
Ich fange jetzt mal gaaaaanz langsam gaaanz frisch an und bringe alle Infos von hier unter und dann schaun'mer mal ...
-
@raspiuser
weil die WiFi und MQTT sowie GEO Daten nicht drin stehen (wahrscheinlich). Die kopiere ich so wie sie ist (mit meinen Daten) in den Tasmota Ordner und wenn Fehler kommen, wird in der Regel die Zeile, die nicht stimmt angegeben, zumindest macht VSCode das so. -
@jan1 Ich war kürzlich bei einem Bekannten der gerade erst mit Tasmota angefangen hat. Der hatte eine FW drauf die sagenhafte 740 kB groß war.
Wie gesagt, wenn der Ursprung vermurkst ist musst du halt über die Minimal gehen wenn du das Teil nicht wieder ausbauen willst.
Wenn es offen rumliegt macht das klar keinen Sinn.@raspiuser Du musst, um die auch wirklich klein zu bekommen alles auskommentieren das in der myuserconfig.h schon drin ist.
Also beispielsweise
in der myuserconfig.h steht:#define USE_SONOFF_RF // Add support for Sonoff Rf Bridge (+3k2 code)
dann muss in deine userconfig_override
#ifdef USE_SONOFF_RF #undef USE_SONOFF_RF #endif
Und das im Grunde für alles was schon vorkonfiguriert ist. Dann bekommst du die Firmware gaaaanz klein.
-
@chaot said in Tasmota Custom Firmware:
alles auskommentieren das in der myuserconfig.h schon drin ist.
... genau da bin ich jetzt am ausprobieren ... Ist irre, was man da alles machen kann !
So ganz habe ich aber den Zusammenhang zwischen "my_user_config.h" und der Datei "User_config_override.h" noch nicht verstanden ...
-
@raspiuser
die My_userconfig.h ist die grundsätzliche Einstelldatei mit der das Teil ohne Änderung auch schon läuft.
Früher wurde alles was man ändern wollte auch dort geschrieben.
Irgendwann wurde dann die UserConfigOverride eingeführt die dazu dient das der User diese Änderungen nur noch einmal machen muss und das dann in jede Firmwareversion einfach reinkopieren kann.
Also bei der nächsten Firmwareversion nimmst du einfach deine jetzt erstellte Override, kopierst die in den neuen Ordner und kompilierst die einfach neu. Schon hast du alle Einstellungen in der neuen Firmware mit ein paar Mausklicks. -
@chaot
Du liegst nicht ganz richtig, wobei man das so auch machen kann wenn man ne kleine bin möchte.
Meine override ist ja recht groß weil ich eben nicht in der conig alles raus nehme was nicht rein soll, sondern in der override das erledige. Das ist der Grund warum man ich da so viel drin habe.ist eine override vorhanden, wird diese der config vorgezogen, ohne override wird das kompiliert was in der conifig drin ist. Der Vorteil bei der override ist eben, dass man die von einer Tasmota zur anderen einfach kopieren kann ohne immer wieder das selbe einfügen zu müssen und da beziehe ich mich in erster Linie auf die User Daten für WiFi usw.
-
@jan1 said in Tasmota Custom Firmware:
ist eine override vorhanden, wird diese der config vorgezogen, ohne override wird das kompiliert was in der conifig drin
OK, aber ....
Wenn in der "user_config_override.h" nur "...A4988 ... " drin steht (zzgl. das was in "...sample ..." drin ist) und diese dann die Informationen aus der "my_user_config.h" überschreibt warum muss ich dann in der "my_user_config.h" noch etwas auskommentieren ?!
-
@raspiuser
in der my_user_config.h muss das raus, was Du in der override nicht auskommentierst. der Grund warum ich in der override so viel drin habe und alles auskommentiert
So kann ich sehr einfach eben nur das einkommentieren was ich wirklich brauche. Ich habe am Anfang auch etwas auf dem Schlauch gestanden weil ich den Vorteil nicht wie Du auch, nicht kapiert hatte. -
@jan1 sagte in Tasmota Custom Firmware:
Du liegst nicht ganz richtig, wobei man das so auch machen kann wenn man ne kleine bin möchte.
Meine override ist ja recht groß weil ich eben nicht in der conig alles raus nehme was nicht rein soll, sondern in der override das erledige.Na, das meinte ich ja auch.
Alles in der Override generell auskommentieren was als Standard in der myuserconfig drin ist.
Gemein ist aber, das die Entwickler in der myuserconfig bei fast jedem Change irgendwas standardmäßig reinschreiben und aktivieren was dann entsprechend jedes mal wieder auskommentiert werden muss.
Deshalb sollte der Blick in die muserconfig immer mal gemacht werden. Die notwendigen Änderungen aber dann logischerweise nur in der Override eintragen.
Das ist ja auch das was du in deiner Override Datei machst.@raspiuser: Was im "sample" drin steht kannst du schlicht vergessen.
Die Override von Jan1 ist schon recht gut. Hier musst du eigentlich nur deine persönlichen Sachen im oberen Bereich eingeben (Wifi usw. was im Abschnitt "persönliches" steht) und dann sollte das funktionieren. Eventuell solltest du noch das Modul definieren oder aus kommentieren damit Standard Sonoff gewählt wird.
Unten im Abschnitt "optional" packst du dann deine zwei Zeilen mit dem A4988 rein und das wars dann. -
@jan1 said in Tasmota Custom Firmware:
@raspiuser
in der my_user_config.h muss das raus, was Du in der override nicht auskommentierst. der Grund warum ich in der override so viel drin habe und alles auskommentiertIch tue mich gerade etwas schwer mit den Begriffen ...
Ich formuliere es mal anders: Ich ändere / editiere (erstmal) in der "my_user_config.h" REIN GARNICHTS sondern schreibe in die "user_config_override.h" das rein was ich nicht brauche, d.h. dann "aus kommentieren" (mit z.B. #ifdef USE_SONOFF_RF , #undef USE_SONOFF_RF, #endif,), richtig ?
Und das gilt dann nur für die Zeilen, die nicht mit "//" beginnen, da das ja eh "nur" Kommentar ist solang die "//" davor stehen, auch richtig ?(Jetzt hoffe ich mal, dass ich mich nicht total blamiert habe ...)
-
@raspiuser
So ist es.
Eigentlich kannst alles was in der config drin ist in die override rein kopieren und alles mit // auskommentieren was nicht gebraucht wird. So habe ich meine override gebastelt. Wie Chaot auch geschrieben hat, wird aber auch viel an der config geändert, wobei mittlerweile das meiste was neu dazu kommt per default eh auskommentiert ist.
Die override macht den meisten Sinn, wenn man ein paar unterschiedliche Geräte das erste mal mit Tasmota flasht, da hier eben dann schnell alles passend zum Gerät eingerichtet werden kann. Bei späteren OTA Updates werden die Einstellungen eh übernommen und man müsste das ganze User spezifische eh nicht noch mal machen. -
Danke, viel gelernt heute.
Jetzt bin ich wohl bis Weihnachten beschäftigt, um die "override" für mich anzupassen.
Immerhin habe ich schon ein Erfolgserlebnis und die "A4988" Variante erfolgreich kompiliert. -
@raspiuser
Das geht schneller wie Du denkst, wenn mal wirklich verstanden hast wie und warum man das über die override macht.
Im Prinzip geht es ja auch direkt in der config selber, warum dann noch die override? Das merkst schnell, wenn mal über 30 unterschiedliche Tasmota Device OTA auf ne neue Version hoch ziehen willst, es geht einfach wesentlich schneller -
Ich habe noch ein wenig gesucht ... Ich stelle es mal hier rein, vielleicht hilft es anderen auch weiter:
- Kompilieren noch einfacher mit dem TasmoCompiler (für Leute wie mich, die das 1x im Jahr machen ... ... basiert irgendwie auf Gitpod ...)
- ... noch etwas zum kompilieren
- ... und Infos zur user_config
Danke nochmal ...
-
@raspiuser Der Tasmocompiler ist was schönes einfaches, aber hat auch seine Grenzen. Besonders wenn du ganz klein kommen willst geht das nur bedingt.
Aber um mal eben schnell was zu machen mag ich das Tool eigentlich auch ganz gerne.