NEWS
[Gelöst:] SHT35 in ESPeasy (Plugin in ESPEasy aktivieren)
-
Hallo,
kann mir hier jemand einen Hinweis geben, wie ich einen SHT35 Temp&Feuchte-Sensor in der ESPeasy-Firmware anmelden kann? Als Standard-Device finde ich dort nur den SHT1x.
Läuft der SHT35 evtl. als SHT1.x nur mit etwas besserer Genauigkeit?
Von dort sollen die Werte dann in den ioBroker wandern. Die Anbindung des D1 mini mit ESPeasy an den ioBroker läuft derzeit testweise mit einem DHT22. Ich würde vermuten, dass der dann auf demselben Wege auch die Werte des SHT35 liefert, wenn ich das neue Device in ESPeasy korrekt angemeldet haben sollte.Hat da jemand Erfahrung? Danke!
-
@cw50 Hi, Erfahrung leider keine, aber als SHT1.x wohl eher nicht wenn es dafür ein extra Plugin gibt: https://github.com/letscontrolit/ESPEasyPluginPlayground/blob/master/_P131_SHT3X.ino
-
Aufgabe zunächst gelöst.
Da ich ziemlich lange mir die Infos zusammen suchen musste, habe ich sie hier mal zusammengestellt.
Vielleicht hat ja noch einmal jemand diese Aufgabe zu lösen.Prinzipiell muss dazu das zwar existierende, aber noch nicht als "stable" eingestufte Plugins "P_068_SHT3x.ino" in die ESPEasy Firmware eingebunden werden. Dazu ist es notwendig, diese selbst zu kompilieren.
Hier kurz (m)ein Weg unter Verwendung der Arduino IDE:
Vorbereitungen:
- Arduino IDE als portable Installation einrichten
- Boardverwalter um ESP Boards ergänzen
- ESPEasy mega aktuell aus Github herunterladen (in Github rechts oben Schaltfläche "Code" und dort "Download ZIP-Archiv") und an beliebiger Stelle entpacken
- Die Bibliotheken aus dem Ordner "lib" der heruntergeladenen ESPEasy in den Ordner "Libraries" unter Sketchbook der portablen Arduino IDE kopieren.
- Den (in der Hierarchie) höchsten Ordner "src" der heruntergeladenen ESPEasy in den Ordner "Sketchbook " unter der portablen Arduino IDE kopieren und dort in "ESPEasy" umbenennen.
- In dem umbenannten Ordner "ESPEasy" befindet sich ein weiterer Ordner mit identischem Namen "ESPEasy". Darin ist die Datei "ESPEasy.ino" zu finden. Diese muss eine Ebene nach oben, in den umbenannten Ordner "ESPEasy" kopiert werden, damit die Arduino IDE dann die in den Dateien verschiedentlich enthaltenen Pfadangaben passend vorfindet.
- Arduino IDE aus der portablen Umgebung starten und dann die eben umkopierte Datei "ESPEasy.ino" öffnen.
- In der Arduino IDE werden automatisch eine ganze Reihe weiterer Dateien als Tabs mit geöffnet.
Plugin einbinden:
9. Jetzt muss das zusätzliche Plugin "_P068_SHT3x.ino" eingebunden werden (dem Kompiler muss mittgeteilt werden, dass dieses Plugin beim nächsten Kompilierungslauf mit übersetzt werden soll). Dafür habe ich zwei Wege gefunden:
a) Kompilierung unter Verwendung der Datei "Custom.h"
Dazu muss in der "ESPEasy_common.h" ziemlich am Anfang der Datei der Eintrag #define USE_CUSTOM_H ent-kommentiert werden (die "//" am Zeilenanfang entfernen). Die mitgelieferte Datei "Custom-samlpe.h" muss für diesen Weg in "Custom.h" umbenannt werden, bevor die Datei "ESPEasy.ino" in der Arduino IDE geöffnet wird. In der unteren Hälfte der "Custom.h" finden sich dann alle Plugins als auskommentierte Einträge. Die gewünscht zu verwendenden Plugins müssen hier ent-kommentiert werden.
(Diesen Weg habe ich nicht gewählt, da ich die Notwendigkeit der einzelnen Plugins nicht beurteilen kann)
b) Kompilierung unter Verwendung der als "stable" eingestuften Plugins
Standardmäßig werden wohl alle als "stable" eingestuften Plugins mitkompiliert, auch wenn es den entsprechenden Eintrag in der "ESPEasy-Globals.h" wohl nicht mehr gibt. Wenn man nun das gewünschte Plugin selbst zu den als "stable" eingestuften Plugins hinzufügt, wird es bei einer nachfolgenden Kompilierung mit übersetzt.
Dazu muss in der Datei „define_plugin_sets.h“ aus ...\sketchbook\ESPEasy\src\CustomBuild\define_plugin_sets.h der Abschnitt// TESTING ##################################### #ifdef PLUGIN_SET_TESTING
gesucht und der dort enthaltene Eintrag
#define USES_P068 // SHT3x
herauskopiert und im Bereich
// STABLE ##################################### #ifdef PLUGIN_SET_STABLE
eingefügt werden. Da diese Datei in der Arduino IDE nicht automatisch mit geöffnet wird, habe ich sie mit einem Texteditor separat bearbeitet.
- Danach kann testweise in der Arduino IDE eine Kompilierung gestartet werden. Wenn diese wie erwartet erfolgreich durchläuft, kann dort
- anschließen unter "Sketch" der Eintrag"Kompilierte Binärdatei exportieren" ausgewählt werden. Das Ergebnis ist dann als "ESPEasy.ino.generic.bin" im Ordner "ESPEasy" des übergeordneten Ordners "Sketchbook" zu finden.
- Diese *.bin kann dann auf beliebigen Wege auf das Zielsystem übertragen werden, d.h. entweder per USB-Kabel wenn direkt angeschlossen oder wie bei mir auch problemlos OTA über die Funktion "Update Firmware" aus dem Reiter "Tools" der ESPEasy Firmware.
- Danach läst sich in der ESPEasy Firmware des geflashten Systems unter "Device" ein neues hinzufügen und der gewünschte Sensor SHT35 kann als "Environment - SHT30/31/35 [TESTING" ausgewählt werden und lieferte sofort Werte.
- In ioBroker musste dann nur der Baum der Objekte einmal aktualisiert werden und auch dort waren die Werte für Temperatur und Luftfeuchtigkeit dann verfügbar.
Hilfreich waren für mich dabei auch die guten und weitgehend aktuellen Beschreibungen unter:
- Anhang "Arduino IDE" der ESPEasy-Doku https://espeasy.readthedocs.io/en/latest/Participate/ArduinoIDE.html und
- https://waschto.eu/2018/08/19/espeasy-eigene-oder-zusaetzliche-plugins-einbinden/
Das hier beschriebene Vorgehen hat in meinem Fall auf einem "Wemos D1 mini pro" zum Erfolg geführt. Da ich aber ziemlicher Neuling hier bin kann es sehr wathscheinlich auch andere / effektivere Wege geben. Daher bin ich für Verbesserungen / Ergänzungen natürlich dankbar.
-
Danke für die Anleitung.
Habe jetzt meine erstes eigenes Image erstellt.
Leider habe ich nach dem Flashen keinen Zugriff mehr auf das Gerät.
Ich kann es leider nicht im WLAN finden.
Welche Einstellungen muss ich dann noch ändern, damit das Teil im WLAN auftaucht?