WWW Reader: "Update Now" per Skript manuell ansteuern

Hallo,

ich aktualisiere meine Verkehrsmeldungen über den WWW Reader alle 15 min. Ich würde nun gerne zusätzlich im Designer einen Button einrichten, der ein manuelles Update anstösst. Ist dies realisierbar?

Gruss,
reflectedimage

Aber klar !

Nur im Designer einen Button anlegen. Dann in seinem Objekt-Properties auf Event-Reiter klicken und hier bei „OnClick“ den Skript Namen angeben, der eben die Verkehrsmeldungen abfragt. Das wars

Sehr einfach

mfG Franz

Hallo,

wie kann ich aber in einem Skript den WWW Reader manuell updaten, also ausserhalb der planmäßigen Updates? Diese Funktion kenne ich nur auf der Instanzenebene, weiss aber nicht wie ich diese per Skript ansteuern kann.

Gruss,
reflectedimage

WWWReader_UpdatePage(14323);

Natürlich muss deine InstanzID da rein^^

Toni

perfekt, das ist es, was ich gesucht habe. Vielen Dank für die Hilfe!

Gruss,
reflectedimage

Hallo reflectedimage,

würdest Du das script hier mal posten. Ich finde das sehr interessant.

Vielen Dank
TK

Das ist weniger ein Script als eine Standardaufgabe für den WWW-Reader. Der ließt die Informationen in einem einstellbaren Intervall aus dem Netz. Du musst ihm nur die Webseite verraten und eine Filterregel festlegen.

Steht alles in der Doku.

Toni

Hallo TK6,

über den WWW Reader hole ich mir die gesamte Seite der Staumeldungen (hier: http://www.radionrw.de/verkehr/vknrw.htm)

Die Weiterbearbeitung erfolgt durch das folgende Skript. Da mich nicht alle Staumeldungen interessieren, prüfe ich alle Meldungen auf bestimmte Autobahnbezeichnungen. Nur die für mich relevanten werden dann übernommen und formatiert (alle HTML TAGS werden) entfernt.

Die Meldungen zeige ich dann im Designer über ein Memo-Feld an.

Mein Ziel ist es, nicht nur Autobahnnummern sondern auch bestimmte Streckenabschnitte zu extrahieren, um den für mich relevanten Bereich weiter einzugrenzen. Da muss ich mir aber noch ein paar schlaue Gedanken machen …

/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Verkehrsmeldungen_formatieren.ips.php
Trigger  : 
Interval : 
*/

// Timestamp der Staumeldungen erstellen
SetValueString("Staumeldungen.timestamp", date("H:i", IPS_GetUpdateTime("Staumeldungen")));

// String initialiseren
SetValueString("Staumeldungen_formatiert", '');

// in dem vom WWW Reader erhaltene Staumeldungen formatieren
$Meldungen = str_replace("</U>", "
", GetValueString("Staumeldungen"));

// In Einzelmeldungen unterteilen
$Einzelmeldung = explode("<U>", $Meldungen);
$anzahl = count($Einzelmeldung);

// Alle Einzelmeldungen durchgehen und auf Relevanz überprüfen
for ($i =0; $i <= $anzahl-1; $i++)
{
   // Lösche HTML Tags aus Meldung
   $Einzelmeldung[$i] = theRealStripTags($Einzelmeldung[$i]);
   
   // Isoliere die Autobahnnummer
   $currentBeg = strpos($Einzelmeldung[$i], 'A');
   $currentEnd = strpos($Einzelmeldung[$i], ' ');
   $autobahn = @substr($Einzelmeldung[$i], $currentBeg, $currentEnd);

   // Wenn Autobahnnummer relevant, dann Staumeldung übernehmen
   switch ($autobahn)
   {
       case "A1":
       case "A2":
       case "A3":
       case "A4":
       case "A46":
       case "A59":
         $temp = GetValueString("Staumeldungen_formatiert");
         $new = $temp.$Einzelmeldung[$i]."
";
         SetValueString("Staumeldungen_formatiert", $new);
         break;
    }
}

//SetValueString("Staumeldungen_formatiert", '');

function theRealStripTags($string)
{
   //while there are tags left to remove
   while(strstr($string, '>'))
   {
       //find position of first carrot
       $currentBeg = strpos($string, '<');

       //find position of end carrot
       $currentEnd = strpos($string, '>');

       //find out if there is string before first carrot
       //if so save it in $tmpstring
       $tmpStringBeg = @substr($string, 0, $currentBeg);

       //find out if there is string after last carrot
       //if so save it in $tmpStringEnd
       $tmpStringEnd = @substr($string, $currentEnd + 1, strlen($string));

       //cut the tag from the string
       $string = $tmpStringBeg.$tmpStringEnd;
   }

   return $string;
}


?>

Gruss,
reflectedimage

Super,

Vielen Dank, ich teste das mal.