Systa Aqua II - Logger

Die Anbindung an IP-Symcon ist relativ einfach.

Zuerst eine Instanz vom Typ "Client-Socket" erstellen:

 

Hier dann folgende Einstellungen vornehmen:



Host ist hier Localhost, da das Programm "Systa-Bus" auf demselben Server läuft.
Der Port ist derselbe wie er beim Programm "Systa-Bus" eingestellt wurde.

 

Unter dem Client-Socket noch einen "Text-Parser" anlegen.
Hier dann die benötigten Daten extrahieren lassen:

   

 

 

 Software

Es ist ein simples Programm, geschrieben mit Qt Creator 5.2.1

Aktuelle Version 1.0.4

Die gepackte Datei einfach in ein leeres Verzeichnis auspacken und die Datei "Systa-Bus.exe" starten.
Alle vorhandenen DLLs sind original aus Qt ®

Bedienung

Zuerst Einstellungen vornehmen:

  • Comport auswählen, an dem das Systa-Interface angeschlossen ist.
  • Wenn man Daten an einen Client ( z.B. IP-Symcon) schicken will:
    • Server-IP einstellen (hier läuft die Software auf demselben Server wie IP-Symcon)
    • Port (Frei wählbar; muss identisch z.B. in IP-Symcon sein)
    • Sendeinterval einstellen (je nachdem, wieviel Daten man haben will)
      Es wird kein Mittelwert gebildet. Nur der aktuelle Datensatz wird gesendet.
    • Server aktivieren ( z.B. für IP-Symcon)



  • Wenn die richtigen Daten empfangen werden, wird ein automatisch Hacken in die Checkbox "Comport ok" gesetzt.
  • Wenn z.B. IP-Symcon sich mit dem TCPIP-Port verbunden hat, wird ein automatisch Hacken in die Checkbox "Client verbunden" gesetzt.
  • Die Anzeige der Pakete ist nur Informativ. Die angezeigten Fehler sind Protokolle mit Fehlern, die bei der einfachen Schaltung schon mal vorkommen können.
    Da aber eine Checksumme verwendet wird, werden diese nicht verwendet.

 



Es kann eine erweiterte Ansicht aktiviert werden:

  1. Plotfenster anzeigen (wie im ersten Bild dargestellt)
    Sollte nicht Wochen lang aktiv sein, da alle Daten in das verwendete Custom-Plot irgendwann Probleme mit den vielen Polygonen bekommt.
    Eventuell baue ich noch ein Scrolling ein, damit nur die letzten Tage angezeigt werden.
  2. Log-Einstellungen

Unter den Log-Einstellungen können alle Daten in eine CSV-Datei geschrieben werden.

Einfach einen Dateinamen auswählen (wird in das eigene Systa-Bus.exe-Verzeichnis geschrieben)
Der Suffix "_1" wird automatisch nach jedem Start/Stop hochgezählt, damit ich nicht ausversehen eine Datei überschreibe.
Mit "Start" bzw. "Stop" die Aufzeichnung starten/stoppen.

 

TCPIP-Server

Hinweis: Es kann zur Zeit nur ein Client verbunden werden.

Die Daten werden einfach als String gesendet.

Bezeichner:Wert jeweils mit einem Simikolen getrennt

z.B.  "TSA:53;TW:54;TSV:38.8;TAM:13.8;TSE:38.9;FLOW:0;PWM:0;EnergyDay:22;EnergyTotal:1639;"

 

Einleitung

Nachdem ich die Daten der SD-Karte aus der Systa Aqua II analysiert hatte, war es natürlich reizvoll, die Daten ebenfalls Online auslesen und darstellen zu können.

Hier wird eine einfache Schaltung beschrieben, die es ermöglicht, die Daten vom Systa-Bus zu lesen.

Nachbau auf eignene Gefahr.
Bei unsachgemäßem Anschluss (Kurzschluss am BUS oder zu anderen Leitungen) kann die Steuerung zerstört werden. Verlust der Gewährleistung.

 

Schaltungsbeschreibung

Auf der Busleitung liegt eine Gleichspannung von ca. 30 V DC.
Auf die Gleichspannung sind die Daten mit ca. 5 V Pegel als Burst aufmoduliert.
Dabei besteht ein Burst (ca. 6.5 µs) aus ca. 16 Pulsen und entspricht einer Null des seriellen Protokolls.
Das serielle Protokoll hat folgendes Format:  9600 Baud, 8 Daten, 1 Stopbit, keine Parität.

Die Daten werden vom Bus über eine Hochpass ausgekoppelt und der Pegel begrenzt.
Das retriggerbare Monoflop (Zeit ca. 10 µs) macht aus den Burst einen einzelnen Impuls.
An dem invertierten Ausgang steht jetzt das serielle Protokoll zur Verfügung.

Ich habe hier einen XPort verwendet, da ich im Keller nur Netzwerk zur Verfügung hatte.
Statt dessen kann natürlich auch ein FTDI-Chip oder ähnliches verwendet werden.

  • Die Schaltungs-Klemme X1-1 geht an die linken Klemme (BUS) der Systa
  • Die Schaltungs-Klemme X1-2 geht an die rechte Klemme (BUS) der Systa

 ACHTUNG: Sicherheitsvroschriften beachten.
Nur wenn Systa Aqua II spannungslos ist, die Leitungen am BUS anklemmen.

 

 

 

 Messungen am Systa-Bus

Daten auf den 30 V DC

Ein Burst ohne DC Pegel     Mehrere Bursts mit unterschiedlichen Längen


Kanal A: direkt am Systa-Bus
Kanal B: an /Q vom 4047


Kanal A: gemessen hinter Widerstand R5
Kanal B: an /Q vom 4047

Kanal A: gemessen hinter Widerstand R5
Kanal B: an /Q vom 4047

Kanal A: gemessen hinter Widerstand R5
Kanal B: an /Q vom 4047

 

 

Datenformat

Die Analyse der Daten auf dem Bus hat etwas gedauert, da ich keinerlei Ansatzpunkte für irgendeine Art von Protokoll gefunden hatte.

Irgendwann vielen Regelmäßigkeiten im Datenstrom auf, die ich als Synchronisationsbytes interpretiert habe. Es werden scheinbar mehrere Protokolle über den Bus gesendet. Zur Zeit habe ich 4 gefunden, die gleichzeitig mit unterschiedlichen Wiederholraten gesendet werden. Davon habe ich bei den beiden Wichtigsten die meisten Daten identifizieren. Mir fehlen eigentlich nur noch Statuszustände und mögliche Fehlermeldungen. Da diese aber zur Zeit nicht anliegen, kann ich diese in den Protokollen auch nicht identifizieren.

Letztes Zeichen eines Protkolls scheint die Checksumme zu sein. Alle Zeichen (Sync, Daten und Checksumme) addiert ergeben 0x00.

 

1. Sync-Sequence: FC 3E

  • 2 Sync + 62 Daten + 1 Checksumme
  • Das zweite Sync-Zeichen ist die Länge der folgenden Daten ohne Checksumme
  • Refresh-Rate ca. 300 msec.

Dieses Protokoll verwende ich, um die benötigten Daten auszulesen.

Pos.BeschreibungAnmerkung
0 - 1   Immer 0x24, 0x01 ???
2 - 3 TSA1 (Kollektortemperatur) In 0,1 °C (LSB,MSB)
4 - 5 TW (Speicher) In 0,1 °C (LSB,MSB)
6 - 7 TSV (Solarvorlauf) In 0,1 °C (LSB,MSB)
8 - 9 TAM (Außen) In 0,1 °C (LSB,MSB)
10 - 11 Immer 0  
12 – 13 TSE (Solarrücklauf) In 0,1 °C (LSB,MSB)
14 - 15 Durchfluss in 0,1 l/min (LSB,MSB)
16 PWM Pumpe  
     
19 ??? Status  
     
21 ??? Status  
     
24 Uhrzeit Stunden  
25 Uhrzeit Minuten  
26 Datum Tag  
27 Datum Monat  
28 Datum Jahr zweistellig
     
31 - 32 Tagesleistung Vermutlich nur 2 Bytes (LSB,MSB)
     
35 - 38 Gesamtleistung Vermutlich 4 Bytes (LSB,MSB)

2. Sync-Sequence: FC 1F

  • 2 Sync + 31 Daten + 1 Checksumme
  • Das zweite Sync-Zeichen ist die Länge der folgenden Daten ohne Checksumme
  • Refresh-Rate ca. 2320 msec.

Hier sind fast die gleichen Daten wie beim 1. Protokoll vorhanden. Auf die vertauschte Richtung von (MSB,LSB) achten.

Pos.BeschreibungAnmerkung
0 - 1   Immer 0x0B, 0x01 ???
2 - 3 TSA1 (Kollektortemperatur) In 0,1 °C (MSB,LSB)
4 - 5 TSE (Solarrücklauf) In 0,1 °C (MSB,LSB)
6 - 7 TW (Speicher) In 0,1 °C (MSB,LSB)
     
16 Uhrzeit Stunden  
17 Uhrzeit Minuten  
18 Datum Tag  
19 Datum Monat  
     
24 - 25 Tagesleistung Vermutlich nur 2 Bytes (MSB,LSB)
26 - 29 Gesamtleistung Vermutlich 4 Bytes (MSB,LSB)
     
     

 

3. Sync-Sequence: 23 02

  • 2 Sync + 2 Daten + 1 Checksumme
  • Das zweite Sync-Zeichen ist die Länge der folgenden Daten ohne Checksumme
  • Refresh-Rate ca. 500 oder 650 msec.

Keine Ahnung was hier drin steckt.

Pos.BeschreibungAnmerkung
0   0xD0 ???
1   0x01 ???

 

4. Sync-Sequence: FD 05

  • 2 Sync + 5 Daten + 1 Checksumme
  • Das zweite Sync-Zeichen ist die Länge der folgenden Daten ohne Checksumme
  • Refresh-Rate ca. 1160 msec.

Keine Ahnung was hier drin steckt.

Pos.BeschreibungAnmerkung
0   0xAA ???
1   0x24 ???
2   0x01 ???
3   0x01 ???
5   0x08 ???
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
OK