+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 20
  1. #1
    Registriert seit
    Jun 2010
    Beiträge
    53

    Standard Tecson Tank-Spion Quadro LX-Q

    Hallo zusammen,

    möchte mich kurz vorstellen, bin der Jogel und komme jetzt öfters.
    Seit neustem Homematic und IPS User.
    Nachdem ich die vielen schönen Webfronts und Dashboards hier gesehen hatte, kam das große "auch haben wollen". Und als alles da war kam die große Ernüchterung. Ohne PHP-Kenntnisse geht nicht viel.
    Also jede freie Minute hier im Forum gestöbert und fleissig Skripts kopiert und ausprobiert und damit versucht ein bischen zu lernen und zu verstehen. Vielen dank dafür an alle.
    Nun wollte ich mal meinen eigenen Wunsch umsetzen und komme nicht weiter.
    Ich möchte meinen Tecson Tankanzeiger auslesen und anhand des Pegelstandes Pumpen schalten und später das ganze auch schön visualisieren. Eigentlich IPS-Kernkompetenz, denke ich mal.
    Da viele Wege nach Rom führen und ich mit dem Auslesen der XML-Daten nicht weitergekommen bin, habe ich erstmal per WWW-Reader die WEB-Seite ausgelesen und in die einzelnen Werte mit je einem Parser als String gelesen und dann per Skript in Float oder Int geändert.
    Soweit so gut, nur für ein paar Variablen schon viele Scripte und Parser.
    Das muß intelligenter gehen, hab ich mir gedacht.
    Wenn ich mit dem WWW-Reader die XML-Seite lesen möchte gibt die Konsole eine Fehlermeldung. siehe Bild.
    Also viel in den PHP- und simplexml-Tutorials gesucht, aber irgendwie bekomme ich da nicht weiter,
    mit dem Browser bekomme ich die xml Daten (siehe auch xml-Datei)
    Irgendwie fehlt mir der entscheidene Anfang. Vielleicht hat jemand einen guten Tip für einen Newbie.
    Danke schon mal
    Gruß Jogel
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Konsolenfehler.png 
Hits:	137 
Größe:	33.9 KB 
ID:	8429  
    Angehängte Dateien Angehängte Dateien

  2. #2
    Registriert seit
    Jun 2010
    Beiträge
    53

    Hallo zusammen,

    ich habe eine Frage an die Script-Profis hier.
    Mein Script funktioniert mit einer testweise lokal abgespeicherten XML-Datei.
    Irgendwie komme ich aber nicht weiter. Ziel soll es sein, direkt die gleichen XML-Daten vom Server (HTTP-Aufruf) zu verarbeiten. Wenn ich Zeile 6 mit Zeile 5 austausche, wird die $xml-Variable nicht gefüllt.
    Wäre schön wenn jemand einen Tip dazu für mich hat.
    Bin auch dankbar für sonstige Hinweise, da das mein erster eigener Scriptversuch ist.

    Jogel

    PHP-Code:
    // Abruf der XML-Seite vom Tecson-Füllstandsanzeiger

    $xml simplexml_load_string(utf8_encode(@Sys_GetURLContent("http://192.168.27.2/xml"))); //Aufruf der XML-Seite des Tecson
    //$xml = simplexml_load_file(utf8_encode('C:\tmp\tecson.xml')); // Test mit XML-File

    print_r($xml); // Testausgabe ob Variable gefüllt wird

    $tecson = array();

    $i 1// Schleife für Array-Befüllung
    foreach($xml->seqData->seqTanks as $tanks)
    {
            
    $tecson[$i]['TankLevel'] = $tanks->seqTankLevel->tankLevel;
          
    $tecson[$i]['TankPercent'] = $tanks->tankPercent;
          
    $tecson[$i]['TankSize'] = $tanks->seqTankSize->tankSize;
          
    $tecson[$i]['TankClearance'] = $tanks->seqTankClear->tankClearance;

    $i++;
       }
    // Füllen der Variablen mit Formatwandlung String -> Integer
    SetValueInteger(55693 /*[Tecson\tank1\TankClearance]*/ , (integer)$tecson[1]['TankClearance']);
    SetValueInteger(14193 /*[Tecson\tank2\TankClearance]*/ , (integer)$tecson[2]['TankClearance']);
    SetValueInteger(30205  /*[Tecson\tank1\TankLevel]*/ , (integer)$tecson[1]['TankLevel']);
    SetValueInteger(27915  /*[Tecson\tank2\TankLevel]*/ , (integer)$tecson[2]['TankLevel']);
    SetValueInteger(15898  /*[Tecson\tank1\TankPercent]*/ , (integer)$tecson[1]['TankPercent']);
    SetValueInteger(55219  /*[Tecson\tank2\TankPercent]*/, (integer)$tecson[2]['TankPercent']);
    SetValueInteger(50818  /*[Tecson\tank1\TankSize]*/ , (integer)$tecson[1]['TankSize']);
    SetValueInteger(44654  /*[Tecson\tank2\TankSize]*/ , (integer)$tecson[2]['TankSize']); 

  3. #3
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Hallo Jogel,

    mach mal das @ vor Sys_GetURLContent weg.

    PHP-Code:
    $xml simplexml_load_string(utf8_encode(Sys_GetURLContent("http://192.168.27.2/xml"))); 
    jetzt solltest Du eine Fehlermeldung erhalten. Mit @ wird diese unterdrückt.

    Ob die Pfadangaben usw stimmen sollte jetzt ersichtlich sein.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  4. #4
    Registriert seit
    Jun 2010
    Beiträge
    53

    Hallo Rainer,

    jetzt wird eine Fehlermeldung mehr angezeigt.

    Warning: in D:\IP-Symcon\scripts\12521.ips.php on line 5

    Notice: Trying to get property of non-object in D:\IP-Symcon\scripts\12521.ips.php on line 13

    Notice: Trying to get property of non-object in D:\IP-Symcon\scripts\12521.ips.php on line 13

    Warning: Invalid argument supplied for foreach() in D:\IP-Symcon\scripts\12521.ips.php on line 13
    Wobei mir die erste Warnung nichts sagt (die ist dazugekommen), ausser das ich einen Fehler im Script habe. Die anderen sind meiner Meinung nach Folgefehler, da die Variable $XML nicht gefüllt wird.

    Gruß Jogel

  5. #5
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Hallo Jogel,

    ich würde jetzt mal behaupten das irgendwas mit Pfadangaben, Zugriffsrechten auf den entfernten Rechner nicht stimmt.

    Ist denn die XML-Datei nicht noch in einem Unterordner?
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  6. #6
    Registriert seit
    Jun 2010
    Beiträge
    53

    Hallo Rainer,

    Pfad und Berechtigungen sollten stimmen, da ich mit dem IE mit der Adresse http://192.168.27.2/xml
    genau die XML-Daten angezeigt bekomme. Die hatte ich dann testweise als Datei lokal gespeichert.
    http://192.168.27.2 zeigt eine "echte" aufbereitete WEB-Seite.
    Ist in meinem Fall überhaupt Sys_GetURLContent dann richtig?
    Es gibt eine Demo-Seite im Netz http://217.91.134.36/xml, genauso bekomme ich meine Daten

    Gruß Jogel

  7. #7
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Hallo Jogel,

    du kannst es ja mal mit
    PHP-Code:
    file_get_contents 
    probieren.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  8. #8
    Registriert seit
    Jun 2010
    Beiträge
    53

    Hallo Rainer
    so?
    PHP-Code:
    $xml simplexml_load_string(utf8_encode(file_get_contents("http://192.168.27.2/xml"))); 
    das bringt das:
    Warning: file_get_contents(http://192.168.27.2/xml) [function.file-get-contents]: failed to open stream: HTTP request failed! <?xml version="1.0" encoding="UTF-8"?>
    in D:\IP-Symcon\scripts\12521.ips.php on line 5
    Ich glaube mir fehlt noch sehr sehr viel, danke für die Geduld

    Gruß Jogel

  9. #9
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    failed to open stream:
    Kein Zugriff. Firewall?

    Ist der Browser wo es geht auf dem selben Rechner wie IPS.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  10. #10
    Registriert seit
    Jun 2010
    Beiträge
    53

    Hallo Rainer,

    ja der gleiche Rechner
    mir dem WWW-Reader auf die WEB-Seite geht auch

    Gruß Jogel