hardware:channels:heating_control:gastherme_buderus
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| hardware:channels:heating_control:gastherme_buderus [2025/11/29 19:58] – trabant | hardware:channels:heating_control:gastherme_buderus [2025/12/26 17:36] (aktuell) – Seite umbenannt trabant | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ===== Gastherme Buderus/ | + | #REDIRECT |
| - | Hier geht es um die Anbindung zu einer Gastherme mit //Heatronic 3//, diese gibt es unter den Namen // | + | |
| - | + | ||
| - | Nicht passend ist diese Lösung für ältere Thermen mit //Heatronic 2//, die jedoch auch mit einem busfähigen Regler ausgestattet werden können. Siehe hierzu [[gastherme_junkers_can_bus|Junkers Gastherme mit Heatronic 2 und Can-Bus-Regler]]. | + | |
| - | + | ||
| - | Bei den Junkers-Geräten wurde der HT3-Bus ab 2010 eingeführt, | + | |
| - | + | ||
| - | Im Mikrocontroller-Forum [[https:// | + | |
| - | + | ||
| - | Passend zu diesen Boards gibt es eine eigene Software, die die Dekodierung übernimmt: [[https:// | + | |
| - | + | ||
| - | Die hometop-HT3 Software kann die dekodierten Daten wahlweise als RRD Dateien speichern und damit einen eigenen Webserver füttern, oder aber auch als Sqlite Datenbank. Für das Logging in den Volkszähler wählen wir die zweite Methode. In der Konfigurationsdatei setzen wir HT3_db_cfg.xml unter < | + | |
| - | + | ||
| - | <code xml HT3_db_cfg.xml> | + | |
| - | "< | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | < | + | |
| - | + | ||
| - | Jetzt geht es an die Anbindung an den Volkszähler: | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | Alternativ kann man das Skript auch ein bisschen anpassen, so dass es im Hintergrund läuft, in einem festgesetzten Abstand die aktuellen Daten abfragt und den VZ auf dem aktuellen Stand hält. Das sieht dann in etwa so aus: | + | |
| - | + | ||
| - | <code python ht3logger.py> | + | |
| - | #!/ | + | |
| - | + | ||
| - | import sqlite3 | + | |
| - | from requests import post | + | |
| - | from time import ctime, | + | |
| - | + | ||
| - | print(" | + | |
| - | + | ||
| - | channel_list = { | + | |
| - | ' | + | |
| - | ' | + | |
| - | ' | + | |
| - | ' | + | |
| - | ' | + | |
| - | ' | + | |
| - | ' | + | |
| - | ' | + | |
| - | } | + | |
| - | + | ||
| - | while True: | + | |
| - | try: | + | |
| - | db = sqlite3.connect("/ | + | |
| - | db.row_factory = sqlite3.Row | + | |
| - | cursor = db.execute(" | + | |
| - | except: | + | |
| - | print(" | + | |
| - | raise SystemExit(2) | + | |
| - | for dbvalue in cursor: | + | |
| - | timestamp = int(dbvalue[' | + | |
| - | for key,uuid in channel_list.items(): | + | |
| - | try: | + | |
| - | # | + | |
| - | post(' | + | |
| - | except: | + | |
| - | print(" | + | |
| - | db.close() | + | |
| - | sleep(10) | + | |
| - | </ | + | |
| - | + | ||
| - | Die genannten Werte sind nur Beispiele, ein Blick in die SQLite DB genügt um herauszufinden, | + | |
| - | + | ||
| - | <note important> | + | |
| - | + | ||
| - | <note tip>Da die //hometop// Software beim Startup etwas Zeit benötigt um die Datenbank zu aktualisieren, | + | |
| - | + | ||
| - | Last not least ein Bild des [[software: | + | |
| - | + | ||
| - | {{ : | + | |
| - | + | ||
| - | <note tip>In diesem Fall muss für den Kanaltyp der Brennerstarts nicht der " | + | |
| - | + | ||
| - | //**TODO -**// | + | |
| - | Umstellung des Skriptes auf UUIDs und Verwendung der Middleware zur Datenübertragung anstelle des direkten Datenbankzugriffs. Dokumentierung der // | + | |
hardware/channels/heating_control/gastherme_buderus.1764442716.txt.gz · Zuletzt geändert: von trabant