« Elektrotechnik & Smarthome  |

ESP32 basierendes IoT-Dingens

Teilen: facebook    whatsapp    email
Zusammenfassung anzeigen (Beta)
 1  2 ... 3  4 
  •  taliesin
  •   Gold-Award
28.7. - 28.10.2025
64 Antworten | 7 Autoren 64
3
67
Ich habe mir gerade ein paar Mi-Thermometer eingefangen, die mit einer custom firmware offen BLE sprechen.

https://github.com/pvvx/ATC_MiThermometer

Die Dinger sind super genau, ich habe die Temperatur mittels kalibrierten Messgerät (Testo) und die Feuchte im Salzequilibrium (bei MgCl2 33% und bei NaCl 75%) nachgemessen. Die Werte sind wie im Sensordatenblatt versprochen (ca. 2% Feuchte und 0.3K).

Eigentlich will ich mein Kellerbelüftungsproblem damit lösen, aber dazu braucht es einen BLE-Empfänger, da alle sonstigen Kasteln (Raspis und Server) zu weit weg stehen um die Messknechte zu sehen.

Jetzt war der Gedanken (da ich sonst nix G'scheites finde) ein ESP32 Teilchen zu bauen.

Meine Anforderungen sind:
* ein Relais
* Modbus 485 (als slave, der die BLE-Daten auch liefern kann)
* BLE
* OTA-update über WiFi
* Versorgung über 12-24V

Jetzt ist das Dazubauen von ein paar Kleinigkeiten kein großes Thema, das Ding sollte in ein Standardgehäuse passen.

Der Haken, alleine zahlt sich das eher nicht aus. Die kaufbaren BLE-Proxis sind meist ohne Netzteil und das Relais muss ich auch noch dazubauen. Alles WiFi (oder BLE) will ich eigentlich auch nicht und diese Lösung könnte auch mit Modbus-Sensoren umgehen.

Hat hier irgendjemand ähnliche Anforderungen, HW und SW kann ich, Zeit ist etwas bescheiden.

  •  Benji
  •   Gold-Award
16.8.2025  (#41)
mal sehen wie sich der Leidensdruck entwickelt emoji

1
  •  gloitom
  •   Gold-Award
5.9.2025  (#42)

zitat..
Benji schrieb:

Danke! Genauso hätte ich es auch versucht, aber Schritt 3 funktioniert nicht (mehr). Es häufen sich aber Forenbeiträge dazu, Miaomi hat da wohl (kürzlich) reagiert.

ist momentan leider etwas frustrierend.

Schritt 3 habe ich gerade gemacht unter windows mit dem python script, hat wunderbar funktioniert
Dann mit Edge: https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html zwei Mi programmiert


1
  •  Benji
  •   Gold-Award
6.9.2025  (#43)
Vielleicht werd ichs nochmal probieren... ggf. liegts an meinem Linux.

Aber inzwischen hab ich eins davon schon erfolgreich per USB geflasht... ist zwar bissel Löten, funktioniert aber zuverlässig.

1
  •  taliesin
  •   Gold-Award
6.9.2025  (#44)
Unter Ubuntu 24.04 gerade probiert. Er sagt nur 'Invalid login or password', ev. war ich mehrmals zu blöd für das Captcha?!

1
  •  taliesin
  •   Gold-Award
6.9.2025  (#45)
OK, gerade in der Windows VM probiert, direkt mit dem token_extractor.exe (latest).

Man bekommt die URL für den 2FA code, den darf man dort aber nicht eingeben, sondern im token_extractor (schreibt das Ding eh!)
Dann lief es.

Das Problem dürfte die alte Version auf meiner Linuxkiste gewesen sein, fix war vor 2 Wochen, in v1.4.0

Ich habe jetzt 6 Stk. am Laufen, im ganzen Haus verteilt, 3 Geschoße, der Empfänger sitzt im Keller. Die Konfiguration habe ich auf ein Messintervall von 10s, Advertising auf 5s und TX-power auf +3dB.

1
  •  Benji
  •   Gold-Award
6.9.2025  (#46)

zitat..
taliesin schrieb: Das Problem dürfte die alte Version auf meiner Linuxkiste gewesen sein, fix war vor 2 Wochen, in v1.4.0

das erklärt natürlich einiges! Danke! Spar ich mir das Löten...


1
  •  taliesin
  •   Gold-Award
7.9.2025  (#47)
Auf die Gefahr hin, den Forumkontext etwas zu verlassen ...

Mein Kellerlüftungsprozess läuft jetzt (ein erster Test). Ich habe dazu einen fuzzy controller gebastelt mit skfuzzy (Python). Verwendet werden die Eingangsvariablen: 
  • dp_margin: Taupunktabstand, d.h. um wieviel dürfen kalte Ecken kälter sein, bevor es zur Kondensation kommt.
  • vent_eff: Wirksamkeit der Belüftung (betreffend Entfeuchtung), das ist der Unterschied in den absoluten Feuchten zwischen innen und außen
  • heat_wd: Wärmeentzug, eigentlich nur die Temperaturdifferenz zwischen innen und außen

Der fuzzy controller hat jetzt 3 einfache Regeln (WITH hat Einfluss auf das Regelgewicht):IF dp_margin IS high THEN fan IS low
IF vent_eff IS high THEN fan IS high WITH 50%
IF heat_wd IS high THEN fan IS low WITH 80%

Mal schauen wie weit ich damit komme, aktuell sehe ich
dew point margin: 4.30
ventilation efficacy: 1.24
heat withdrawal: 1.40
----> ventilation: 0.18

Unter 0.5 bleibt die Lüftung aus.

Die hardware ist reichlich unspektakulär

_aktuell/20250907993724.jpg

1
  •  taliesin
  •   Gold-Award
18.9.2025  (#48)

_aktuell/20250918131256.png
Der Datensammler ist jetzt auch fertig. Der Außensensor steht auf der Terrasse, da sieht man jeden Sparren der Überdachung emoji Duschen lässt sich auch gut erkennen.

Jetzt kann der Kellerlüftungsfuzzycontroller auch mal durchlaufen, vorher wäre debuggen relativ schwierig gewesen. Lustig ist, die Batterieanzeige, die hat einen erheblichen Temperaturgang 14°C 83%, bei 42°C 96%.

Für die große Lüftung braucht es noch einen VOC Sensor, das geht aber nicht batteriebetrieben, weil die einfach zu viel Strom brauchen. Keine Ahnung was das wird.

1
  •  Benji
  •   Gold-Award
19.9.2025  (#49)
Du hast mein Grafana-Setup geklaut emoji

_aktuell/20250919533156.png

1
  •  taliesin
  •   Gold-Award
19.9.2025  (#50)
Vermutlich hast du es schon mal geschrieben, aber welche CO2 Sensoren verwendest du?

1
  •  Benji
  •   Gold-Award
19.9.2025  (#51)

zitat..
taliesin schrieb: welche CO2 Sensoren verwendest du?

in den Räumen aranet 4, "Haus" ist der integrierte der KWL KWL [Kontrollierte Wohnraumlüftung] (ist ein E+E Sensor)

2
  •  gloitom
  •   Gold-Award
20.9.2025  (#52)

zitat..
Benji schrieb:
in den Räumen aranet 4

Wie kommst du an die Daten vom aranet4, verwendest du die Aranet-Basisstation?


1
  •  Benji
  •   Gold-Award
20.9.2025  (#53)

zitat..
gloitom schrieb: verwendest du die Aranet-Basisstation?

Nein!

zitat..
gloitom schrieb: Wie kommst du an die Daten vom aranet4

Die Dinger schicken auch regelmäßig BLE-Advertisements welche auch die Meßwerte enthalten, leider nicht BTHome-kompatibel, sondern proprietär. Es hab aber Infos zum Format im Netz gefunden, und meinen BTHome-to-MQTT Gateway auf den Shellies entsprechend erweitert.

// Aranet 4 BLE-Protokoll (Manufacturer Data)
//
// | Offset | Name             | Size   | Beschreibung
// |--------|------------------|--------|----------------------------------------------|
// |  0     | mfd_id           | uint16 | Manufacturer ID (0x0702)                     |
// |  2     | status           | uint8  | Statusflags (Bit 5: 1 = Daten, 0 = Status)   |
// |  3     | fw_patch         | uint8  | Firmware Patch-Level                         |
// |  4     | fw_minor         | uint8  | Firmware Minor-Version                       |
// |  5     | fw_major         | uint16 | Firmware Major-Version                       |
// |  7     | hw               | uint8  | Hardware-Version                             |
// |  8     | region           | uint8  | Region-Code                                  |
// |  9     | packaging        | uint8  | Verpackungstyp                               |
// | 10     | co2_ppm          | uint16 | CO₂ in ppm                                   |
// | 12     | temperature      | uint16 | Temperatur in °C (Skalierungsfaktor 20)      |
// | 14     | pressure         | uint16 | Luftdruck in hPa (Skalierungsfaktor 10)      |
// | 16     | humidity         | uint8  | relative Luftfeuchtigkeit in %               |
// | 17     | battery          | uint8  | Batteriestatus in %                          |
// | 18     | co2_level        | uint8  | CO₂-Warnstufe                                |
// | 19     | refresh_interval | uint16 | Aktualisierungsintervall (s)                 |
// | 21     | age              | uint16 | Alter der Messung (s)                        |
// | 23     | packet_id        | uint8  | Paket-ID zur Duplikaterkennung               |

Hier sieht man auch meinen großen Kritikpunkt am Aranet 4: rF kommt nur in einer Auflösung von 1%, was zwar von der Genauigkeit her ausreicht, aber für eine Visualisierung unbrauchbar ist (die Sprünge kriegt man nicht sinnvoll gefiltert). Temperatur mit 0.05°C etwas besser, aber auch zu grob. Zum Vergleich: die Mi-Geräte liefern beide Werte mit Auflösung 0.01

1
  •  taliesin
  •   Gold-Award
20.9.2025  (#54)

zitat..
Benji schrieb: rF kommt nur in einer Auflösung von 1%, was zwar von der Genauigkeit her ausreicht, aber für eine Visualisierung unbrauchbar ist (die Sprünge kriegt man nicht sinnvoll gefiltert).

Wenn sie intern deutlich genauer messen, aber nur 1% Auflösung rausschieben, hilft leider filtern nix.

Ich möchte noch einen VOC Sensor haben und bin schon fast versucht die Mi's um einen SPG40 und ein Netzteil zu erweitern. Der Sensor braucht dauerhaft 2-3mA, übers Jahr sind das 16Ah, das wird mit Batterie nichts.

Eventuell findet ja wieder jemand ein nettes Chinesenteil emoji


1
  •  Benji
  •   Gold-Award
20.9.2025  (#55)

zitat..
taliesin schrieb: Ich möchte noch einen VOC Sensor haben

Warum genau VOC? Als "CO2-Schätzung" (wie meistens) oder weil dich wirklich VOC interessiert?

Was sinnvolles habe ich da auch nie gefunden; die Sensoren wollen immer beheizt werden, und das macht keinen Spaß mit Batterie... ich hab vor Jahren mal was gebaut (Modell müsste ich raussuchen) und dort Timer-gesteuert Heizung an, 30 Sekunden warten, messen, Heizung aus, 15 Minuten später von vorne... macht trotzdem keinen Spaß emoji


1
  •  taliesin
  •   Gold-Award
20.9.2025  (#56)
Ich finde, dass CO2 nur ein Merkmal für die Luftqualität ist. Meine Lüftung soll (siehe eigener thread) die Luft aus 3 Ablufträumen verteilt holen. Da sind Küche und WC dabei, dort ist CO2 in den allerwenigsten Fällen der Hauptauslöser für schlechte Luft, im Schlafzimmer schon CO2, aber auch immer begleitet von viel 'Menschengeruch'.

Der Absolutwert ist mir dabei auch fast egal, eine 5 stufige Skala für die Luftqualität würde für diese Form der Steuerung völlig reichen. Nach dem Motto:

  • viele Räume mit ekelhafter Luft --> hohe Luftmenge
  • einzelne Räume mit ekelhafter Luft --> passend Luftmenge für diese Räume und Luftführung dort hin.
  • Alle Räume mit vernünftiger Luft --> minimale Luftmenge


1
  •  berhan
  •   Gold-Award
26.9.2025  (#57)

zitat..
taliesin schrieb: Da sind Küche und WC dabei, dort ist CO2

Meine Erfahrungen dazu, WC ist bei mir mit der KWL KWL [Kontrollierte Wohnraumlüftung] sowieso kein Problem (unabhängig des Volumenstroms). Der CO2 Sensor schlägt bei den Gerichten die Gerüche produzieren (Pfannengerichte, Bratgerichte, ...) in der Küche an. Beim Kochen dürfte CO2 abgegeben werden. Bei kochendem Wasser geht's zwar nicht, jedoch steigt hier die Luftfeuchtigkeit relativ schnell an (so wie beim Duschen). Somit könnte die Steigung der Luftfeuchtigkeit für die Regelung zusätzlich verwendet werden


1
  •  taliesin
  •   Gold-Award
26.9.2025  (#58)
Ja, ich denke auch, dass ein CO2 Sensor die allermeisten Szenarien abdeckt, aber VOC ist halt auch noch viel billiger. Dass beim Kochen CO2 entsteht, hätte ich nicht gedacht.

1
  •  Benji
  •   Gold-Award
26.9.2025  (#59)

zitat..
taliesin schrieb: Dass beim Kochen CO2 entsteht, hätte ich nicht gedacht.

Das glaub ich auch nicht wirklich (außer man kocht mit Gas, dann eh klar)

was allerdings stimmt: viele NDIR-Sensoren für CO2 lassen sich durch Wasserdampf "täuschen" weil dieser ein ähnliches Absorptionsspektrum hat wie CO2. Inwieweit zB ein Aranet 4 (durch den integrierten Feuchte-Sensor) dies kompensiert, weiß ich nicht.

Edit: wenn ich mich nicht irre, hat das Aranet einen Zweikanal-NDIR, und kann damit Störeinflüsse die nicht von CO2 herrühren (wie eben Wasserdampf) recht gut eliminieren.

welche CO2-Sensoren verwendet ihr, @­taliesin und @berhan?

1
  •  taliesin
  •   Gold-Award
26.9.2025  (#60)
Fuzzy Kellerlüftung im Einsatz, geht gar nicht so schlecht. Die Randbedingungen für's Kellerlüften sind gerade relativ eng. Aber er wurschtelt sich so durch.


_aktuell/202509265426.png
Oben im Bild sieht man die verwendeten Eingangsvariablen, unten die Ausgänge (nach der Defuzzification) und die echten Relaisschaltungen (aktuell nur die Lüftung), für den Entfeuchter ist es zu trocken im Keller.

Die Eingangsvariablen sind:
  • dp_margin ... dew point margin (der Abstand der aktuellen Innentemperatur zur Kondensationsationstemperatur)
  • vent_eff ..- ventilation efficacy (der Unterschied in der aktuellen absoluten Feuchtigkeit zwischen innen und außen)
  • heat_wd ... heat withdrawal (Wärmeentzugswert, der Temperaturunterschied zwischen innen und außen)
  • vent_rt ... ventilation runtime (wie lange der Lüfter in den letzten 24h schon gelaufen ist)

Der vent_rt Wert ist im Bild gerade 0 geworden, weil ich den basement-ventilation.service  gerade neu gestartet habe.

1
  •  berhan
  •   Gold-Award
26.9.2025  (#61)

zitat..
Benji schrieb: welche CO2-Sensoren verwendet ihr, @­taliesin und @berhan?

Ist bei mir ein Zweistrahl-NDIR-Sensor
https://www.titec-gmbh.de/produkte/kanalfuehler-zur-kohlendioxid-messung-kaco2-3/


1


Beitrag schreiben oder Werbung ausblenden?
Einloggen

 Kostenlos registrieren [Mehr Infos]