Ankündigung

Einklappen
Keine Ankündigung bisher.

Umgang mit TCP

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

    Umgang mit TCP

    Hallo zusammen,
    ich möchte von meinem EibPC (1) die Windgeschwindigkeit von einer API abfragen. Da das so direkt nicht geht, habe ich mir einen RasPi als Zwischendings eingerichtet, der dann die Daten von der API abfragt und dann per TCP an den EibPC weitergibt. Leider werde ich nur nicht so ganz schlau aus dem ganzen TCP zeug.

    Das hier ist der Code auf dem EibPC:

    Code:
    port = 9999u16;
    ip = 192.168.178.85;
    valueSpeed = 0u16;
    valueGusts = 0u16;
    pos = 0u16;
    rawSpeed = $$;
    rawGusts = $$;
    rawTCPString = $$;
    
    if(stime(1)) then {
    connecttcp(port, ip);
    sendtcp(port, ip, $get$);
    if(event(readtcp(port, ip, rawTCPString))) then {
    pos = find(rawTCPString, $:$, 0u16);
    rawSpeed = split(rawTCPString, 0u16, pos - 1u16);
    rawGusts = split(rawTCPString, pos + 1u16, size(rawTCPString) - 1u16);
    valueSpeed = convert(rawSpeed, 0u16);
    valueGusts = convert(rawGusts, 0u16);
    } endif;
    closetcp(port, ip);
    } endif;
    ​
    wie ich mir das vorstelle ist, dass der EibPC über TCP ein 'get' schickt, und der RasPi dann antwortet mit den Winddaten im Format [windSpeed:windGusts]
    Aber das klappt alles nicht so wirklich. Kann mir da einer helfen zu verstehen wie das zu lösen ist?

    #2
    Wenn du eh was außenrum gestrickt hast, mach' dir das Leben einfacher und sende die Daten zyklisch per UDP(!) direkt an den EibPC. Dann sparst du dir das Verbindungshandling und misst nur mit readudp() auswerten.

    Für ein Beispiel, wie sowas grundsätzlih mit TCP geht, schau mal in das httpget-Makro (oder so ähnlich). Du musst auf den passenden Rückgabewert von connecttcp warten, ehe du was senden kannst.
    Zuletzt geändert von foobar0815; 14.06.2025, 12:37.

    Kommentar


      #3
      Danke für die Antwort, UDP klingt nach nem guten Ansatz.

      Kommentar


        #4
        Alternativ schauen, ob die Wetterstation die Werte auch per MQTT liefert. Ich habe für meine Netatmo eine Bridge zu laufen, die die Werte auf den MQTT Broker schreibt, von wo ich sie per EibPC abfragen kann. Mangels Windmesser (der ist bei Netatmo ziemlich schlecht) nur Niederschlag und Temperaturen außen und innen.

        Kommentar


          #5
          MQTT gibt's erst für EibPC2

          Kommentar

          Lädt...
          X