SSD Temperatur nach Influxdb // "_math" Datei

Alles was mit der Solaranzeige Image Installation und Betrieb zu tun hat. Einfache Konfiguration mit einem Gerät.

Moderator: Ulrich

Benutzeravatar
dremeier
Beiträge: 13
Registriert: Mi 6. Jul 2022, 11:33
Wohnort: bei Bremen
Hat sich bedankt: 3 Mal

SSD Temperatur nach Influxdb // "_math" Datei

Beitrag von dremeier »

Erfolgreich konnte ich über die "_math" Datei die Temperatur vom Raspi in die Influx schreiben.
Nun möchte ich das gleiche mit der SSD temperatur tun welche sich mit dem "smartmontools" auslesen lässt.

Code: Alles auswählen

pi@solaranzeige:/var/www/html $ sudo smartctl -A /dev/sda
smartctl 7.2 2020-12-30 r5155 [aarch64-linux-5.15.32-v8+] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        44 Celsius
Available Spare:                    100%
Available Spare Threshold:          5%
Percentage Used:                    0%
Data Units Read:                    2.269 [1,16 GB]
Data Units Written:                 7.361 [3,76 GB]
Host Read Commands:                 76.191
Host Write Commands:                251.458
Controller Busy Time:               0
Power Cycles:                       18
Power On Hours:                     0
Unsafe Shutdowns:                   17
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               50 Celsius
Gibt es eine Möglichkeit die Temperatur in der "_math" zu verarbeiten?
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Benutzeravatar
mdkeil
Beiträge: 135
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 8 Mal
Danksagung erhalten: 7 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von mdkeil »

Code: Alles auswählen

$tempssd=shell_exec('smartctl -A /dev/sda | grep Temperature: | sed /s[^0-9]//g')
Es müsste dann in der Variablen $tempssd deine Temperatur stehen.. den Rest müsstest Du ja selbst hinbekommen.
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro

Benutzeravatar
dremeier
Beiträge: 13
Registriert: Mi 6. Jul 2022, 11:33
Wohnort: bei Bremen
Hat sich bedankt: 3 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von dremeier »

mdkeil hat geschrieben:
Mo 18. Jul 2022, 14:21

Code: Alles auswählen

$tempssd=shell_exec('smartctl -A /dev/sda | grep Temperature: | sed /s[^0-9]//g')
Es müsste dann in der Variablen $tempssd deine Temperatur stehen.. den Rest müsstest Du ja selbst hinbekommen.
Und das trage ich dann mit in die _math Datei ein, oder in der Konsole?
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Benutzeravatar
dremeier
Beiträge: 13
Registriert: Mi 6. Jul 2022, 11:33
Wohnort: bei Bremen
Hat sich bedankt: 3 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von dremeier »

die _math sieht jetzt so aus:

Code: Alles auswählen

#!/usr/bin/php
<?php
// wenn alle ausgelesenen Daten auch in der solaranzeige.log angezeigt werden sollen den Doppelslash (//)entfernen
$funktionen->log_schreiben(print_r($aktuelleDaten,1)," ",1);
//
// Raspberry Temperatur in die Infux Datenbank speichern
// Die Temperatur steckt in der Variable $RaspiTemp
$aktuelleDaten["ZusatzQuery"] = "Service RaspiTemp=".round($RaspiTemp,1);
$aktuelleDaten["ZusatzQuery"] .= "   ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["RaspiTemp"] = $RaspiTemp;
//
$aktuelleDaten["ZusatzQuery"] .= "\n";
//
$tempssd=shell_exec('smartctl -A /dev/sda | grep Temperature: | sed /s[^0-9]//g')
$aktuelleDaten["ZusatzQuery"] = "Service RaspiSSDTemp=".round($tempssd,1);
$aktuelleDaten["ZusatzQuery"] .= "   ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["RaspiSSDTemp"] = $tempssd;

//Wenn der Wert auch in die LOG Datei geschrieben werden soll.
$funktionen->log_schreiben("Rasperry Temperatur: ".round($RaspiTemp,1)." °C",">",1);
?>
Leider steht nix im log und auch nicht in der DB.

Übrigens:
in der EigeneErweiterungen.pdf steht: ".....Fehler kann man in der LOG Datei /var/www/log/php.log sehen....."
Ich kann diese Datei nicht finden, wo soll die sein?
Was ich habe ist die /var/log/user.log oder /var/www/log/solaranzeige.log
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Benutzeravatar
mdkeil
Beiträge: 135
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 8 Mal
Danksagung erhalten: 7 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von mdkeil »

Du kannst den Befehl am besten erstmal auf command Line versuchen. ohne shell_exec. Ob er das korrekte ausgibt .
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro

Benutzeravatar
dremeier
Beiträge: 13
Registriert: Mi 6. Jul 2022, 11:33
Wohnort: bei Bremen
Hat sich bedankt: 3 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von dremeier »

mdkeil hat geschrieben:
Mo 18. Jul 2022, 18:27
Du kannst den Befehl am besten erstmal auf command Line versuchen. ohne shell_exec. Ob er das korrekte ausgibt .

Code: Alles auswählen

pi@solaranzeige:~ $ $tempssd= smartctl -A /dev/sda | grep Temperature: | sed /s[^0-9]//g
-bash: =: Kommando nicht gefunden.
sed: -e Ausdruck #1, Zeichen 10: Unbekannter Befehl: »/«
klappt wohl nicht !?

so gibt es zumindest keine Fehlermeldung, aber angezeigt wird nix:
sudo $tempssd= smartctl -A /dev/sda | grep "Temperature Sensor" | sed /s[^0-9]/g
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Benutzeravatar
mdkeil
Beiträge: 135
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 8 Mal
Danksagung erhalten: 7 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von mdkeil »

Nur das..

Code: Alles auswählen

smartctl -A /dev/sda | grep Temperature Sensor: | sed /s[^0-9]/g 
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro

Benutzeravatar
dremeier
Beiträge: 13
Registriert: Mi 6. Jul 2022, 11:33
Wohnort: bei Bremen
Hat sich bedankt: 3 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von dremeier »

da passiert nichts

Code: Alles auswählen

pi@solaranzeige:~ $ smartctl -A /dev/sda | grep "Temperature Sensor" | sed /s[^0-9]/g
pi@solaranzeige:~ $
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Benutzeravatar
mdkeil
Beiträge: 135
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 8 Mal
Danksagung erhalten: 7 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von mdkeil »

Ich hatte einen Typo drinnen.. und es muss mit root-rechten ausgeführt werden.
.
sudo smartctl -A /dev/sda | grep Temperature: | sed s/[^0-9]//g
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro

Benutzeravatar
dremeier
Beiträge: 13
Registriert: Mi 6. Jul 2022, 11:33
Wohnort: bei Bremen
Hat sich bedankt: 3 Mal

Re: SSD Temperatur nach Influxdb

Beitrag von dremeier »

Ok das funktioniert:

Code: Alles auswählen

pi@solaranzeige:~ $ sudo smartctl -A /dev/sda | grep "Temperature:" | sed s/[^0-9]//g
51
aber hier bekomme ich keine Daten in Grafana oder im Log von: "cat /var/www/log/solaranzeige.log"

Code: Alles auswählen

#!/usr/bin/php
<?php
// wenn alle ausgelesenen Daten auch in der solaranzeige.log angezeigt werden sollen den Doppelslash (//)entfernen
//$funktionen->log_schreiben(print_r($aktuelleDaten,1)," ",1);
//
// Raspberry Temperatur in die Infux Datenbank speichern
// Die Temperatur steckt in der Variable $RaspiTemp
$aktuelleDaten["ZusatzQuery"] = "Service RaspiTemp=".round($RaspiTemp,1);
$aktuelleDaten["ZusatzQuery"] .= "   ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["RaspiTemp"] = $RaspiTemp;
//
$aktuelleDaten["ZusatzQuery"] .= "\n";
//
$tempssd=shell_exec('sudo smartctl -A /dev/sda | grep "Temperature:" | sed s/[^0-9]//g')
$aktuelleDaten["ZusatzQuery"] = "Service RaspiSSDTemp=".round($tempssd,1);
$aktuelleDaten["ZusatzQuery"] .= "   ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["RaspiSSDTemp"] = $tempssd;

//Wenn der Wert auch in die LOG Datei geschrieben werden soll.
$funktionen->log_schreiben("Rasperry Temperatur: ".round($RaspiTemp,1)." °C",">",1);
$funktionen->log_schreiben("Rasperry NVME Temperatur: ".round($tempssd,1)." °C",">",1);
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Antworten