RadioActiveatHome wieder "Down"

Für Geräte zur Blitzortung
Benutzeravatar
Marc S
Offline
Beiträge: 28
Registriert: 08 Dez 2020, 18:18
Wohnort: Linnich - Gevenich
Hat sich bedankt: 2 mal
Danksagung erhalten: 5 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#21

Beitrag von Marc S »

Für alle, die wollen oder brauchen.

Code: Alles auswählen

<?php

// Ziel-URL
$url = 'http://www.gmcmap.com/historyData.asp?Param_ID=DEIN SENSOR ID';

// Daten von der Webseite abrufen
$data = file_get_contents($url);

// Neue DOMDocument-Instanz erstellen
$dom = new DOMDocument();

// Fehlerunterdrückung für ungültiges HTML aktivieren
libxml_use_internal_errors(true);

// HTML-Daten in das DOM laden
$dom->loadHTML($data);

// Fehlermeldungen ignorieren
libxml_clear_errors();

// DOMXPath-Objekt für die Navigation durch den DOM erstellen
$xpath = new DOMXPath($dom);

// Tabelle mit der Klasse 'table-hover' auswählen
$table = $xpath->query('//table[contains(@class, "table-hover")]')->item(0);

// Datenzeilen der Tabelle auswählen
$rows = $xpath->query('.//tbody/tr', $table);

// Array für die gespeicherten Daten initialisieren
$geigerData = [];

// Durch jede Datenzeile iterieren
foreach ($rows as $row) {
    // Werte der Spalten auslesen
    $columns = $row->getElementsByTagName('td');
    $date = $columns->item(0)->nodeValue;
    $cpm = $columns->item(1)->nodeValue;
    $acpm = $columns->item(2)->nodeValue;
    $usv = $columns->item(3)->nodeValue;

    // Daten in ein assoziatives Array speichern
    $geigerData[] = [
        'date' => $date,
        'cpm' => $cpm,
        'acpm' => $acpm,
        'usv' => $usv
    ];
}

// Die gewünschten Werte in Variablen speichern
$dateString = $geigerData[0]['date'];
$cpm = $geigerData[0]['cpm'];
$acpm = $geigerData[0]['acpm'];
$usv = $geigerData[0]['usv'];

// Datum konvertieren
$dateTime = new DateTime($dateString, new DateTimeZone('GMT'));
$dateTime->setTimezone(new DateTimeZone('Europe/Berlin'));

// Datum in europäisches Format umwandeln
$formattedDate = $dateTime->format('d.m.Y H:i:s');

// Das gewünschte Dateiformat erstellen
$fileContent = json_encode([
            '$formattedDate' => $formattedDate,
            '$CPM' => $cpm,
            '$ACPM' => $acpm,
            '$uSvh' => $usv,],
JSON_PRETTY_PRINT);

$fileContent = sprintf(
    '<?php' . PHP_EOL .
    '$formattedDate = "%s";' . PHP_EOL .
    '$CPM = "%s";' . PHP_EOL .
    '$ACPM = "%s";' . PHP_EOL .
    '$uSvh = "%s";' . PHP_EOL .
    '?>',
    $formattedDate,
    $cpm,
    $acpm,
    $usv
);

// Datei schreiben
$file = 'PFAD ZUM SPEICHERORT';
file_put_contents($file, $fileContent);

?>

Per Cronjob anrufen lassen.
Zuletzt geändert von Marc S am 04 Sep 2023, 09:42, insgesamt 1-mal geändert.
mfg
Marc


Vantage Pro 2 | Vantage Pro 2 aktive Plus | Vantage Pro 2 aktive Plus | WS 2500 + 2 x WS 2500 PC mit 2 x Wind, 2 x Regen

Wetter Gevenich
Benutzeravatar
gargamel
Offline
Beiträge: 294
Registriert: 07 Dez 2020, 16:48
Wohnort: Nettetal-Kaldenkirchen
Hat sich bedankt: 3 mal
Danksagung erhalten: 14 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#22

Beitrag von gargamel »

Hallo Marc,
danke für das Script.
Nur bei läuft es nicht:
GeigerID eingetragen
"PFAD ZUM SPEICHERORT" wird nur sporadisch angelegt (Zeintintervall??)
Im FTP Programm sind die Werte da, aber iich kann die nicht im Broswer abrufen (Auch beim Ändern des "PFAD ZUM SPEICHERORT"
LG
Wilfried

Mitglied beim www.ruhrwetter.de und www.wettersektor.de
Wetterstation: Nettetal-Kaldenkirchen www.wilfried-monika.de

Davis VantagePro2 Active Plus, Wetterdirekt Sirius 300 und Sturmglas, TOA-Blitzortung, Radioaktivmessung
Benutzeravatar
Marc S
Offline
Beiträge: 28
Registriert: 08 Dez 2020, 18:18
Wohnort: Linnich - Gevenich
Hat sich bedankt: 2 mal
Danksagung erhalten: 5 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#23

Beitrag von Marc S »

Hi Wilfried

Das Script musst du per Cronjob anrufen lassen. Da der Zeitintervalle bei denen 5 min ist, reicht es auch aus das Script alle 5 min auszuführen.


Zum Beispiel

Code: Alles auswählen


include "Pfad zum Speicherort";

<?php echo $uSvh;?> µSv/h

mfg
Marc


Vantage Pro 2 | Vantage Pro 2 aktive Plus | Vantage Pro 2 aktive Plus | WS 2500 + 2 x WS 2500 PC mit 2 x Wind, 2 x Regen

Wetter Gevenich
Benutzeravatar
gargamel
Offline
Beiträge: 294
Registriert: 07 Dez 2020, 16:48
Wohnort: Nettetal-Kaldenkirchen
Hat sich bedankt: 3 mal
Danksagung erhalten: 14 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#24

Beitrag von gargamel »

Was meinst du mit "iclude Pfad zum Speicherort" ???
Verstehe nur Bahnhof
LG
Wilfried

Mitglied beim www.ruhrwetter.de und www.wettersektor.de
Wetterstation: Nettetal-Kaldenkirchen www.wilfried-monika.de

Davis VantagePro2 Active Plus, Wetterdirekt Sirius 300 und Sturmglas, TOA-Blitzortung, Radioaktivmessung
Benutzeravatar
gargamel
Offline
Beiträge: 294
Registriert: 07 Dez 2020, 16:48
Wohnort: Nettetal-Kaldenkirchen
Hat sich bedankt: 3 mal
Danksagung erhalten: 14 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#25

Beitrag von gargamel »

Cronjob läuft werte werden aktualisiert.
Die daten kann ich NUR im FTP Programm einsehen NICHT per URL aufrufen. Was ist falsch?
Der Aufruf im FTP-Programm:

Code: Alles auswählen

<?php
$formattedDate = "04.09.2023 12:23:54";
$CPM = "21";
$ACPM = "24.91";
$uSvh = "0.14";
?>
Was meinst du mit "include"?
LG
Wilfried

Mitglied beim www.ruhrwetter.de und www.wettersektor.de
Wetterstation: Nettetal-Kaldenkirchen www.wilfried-monika.de

Davis VantagePro2 Active Plus, Wetterdirekt Sirius 300 und Sturmglas, TOA-Blitzortung, Radioaktivmessung
Benutzeravatar
Marc S
Offline
Beiträge: 28
Registriert: 08 Dez 2020, 18:18
Wohnort: Linnich - Gevenich
Hat sich bedankt: 2 mal
Danksagung erhalten: 5 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#26

Beitrag von Marc S »

include "Pfad zum Speicherort"; -> Hier kommt der Speicherort hin z.B. include "./Menue/Aktuelle_Daten/Radioaktive.php";

Und das schreibst du auf der gleichen Seite, an der Stelle, wo es angezeigt werden soll. Also den Wert, den du anzeigen willst.

<?php
echo $uSvh;
?>

oder

<?php
echo $ACPM;
?>
mfg
Marc


Vantage Pro 2 | Vantage Pro 2 aktive Plus | Vantage Pro 2 aktive Plus | WS 2500 + 2 x WS 2500 PC mit 2 x Wind, 2 x Regen

Wetter Gevenich
Benutzeravatar
gargamel
Offline
Beiträge: 294
Registriert: 07 Dez 2020, 16:48
Wohnort: Nettetal-Kaldenkirchen
Hat sich bedankt: 3 mal
Danksagung erhalten: 14 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#27

Beitrag von gargamel »

Sobald mehr als Aktuell.php in der Betreffenden Zeile 86 Steht aktualisiert sich es nicht.
Hier die codes:
Geigerzaehler:

Code: Alles auswählen

<?php

// Ziel-URL
$url = 'http://www.gmcmap.com/historyData.asp?Param_ID=xxxxxxxxxxx';

// Daten von der Webseite abrufen
$data = file_get_contents($url);

// Neue DOMDocument-Instanz erstellen
$dom = new DOMDocument();

// Fehlerunterdrückung für ungültiges HTML aktivieren
libxml_use_internal_errors(true);

// HTML-Daten in das DOM laden
$dom->loadHTML($data);

// Fehlermeldungen ignorieren
libxml_clear_errors();

// DOMXPath-Objekt für die Navigation durch den DOM erstellen
$xpath = new DOMXPath($dom);

// Tabelle mit der Klasse 'table-hover' auswählen
$table = $xpath->query('//table[contains(@class, "table-hover")]')->item(0);

// Datenzeilen der Tabelle auswählen
$rows = $xpath->query('.//tbody/tr', $table);

// Array für die gespeicherten Daten initialisieren
$geigerData = [];

// Durch jede Datenzeile iterieren
foreach ($rows as $row) {
    // Werte der Spalten auslesen
    $columns = $row->getElementsByTagName('td');
    $date = $columns->item(0)->nodeValue;
    $cpm = $columns->item(1)->nodeValue;
    $acpm = $columns->item(2)->nodeValue;
    $usv = $columns->item(3)->nodeValue;

    // Daten in ein assoziatives Array speichern
    $geigerData[] = [
        'date' => $date,
        'cpm' => $cpm,
        'acpm' => $acpm,
        'usv' => $usv
    ];
}

// Die gewünschten Werte in Variablen speichern
$dateString = $geigerData[0]['date'];
$cpm = $geigerData[0]['cpm'];
$acpm = $geigerData[0]['acpm'];
$usv = $geigerData[0]['usv'];

// Datum konvertieren
$dateTime = new DateTime($dateString, new DateTimeZone('GMT'));
$dateTime->setTimezone(new DateTimeZone('Europe/Berlin'));

// Datum in europäisches Format umwandeln
$formattedDate = $dateTime->format('d.m.Y H:i:s');

// Das gewünschte Dateiformat erstellen
$fileContent = json_encode([
            '$formattedDate' => $formattedDate,
            '$CPM' => $cpm,
            '$ACPM' => $acpm,
            '$uSvh' => $usv,],
JSON_PRETTY_PRINT);

$fileContent = sprintf(
    '<?php' . PHP_EOL .
    '$formattedDate = "%s";' . PHP_EOL .
    '$CPM = "%s";' . PHP_EOL .
    '$ACPM = "%s";' . PHP_EOL .
    '$uSvh = "%s";' . PHP_EOL .
    '?>',
    $formattedDate,
    $cpm,
    $acpm,
    $usv
);

// Datei schreiben
$file = 'PFAD ZUM SPEICHERORT';
file_put_contents($file, $fileContent);

?>
Diese Aktuell.php wird ezeugt :

Code: Alles auswählen

<?php
$formattedDate = "04.09.2023 18:41:23";
$CPM = "21";
$ACPM = "24.93";
$uSvh = "0.14";
?>
Wenn ich zeile86

Code: Alles auswählen

$file = 'PFAD ZUM SPEICHERORT';
in

Code: Alles auswählen

$file = 'include "http://www.wilfried-monika.de/Radioactivitaet/Aktuell.php';
ändere,
dann läuft nix mehr. Bei Beiden versionen bleibt beim Aufruf der Php-Datei im Broswer der Bildschirm weiss.

Bin nun völlig Ratlos
LG
Wilfried

Mitglied beim www.ruhrwetter.de und www.wettersektor.de
Wetterstation: Nettetal-Kaldenkirchen www.wilfried-monika.de

Davis VantagePro2 Active Plus, Wetterdirekt Sirius 300 und Sturmglas, TOA-Blitzortung, Radioaktivmessung
Benutzeravatar
Marc S
Offline
Beiträge: 28
Registriert: 08 Dez 2020, 18:18
Wohnort: Linnich - Gevenich
Hat sich bedankt: 2 mal
Danksagung erhalten: 5 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#28

Beitrag von Marc S »

gargamel hat geschrieben: 04 Sep 2023, 18:59

Code: Alles auswählen

$file = 'include "http://www.wilfried-monika.de/Radioactivitaet/Aktuell.php';
ändere,
dann läuft nix mehr. Bei Beiden versionen bleibt beim Aufruf der Php-Datei im Broswer der Bildschirm weiss.

Bin nun völlig Ratlos
Nicht in das Script schreiben.

include "http://www.wilfried-monika.de/Radioacti ... ktuell.php";


Das kommt in den HEAD (<head></head>), auf der Seite, auf der du es Anzeigen lassen möchtest.

<?php
echo $uSvh;
?>


Das in die Zeile /Tabelle oder auch was immer, wo es ausgegeben werden soll.
mfg
Marc


Vantage Pro 2 | Vantage Pro 2 aktive Plus | Vantage Pro 2 aktive Plus | WS 2500 + 2 x WS 2500 PC mit 2 x Wind, 2 x Regen

Wetter Gevenich
Benutzeravatar
gargamel
Offline
Beiträge: 294
Registriert: 07 Dez 2020, 16:48
Wohnort: Nettetal-Kaldenkirchen
Hat sich bedankt: 3 mal
Danksagung erhalten: 14 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#29

Beitrag von gargamel »

Ich probier es mal aus, Marc,
hab das Ding aber irgendwie anders zu Laufen gebracht (Ohne Cronjob)
LG
Wilfried

Mitglied beim www.ruhrwetter.de und www.wettersektor.de
Wetterstation: Nettetal-Kaldenkirchen www.wilfried-monika.de

Davis VantagePro2 Active Plus, Wetterdirekt Sirius 300 und Sturmglas, TOA-Blitzortung, Radioaktivmessung
Benutzeravatar
gargamel
Offline
Beiträge: 294
Registriert: 07 Dez 2020, 16:48
Wohnort: Nettetal-Kaldenkirchen
Hat sich bedankt: 3 mal
Danksagung erhalten: 14 mal
Kontaktdaten:

Re: RadioActiveatHome wieder "Down"

#30

Beitrag von gargamel »

Der "Support" von QC-Electronics in den USA ist wirklich hervoragend.
Die haben mir einen speziellen Link für eine FW Update gegeben (Aktuell 2.48) klappte alles OHNE zus. Hardware.
LG
Wilfried

Mitglied beim www.ruhrwetter.de und www.wettersektor.de
Wetterstation: Nettetal-Kaldenkirchen www.wilfried-monika.de

Davis VantagePro2 Active Plus, Wetterdirekt Sirius 300 und Sturmglas, TOA-Blitzortung, Radioaktivmessung
Antworten