Heizungssteuerung: Daten auslesen

  • Hallo zusammen,


    ganz doofe Frage, wo finde ich die LAN-Buchse? In der Frontklappe gibt es nur eine RJ11-Buchse. Auf dem Regler (SystaCompact) gibt es gar keine Buchsen.


    Vielen Dank!
    Alex

  • Ich habe das Problem, dass die Heizung nur 1 mal die Daten an mich schickt, und dann nicht mehr. Starte ich den Raspberry (Heizung ist direkt mit dem Raspberry verbunden) neu, so empfängt das Script wieder einmal die Daten und dann tut sich nichts mehr.


    TCPDUMP:


    Kann mir da jemand helfen?


    Zur Info:
    Meine Heizung ist direkt mit dem Raspberry verbunden, auf dem Raspberry laufen DHCP und DNS (Bind9). Folgende Einstellungen habe ich vorgenommen:


    /etc/bind/zones/named.root :


    /etc/bind/named.conf.local :


    /etc/hosts


    /etc/network/interfaces


    /etc/dhcp/dhcpd.conf


    /etc/resolv.conf


  • Gelöst, isc-dhcp-server und bind9 gelöscht, dnsmasq installiert, remoteportal.de in dnsmasq.conf eingetragen -> das Script und die Heizung reden miteinander.


    Die Heizung schickt leider nur Nullen:


    Was man hier machen sollte, habe ich aus den älteren Postings so nicht ganz verstanden. Vlt kann mir das jemand erklären?

  • Die Heizung liefert immer noch Nullen, SystaWeb-Status zeigt "nicht aktiviert" an. Muss SystaWeb irgendwie aktiviert werden, damit die Heizung gültige Daten liefert?


  • SystaWeb brauchst Du nicht. Dein Raspberry ist für die SystaComfort das Systaweb.


    Du hast den "Null-Frame" gepostet. Diesen schickt die Systa alle 5 Sekunden. Erst wenn er korrekt beantwortet wird, werden der "Eins-Frame" und der "Zwei-Frame" gesendet.
    Die Framinformation steht an Adresse 0x002C des Frames. In Deiner Darstellung sind das die rot markierten Nullen.

    Es scheint, als ob Dein Antwortpaket (vom Pi zur Systacomfort) nicht stimmt. Nur wenn das korrekt ist, liefert die Systa die Frames, die die wirklichen Daten enthält. Werden alle Frames vom Pi beantwortet, wartet die SystaComfort eine Minute, dann wird wieder ein "Null-Frame" gesendet.

  • Ok, habe jetzt herausgefunden, dass der CounterOffset bei mir anders gesetzt sein musste (0x3FC0). Jetzt empfange ich den "Eins-Frame", danach folgt aber wieder ein "Null-Frame". Alle relevanten Daten sind auch 0. Hast Du noch eine Idee, was ich machen könnte?


  • Deine Darstellung ist ungünstig. In den Frames finde ich mich leider gar nicht zurecht. Rufe Dein tcpdump mal mit -x als Parameter auf, damit
    zusätzlich die Bytes einen Index bekommen:


    Bei mir sah das damals so aus (die drei zu einem Satz gehörenden Pakete mit Antwort). Die MAC-Adresse habe ich durch '!' codiert


  • Anbei ein Dump der Kommunikation mit dem Systaweb. Da sieht es so aus, als ob die Regelung keine Daten schicken würde. Im Status der SystaCompact steht "nicht aktiviert". Ich vermute fast, dass es zunächst über SystaWeb freigegeben werden muss, damit die Heizung ihre Daten schickt. Was habt Ihr bei Euch unter Status stehen (Menü -> Kontrollprogramm -> Status -> Status Systaweb)?


  • Anbei noch Dump der Kommunikation SystaCompact <-> Perl-Script.
    Kurz gefasst:
    1. Regelung: "Null"-Frame wird geschickt
    2. Perl-Script: antwortet
    3. Regelung: "Eins"-Frame wird geschickt (ohne Daten)
    4. Perl-Script: antwortet
    5. Regelung: "Zwei"-Frame wird geschickt
    6. Perl-Script antwortet
    7. mindestens 30 Sekunten passiert nichts, danach weiter mit Punkt 1


  • Meine Regelung (Systa Compact II Version 01.00) schickt die Daten im Null-Frame. Ich habe das perl-Script etwas an meine Bedürfnisse angepasst. Das Script schreibt alle 256 Bytes in eine Datei weg. Das zweite Bash-Script liest die Datei und überprüft, ob sich die Daten ändern und schickt die Änderungen an die Openhab-Instanz. Alle Daten konnte ich noch nicht entschlüsseln, wäre sehr dankbar, wenn jemand, der die gleiche Steuerung wie ich hat, mir mit der Entschlüsselung der Daten helfen könnte.


    Hat jemand versucht, die Heizungsregelung mit einem Script zu manipulieren, z.B. die Betriebsart ändern?

  • Hallo zusammen,


    mit großem Interesse habe ich den ganzen Thread gelesen und im Anschluss mich nun im Anschluss daran gemacht, die Heizung ins LAN zu hängen.


    Meine Heizung ist eine Energy Vario Kompaktheizung mit Gasbrennwert-Gerät. Paradigma bewirbt die Anlage aktuell auch mit einem Video auf ihrer Webseite...


    Laut Handbuch der SystaComfort II scheine ich eine neuere Version zu haben, es befindet sich der Vermerk ab Hardwareversion 2.00, als PDF habe ich die Anleitung auf der Paradigmaseite noch nicht gefunden.


    Hier mal eine Auflistung der Versionen:


    Software v2.00 22.02.16
    Hardware v2.10
    Basis-System v0.30


    Eine weitere Besonderheit scheint mir, dass mein Gerät zwei LAN-Anschlüsse hat. Es scheint egal welchen der beiden ich anschließe, beide liefern die selbe MAC-Adresse. Ich habe auf meiner Firewall versucht den Traffic zu paradigma.remoteportal.de mit zu schneiden, sehe aber lediglich ausgehende UDP Packete von Port 8002 => 22460, allerdings keinerlei Antwort von Remote.


    Ich habe den DNS Eintrag im LAN für paradigma.remoteportal.de mal umgebogen auf mein Notebook, wo ich das Skript hab laufen lassen. Der Output des DUMPs findet sich im Anhang. Die Datei "x.data" enthält immer nur die Zeile


    Code
    16:29 TAG BC


    Ich habe mal die "Paradigma S-Touch" App via Playstore installiert und diese findet über WLAN auch die Heizung. Über die App hat man die gleiche Oberfläche wie über den Touchscreen an der Heizung. Laut nmap scheinen Port 21 (FTP) und Port 80 (HTTP) offen zu sein.


    Hat jemand nen Idee wie man die SystaComfort doch zur Kooperation überreden könnte?

  • Ich hab mal eben noch schnell tcpdump auf dem Access Point angeworfen und habe dort festgestellt, dass die App ebenfalls via UDP mit der Heizung kommuniziert.


    Im wesentlichen scheint es, als würde die App (Port 54606 während meines Versuchs) eine Verbindung zu Port 8001 der SystaComfort auf bauen. Diese antwortet dann mit einem Broadcast (255.255.255.255) auf dem Port der App ( in meinem Fall 54606). In Folge dessen wird die Kommunikation auf einen anderen Port auf der SystaComfort verlegt (3477) und scheint für die Dauer der Session verwendet zu werden.

  • Ich habe die gleiche Steuerung/Softwareversion. Da hat sich anscheinend einiges geändert, wohl wegen der S-Touch-App (btw: ich hatte Kontakt mit dem Entwickler, da kommt demnächst eine neue Version nach Freigabe von Paradigma). Mangels Zeit habe ich noch nicht weiter geschaut, aber zumindest das Script so geändert, dass zumindest eine Kommunikation stattfindet. Allerdings scheinen die Werte auch verschoben zu sein, denn meine Heizung ist zwar gut, aber 1.5 Milliarden Grad im Vorlauf scheint doch ein wenig hoch :D
    Schau mal so um Zeile 145 nach

    Code
    return 0 unless $a[16] == 0x00;

    und kommentiere die Zeile aus (# davor) oder ändere 0x00 in 0x68 (ist zumindest bei mir immer 68 ).

  • Hallo,


    Vielen Dank für die tolle Arbeit ! Bei mir läuft das Script auf Python portiert auf einem Raspberry und füttert eine SQLITE Datenbank. Ohne eure Vorarbeit wäre ich nicht so schnell zu dem Ergebnis gekommen.


    Hat jemand mit einer Software Version 1.18 oder höher das Script am laufen? Ich würde gerne die APP einsetzen, aber ich traue mich nicht so recht von 1.14 auf eine höhere Version zu gehen.
    Ich habe gehört eine Verschlüsselung der Übertragung soll irgendwann eingebaut werden ...


    Viele Grüße
    Markus

  • Hi,
    seit Freitag läuft auch bei mir ne Paradigma Heizung mit Solarpaket.
    Ich habe dann gleich den Netztraffic zum Portal unterbunden und abgefangen.
    Am Anfang wurde in die Datei x.data immer nur
    20:54 TAG 4A
    20:54 TAG 4A
    20:54 TAG 4A
    20:54 TAG 4A
    20:54 TAG 4A
    geschrieben.

    Schau mal so um Zeile 145 nach

    Code
    return 0 unless $a[16] == 0x00;

    und kommentiere die Zeile aus (# davor) oder ändere 0x00 in 0x68 (ist zumindest bei mir immer 68 ).

    Nach dem Hinweis auf die Zeile 145 habe ich den Wert von $a[16] auf 0x4A geändert.


    #return 0 unless $a[16] == 0x01; # we're only interested in the actual data
    return 0 unless $a[16] == 0x4A;


    Danach war die Anlage erheblich gesprächiger:
    root@vdr:/opt/paradigma# ./paradigma-server-0.0.5.pl -l
    0 -1344345010 / 0
    1 932562655 / 0
    2 -1753335691 / 0
    3 -1412145583 / 0
    4 -732933422 / 0
    5 621112574 / 0
    .
    .
    .
    Raumeinfluss = 145135348.5
    BrauchwasserDelta = 209721866.6
    npp = -199621367.7
    tmk = 1233362975
    NrB = -709687643
    ZirkulationDelta = 16986116.0
    Countdown = 33557776
    Relais = 1535597004
    Err = -803496542
    St = 295321254


    Habt ihr schon den Versatz gefunden?



    Des weiteren habe ich auf auf einem Windows Rechner Droid4x installiert.
    Damit kann ich dann S-Touch auf dem Emulator laufen lassen.
    Wenn ich mich dann per VPN auf den Rechner aufschalte, kann ich die Heizung von Unterwegs steuern.



    Gruß


    Axel

    c´t-vdr 7IX4E mit Duron 800, 512 MB Ram, 250GB Hd, 2 x TT 1.5 )
    2CV for ever

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!