ESP Firmware anpassen

OP #8100811
Lesenswert?
• ▲
▼

Hallo,

ich benutze ESP 32 S3 für meine Klimaanlage als Schnittstelle für mein Smart Home.

Als Firmware verwende ich die fertige Version von https://codeberg.org/RevK/ESP32-Faikout

Ich habe beim Programmierer schon mein Vorhaben bereits angefragt, wurde aber abgelehnt.

Die Funktion ist: Über eine Schnittstelle, also den Daikin-Datenbus kann ich Befehle über MQTT senden und empfangen. Es ist auch vollständig bereits für Home-Assistant nutzbar, wird also vollständig erkannt. Diese fertige Firmware nutzt bereits GPIOs für:

  • Kommunikation zur Klimaanlage in Tx: GPIO (bei mir -48)
  • Kommunikation zur Klimaanlage in Rx: GPIO (bei mir -10)
  • LED blinken in RGB oder für andere Blinkverhalten: Bsp.: GPIO 47
  • Für den Factory Reset (press 3 times) der GPIO -21 Unbenutzt (unused, habe ich bisher nicht benutzt):
  • Start AP (Access Point) mit GPIO: ()
  • Kommunikation zur Klimaanlage i2cslsda GPIO to use for I2C slave with Daikin board - SDA
  • Kommunikation zur Klimaanlage i2cslscl GPIO to use for I2C slave with Daikin board - SCL
  • Kommunikation zur Klimaanlage i2cmasda GPIO to use for I2C master with inlet sensor - SDA
  • Kommunikation zur Klimaanlage i2cmassl GPIO to use for I2C master with inlet sensor - SCL

Die Konfiguration erfolgt nach dem Flashvorgang über eine Webseite, welche der ESP erzeugt. Dort kann der WLAN Zugang, MQTT und Parameter eingestellt werden.

Mein Wunsch ist es noch weitere Eingänge zu nutzen, also GPIOs, die den Unterschied zwischen 0 und 3,3V erfassen und diese Änderungen via MQTT übermitteln. Hier also nur READ.

Gleichzeitig wünsche ich mir, dass ich über MQTT einen Ausgang von 0-100 schalten kann, alsp PWM. Hier also WRITE.

Da der Entwickler das nicht einbauen möchte, habe ich mir aktuell via ESP-Home einen zweiten ESP32 S3 direkt daneben gesetzt um diese Eingänge zu lesen und den Ausgang zu schalten. Alles funktioniert soweit, nur macht es einfach keinen Sinn, einen zweiten ESP direkt daneben zu setzen. Der bereits vorhandene ESP für die Klimaanlage könnte das ja abdecken.

Da mein Zusatz so gut funktioniert, möchte ich dies jetzt bei 10 weiteren Anlagen machen. Natürlich nicht als zweiten ESP sondern in dem einen integriert.

Kann man so etwas einprogrammieren in solch eine fertige Firmware und kann mir da jemand helfen?

Gruß Herry

#8100822
Lesenswert?
• ▲
▼

Das Projekt steht ja unter einer Open-Source Lizenz (GPL3) und bietet seinen Quellcode über ein git Repository an. Das kannst Du Dir lokal klonen und nach belieben verändern.

Vorbildlicherweise wird im README.md auch drauf eingegangen: https://codeberg.org/RevK/ESP32-Faikout#user-content-building-code-yourself

Deine ersten Schritte sind normalerweise, den Code mit einer minimalen, nur kosmetischen Änderung selbst zu bauen und auf Dein System zu flashen. Wenn Du das hinbekommen hast und die kosmetische Änderung auf Deinem System siehst, kannst Du Dir anschauen, wie Dein Code am besten in das Projekt zu integrieren wäre.

OP #8101165
Lesenswert?
• ▲
▼

OK danke euch für die Infos. Boa, das wird sicher hart als Neuling, aber ich probiere es.

Für mein Verständnis muss ich folgende Schritte machen:

  1. Github Dateien runterladen und mit meinen Anpassungen überschreiben
  2. Irgendwie daraus dann eine Firmware bauen
  3. Wenn es läuft, dann in der Webseite die Updates deaktivieren, da sonst meine Änderungen überschrieben werden könnten.

Habe ich das bis hierher schonmal richtig verstanden?

#8101201
Lesenswert?
• ▲
▼

Falls du nur schnell ein Ergebnis haben und nicht tiefer in die Programmierung einsteigen willst, dann würde ich vorschlagen ein Claude oder Codex Abo für einen Monat abzuschließen, die Claude bzw. Codex CLI zu installieren und deine Änderungen von der KI machen zu lassen.

Die KI kann die ganze Arbeit mit dem Repository clonen, Änderungen nach deinen Wünschen einfügen und Firmware neu compilieren in kurzer Zeit erledigen.

#8101209
Lesenswert?
• ▲
▼

Herrbert schrieb:

Hallo, ... habe ich mir aktuell via ESP-Home einen zweiten ESP32 S3 direkt daneben gesetzt um diese Eingänge zu lesen und den Ausgang zu schalten. Alles funktioniert soweit, nur macht es einfach keinen Sinn, einen zweiten ESP direkt daneben zu setzen. Der bereits vorhandene ESP für die Klimaanlage könnte das ja abdecken.

Da mein Zusatz so gut funktioniert, möchte ich dies jetzt bei 10 weiteren Anlagen machen. Natürlich nicht als zweiten ESP sondern in dem einen integriert.

Die einfache und pragmatische Lösung hast du doch schon gefunden.
Dazu: Herzlichen Glückwunsch!

Bevor du nämlich irgendwelchen eigenen Code, in ein funktionierendes Projekt hineinhäkeln kannst, müsstest du es nahezu vollständig verstehen.
Das sehe ich nicht.

Also lebe mit dem wie es ist.

: Bearbeitet durch User
OP #8101215
Lesenswert?
• ▲
▼

Danke euch beiden für die Infos. Ich kann beide Ansätze komplett nachvollziehen. Die Module laufen 24/7 und ich bin eher auf Ressourcen schonen. Auch wenn das kleine Modul wenig Strom zieht... Da ich noch ein Modul habe, kann ich das damit auf dem Tisch ausprobieren. Wenn meine externen Sachen funktionieren und das Dashboard auch noch zu erreichen ist, muss nur noch die RX/TX zur Klimaanlage funktionieren.

Ich werde das mit dem Claude probieren und wenn es nicht geht, kann ich ja immer noch alles doppelt montieren.

Hardware ist für mich kein Problem, nur die SW. Ich probiere es

OP #8101239
Lesenswert?
• ▲
▼

John-eric K. schrieb:

Was ist mit ESPhome direkt auf dem ESP32 verwenden um die Klima zu steuern? https://community.home-assistant.io/t/daikin-esp32-esphome-local-control/699209 https://github.com/joshbenner/esphome-daikin-s21 https://github.com/asund/esphome-daikin-s21 Das ist nun nur aus den Infos aus dem Repo von dir und kurzes Googlen.

Meine ESP Module laufen schon 4 Jahre in Kombination mit iobroker. HA habe ich erst seit paar Wochen und teste.

Sehr interessant und könnte wenn es die Features abdeckt wirklich eine Alternative sein zur Firmware Anpassung aus meinem Git.

Antwort schreiben

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.