Die musst du als root auf dem EDOMI Server ausführen.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Webseite parsen - Wie geht das mit Edomi?
Einklappen
X
-
Mein Programm läuft inzwischen ohne Fehlermeldung, nur erhalte ich leider nur eine 0 am Ausgang. Hier sollte eigentlich eine 147 angezeigt werden.
Wie bereits erwähnt, über den direkten Aufruf im Browser erhalte ich diesen Wert in einer XML nur über den Baustein wird der Wert nicht ausgegeben.
Kann mir hier bitte einer dabei helfen das zum laufen zu bringen.
Hier mein Baustein, der soweit läuft:
PHP-Code:###[DEF]###
[name =Heizung Stati-Abfrage ]
[e#1 =Trigger !=0 ]
[a#1 =A1]
###[/DEF]###
###[HELP]###
Dieser Baustein ließt Heizungswerte überWebservices aus
Eingänge:
e#1 =Trigger !=0
Ausgänge:
a#1 = Ladezustand
###[/HELP]###
###[LBS]###
<?
function LB_LBSID($id)
{
if ($E=getLogicEingangDataAll($id)) // die aktuelle Belegung der Eingänge des LBS in ein Array übergeben
{
if (getLogicElementStatus($id)==0) // Liefert den aktuellen Status der LBS-Instanz $elementid
{
if ($E[1]['value']!=0 && $E[1]['refresh']==1) // Damit ein LBS überhaupt "startet", muss mindestens ein Eingang des LBS getriggert werden
{
setLogicLinkAusgang($id,1,0); // Setzt einen Ausgang der LBS-Instanz $elementid auf einen Wert
setLogicElementStatus($id,1); // Setzt den aktuellen Status der LBS-Instanz $elementid. 1=LBS läuft
callLogicFunctionExec(LBSID,$id); // Startet ggf. das EXEC-Script der LBS-Instanz $elementid.
}
} else
{
//### ggf. checken, ob Timeout erreicht wurde! Sonst "läuft" der LBS ja für immer, obwohl das EXEC-Script schon längst abgekackt ist...
}
}
}
?>
###[/LBS]###
###[EXEC]###
<?
require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
set_time_limit(15); //Script soll maximal 15 Sekunden laufen
sql_connect();
//--------------------------------------------------------------------------------------------------------------------------
//$DEBUG && debug($id,"Baustein startet");
// Auswertung
$src=file_get_contents_utf8("http://IP-Adresse:8080/user/var/120/10251/0/0/12528");
// http://IP-Adresse:8080/user/var/120/10251/0/0/12528
// ftp://admin:
//$src=utf8_encode(file_get_contents("http://IP-Adresse:8080/user/var/120/10251/0/0/12528")); // Liest die gesamte Datei in einen String
preg_match("#.*adv.*\>([0-9]*)<.*#s",$src,$matches) && setLogicLinkAusgang($id,1,$matches[1]); // A01 Ladezustand
setLogicElementStatus($id,0);
function file_get_contents_utf8($fn) {
$content = file_get_contents($fn);
return mb_convert_encoding($content, 'UTF-8',
mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
}
//--------------------------------------------------------------------------------------------------------------------------
sql_disconnect();
?>
###[/EXEC]###
und hier die auszulesende XML:
Code:This XML file does not appear to have any style information associated with it. The document tree is shown below. <eta xmlns="http://www.eta.co.at/rest/v1" version="1.0"> <value uri="/user/var/120/10251/0/0/12528" strValue="15" unit="%" decPlaces="0" scaleFactor="10" advTextOffset="0">147</value> </eta>
Kommentar
Kommentar