Dies ist eine ESP32+LORA -Anwendung, die das HF -Signal aus einem Thermocorks Smoke X2 oder Smoke X4 Remote -Thermometer empfängt und die Informationen an einen MQTT -Broker veröffentlicht. Dies funktioniert zusammen mit allen vorhandenen Rauch X2/X4 -Empfängern (dh alle gepaarten Empfänger funktionieren weiterhin). Dieses Projekt wurde speziell so konzipiert, dass sie sich in den Home-Assistenten integrieren, kann aber auch mit jeder anderen MQTT-basierten Anwendung verwendet werden. Darüber hinaus kann diese Anwendung eigenständig (WLAN -Schnittstelle im AP -Modus ohne MQTT oder Home Assistant) für die Feldnutzung betrieben.
Beachten Sie, dass diese Anwendung nicht mit den ursprünglichen Thermoces -Rauch- oder Thermocors -Signalen Produkten kompatibel ist.
Der Rauch X ist solide gebaut, genau, hat eine großartige HF -Reichweite und benötigt nicht das Internet, um zu funktionieren. Die bereitgestellte Empfängereinheit zeigt jedoch nur aktuelle Sondenwerte, ohne dass Trends aufzeichnen oder verfolgt werden.

Mit dieser Anwendung können Smoke X -Benutzer die Temperaturdaten aus dem RF -Signal sammeln und den Temperaturverlauf über eine Web -Benutzeroberfläche (bedient von ESP32), einem Home Assistant Dashboard und/oder einer anderen Datenvisualisierungstools für Datenvisualisierung visualisieren.



Alle Daten werden wie unten gezeigt erfasst, verarbeitet und lokal gespeichert:
Flussdiagramm LR
Basis -> | Lora rf | ESP32
MQCLIENT -> MQ
MQ -> ha
Web -> Browser (jeder Webbrowser)
Subgraph Smoke x2/x4
Sonden -> Basis (Basisstation) -> | Lora rf | Recv (Empfänger)
Billows -> Basis
Ende
Subgraph ESP32 [Smoke-X-Receiver]
MQClient (MQTT Client)
Web (HTTP -Server)
Ende
Subgraph MQTTB [MQTT Broker]
MQ (HOMAUASSISTANT THOMA)
Ende
Subgraph Home Assistent
mq_int
Ende
Subgraph HA_DEV [HA -Gerät für x2/x4]
E1 (binäre Sensoreinheiten)
E2 (Sensoreinheiten)
Ende
Subgraph MQ_int [MQTT -Integration]
HA (Auto Discovery) -> HA_DEV
ha_dev
Ende
Auch wenn Sie kein Benutzer von Home Assistant sind, können Sie die integrierte Weboberfläche dieser Anwendung verwenden, um Ihre Temperaturen zu überwachen und nach Trends zu achten.
Ein ESP32 mit angeschlossenem Semtech Lora -Transceiver, der im 915 -MHz -ISM -Band operiert, ist erforderlich. Ein kombiniertes ESP32+LORA -Entwicklungsscheibe wie das Humme WiFi Lora 32 V2 oder V3 ist ideal, aber jedes ESP32 -Board mit einem SPI -angeschlossenen SX1276 oder SX1262 sollte funktionieren.
$ source /path/to/esp-idf/export.sh$ git clone --recurse-submodules [email protected]:G-Two/smoke-x-receiver.git
$ cd smoke-x-receiverDie Standardkonfiguration für dieses Projekt wurde für das Heltsc WiFi Lora 32 V3 (basierend auf dem SX1262) geschrieben. Wenn Sie genau diese Hardware verwenden, können Sie diesen Abschnitt wahrscheinlich überspringen. Wenn Sie auf einer anderen Hardware ausgeführt werden, den Build anpassen möchten oder wenn der Standardbau nicht funktioniert, müssen Sie Menuconfig ausführen:
$ idf.py menuconfigHinweis: Wenn Sie einen SX1276 (z .
Möglicherweise sind zusätzliche Konfigurationsänderungen erforderlich, um Ihre spezifische Hardware oder andere Anforderungen zu unterstützen
$ idf.py set-target esp32s3 # If using a Heltec WiFi LoRa 32 v3, otherwise set target as appropriate to your hardware
$ idf.py flashDie Anwendung und das Web -Assets werden in ESP32 Flash erstellt und geschrieben.
Nach dem Flash des ESP32 müssen mehrere Elemente konfiguriert und in NVRAM gespeichert werden. Die Konfiguration dieser Elemente bleibt nach dem Zurücksetzen von ESP32 sowie Anwendungssoftware -Updates bestehen.
Das Gerät wird standardmäßig in den AP -Modus ausgeführt, wenn WLAN -Informationen nicht konfiguriert wurden oder wenn die Verbindung ausfällt. Die Standard -AP -Modusinformationen (konfigurierbar in Menuconfig) lautet:
Stellen Sie eine Verbindung zum ESP32-AP her und navigieren Sie mit einem Webbrowser zu http://192.168.4.1/wlan. Sie erhalten eine selbstplanende Web-Benutzeroberfläche, um das Gerät mit Ihrem Heimnetzwerk zu konfigurieren. WPA2-PSK und WPA2-ENTERPRISE (EAP-TTLS) werden unterstützt. Sobald Sie Ihre Netzwerkauthentifizierungsinformationen angewendet haben, wird das Gerät zurückgesetzt und versucht, sich Ihrem Heimnetzwerk anzuschließen. Der ESP32 liefert eine DHCP -Client -Hostname -Anfrage für smoke_x . Sobald Sie das ESP32 in Ihrem Heimnetzwerk gefunden haben, können Sie den Rest des Setup -Prozesses fortsetzen. Wenn der ESP32 Ihrem Netzwerk nicht beigetreten ist, wird er in den Standard -AP -Modus zurückgeführt.
Auf der Registerkarte "Kombination" der Web -Benutzeroberfläche wird angezeigt, dass das Gerät mit einer Rauch -X -Basiseinheit gekoppelt werden muss. Wenn sich das Gerät in einem ungepaarten Zustand befindet, überwacht es die beiden Synchronisierungskanäle (920 MHz für X2, 915 MHz für x4) und kombiniert mit dem ersten Rauch -Synchronisierungsgetriebe, das es erhält. Um zu kombinieren, platzieren Sie die Smoke X -Basiseinheit im Synchronisationsmodus, wodurch die Synchronisierungs -Bursts alle drei Sekunden gesendet werden. Sobald der ESP32 den Burst empfängt und analysiert, überträgt er eine Synchronisierungsreaktion auf die Zielfrequenz, und die Basiseinheit kehrt zum normalen Betrieb zurück. Zu diesem Zeitpunkt können Sie in der Web -Benutzeroberfläche bestätigen, dass das Gerät mit einer bestimmten Geräte -ID und Frequenz gepaart ist. Dies ist das einzige Mal, dass das ESP32 ein Lora -Signal übertragen. Das Gerät kann immer über die Web -Benutzeroberfläche ungepaart werden. Die Paarung/Entpaarung des ESP32 hat keinen Einfluss auf den Paarungsstatus anderer Geräte.
Nach der Kombination zeigt die Statusseite ein Temperaturdiagramm an.
Die Web -Benutzeroberfläche wird auch verwendet, um das Gerät für eine Verbindung zu einem MQTT -Broker zu konfigurieren. Der MQTT URI ist das einzige obligatorische Feld, der Rest ist optional und hängt von Ihrer spezifischen MQTT -Broker -Konfiguration ab. Die MQTTS -Server -Authentifizierung wird durch Eingabe eines vertrauenswürdigen Ca pem über die Web -Benutzeroberfläche unterstützt. PKI -Client -Auth wird derzeit nicht unterstützt.
Wenn MQTT konfiguriert und aktiviert ist, veröffentlicht die Anwendung Statusnachrichten nach Erhalt einer HF -Übertragung von der Smoke X -Basisstation. Die Basisstation überträgt alle dreißig Sekunden. Die veröffentlichten Nachrichteninhalte sind:
{
"probe_1_attached" : " ON " ,
"probe_1_alarm" : " ON " ,
"probe_1_temp" : 70.4 ,
"probe_1_max" : 185 ,
"probe_1_min" : 32 ,
"billows_target" : " offline " ,
"probe_2_attached" : " ON " ,
"probe_2_alarm" : " ON " ,
"probe_2_temp" : 70.4 ,
"probe_2_max" : 91 ,
"probe_2_min" : 50 ,
"billows_attached" : " OFF "
}Hinweis: X4 -Geräte enthalten auch zusätzliche Daten für Sonden 3 und 4
Diese Anwendung unterstützt den Home Assistant MQTT Discovery. Wenn Ihre Home -Assistant -Instanz die MQTT -Integration für die Erkennung konfiguriert hat, werden die folgenden Rauch -X -Sensoren automatisch hinzugefügt:
Nach erfolgreicher Verbindung zum MQTT -Broker konfiguriert das Gerät jeden Sensor, indem Erkennungsmeldungen ähnlich wie folgt veröffentlicht werden (eine für jede Entität):
{
"dev" : {
"name" : " Smoke X Receiver " ,
"identifiers" : " |ABC12 " ,
"sw_version" : " 0.1.0 " ,
"model" : " X2 " ,
"manufacturer" : " ThermoWorks "
},
"exp_aft" : 120 ,
"pl_not_avail" : " offline " ,
"stat_t" : " homeassistant/smoke-x/state " ,
"dev_cla" : " temperature " ,
"unit_of_meas" : " °F " ,
"uniq_id" : " smoke-x_probe_1_temp " ,
"name" : " Smoke X Probe 1 Temp " ,
"val_tpl" : " {{value_json.probe_1_temp}} "
}Darüber hinaus abonniert die Bewerbung das Thema Home Assistant Status für Geburtskündigungen. Wenn der Hausassistent wieder neu gestartet wird, wird die Geburtsanzeige der Anwendung signalisieren, die Erkennungsmeldungen erneut zu veröffentlichen. Standard -Home -Assistent -Themennamen werden verwendet, können jedoch in der ESP32 -Web -Benutzeroberfläche angepasst werden.
Die Anwendung bietet eine HTTP -API (verwendet vom Temperaturverlaufsgraphen der Web -UI), die auch von jedem anderen Client verwendet werden kann, der HTTP -Anforderungen an den ESP32 senden kann.
Antwort:
{
"probe_1" : {
"current_temp" : 95.3 ,
"alarm_max" : 185 ,
"alarm_min" : 32 ,
"history" : [ 95.1 , 95.2 , 95.3 ]
},
"probe_2" : {
"current_temp" : 165.9 ,
"alarm_max" : 91 ,
"alarm_min" : 50 ,
"history" : [ 165.7 , 165.8 , 165.9 ]
},
"billows" : false
}Hinweis: X4 -Geräte enthalten auch zusätzliche Daten für Sonden 3 und 4
PRs zur Behebung von Fehler oder Verbesserung/Hinzufügen von Funktionen sind willkommen! Wenn Sie die Anwendung erfolgreich erstellt haben, haben Sie alles, um sie zu ändern.
Es kann hilfreich sein, die ESP32 -Protokolle während der ersten Anwendungseinrichtung zu überwachen, um das Debuggen zu unterstützen. Während der ESP32 weiterhin an Ihren Computer angeschlossen ist, überwachen Sie Protokolle, indem Sie ausführen:
$ idf.py monitor
Diese Anwendung wird mit dem ESP-IDF V4 SDK erstellt und verfügt über externe Abhängigkeiten mit den folgenden Lora-Modemtreibern:
Die Webschnittstelle ist in VUE geschrieben und als komprimierte statische Web -Assets auf das ESP32 -Flash -Dateisystem geladen, die vom ESP32 -Webserver bedient werden. Um die Entwicklung und manuelle Tests zu unterstützen, kann die Webschnittstelle mit:
$ ./mock_web_ui.sh