Dies ist ein Fork von:https://github.com/pvvx/THB2 Benutzerdefinierte Firmware für Tuya-Geräte basierend auf dem PHY622x2-Chipsatz.
Installationsschritte werden auch hier erklärt: https://youtu.be/AD2KduDTjf8
| THB1 | THB2 | THB3 | BTH01 | TH05_V1.3 | TH05_V1.4 | TH05F |
|---|---|---|---|---|---|---|
Diese Firmware funktioniert mit Home Assistant und anderer Software, die im BTHome-Format ausgeführt wird.
Die gesamte Firmware unterstützt einen dieser Sensoren: CHT8215 (CHT8310), CHT8305, AHT20..30.
Software zum Einrichten und Erstellen von BLE OTA: PHY62x2BTHome.html.
Das Hochladen von OTA-Dateien auf PHY62x2BTHome.html erfolgt automatisch. Für OTA müssen Sie keine Dateien aus diesem Repository herunterladen.
Um PHY62x2BTHome.html offline auszuführen, kopieren Sie einfach die HTML-Datei in einen lokalen Ordner.
Um mit dem Gerät arbeiten zu können, müssen Sie die FW Boot -Firmware über einen USB-COM-Adapter auf das Gerät schreiben. Boot-Firmware ist ein Programm mit eingeschränkter Funktionalität und bietet sichere OTA-Updates.
Anschließend wird mithilfe der BLE-Verbindung in PHY62x2BTHome.html über die Registerkarte OTA das Hauptbetriebsprogramm der FW APP aufgezeichnet.
FW APP kann auch mit einem USB-COM-Adapter aufgezeichnet werden. Die Boot-Firmware verfügt über minimale Funktionen. FW Boot wird nur zum Herunterladen der Vollversion der FW APP ( .bin Dateien) über OTA verwendet.
| Gerät | Boot-Datei | OTA-Datei | Beschriftung von Leiterplatten |
|---|---|---|---|
| THB1 | BOOT_THB1_v18.hex | THB1_v18.bin | NEIN |
| THB2 | BOOT_THB2_v18.hex | THB2_v18.bin | NEIN |
| THB3 | BOOT_THB2_v18.hex | THB2_v18.bin | NEIN |
| BTH01 | BOOT_BTH01_v18.hex | BTH01_v18.bin | NEIN |
| TH05_V1.4 | BOOT_TH05_v18.hex | TH05_v18.bin | TH05_V1.4, TH05_V1.5, TH05_V1.6 (Chip: BL55028) |
| TH05_V1.3 | BOOT_TH05D_v18.hex | TH05D_v18.bin | RSH-TH05-V1.3 (Chip: BL55072) |
| TH05F | BOOT_TH05F_v18.hex | TH05F_v18.bin | TH05Y_V1.1, TH05Y_V1.2 (Chip: QD01 2332 NT) |
Die wichtigsten Firmware-Dateien BOOT_XXX_vXX.hex (für die Programmierung über USB-COM-Adapter) und XXX_vXX.bin (für OTA) befinden sich im bin-Verzeichnis.
Dateien zum Aktualisieren des Bootvorgangs über OTA befinden sich im Verzeichnis update_boot. Der Vorgang der Aktualisierung des Startvorgangs über OTA ist nicht sicher. Bitte prüfen Sie vorher den Batteriestand. Wenn der Start einwandfrei funktioniert, ist kein Update auf die neue Version erforderlich. Die Notwendigkeit, Boot durch eine neue Version zu ersetzen, wird später bekannt gegeben.
Die aktuelle
FW Boot' version is **v1.7** for devices with CHT8305 sensor. For other variants,ist ab Version v1.4 kein FW-Boot erforderlich.
Mit Standardeinstellungen :
| Version | Beschreibung |
|---|---|
| 1,0 |
|
| 1.1 |
|
| 1.2 |
|
| 1.3 |
|
| 1.4 |
|
| 1.5 |
|
| 1.6 |
|
| 1.7 |
|
| 1,8beta |
|
Es ist möglich, das Gerät mit dem Boot-Programm über einen USB-COM-Adapter mit 3,3-V-Ausgängen zu flashen.
| Adapter | Gerät |
|---|---|
| GND | -Vbat |
| +3,3V | +Vbat |
| TX | RX1 |
| RX | TX1 |
| RTS | ZURÜCKSETZEN |
Wenn am Adapter kein RST-Pin vorhanden ist, schließen Sie den RESET-Pin mit GND (-Vbat) kurz und öffnen Sie ihn schnell, wenn das Skript startet (es kann einige Versuche dauern).
Die Bezeichnung der Pins am Gerät finden Sie in der Beschreibung unter den Links:
pip3 install -r requirements.txt
Laden Sie die für das jeweilige Gerät erforderliche Datei BOOT_XXX_vXX.hex aus dem bin-Verzeichnis herunter.
Laufen:
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_XXX_vXX.hex
Das Boot-Flashen ist abgeschlossen. Das Gerät ist betriebsbereit und der Adapter kann abgezogen werden.
Laden Sie die Vollversion der Firmware über OTA herunter. Gehen Sie dazu wie folgt vor:
Connect , suchen Sie nach dem Gerät und stellen Sie eine Verbindung her.OTA , wählen Sie die erforderliche Firmware ( .bin ) aus und klicken Sie auf Start .Das Gerät sollte neu starten und betriebsbereit sein.
Optional:
- Um den gesamten Flash vorab zu löschen, verwenden Sie die Option
-a.- Um den Flash-Arbeitsbereich vorab zu löschen, verwenden Sie die Option
-e.- Mit dem USB-COM-Adapter ist es möglich, die Haupt-Firmware (APP) sofort zu schreiben:
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 XXX_vXX.bin
python3 rdwr_phy62x2.py -p COM11 -r rc 0x11000000 0x80000 ff_thb2.bin
Die Original-Tuya-Firmware für einen bestimmten Gerätetyp kann über die Links in der Tabelle am Anfang dieser README-Datei bezogen werden.
python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin
Nicht alle USB-COM-Adapter unterstützen 1 Mbit. Entfernen Sie dann die Option
-b 1000000oder wählen Sie eine andere Baudrate.
| Adresse | Beschreibung | Größe |
|---|---|---|
| 0x00000 | Verwendetes ROM | 8 Kilobyte |
| 0x02000 | Boot-Info für ROM | 4 Kilobyte |
| 0x03000 | FW-Boot mit OTA-Funktion | 52 Kilobyte |
| 0x10000 | FW-APP | 128 Kilobyte |
| 0x30000 | Verlaufsaufzeichnung | 304 Kilobyte |
| 0x7C000 | Einstellungen speichern (EEP) | 16 Kilobyte |
FW Boot verfügt über eine OTA-Funktion, verfügt jedoch nicht über eine Verlaufsfunktion oder andere Add-Ons. Es wird verwendet, um OTA bei fehlgeschlagenen oder falschen Aktualisierungen zu behandeln.
FW APP hat keine OTA-Funktion, für OTA startet es im FW Boot neu. Es verfügt über zusätzliche Funktionen und Erweiterungen.
Aktion der Taste beim Einschalten des Geräts:
Wenn die Taste beim Start gedrückt wird, startet immer FW Boot .
Wenn die Taste nicht gedrückt wird, wird der FW APP Eintrag überprüft oder nicht. Wenn eine FW APP vorhanden ist, wird die FW APP gestartet. Wenn keine FW APP vorhanden ist, wird FW Boot gestartet.
Bei Thermometern mit Bildschirm wird bei nicht eingeschalteter Zeitanzeige beim Start oder Neustart kurzzeitig Folgendes angezeigt:
„Bot 14“ – FW Boot Version 1.4
„APP 15“ – FW APP Version 1.5
Es gibt zwei Möglichkeiten, einen Neustart zum FW Boot von FW APP aus zu erzwingen:
7233 im Service des Programms PHY62x2BTHome.html ein.Vollständiger Neustart: Geben Sie im
Servicedes Programms PHY62x2BTHome.html den Befehl7201ein.
Über den USB-UART-Adapter kann die APP sofort nach dem Booten geschrieben werden. Zum Beispiel:
python3 rdwr_phy62x2.py -p COM11 -e wh ./bin/BOOT_TH05V13_v13.hex
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 ./bin/TH05V13_v13.bin
Seit Version 1.2 wird die Abfrage eines mit einem Reed-Schalter verbundenen Pins oder eines mit GND kurzgeschlossenen Kontakts unterstützt.
Die maximale Schaltfrequenz beträgt 100 Mal pro Sekunde.
Wenn der Kontakt klappert, empfiehlt es sich, den Kontakt mit einem Kondensator zu überbrücken.
Beim Schließen oder Öffnen wird nach einer Zeitspanne von 50 ms ein Block von 5 BLE-Advertisements nacheinander gesendet.
Bei jedem „Offen“-Ereignis wird ein Zähler hinzugefügt.
Der Zählerstand wird zusammen mit jedem „Open/Close“-Ereignis übertragen.
Eingangskontakt auf der Thermometerplatine:
RX .RX .RX .RX2 .RX0 .RX2 . 

Der mit „TX“ oder „TX2“ beschriftete Kontakt auf der Leiterplatte wird mit Hysterese-Sollwerten für Temperatur und Luftfeuchtigkeit gesteuert. Es besteht die Möglichkeit, auf eine inverse Leistungsregelung umzuschalten.
Die Einstellung erfolgt im Programm PHY62x2BTHome.html.
Der Ausgangsbetrieb wird durch Einstellen des Hysteresewerts zugewiesen:
Um Grundparameter auf Ausgangswerte zurückzusetzen, nehmen Sie ein Android-Smartphone und die App „nRFConnect“. Verbinden Sie sich mit dem Gerät und schreiben Sie im Dienst 0xFCD2 mit der Charakteristik 0xFFF4 56 .

Wenn das Intervall mehr als 10 Sekunden beträgt, werden 10 Sekunden eingestellt, da dies das Maximum im Standard ist. Nehmen Sie auch andere Einstellungen vor. Allerdings können nicht alle BT-Adapter mit einem 10-Sekunden-Intervall für die Verbindung arbeiten.
Zum Erstellen der Firmware wird die GNU Arm Embedded Toolchain verwendet.
Um in Eclipse zu arbeiten, verwenden Sie den Projektimport und installieren Sie toolchain.path.
Weitere Informationen zu PHY62xx-Chips finden Sie hier.