Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:heating_control:gastherme_buderus

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:channels:heating_control:gastherme_buderus [2025/11/23 18:20] trabanthardware:channels:heating_control:gastherme_buderus [2025/12/26 17:36] (aktuell) – Seite umbenannt trabant
Zeile 1: Zeile 1:
-===== Gastherme Buderus/Bosch/Junkers mit Heatronic 3===== +#REDIRECT [[gastherme_bosch_buderus_ht3]]
-Hier geht es um die Anbindung zu einer Gastherme mit ''Heatronic 3'', diese gibt es sowohl unter dem Namen Buderus als auch Junkers. Die Regelungen sind sehr ähnlich, da ja beide aus dem Hause Bosch kommen. +
- +
-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]]. +
- +
-Im Mikrocontroller Forum [[https://www.mikrocontroller.net/topic/317004]] wurden verschiedene Adapter für den Anschluss eines Heatronic 3 Busses an einen Raspberry Pi entwickelt. Mit etwas Glück bekommt man auf Nachfrage ein bereits bestücktes Adapter-Board. Dieses wird über eine zweiadrige Leitung mit der Therme oder auch dem Regler verbunden. +
- +
-Passend zu diesen Boards gibt es eine eigene Software, die die Dekodierung übernimmt: [[https://github.com/norberts1/hometop_HT3.git]], auch dazu gibt es einen Thread im genannten Forum [[https://mikrocontroller.net/topic/324673]]. Diese Software ist wirklich herstellerspezifisch und würde bei Geräten anderer Hersteller mit EMS-Bus nicht so einfach funktionieren. +
- +
-Jetzt geht es an die Anbindung an der Volkszähler: Im Forum findet man auch ein Skript, welches die Daten aus der Sqlite Datenbank der HT3 Software in die Volkszähler-Datenbank überträgt [[https://www.mikrocontroller.net/topic/317004#4400665]] +
- +
-Dieses Perl Skript löscht die vorhandenen Daten aus den betreffenden Volkszähler-Kanälen und überträgt die  Werte aus der obengenannten SQLite DB in einem Rutsch. +
- +
-Alternativ kann man das Skript auch ein bisschen anpassen, so dass es im Hintergrund läuft und 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 perl ht3logger.pl> +
-#!/usr/bin/perl +
- +
-print "Starting up ht3logger on $date"; +
- +
-use DBI; +
- +
-$dsn = "DBI:mysql:database=volkszaehler;host=localhost"; +
-$dbh2 = DBI->connect($dsn, "vz", "*secure*", { RaiseError => 1, AutoCommit => 1}); +
- +
- +
-while (1) { +
-        #print `date` +
-        $dbh = DBI->connect( "dbi:SQLite:/var/HT3/sw/var/databases/HT3_db.sqlite" ) || die "Cannot connect: $DBI::errstr"; +
- +
-        my $sth = $dbh->prepare("select * from heizgeraet order by utc desc limit 1;"); +
- +
-        $sth->execute(); +
- +
-        $ref = $sth->fetchrow_hashref(); +
-        #print $ref; +
-        $utc = $ref->{'UTC'}*1000; +
-        $sql[$z++] = "(1,  $utc , ". $ref->{'T_ruecklauf'}."),\n"; +
-        $sql[$z++= "(2,  $utc , ". $ref->{'T_vorlauf_soll'}."),\n"; +
-        $sql[$z++= "(3,  $utc , ". $ref->{'T_vorlauf_ist'}."),\n"; +
-        $sql[$z++] = "(4,  $utc , ". $ref->{'T_mischer'}."),\n"; +
-        $sql[$z++] = "(5,  $utc , ". $ref->{'V_heizungs_pumpe'}."),\n"; +
-        $sql[$z++] = "(6,  $utc , ". $ref->{'V_brenner_flamme'}."),\n"; +
-        $sql[$z++] = "(11,  $utc , ". $ref->{'V_leistung'}."),\n"; +
-        $sql[$z++] = "(18,  $utc , ". $ref->{'C_brenner_gesamt'}."),\n"; +
-        $sql2 = ""; +
-        $z=0; +
-        foreach my $do (@sql)   { +
-                $sql2 .= $do; +
-                $z++; +
-                $sql2 = "INSERT INTO `data` (`channel_id`, `timestamp`, `value`) VALUES ".$sql2; +
-                chop($sql2); +
-                chop($sql2); +
-                #print $sql2; +
-                print $dbh2->do($sql2) if ($utc ne $utcold); +
-                $sql2 = ""; +
-                $z=0; +
-                } +
-        $utcold = $utc; +
-        $sth->finish(); +
-        $dbh->disconnect; +
- +
-        sleep 10; +
-+
-</code> +
- +
-Die genannten Werte sind nur Beispiele, ein Blick in die SQLite DB genügt um herauszufinden, was man selbst gerne hätte. In diesem Beispiel einer Kombitherme findet man unter T_mischer im übrigen die DL-Warmwassertemperatur. +
- +
-<note important>Bitte beachten - das Skript nutzt für die Volkszähler-DB noch nicht die ''UUIDs'', sondern die jeweilige interne ''channel_id''.</note> +
- +
-So in etwa sieht dann der Erfolg im Frondend aus: +
- +
-{{:hardware:channels:volkszaehler.org.png|}} +
- +
hardware/channels/heating_control/gastherme_buderus.1763918442.txt.gz · Zuletzt geändert: von trabant