Hallo,
wenn keine Meldungen von ETA reinkommen liegt das meistens daran, dass der ttyUSB-Port nicht mehr stimmt, deshalb:
Aktuelles Datum und Zeit der Livedaten prüfen (mit Minutenversatz) und dann Port-ttyUSB umschalten:
<?
// aktuelle Livedaten auslesen, letzter Satz
//String zerlegen da nicht parsebar
$String1=substr(getValueString(43250 /*[ETA\Meldungen\Live Daten]*/),0,11);
echo " LiveDaten ETA: $String1 ";
list ($tag, $monat, $jahr) = explode(" ",$String1);
// echo "$tag $monat $jahr
";
$String2=substr(getValueString(43250 /*[ETA\Meldungen\Live Daten]*/),11,6);
echo "$String2
";
list ($stunde, $minute) = explode(":",$String2,3);
// echo "Stunde: $stunde; Minuten: $minute; Sekunde: $sekunde
";
// AKtuelles Datum und Zeit
$timestamp = time();
$datum1 =date("d M Y h:i ",$timestamp); //heute
echo " Aktuelle Zeit: $datum1
";
//Versatz
$minutenVersatz=getValue(42255 /*[ETA steuern\Datenfluss\Minutenversatz]*/);
$datum_neu= date("d M Y h:i",$timestamp-60*$minutenVersatz);
echo "Versatzt: $minutenVersatz Minuten
";
echo "Sollzeit: $datum_neu
";
$datum2 = $tag." ".$monat." ".$jahr." ".$stunde.":".$minute ;
echo "Ausgelesen: $datum2
";
if (($timestamp = strtotime($datum2)) === false) {
echo "Die Zeichenkette ($datum2) ist nicht parsebar
.";
} else {
//echo "Kontrolle $datum2 == " . date('d M Y h:i ', $timestamp);
}
$ttyUSB=GEtValue(51196 /*[ETA steuern\Datenfluss tyUSB]*/);
echo "ttyUSB ist $ttyUSB
";
If ($datum_neu > $datum1)
{
echo "$datum1 Älter als $datum2
";
//SetValue(51196 /*[ETA steuern\Datenfluss tyUSB]*/,1);//ttyUSB umschalten
If ($ttyUSB==0)
{
SetValueFloat(51196 /*[ETA steuern\Datenfluss tyUSB]*/,1);
}
else
{
SetValueFloat(51196 /*[ETA steuern\Datenfluss tyUSB]*/,0);
}
}
else
{
echo "
Meldungen sind aktuell $datum2";
}
$ttyUSB=GEtValue(51196 /*[ETA steuern\Datenfluss tyUSB]*/);
echo "
ttyUSB ist $ttyUSB
";
?>
USB umschalten:
<?
// Comports tauschen
// Comport Status
$config1 = IPS_GetConfiguration(38947 /*[ETA_COM_Port]*/);
$config2 = IPS_GetConfiguration(33162 /*[M-Bus_Com_Port]*/);
echo " ETA-Com $config1
M-Bus-Com $config2
";
$ttyUSB=GEtValue(51196 /*[ETA steuern\Datenfluss tyUSB]*/);
echo "ttyUSB ist $ttyUSB
";
//ausschalten
SetValue(44980 /*[ETA\Setup\Datenabfrage]*/,0);
IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Open", 0 );
IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Open", 0 );
echo "Com-Ports werden ausgeschalten
";
//ETA auf USB0
switch ($ttyUSB) {
case 0:
IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Port", "/dev/ttyUSB0" );
IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Port", "/dev/ttyUSB1" );
echo "ETA auf USB0 gestellt
";
break;
case 1:
IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Port", "/dev/ttyUSB1" );
IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Port", "/dev/ttyUSB0" );
echo "ETA auf USB1 gestellt
";
break;
case 2:
//IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Port", "/dev/ttyUSB1" );
//IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Port", "/dev/ttyUSB0" );
echo "nicht erlaubt
";
break;
}
//Einschalten
IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Open", 1 );
IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Open", 1 );
SetValue(44980 /*[ETA\Setup\Datenabfrage]*/,1);
echo "Com-Ports wieder eingeschalten";
?>
ttyUSB als Float mit 0,1,2,3,4 und Text -Profil ttyUSB1,…
Minutenversatz für maximale Zeitverzögerung als Integer
EInstellungen ETA ttyUSB: 19200/8/1/keine
Gruß Konny