Raspberry Pi am Solarfocus Therminator II

Written by  on Juni 12, 2020 

Jetzt kann man den “USB Stick” wie beschrieben mounten.
Das Loopdevice sollte dem System schon aus Teil 1 bekannt sein:

losetup -o 32256 /dev/loop0 /media/usbdisk.img

Einhängen am Pi wie gesagt Read Only

/bin/mount -o ro /dev/loop0  /mnt

Es kommt ein CSV File heraus. Die Werte sind mit Strichpunkt getrennt. Und es werden Kommas verwendet statt Punkten, was die Weiterverarbeitung etwas erschwert.

head Logfile_200604.csv
DATE;TIME;KT;RGT;Luftzahl;Statuszeile;Zusatzstatuszeile;R▒cklauftemperatur;RLA-Pumpe;Temperatur X35;AT;LDZ_IST[];LDZ_ZIEL[];LDZ_SOLL[];LDZ_Ausgang;SLK-LZ;SGA Einschubistlz;Istposition Saugsondenumschalt.;Einschubtemperatur;Iststrom Einschub/WMT;Iststrom Einschub HG;Iststrom Austragung HG;Iststrom Austragung 2 HG;Schaltzustand Sensor HG;R▒ttler_Status;R▒ttler_RGT_Merker;R▒ttler_RGT_Abfall;R▒ttler_Impulse_Z▒ndphase;R▒ttler_Impulse_Betrieb;Einschub_Impuls_LDZ;Einsch▒be;Sondereinsch▒be_LZ;Sondereinsch▒be_Start;PTO 1;PTU 1;Pufferpumpe 1;TWS Temperatur 1;TWS-Pumpe 1;RT 1;VLT 1;VLT-Soll 1;HK-Pumpe 1;RT 2;VLT 2;VLT-Soll 2;HK-Pumpe 2;Kollektortemp;Speichertemperatur unten Regelung;Speichertemperatur 1 Solarmodul;Speichertemperatur 2 Solarmodul;Solarpumpenausgang;Solarstatus;Solarstatuszeile;WMZ Durchfluss l/h;WMZ VLT;WMZ RLT;WMZ aktuelle Leistung;RT 3;VLT 3;VLT-Soll 3;HK-Pumpe 3;RT 4;VLT 4;VLT-Soll 4;HK-Pumpe 4;RT 5;VLT 5;VLT-Soll 5;HK-Pumpe 5;RT 6;VLT 6;VLT-Soll 6;HK-Pumpe 6;PTO 2;PTU 2;Pufferpumpe 2;PTO 3;PTU 3;Pufferpumpe 3;TWS Temperatur 2;TWS-Pumpe 2;TWS Temperatur 3;TWS-Pumpe 3;Heiz_Strom_LBS;Heiz_Spannung_LBS;Heiz_PWM_LBS;Offset_LBS;Kommunikationszaehler_Leistungsteil;Leistungsteil_Fehler;HG_Modul_Fehler;HK_1_Modul_Fehler;HK_2_Modul_Fehler;HK_3_Modul_Fehler;DFBM_1_Fehler;DFBM_2_Fehler;DFBM_3_Fehler;SOLAR_Modul_Fehler;FWM_1_Fehler;SSUE_Fehler;DIFF_1_Modul_Fehler;
04.06.20;00:00:08;20,4;26;7,40;8;0;19,5;0;44,3;12,4;0,0;0,0;0,0;0;0,00;999;21;23,8;3;3;0;0;-1;0;99,4;4,9;45;13;6,5;233;0;0;70,2;70,9;0;71,9;0;21,1;21,9;21,0;0;50,0;20,9;21,0;0;10,5;56,1;56,1;43,8;0;0;12;0;130,0;130,0;0,0;53,2;819,2;2,0;0;1707,0;1753,6;2,1;0;976,2;256,5;2,3;0;1034,7;-1185,0;2,4;0;215,3;-3045,0;6208;1278,8;-708,3;2572;1075,9;17028;2765,8;392;0,00;0,05;202;-1,8;0;0;0;0;0;0;0;0;0;0;0;0;0;

Hier nochmal in Übersichtlich und durchnummeriert:
1 DATE
2 TIME
3 KT
4 RGT
5 Luftzahl
6 Statuszeile
7 Zusatzstatuszeile
8 Rücklauftemperatur
9 RLA-Pumpe
10 Temperatur X35
11 AT
12 LDZ_IST[]
13 LDZ_ZIEL[]
14 LDZ_SOLL[]
15 LDZ_Ausgang
16 SLK-LZ
17 SGA Einschubistlz
18 Istposition Saugsondenumschalt.
19 Einschubtemperatur
20 Iststrom Einschub/WMT
21 Iststrom Einschub HG
22 Iststrom Austragung HG
23 Iststrom Austragung 2 HG
24 Schaltzustand Sensor HG
25 Rüttler_Status
26 Rüttler_RGT_Merker
27 Rüttler_RGT_Abfall
28 Rüttler_Impulse_Zündphase
29 Rüttler_Impulse_Betrieb
30 Einschub_Impuls_LDZ
31 Einschübe
32 Sondereinschübe_LZ
33 Sondereinschübe_Start
34 PTO 1
35 PTU 1
36 Pufferpumpe 1
37 TWS Temperatur 1
38 TWS-Pumpe 1
39 RT 1
40 VLT 1
41 VLT-Soll 1
42 HK-Pumpe 1
43 RT 2
44 VLT 2
45 VLT-Soll 2
46 HK-Pumpe 2
47 Kollektortemp
48 Speichertemperatur unten Regelung
49 Speichertemperatur 1 Solarmodul
50 Speichertemperatur 2 Solarmodul
51 Solarpumpenausgang
52 Solarstatus
53 Solarstatuszeile
54 WMZ Durchfluss l/h
55 WMZ VLT
56 WMZ RLT
57 WMZ aktuelle Leistung
58 RT 3
59 VLT 3
60 VLT-Soll 3
61 HK-Pumpe 3
62 RT 4
63 VLT 4
64 VLT-Soll 4
65 HK-Pumpe 4
66 RT 5
67 VLT 5
68 VLT-Soll 5
69 HK-Pumpe 5
70 RT 6
71 VLT 6
72 VLT-Soll 6
73 HK-Pumpe 6
74 PTO 2
75 PTU 2
76 Pufferpumpe 2
77 PTO 3
78 PTU 3
79 Pufferpumpe 3
80 TWS Temperatur 2
81 TWS-Pumpe 2
82 TWS Temperatur 3
83 TWS-Pumpe 3
84 Heiz_Strom_LBS
85 Heiz_Spannung_LBS
86 Heiz_PWM_LBS
87 Offset_LBS
88 Kommunikationszaehler_Leistungsteil
89 Leistungsteil_Fehler
90 HG_Modul_Fehler
91 HK_1_Modul_Fehler
92 HK_2_Modul_Fehler
93 HK_3_Modul_Fehler
94 DFBM_1_Fehler
95 DFBM_2_Fehler
96 DFBM_3_Fehler
97 SOLAR_Modul_Fehler
98 FWM_1_Fehler
99 SSUE_Fehler
100 DIFF_1_Modul_Fehler
Um gezielt einen einzelnen Wert zu holen, habe ich eine Funktion auf der Bash gebastelt:

f_field_nr () {
  VALUE=$(echo $1 | cut -d";" -f"$2")
  echo $VALUE
}

Die vorletze Logzeile hole ich mit diesem Befehl. Die Beistriche werden gleich durch Punkte ersetzt.

X=$(/usr/bin/tail $FILENAME -n2 | /usr/bin/head -n 1 | /bin/sed s/,/./g )

Damit sind die 100 Messwerte zur freien Verfügung. Man kann die einzelnen Werte z.B. an eine API schicken, z.B. die von Thingspeak:

/usr/bin/curl "https://api.thingspeak.com/update?api_key=${APIKEY1}&filed1=$(f_field_nr $X 3)&field2=$(f_field_nr $X 19)"

Oder in eine Datenbank einfügen. Oder an MRTG schicken.

Category : Allgemein

Tags :

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.