Posts by Tell

    > Es passt irgendwie noch nicht so ganz, da ihr Filter1 (www.) und Filter2 miteinander mischt und dabei alle
    > Domains rausfallen, die nur einen Punkt haben.
    Stehen nur die Domains im File oder sind die in einem Text?

    Wenn es nur die Domains sind kann man die Regex von __blackjack__ anpassen:

    Code
    grep '^[^.]*\.[^.]*$' test.txt

    Mit egrep kannst du beides kombinieren:

    Code
    egrep '^(www\..*)?[^.]*\.[^.]*$' test.txt

    Probier's mal so:

    Code
    if index is not None:
        temperature = response[index]['main']['temp']
        temp_heute_ueber_10 = temperature > 10.00
        print(f"Temperatur_Heute  12.00h: {temperature}°C  Staus: {temp_heute_ueber_10}")
        logging.info(f"Temperatur_Heute  12.00h: {temperature}°C  Status: {temp_heute_ueber_10}")

    So ganz klar ist das nicht fuer mich: wie viele Digits hat die Anzeige?

    Kannst du die Anzeige abdecken oder muss sie sichtbar bleiben?

    Die Schwierigkeit dabei ist dass die Anzeige sehr wahrscheinlich multiplexed ist. Das heisst die einzelnen Segmente werden nur sehr kurz angesteuert und dein Programm muss aus dem Blinkmuster erkennen was angezeigt wird...

    Wenn die Anzeige abgedeckt werden kann dann koennte ein optischer Sensor mit den entsprechenden Detektoren machbar sein. Eventuell geht auch eine Erkennung mit einer Kamera.

    Die Signale am Print abzugreifen duerfte nicht einfach sein.

    > Ich bin schon ganz verweifelt, denn ich versuche das scheinbar unmögliche
    Es ist nicht unmoeglich, aber nicht schlau.

    Wenn du C++ wirklich beherrschst, dann schau dir mal eine Technik namens CGI (Common Gateway Interface) an. Das klappt ganz gut mit Apache, aber ist schon lange nicht mehr das was man ueblicherweise macht.

    Setz noch ein const vor die Variablen, die Version oben ist nicht sauber:

    Code
            const ms      = c.getAttribute( "data-ms" )
    		const seconds = Math.floor(ms / 1000) ;
    		const hours   = Math.floor(seconds / 3600) ;
    		const minutes = Math.floor((seconds - hours * 3600) / 60) ;
    		const sec     = seconds - hours * 3600 - minutes * 60 ;

    Testen!

    > Das mit loop.index kann ich übrigends bis jetzt gar nicht gezielt auf irgendwelchen Hilfeseiten für JS finden
    Das ist auch kein JavaScript, es gehoert zu JinJa.

    Die Dok dazu: https://jinja.palletsprojects.com/en/3.1.x/templates/#synopsis


    > Als nächsten Schritt auf der JS Seite wird dann noch sein, dass ich wie eingangs erwähnt die Sekunden aufteilen
    > möchte in Tage, Minuten, Sekunden.
    Nicht weiter schwierig, aber dann solltest du die Daten in Sekunden beim Code ablegen. Hin- und herrechnen mit diesem Format ist muehsam.

    Das JavaScript hat einen Fehler, es muesste so aussehen:

    Code
        <script>
            // Aktualisierung der verbleibenden Zeit in Echtzeit
            setInterval(function() {
                var remaining_time = document.getElementById("remaining_time");
                remaining_time.innerHTML = remaining_time.innerHTML - 1000;
            }, 1000);
        </script>

    Das zaehlt die erste Zahl herunter (bis unter 0!).

    Zusaetzlich gilt es zu beachten was noisefloor schrieb: ids muessen eindeutig sein.

    - - - - - - - -

    Bravo, das Problem ist vorbildlich dokumentiert! So liebt man es :)

    noisefloor : Das funktioniert so nicht, weil 80 ein privilegierter Port ist
    Stimmt, das hatte ich uebersehen

    > Also z.B. 8001 oder 8080 oder so.
    Du wuerdest dich wundern wie viele Leute es nicht schaffen einen Port in der URL anzugeben :-/

    Also doch einen Standard-Webserver oder deinen naechsten Vorschlag ;)

    > Oder direkt die Auswertung auch auf dem Pi laufen lassen und über eine Weboberfläche anzeigen lassen
    Ja, das ist ein ausgezeichneter Ansatz. Aber es braucht dazu einige Erfahrung mit HTML, CSS, JavaScript, JSON...

    Wie die Vorposter Im Thread schon gesagt haben: die Daten sollen vom Raspi auf den PC.


    Auf dem PC musst du gar nichts tun, Excel kann das: Daten -> Aus dem Web -> URL eingeben -> Daten werden geladen

    Auf dem Raspi braucht es dazu einen Server. Die Primitivversion geht so:

    Code
    python3 -m http.server 80

    Dieses Kommando musst du im Directory mit dem CSV absetzen und dauernd laufen lassen.


    Besser: einen richtigen Webserver wie Apache oder nginx installieren und das CSV ins Webroot-Directory schreiben.

    Noch besser: einen einfachen Webserver mit flask schreiben und das File mit der flask-App ausliefern.