Hallo an alle,
habe mal eine Frage: ich habe mir für meine Zisterne einen Füllstandssensor nach folgendem Vorbild gebaut: Link
Funktioniert super, auch der DeepSleepModus. Nun möchte ich noch eine Batteriespannungsüberwachung hinzufügen nach folgendem Vorbild: Link
Allerdings müsste ich dafür einen Code in die Konfiguration des Tasmota ESP32 eingeben → wie kann ich das machen? In meinem Tasmota gibt es nicht mal (wie bei Stromzähler auslesen) ein Script einfügen. Wie kann ich die Konfiguration bearbeiten/erweitern??
Eine Tasmota Firmware kannst du dir auch selber bauen und dort alles das was du haben möchtet einbauen. Schaue mal auf der Tasmota HP da wird beschrieben wie man so was machen kann! Compiling - Tasmota
Oje - das ist zu hoch für meinen Verstand, bin nicht mehr der Jüngste…
Das ist nicht so schlimm, wen ich als Rentner das schaffe, der nie beruflich was mit der IT zu tun gehabt hat, wird das auch bei dir gehen mit ein wenig Einarbeitung! ![]()
Also wie ich verschiedene Tasmota aktiviere und daraus eine neue Tasmota Datei kompiliere habe ich verstanden. Ich habe aber nur einen Code den ichb eigentlich auf dem ESP irgendwo einbinden müsste. Der Code sieht so aus - das passt doch nicht, oder?
sensor:
- platform: adc
name: "Battery voltage"
id: battery_voltage
pin: GPIO34
accuracy_decimals: 2
update_interval: 60s
attenuation: 11dB
filters:
- multiply: 2.0 # The voltage divider requires us to multiply by 2
Gut das es Google gibt: hab jetzt gesehen das man die Zisternen-Füllstands-Messung auch über ESP Home umsetzen kann. Und auch mit DeepSleep,was mir aus Batterie-Spargründen auch wichtig ist. Und damit könnte ich den Code in die Konfiguration.yaml des ESP eintragen und die Batterie Spannung messen. Das werde ich heute mal probieren und hier berichten ![]()
So, erster Versuch gescheitert,hier mein Aufbau:
ESp32 mit ESPHome geflasht, letzte Konfiguration sah so aus:
captive_portal:
sensor:
- platform: ultrasonic
trigger_pin: GPIO21
echo_pin: GPIO22
name: "Water Tank Level"
unit_of_measurement: "%"
accuracy_decimals: 0
update_interval: 5s
pulse_time: 20us
filters:
- lambda: return ((((x*100)-20)-(123-20))/(123-20))*-100;
- filter_out: nan
Nichts zu machen, kommt immer folgender Fehler:
[20:18:49][C][ultrasonic.sensor:045]: Ultrasonic Sensor 'Water Tank Level'
[20:18:49][C][ultrasonic.sensor:045]: State Class: 'measurement'
[20:18:49][C][ultrasonic.sensor:045]: Unit of Measurement: '%'
[20:18:49][C][ultrasonic.sensor:045]: Accuracy Decimals: 0
[20:18:49][C][ultrasonic.sensor:045]: Icon: 'mdi:arrow-expand-vertical'
[20:18:49][C][ultrasonic.sensor:046]: Echo Pin: GPIO22
[20:18:49][C][ultrasonic.sensor:047]: Trigger Pin: GPIO21
[20:18:49][C][ultrasonic.sensor:048]: Pulse time: 20 µs
[20:18:49][C][ultrasonic.sensor:048]: Timeout: 11661 µs
[20:18:50][C][ultrasonic.sensor:052]: Update Interval: 5.0s
[20:18:50][C][captive_portal:099]: Captive Portal:
[20:18:50][C][esphome.ota:073]: Over-The-Air updates:
[20:18:50][C][esphome.ota:073]: Address: h2o-1000l-behaelter.local:3232
[20:18:50][C][esphome.ota:073]: Version: 2
[20:18:50][C][esphome.ota:080]: Password configured
[20:18:50][C][safe_mode:018]: Safe Mode:
[20:18:50][C][safe_mode:019]: Boot considered successful after 60 seconds
[20:18:50][C][safe_mode:019]: Invoke after 10 boot attempts
[20:18:50][C][safe_mode:019]: Remain for 300 seconds
[20:18:50][W][safe_mode:030]: Last reset occurred too quickly; will be invoked in 8 restarts
[20:18:50][C][web_server.ota:224]: Web Server OTA
[20:18:50][C][api:207]: API Server:
[20:18:50][C][api:207]: Address: h2o-1000l-behaelter.local:6053
[20:18:50][C][api:212]: Using noise encryption: YES
[20:18:50][C][mdns:122]: mDNS:
[20:18:50][C][mdns:122]: Hostname: h2o-1000l-behaelter
[20:18:53][D][ultrasonic.sensor:036]: 'Water Tank Level' - Distance measurement timed out!
[20:18:58][D][ultrasonic.sensor:036]: 'Water Tank Level' - Distance measurement timed out!
[20:19:03][D][ultrasonic.sensor:036]: 'Water Tank Level' - Distance measurement timed out!
Ich habe keine Ahnung warum das nicht geht, werde morgen mal mit einem NodeMCU 8266 probieren, vielleicht geht das ja…hat einer eine Ahnung was das sein könnte??
Mach doch einfach mal die min Konfiguration ![]()
Oben wird er ja erkannt
Gleiches Ergebnis:
[20:44:45][D][ultrasonic.sensor:036]: 'Ultrasonic Sensor' - Distance measurement timed out!
[20:44:45][D][sensor:104]: 'Ultrasonic Sensor': Sending state nan m with 2 decimals of accuracy
Oh man,jetzt habe ich es geschafft auf einem NodeMCU8266 mit folgendem Code:
Morgen probiere ich den Code auf dem ESP32…
Für heute habe ich genug ![]()
Heute also einen ESP32 mit ESPHome flashen und den Code in die Yaml eintragen - mal sehen ob es da dann auch funktioniert.
Weiter geht es dann mit einer Spannungserhöhung, da der Ultraschallsensor 5V benötigt - dazu folgender Aufbau:
Laderegler ist der TP4056+DW1, Step Up Wandler der MT3608 - dann sollten aus dem Akku 18650 aus 3,7V → 5V zur Versorgung des ESP32 werden (und damit auch 5V für den Ultraschallsensor.
Vorher noch den Code für den DeepSleepModus in die Yaml und - wenn das funktioniert - noch einen Code für die Spannungsmessung der Batterie. Da das jetzt nicht mehr über Tasmota sondern über ESPHome läuft, kann ich das alles in die Yaml hauen und hoffen das es läuft. Bin gespannt.
DeepSleepModus nach folgendem Beispiel (Video): Link
Spannung messen nach folgendem Beitrag: Link
Irgendwie bin ich jetzt „angefixt“ , nachdem ich das gestern zum Laufen gebracht habe. Aber es warten bestimmt genug Steine auf meinem Weg…ich berichte.
Update: irgendwie scheinen die Step Up Wandler der MT3608 Schrott zu sein, ich bekomme keine erhöhte Ausgangsspannung raus. Kann mir einer einen Rat geben? Eingangsspannung 3,7 bis 4V (voller Akku) - raus geht maximal 3,59V und ich kann am Poti drehen wie ich will. Liegt es an meinem Messgerät ?
Bin etwas ratlos und frustriert…
Hab gerade was Interessantes gefunden: Link
Hi, in meiner Modellbauzeit habe ich oft mit StepUp gearbeitet und eigentlich nie Probleme gehabt von 3,7 auf 5v zu kommen. Hast du bei der Einstellung der Spannung auch einen Verbraucher mit 5v angeschlossen. Die Potis haben sich dann eigentlich immer besser einstellen lassen (ich musste teilweise auch echt oft den Poti drehen). In welche Richtung drehst du, standard ist eigentlich, im Uhrzeigersinn fallen die Spannungen und gegen den Uhrzeigersinn steigen sie an.
Dein Messgerät ist sicher nicht optimal, sollte aber funktionieren. Der angezeigte Spannungsbereich (V) rechts, ist der nur für AC oder auch DC geeignet? Meist sind die 230v Messgeräte nicht ganz so präzise wie richtige Multimeter, aber wie gesagt, sollte trotzdem funktionieren.
Kann auch sein, dass der StepUp einfach einen Defekt hat, kommt auch immer wieder mal vor. Hast du noch Ersatz um das ausschließen zu können?
Egal in welche Richtung, an der Spannung von 3,59V ändert sich überhaupt nichts.
Beides - AC und DC.
Drei Stück hatte ich - alle machen das Gleiche…
Bekomme jetzt von AZ Delivery Ersatz…
Ok, dann hört es sich sehr danach an, dass die irgendwie ein weg hatten.
Hoffen wir mal, der Ersatz funktioniert dann ordentlich.
AZ Delivery ist da eigentlich sehr zuverlässig, habe dort auch schon oft bestellt.
So, heute sind neue Step-Up-Wandler gekommen.Musste mir zwar „nen Wolf“ drehen, aber am Ende haben sie funktioniert. Damit läuft der ESP8266 und auch die Messung. Nun bleibt nur ein Problem: der NodeMCU8266 geht zwar in den DeepSleep, wacht aber nicht mehr auf. Hab schon im Internet recherchiert, aber keine wirkliche Lösung gefunden. RST und D0 (Wake) habe ich verbunden, trotzdem „schläft“ der ESP weiter. Der Code sieht wie folgt aus:
sensor:
- platform: ultrasonic
trigger_pin: GPIO4
echo_pin: GPIO5
name: "Ultrasonic Sensor"
update_interval: 5s
timeout: 4m
force_update: false
filters:
- lambda: if (isnan(x)) { return 999.0; } return x;
- sliding_window_moving_average:
window_size: 5
send_every: 5
# DeepSleep
deep_sleep:
run_duration: 30s
sleep_duration: 1min
Hat jemand einen Tip für mich?


