Ankündigung

Einklappen
Keine Ankündigung bisher.

XML Abfrage per Macro... wie?

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

    #31
    Also eventuell so:
    [highlight=epc]
    // TCP Verbindung öffnen
    if (Startabfrage == EIN) then {
    fritz_name_fritzIP=resolve($fritz.box$)
    }endif
    if after(Startabfrage == EIN,600u64) then {
    connecttcp(fritz_name_fritzPort,fritz_name_fritzIP )
    } endif

    // TCP Anfrage senden
    if systemstart() then {
    stringset(fritz_name_end,0x0A0Du16,0u16);
    fritz_name_string=$GET /cgi-bin/webcm?getpage=../html/login_sid.xml HTTP/1.0$+fritz_name_end+$User-Agent: Wget/ 1.0.10$+fritz_name_end+$Accept: */*$+fritz_name_end+$Host: fritz.box$+fritz_name_end+$Connection: Keep-Alive$+fritz_name_end+fritz_name_end;
    } endif

    if (after(Startabfrage,1000u64) == EIN) then {
    sendtcparray(fritz_name_fritzPort,fritz_name_fritz IP,fritz_name_string,size(fritz_name_string))
    } endif
    [/highlight]

    [highlight=epc]
    // Abfrage von WundergroundWetter
    // @date 21.09.2012
    // @version 1
    // @author Stefanie Meier, Enertex Bayern GmbH
    //----------------------------------------------------------------------
    // Abfrage von Wunderground Wetter
    //----------------------------------------------------------------------

    :begin WundergroundWetter(Name,Key,PLZ,Land,Startabfrage)
    :info $Abfrage bei Wunderground-Weather. Das Makro generiert die Werte Wunderground_Name_Regenwahrscheinlichkeit, Wunderground_Name_Luftfeuchtigkeit, Wunderground_Name_MaxTemperatur, Wunderground_Name_MinTemperatur, Wunderground_Name_MaxWind und Wunderground_Name_Luftfeuchtigkeit als 16-BitFlie?kommazahlen. Diese können im Programm genutzt werden. Wunderground_Name_Wolken wird mit den Vorhersagen wie "Overcast" oder "Partly Cloudy" als Strings c1400 definiert. über PLZ und Land (in englischer Sprache, z.B. Germany) gibt man den gewünschten Standort der Abfrage an. Über Startabfrage kann der Prozess gestartet werden, z.B. mit htime(5,00,00) täglich um 5 Uhr morgens. Die Variable Wunderground_Name_ErrorString ist mit "fehlerfrei" vorbelegt. Bei einem ungültigem TCP-Paket (z.B. unbekannte PLZ) wird die Variable auf "No cities match" gesetzt.$\\
    $Der Name, z.B. "Daheim" oder "Erlachstrasse"$\\
    $Key, wird von Wunderground, nach Registrierung, vergeben$\\
    $Stadt, bzw. Name/Stadt der zuständigen Wetterstation\\
    $Das Land in englischer Sprache, z.B. Germany$\\
    $Initieren der Abfrage, z.B. htime(5,00,00)$
    :shortinfo $Wetterabfrage bei wunderground$

    // Variablen definieren
    Wunderground_Name_xmlText=$$
    Wunderground_Name_xmlMessage=$$
    Wunderground_Name_xmlText_Data1=$$
    Wunderground_Name_xmlText_Data2=$$
    Wunderground_Name_xmlText_Data3=$$
    Wunderground_Name_xmlCount=0
    Wunderground_Name_Port=0u16
    Wunderground_Name_IP=0u32
    Wunderground_Name_WundergroundPort = 80u16
    Wunderground_Name_WundergroundIP = 0u32
    Wunderground_Name_Luftfeuchtigkeit=0.0
    Wunderground_Name_MaxTemperatur=0.0
    Wunderground_Name_MinTemperatur=0.0
    Wunderground_Name_Wolken=$$
    Wunderground_Name_Regenwahrscheinlichkeit=0.0
    Wunderground_Name_MaxWind=$$
    Wunderground_Name_Niederschlagsmenge=0.0
    Wunderground_Name_Windrichtung=$$
    Wunderground_Name_Schneehoeheday=$$
    Wunderground_Name_Schneehoehenight=$$
    Wunderground_Name_PosStart=0u16
    Wunderground_Name_PosEnd=0u16
    Wunderground_Name_end=$$
    Wunderground_Name_string=$$
    Wunderground_Name_ErrorString=$fehlerfrei$

    // TCP Verbindung öffnen
    if (Startabfrage == EIN) then {
    Wunderground_Name_WundergroundIP=resolve($api.Wund erground.com$)
    }endif
    if after(Startabfrage == EIN,600u64) then {
    connecttcp(Wunderground_Name_WundergroundPort,Wund erground_Name_WundergroundIP)
    } endif

    // TCP Anfrage senden
    if systemstart() then {
    stringset(Wunderground_Name_end,0x0A0Du16,0u16);
    Wunderground_Name_string=$GET /api/$+$^Key^$+$/forecast/langL/q/$+$^Land^$+$/$+$^PLZ^$+$.xml HTTP/1.0$+Wunderground_Name_end+$User-Agent: Wget/ 1.0.10$+Wunderground_Name_end+$Accept: */*$+Wunderground_Name_end+$Host: api.wunderground.com$+Wunderground_Name_end+$Conne ction: Keep-Alive$+Wunderground_Name_end+Wunderground_Name_end ;
    } endif

    if (after(Startabfrage,1000u64) == EIN) then {
    sendtcparray(Wunderground_Name_WundergroundPort,Wu nderground_Name_WundergroundIP,Wunderground_Name_s tring,size(Wunderground_Name_string))
    } endif


    // Empfang vpn 2 TCP Paketen
    if event(readtcp(Wunderground_Name_Port,Wunderground_ Name_IP,Wunderground_Name_xmlMessage)) and Wunderground_Name_IP == Wunderground_Name_WundergroundIP then {
    /* die Daten sind auf zwei Pakete aufgeteilt, wegen Valitierungsschema muss 2. Paket vor erstem Paket stehen*/
    if Wunderground_Name_xmlCount==2 then {
    Wunderground_Name_xmlText_Data3=Wunderground_Name_ xmlMessage;
    Wunderground_Name_xmlCount=Wunderground_Name_xmlCo unt+1
    } endif;
    if Wunderground_Name_xmlCount==1 then {
    Wunderground_Name_xmlText_Data2=Wunderground_Name_ xmlMessage;
    Wunderground_Name_xmlCount=Wunderground_Name_xmlCo unt+1
    } endif;
    /* Mit der Paket der Kurzversion der Vorhersage anfangen*/
    if (find(Wunderground_Name_xmlMessage,$<simpleforecas t>$,0u16) < END) then {
    Wunderground_Name_xmlText_Data1=Wunderground_Name_ xmlMessage;
    Wunderground_Name_xmlCount=Wunderground_Name_xmlCo unt+1
    } endif;
    if find(Wunderground_Name_xmlMessage,$No cities match$,0u16) < END then Wunderground_Name_ErrorString=$No cities match$ endif
    } endif

    // TCP Verbindung schliessen
    if after(Startabfrage,10000u64) then {
    closetcp(Wunderground_Name_Port,Wunderground_Name_ IP)
    } endif

    // Parsen der xml Daten
    if Wunderground_Name_xmlCount==3 then {
    /* Die eigentlichen Daten passen in einen einzigen String, daher Ausschneiden des Headers */;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText_Data1,$</tz_long>$,0u16)+size($</tz_long>$);
    Wunderground_Name_xmlText=split(Wunderground_Name_ xmlText_Data1,Wunderground_Name_PosStart,END)+Wund erground_Name_xmlText_Data2;
    /* Parsen nach Max-Temperatur */;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<high>$,0u16)+size($<high>$);
    Wunderground_Name_PosStart=find(split(Wunderground _Name_xmlText,Wunderground_Name_PosStart,END),$<$, 2u16)+size($<celsius>$)+Wunderground_Name_PosStart ;
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$>$,0u 16)+Wunderground_Name_PosStart;
    Wunderground_Name_MaxTemperatur=convert(split(Wund erground_Name_xmlText,Wunderground_Name_PosStart,W underground_Name_PosEnd),0.0);
    /* Parsen nach Min-Temperatur */;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<low>$,0u16)+size($<low>$);
    Wunderground_Name_PosStart=find(split(Wunderground _Name_xmlText,Wunderground_Name_PosStart,END),$<$, 2u16)+size($<celsius>$)+Wunderground_Name_PosStart ;
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$>$,0u 16)+Wunderground_Name_PosStart;
    Wunderground_Name_MinTemperatur=convert(split(Wund erground_Name_xmlText,Wunderground_Name_PosStart,W underground_Name_PosEnd),0.0);
    /* Parsen nach Wolken*/;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<conditions>$,0u16)+size($<conditions>$);
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_Wolken=split(Wunderground_Name_x mlText,Wunderground_Name_PosStart,Wunderground_Nam e_PosEnd);
    /* Parsen nach Regenwahrscheinlichkeit*/;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<pop>$,0u16)+size($<pop>$);
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_Regenwahrscheinlichkeit=convert( split(Wunderground_Name_xmlText,Wunderground_Name_ PosStart,Wunderground_Name_PosEnd),0.0);
    /* Parsen nach Luftfeuchtigkeit */;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText_Data2,$<avehumidity>$,0u16)+size($<avehumi dity>$);
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText_Data2,Wunderground_Name_PosStart,END), $</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_Luftfeuchtigkeit=convert(split(W underground_Name_xmlText_Data2,Wunderground_Name_P osStart,Wunderground_Name_PosEnd),0.0);
    /* Parsen nach Wind*/;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<maxwind>$,0u16)+size($<maxwind>$);
    Wunderground_Name_PosStart=find(split(Wunderground _Name_xmlText,Wunderground_Name_PosStart,END),$<$, 2u16)+size($<kph>$)+Wunderground_Name_PosStart;
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_MaxWind=split(Wunderground_Name_ xmlText,Wunderground_Name_PosStart,Wunderground_Na me_PosEnd);
    /* Parsen nach Windrichtung*/;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<maxwind>$,0u16)+size($<maxwind>$);
    Wunderground_Name_PosStart=find(split(Wunderground _Name_xmlText,Wunderground_Name_PosStart,END),$<$, 4u16)+size($<dir>$)+Wunderground_Name_PosStart;
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_Windrichtung=split(Wunderground_ Name_xmlText,Wunderground_Name_PosStart,Wundergrou nd_Name_PosEnd);
    /* Parsen nach Niederschlagsmenge*/;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<qpf_allday>$,0u16)+size($<qpf_allday>$);
    Wunderground_Name_PosStart=find(split(Wunderground _Name_xmlText,Wunderground_Name_PosStart,END),$<$, 2u16)+size($<mm>$)+Wunderground_Name_PosStart;
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_Niederschlagsmenge=convert(split (Wunderground_Name_xmlText,Wunderground_Name_PosSt art,Wunderground_Name_PosEnd),0.0);
    /* Parsen nach Schneehöhe*/;
    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<snow_allday>$,0u16)+size($<snow_allday>$ );
    Wunderground_Name_PosStart=find(split(Wunderground _Name_xmlText,Wunderground_Name_PosStart,END),$<cm >$,0u16)+size($<cm>$)+Wunderground_Name_PosStart ;
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_Schneehoeheday=split(Wundergroun d_Name_xmlText, Wunderground_Name_PosStart, Wunderground_Name_PosEnd);

    Wunderground_Name_PosStart=find(Wunderground_Name_ xmlText,$<snow_night>$,0u16)+size($<snow_night>$);
    Wunderground_Name_PosStart=find(split(Wunderground _Name_xmlText,Wunderground_Name_PosStart,END),$<cm >$,0u16)+size($<cm>$)+Wunderground_Name_PosStart ;
    Wunderground_Name_PosEnd=find(split(Wunderground_N ame_xmlText,Wunderground_Name_PosStart,END),$</$,0u16)+Wunderground_Name_PosStart-1u16;
    Wunderground_Name_Schneehoehenight=split(Wundergro und_Name_xmlText, Wunderground_Name_PosStart, Wunderground_Name_PosEnd);
    Wunderground_Name_xmlCount=0
    } endif
    :end
    [/highlight]
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #32
      so ganz versteh ich den Unterschied noch nicht.. aber Bodo..
      deine Abfrage funktioniert !!!

      danke !!

      Grrrr....

      EDIT: hab grad gesehen du rufst die Seite mit /cgi-bin/web... auf... nicht mit http://fritzbox..
      vielleicht lags da dran...
      Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

      Kommentar


        #33
        Moin,

        Zitat von Brick Beitrag anzeigen
        ... beim GET String ....
        Du solltest Dir einfach mal anschauen, welche Daten lt. HTTP Protokoll zum Webserver (hier: Fritz.Box) geschickt werden müssen und welche optional sind. Du hast bei deiner GET Abfrage die "Nebensächlichkeiten" alle gelöscht. Wenn Du das mal nachliest, wird es klarer.

        Gruß,
        Bernd

        Kommentar


          #34
          Zitat von Brick Beitrag anzeigen
          EDIT: hab grad gesehen du rufst die Seite mit /cgi-bin/web... auf... nicht mit http://fritzbox..
          vielleicht lags da dran...
          Hoi

          Nein ich setze den Aufruf zusammen aus der IP plus /cgi-bin/web...
          Die IP hab' ich aus resolve($fritz.box$)
          Grüsse Bodo
          Fragen gehören ins Forum, und nicht in mein Postfach;
          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

          Kommentar


            #35
            Zitat von bmx Beitrag anzeigen
            Moin,

            Du solltest Dir einfach mal anschauen, welche Daten lt. HTTP Protokoll zum Webserver (hier: Fritz.Box) geschickt werden müssen und welche optional sind. Du hast bei deiner GET Abfrage die "Nebensächlichkeiten" alle gelöscht. Wenn Du das mal nachliest, wird es klarer.

            Gruß,
            Bernd
            wenn ich da so fit wäre, würd ich hier nicht dauernd so dämliche Fragen stellen

            Ich weiß doch das ich mich auf euch verlassen kann

            Jedenfalls danke für die Unterstützung...


            Gruß Martin
            Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

            Kommentar


              #36
              Zitat von Bodo Beitrag anzeigen
              Hoi

              Nein ich setze den Aufruf zusammen aus der IP plus /cgi-bin/web...
              Die IP hab' ich aus resolve($fritz.box$)
              is des des?
              Code:
              e_end+[COLOR=#8a0808]$Host: fritz.box$[/COLOR]+fritz_name_end+[COLOR=#8a0808]$Co[/COLOR]
              wenn ja.. glaub ich .. dämmerts langsam ..
              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

              Kommentar


                #37
                ne hier:

                ... fritz_name_fritzIP=resolve($fritz.box$)
                ... connecttcp(fritz_name_fritzPort,fritz_name_fritzIP)
                ... fritz_name_string=$GET /cgi-bin/webcm?getpage=../html/login_sid.xml ...
                ... sendtcparray(fritz_name_fritzPort,fritz_name_fritzIP,fritz_name_string,size(fritz_name_string))
                Grüsse Bodo
                Fragen gehören ins Forum, und nicht in mein Postfach;
                EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                Kommentar


                  #38
                  gut.. werd mir heut Abend mal den Link von Bernd ansehen..

                  vielleicht lichtet sich dann etwas der Nebel... scheinbar hab ich
                  noch nicht viel kappiert

                  Also.. SessionID (und Challenge) hab ich erfolgreich extrahiert...
                  jetzt bin ich dann bald mal dran, das mit den Nummern, Namen
                  usw. zu machen..
                  mal schaun, was da noch für Probleme auf mich zukommen..

                  Gruß Martin
                  Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                  Kommentar


                    #39
                    Sodala..

                    also wie erwartet, so ganz funtkioniert das noch nicht... (also eigentlich gar nicht )

                    was ich bisher habe:
                    [highlight=epc]
                    // Allgemeine Variablen definieren

                    Name^_Init = after(systemstart() == EIN, 5000u64)
                    Name^_CRLF = $$
                    Name^_GET_1 = $$
                    Name^_String = $$
                    Name^_String1 = $$
                    Name^_TCP_ConnectionState = 6u08
                    Name^_Result = $$
                    Name^_Port = 80u16
                    Name^_IP = 0u32
                    Name^_Result_Data = $$
                    Name^_Res_Port=0u16
                    Name^_Res_IP=0u32
                    Name^_SessionID = $$
                    Name^_Challenge = $$
                    Name^_PosStart = 0u16
                    Name^_PosEnd = 0u16
                    Name^_Number1= $$
                    Name^_SendString1 = AUS

                    // TCP Verbindung öffnen
                    if (Name^_Init == EIN) then {
                    Name^_IP=resolve($fritz.box$)
                    }endif

                    if after(Name^_Init == EIN,600u64) then {
                    connecttcp(Name^_Port,Name^_IP)
                    } endif

                    // TCP Anfrage senden
                    if systemstart() then {
                    stringset(Name^_CRLF,0x0A0Du16,0u16);
                    } endif

                    if (after(Name^_Init,1000u64) == EIN) then {
                    Name^_String =$GET /cgi-bin/webcm?getpage=../html/login_sid.xml&sid=0000000000000000 HTTP/1.1$+Name^_CRLF+$User-Agent: Wget/ 1.0.10$+Name^_CRLF+$Accept: text/xml$+Name^_CRLF+$Host: fritz.box:80$+Name^_CRLF+$Keep-Alive: 115$+Name^_CRLF+$Connection: Keep-Alive$+Name^_CRLF+Name^_CRLF;
                    sendtcparray(Name^_Port,Name^_IP,Name^_String,size (Name^_String));
                    } endif

                    if (after(Name^_Init,5000u64) == EIN) then {
                    Name^_String =$GET /cgi-bin/webcm?&sid=$+Name^_SessionID+$&getpage=../html/de/home/foncallsdaten.xml HTTP/1.1$+Name^_CRLF+$User-Agent: Wget/ 1.0.10$+Name^_CRLF+$Accept: */*$+Name^_CRLF+$Host: fritz.box$+Name^_CRLF+$Connection: Keep-Alive$+Name^_CRLF+Name^_CRLF;
                    sendtcparray(Name^_Port,Name^_IP,Name^_String,size (Name^_String));
                    } endif

                    if event(readtcp(Name^_Res_Port,Name^_Res_IP,Name^_Re sult_Data)) and Name^_Res_IP == Name^_IP and Name^_Res_Port == Name^_Port then {
                    Name^_Result = Name^_Result_Data;
                    } endif


                    // TCP Verbindung schliessen
                    if after(Name^_Init,30000u64) then {
                    closetcp(Name^_Port,Name^_IP);
                    Name^_Init = AUS;
                    Name^_SendString1 = AUS
                    } endif

                    // Parsen der xml Daten
                    if change(Name^_Result) then {
                    Name^_PosStart = find(Name^_Result,$<SID>$,0u16)+size($<SID>$);
                    Name^_PosEnd = find(split(Name^_Result,Name^_PosStart,END),$</$,0u16)+Name^_PosStart-1u16;
                    Name^_SessionID = split(Name^_Result,Name^_PosStart,Name^_PosEnd);
                    Name^_PosStart = find(Name^_Result,$<Challenge>$,0u16)+size($<Chall enge>$);
                    Name^_PosEnd = find(split(Name^_Result,Name^_PosStart,END),$</$,0u16)+Name^_PosStart-1u16;
                    Name^_Challenge = split(Name^_Result,Name^_PosStart,Name^_PosEnd);
                    Name^_PosStart = find(Name^_Result,$<Number>$,0u16)+size($<Number>$ );
                    Name^_PosEnd = find(split(Name^_Result,Name^_PosStart,END),$</$,0u16)+Name^_PosStart-1u16;
                    Name^_Number1 = split(Name^_Result,Name^_PosStart,Name^_PosEnd);
                    } endif
                    :end
                    [/highlight]

                    dazu hab ich gleich mal ne frage...

                    ich hab jetzt zweimal ein sendtcparray eingebaut.. einmal 1000ms nach Init, einmal 5000ms nach Init...
                    funktioniert das so, wie ich das geschrieben habe.. oder muss ich den kompletten aufbau nochmal neu schreiben..

                    im debugger seh ich zwar das der zweite String korrekt aufgebaut wird.. aber einen Response bekomm ich leider nicht..
                    die Var "Name_Result" enthält immer noch die Daten der ersten Abfrage..

                    zweites Problem.. ich bin mir nicht sicher, ob das so mit der SessionID funktioniert.. wenn ich den String aus
                    dem Debugger nehme und im Browser
                    einfüge kommt zwar die XML Seite mit den Verbindungsdaten.. aber die sind
                    interessanterweise nicht immer aktuell ...
                    ein ähnliches Problem hab ich mit meiner Smartvisu auch, dort sind die Tel-Daten
                    auch nicht immer aktuell.. bzw. sie sind nur aktuell, wenn ich vorher einmal
                    kurz die Fritzbox Seite geöffnet habe.. ich vermute das ist ein "SessionID" Problem...

                    bin mir jetzt leider irgendwie nicht sicher, wie ich da weitermachen sollen..
                    denn wenn das wirklich mit der SessionID nicht funktioniert, brauch ich mich um das Auslesen der
                    Telefonanrufe auch nicht kümmern...

                    Gruß Martin
                    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                    Kommentar


                      #40
                      Hoi

                      So wie ich das sehe, und ich hab' leider gerade keine Zeit, ist die SessionID Variable leer, wenn Du die zweite Abfrage machst.
                      Grüsse Bodo
                      Fragen gehören ins Forum, und nicht in mein Postfach;
                      EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                      Kommentar


                        #41
                        also der String wird bei der zweiten Abfrage schon richtig übergeben..
                        mit SessionID..

                        im Debugger seh ich zb. 5 sec nach dem Init:
                        Code:
                        test_String =[COLOR=#8a0808] $GET /cgi-bin/webcm?&sid=5f2345232344&[/COLOR][COLOR=#8a0808]getpage.....
                        [/COLOR]
                        heißt für mich, er hat die SessionID schon gefunden...

                        der Prorammablauf bleibt ja bei einem "after(xyz, 1000u64)" nicht stehen..
                        er führt dann die restlichen Zeilen aus und fängt wieder oben an...
                        oder hab ich da mal den Ablauf falsch verstanden ??
                        Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                        Kommentar


                          #42
                          Zitat von Bodo Beitrag anzeigen
                          .... und ich hab' leider gerade keine Zeit...
                          ... bitte nur kein Stress... so wichtig ist das "Projekt" nicht !!
                          Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                          Kommentar


                            #43
                            mein aktuelles Problem scheint die zweite Abfrage im gleichen Macro zu sein.

                            in der ersten Abfrage bekomm ich sehr schön die SessionID.. die ich in einer
                            Variablen speichere.. jetzt will ich mit dieser SessionID eine zweite Abfrage
                            starten. Leider bekomm ich das irgendwie nicht hin.
                            Wenn ich im Macro in der ersten Abfrage den String für die Telefondaten
                            angebe (mit einer gültigen SessionID) bekomm ich in der Antwort die gewünschten Daten.. also der Abfragestring scheint schon zu stimmen..

                            Der Ablauf sollte also wie folgt sein.
                            TCP Send -String für die SessionID
                            TCP Read -Result
                            Pharsen - SessionID
                            TCP Send -String für die Tel-Daten mit vorher ermittelten SessionID
                            TCP Read - Result
                            Pharsen - Telefondaten

                            Vielleicht kann mir hierzu noch einer eine kleine Hilfestellung geben..

                            Danke !!
                            Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                            Kommentar


                              #44
                              Moin Martin, Du kannst einfach mit einer Statusvariablen arbeiten, die Du je nach Fortschritt aktualisierst. Gruß, Bernd

                              Kommentar


                                #45
                                ok, hab ich jetzt so gemacht.. scheint auch jetzt zu funktionieren..

                                jetzt bräuchte ich nur noch einen String mit 65k (in der neuen Version
                                soll das ja gehen).. da die Antwort doch recht groß ist..

                                gibt es eine Möglichkeit die ersten Daten der Antwort zu speichern..
                                was ich im Handbuch gelesen hab, werden ja neuere Daten überschreiben,
                                wenn der String zu lang ist...



                                Gruß Martin
                                Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                                Kommentar

                                Lädt...
                                X