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
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 // "_math" Datei

Beitrag von mdkeil »

Code: Alles auswählen

$tempssd=shell_exec('sudo smartctl -A /dev/sda | grep "Temperature:" | sed s/[^0-9]//g')[b];[/b]
Da fehlt am Ende das ;
Zudem fehlt noch ganz am Ende deiner _math das ?>
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 // "_math" Datei

Beitrag von dremeier »

Super, nun klappt es! Vielen Dank!

Für alle die das auch haben wollen hier meine _math:

Code: Alles auswählen

  GNU nano 5.4                                               /var/www/html/mpi_3phasen_serie_math.php
#!/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

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 // "_math" Datei

Beitrag von dremeier »

Leider ist jetzt die temperatur vom raspberry weg. Also $RaspiTemp wir nicht mehr geschrieben! Was mache ich da falsch?

Im log erscheint die Temperatur:

Code: Alles auswählen

19.07. 13:07:01 XX -Exit....
19.07. 13:07:01 |----------------   Stop   mpi_3phasen_serie.php   ---------------
19.07. 13:08:00 |----------------   Start  mpi_3phasen_serie.php   ---------------
19.07. 13:08:04 >-Rasperry Temperatur: 49 °C
19.07. 13:08:04 >-Rasperry NVME Temperatur: 42 °C
In Grafana ist das Feld "RaspiTemp" auch auswählbar, enthält jedoch keine Daten.
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Bogeyof
Beiträge: 955
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 18 Mal
Danksagung erhalten: 107 Mal

Re: SSD Temperatur nach Influxdb // "_math" Datei

Beitrag von Bogeyof »

Es fehlt der Punkt bei Zusatzquery 2. Teil (damit fängt der Text wieder bei Null an und der Teil mit der RaspiTemp ist weg)

Code: Alles auswählen

$aktuelleDaten["ZusatzQuery"] .= "Service RaspiSSDTemp=".round($tempssd,1);

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 // "_math" Datei

Beitrag von dremeier »

Bogeyof hat geschrieben:
Di 19. Jul 2022, 13:11
Es fehlt der Punkt bei Zusatzquery 2. Teil (damit fängt der Text wieder bei Null an und der Teil mit der RaspiTemp ist weg)

Code: Alles auswählen

$aktuelleDaten["ZusatzQuery"] .= "Service RaspiSSDTemp=".round($tempssd,1);
Nun ist die RaspiTemp wieder da! - Danke!

Damit ich was lerne:
Der Punkt ist im ersten Teil jedoch nicht vorhanden. Ist das richtig so? Magst bitte noch mal drüberschauen?

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);   //<- hier ist der Punkt NICHT
$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);   //<- hier ist der Punkt
$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);
?>

was bedeuten die Punkte?
11,4KWp mit ECO Delta "ECO-400M-66SA" 400W Modulen
MPP-Solar MPI5K Wechselrichter
32 Lifepo4 DIY Akkus EVE 280K entspricht ca. 24KWh netto

Bogeyof
Beiträge: 955
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 18 Mal
Danksagung erhalten: 107 Mal

Re: SSD Temperatur nach Influxdb // "_math" Datei

Beitrag von Bogeyof »

Der Punkt steht für Zusammenfügen des bisherigen Inhalts der Variablen mit dem was nach dem ".=" kommt. Die Variable aktuelleDaten["ZusatzQuery"] ist ja am Ende ein langer Textstring, der für das Schreiben der eigenen Werte in die Datenbank verwendet wird.
Durch das Weglassen des Punktes hat der Textstring wieder bei der beschriebenen Zeile den vorherigen Inhalt überschrieben (und nicht hinzugefügt).
Beim ersten Nutzen der Variablen braucht es keinen Punkt, da man ja mit einem leeren Text beginnen will und dann alle weiteren Zuweisungen hinzufügen will. Daher ist es am Anfang richtig...

Antworten