Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Problem bei Webabfrage

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

    - √ - Problem bei Webabfrage

    ich habe aus dem Google-Beispiel den Code ein bischen umgeändert - leider funktioniert es nicht
    Code:
    xmlText=$$
    xmlText_Data1=$$
    xmlText_Data2=$$
    xmlCount=0
    Abfrage=AUS
    Port=0u16
    IP=0u32
    WWWPort = 80u16
    WWWIP = 192.168.1.100
    // TCP Verbindung aufmachen
    
    if cycle(0,30) then Abfrage==EIN endif
    if (Abfrage == EIN) then {
        connecttcp(WWWPort,WWWIP)
    }endif
    // TCP Anfrage schicken
    if (after(Abfrage,1000u64) == EIN) then {
        sendtcp(WWWPort,WWWIP,$GET /rdsps?AIN0+9$,0x0Du08,0x0Au08,0x0Du08,0x0Au08)
    }endif
     
    // Es kommen 2 Pakete an
    if event(readtcp(Port,IP,xmlText)) and IP == WWWIP then {
       if (xmlCount==0) then xmlText_Data1=xmlText endif;
       if (xmlCount==1) then xmlText_Data2=xmlText endif;
       xmlCount=xmlCount+1
    }endif
    // TCP Verbindung wieder ordentlich schließen
    if after(Abfrage,10000u64) then {
       closetcp(Port,IP); \\
    	Abfrage=AUS
    } endif

    Der Sinn ist rel. einfach: mit einer Browserabfrage
    Code:
    Request URL:http://192.168.1.100/rdsps?AIN0+9
    Request Method:GET
    Status Code:200 OK
    kann ich meinen Heizungscontroller abfragen und als Ergebnis wird Folgendes zurückgeliefert:
    Code:
    AIN0=43.1562 AIN1=18.1471 AIN2=23.7146 AIN3=22.5427 AIN4=29.9990 AIN5=41.6848 AIN6=63.6676 AIN7=30.8989 AIN8=77.7929
    mit dem EibPC kommt kein Ergebnis, die Variablen sind:

    (WWWIP) % Typ: positive Ganzzahl % Wert: 3232235876
    (WWWPort) % Typ: positive Ganzzahl % Wert: 80
    und die Abfrage:
    Wert von Objekt 1899 (xmlText) abfragen:
    % D:/_EIB/eibPC/EibstudioData/nconf -q 1899 192.168.1.228
    % Wert von Objekt 1899: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    die restlichen Variablen (IP, PORT, und die XmlTexte sind leer)

    Woran könnte es denn liegen?
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    #2
    Zitat von EPIX Beitrag anzeigen
    Der Sinn ist rel. einfach: mit einer Browserabfrage
    Code:
    Request URL:http://192.168.1.100/rdsps?AIN0+9
    Request Method:GET
    Status Code:200 OK
    kann ich meinen Heizungscontroller abfragen und als Ergebnis wird Folgendes zurückgeliefert:
    Woran könnte es denn liegen?
    Google hatte zwei 0xd 0xa benötigt, vielleicht stört das bei dir. Ansonsten müsstest du mal mit dem wireshark schauen, was genau dein pc wegschickt, und dann das in den Abfragestring packen.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Da kann so auch nichts ankommen, da Deine Startbedingung meiner Meinung nach falsch ist:

      if cycle(0,30) then Abfrage==EIN endif

      Richtig müßte es hier lauten:

      if cycle(0,30) then Abfrage=EIN endif

      Eigentlich hätte hier der Compiler meckern müssen.

      Viele Grüße

      Michael

      Kommentar


        #4
        Danke Jambala, dein Tip war GOLDRICHTIG
        EPIX
        ...und möge der Saft mit euch sein...
        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

        Kommentar


          #5
          Fragt sich nur, warum der Compiler eine Vergleichsbedingung im then Zweig akzeptiert ...

          Kommentar


            #6
            Zitat von Jambala Beitrag anzeigen
            Fragt sich nur, warum der Compiler eine Vergleichsbedingung im then Zweig akzeptiert ...
            weil das eben durchaus gewollt sein kein:
            [highlight=epc]
            x=AUS
            y=EIN
            if !y then y=(x==AUS) endif
            [/highlight]
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar

            Lädt...
            X