settings.xml - "LastUpdated/LastChanged-Value" manuell editieren

Hi!

Ich habe begonnen, für einige Wetterdaten Statistikdaten z.B. für Höchst- u. Tiefstwerte in Variablen zu schreiben. Für Heute, Woche, Monat, Jahr und seit Aufzeichnung. Nun habe ich noch Wetterdaten in meinen Statistiken von WsWin und möchte diese manuell für’s Jahr und „seit Aufzeichnung“ nach IP-Symcon übertragen. Um den Zeitpunkt der Aufzeichnung mit IPS auslesen zu können, müsste ich aber dazu LastChanged u. LastUpdated in den settings ändern. In welchem Format sind die dort abgelegt?

Hier ein Beispiel:

<ID12346>
        <Type Value="Float"/>
        <LastUpdated Value="40237,5877219907"/>
        <LastChanged Value="40237,5877219907"/>
        <CustomProfile Value="~Temperature"/>
        <CustomAction Value="0"/>
        <Value Value="12,9"/>

Wie müsste ich nun die Angaben aus WSWin, wie z.B. 30.06.2004 14:35 Uhr umrechnen, diese „IPS-Format“, wie im Beispiel(„40237,5877219907“) zu kommen?

Das ist ein Delphi-eigenes Timestamp-Format. Die Umrechnung mache ich folgendermaßen, musst Du nur noch umkehren:

<?php
function delphiTStoUnix ($ts)
{
    $result = round(($ts - 25569) * 86400);
    $result = strtotime(gmdate("Y-m-d\\TH:i:s".date("P", time()), $result));
    return $result;
}

echo date("H:i:s d.m.y", delphiTStoUnix(str_replace(",", ".", "40237,5877219907")));
?>

Hallo Horst,

vielen Dank für den Tipp!

Habe ich mal gemacht:

<?
// Datum und Zeit

$tag = 13;
$monat = 8;
$jahr = 2003;

$stunden = 15;
$minuten = 04;
$sekunden = 00;


// Unix-Timestamp
$time = mktime($stunden,$minuten,$sekunden,$monat,$tag,$jahr);
if (!date("I",$time)){$gmtplus = 3600;}else{$gmtplus = 7200;}  // Sommerzeit ?

// Delphi-Timestamp (DateTime)
$ergebnis = round((($time + $gmtplus)/ 86400) + 25569,5);

// Überprüfung mit Funktion Horst
function delphiTStoUnix ($ts)
{
	if (!date("I")){$gmtplus = 3600;}else{$gmtplus = 7200;}
    $result = round(($ts - 25569) * 86400)-$gmtplus;
    $result = strtotime(gmdate("Y-m-d\\TH:i:s".date("P", time()), $result));
    return $result;
}
$ergebnis_horst = date("H:i:s d.m.Y", delphiTStoUnix(str_replace(",", ".", $ergebnis)));

echo "$ergebnis_horst

";
echo "$ergebnis
";
?>