Seite 2 von 2

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

Verfasst: Mo 18. Jul 2022, 23:03
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 ?>

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

Verfasst: Mo 18. Jul 2022, 23:49
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);
?>

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

Verfasst: Di 19. Jul 2022, 13:05
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.

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

Verfasst: Di 19. Jul 2022, 13:11
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);

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

Verfasst: Di 19. Jul 2022, 13:17
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?

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

Verfasst: Di 19. Jul 2022, 13:36
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...