Ankündigung

Einklappen
Keine Ankündigung bisher.

Webseite parsen - Wie geht das mit Edomi?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #91
    Die musst du als root auf dem EDOMI Server ausführen.

    Kommentar


      #92
      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


        #93
        Probier mal folgende RegExp "adv.*?>([0-9]+)". Bei https://regex101.com/ funktioniert sie.

        Kommentar

        Lädt...
        X