Ankündigung

Einklappen
Keine Ankündigung bisher.

KO-Wert mit überflüssigem Punkt - beim Auslesen entfernen?

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

    KO-Wert mit überflüssigem Punkt - beim Auslesen entfernen?

    Hallo,

    Ich bastele an einem Logikbaustein, der das Webinterface meiner Wärmepumpe auslesen soll (ja gibt es bereits, passt aber nicht zu meiner Steuerungsversion, daher Änderungen nötig).

    Ein analoger Wert wird aber nicht korrekt ausgelesen:
    Lt. Webinterface der Steuerung müssten dort 22458 (Stunden) ausgegeben werden.

    Wenn ich im Browser die Abfrage vom Baustein verwende kommt das:

    Code:
    This XML file does not appear to have any style information associated with it. The document tree is shown below.
    
    <PCOWEB>
    <PCO>
    <ANALOG>
    <VARIABLE>
    <INDEX>64</INDEX>
    <VALUE>2245.8</VALUE>
    </VARIABLE>
    </ANALOG>
    </PCO>
    </PCOWEB>
    Warum nun dieser komische Punkt da drin steht ist mir schleierhaft. Bezeichnet ja auch keine Nachkommastelle, im Webinterface wird das als 5-stellige Ganzzahl angezeigt.
    Das Ding muss also weg.

    Muss ich irgendwas in der Logik basteln (habe mal was gelesen von "Zerschneiden" und vor und nach dem Punkt Zusammensetzen) oder geht das evtl. mit angepaster Abfrage im Baustein?
    Momentan frage ich im Baustein den Analogwert so ab:

    Code:
    //Primärpumpe Ventilator M11
    $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
    preg_match($regexp,$ausgabe8,$data8);
    setLogicLinkAusgang($id,8,$data8[1]);
    In der Logik wird dann auf ein KO als Variant geschrieben. Zeigt dann den Punkt mit an.

    Gruß
    Alex
    Zuletzt geändert von sammawatt; 13.09.2021, 20:52.

    #2
    Hast du mal versucht einfach den Wert mit 10 zu multiplizieren?
    Ansonsten kann man auch mit str_replace() den . durch einen leeren String ersetzen.
    oder aber durch Anpassung des preg_match()

    Kommentar


      #3
      Keine Ahnung wie man das in den Code einbaut, so fit bin ich nicht, bisher kann ich nur funktionierenden Code durch Ausprobieren entsprechend anpassen.

      Aber das mit der Multiplikation klappt. Jetzt kam mir auch die Idee mal in den Quellcode der Webseite des Interfaces zu schauen... und siehe da, die machen es genauso:

      Code:
      <td align='right'><script>var z_bsvd1=2245.8*10;
      Vielen Dank!

      Kommentar

      Lädt...
      X