Posts by oelkanne

    Im Beitrag „Kann man den Inhalt einer Python variable nach PHP übergeben?" habe ich gelernt, wie man mit Flask Daten bereitstellt.

    Nun möchte ich die sich ständig ändernden Daten auf meiner Webpage darstellen.

    Aufgrund meine bescheidenen Kenntnisse / nicht vorhanden Kenntnisse in Ajax komme ich nicht weiter.

    Hier mein Code zur Orientierung. (funktioniert nicht)

    Quelldaten stehen unter http://91.67.114.141:9000/sensors bereit.

    Kann mir jemand beim Formulieren des richtigen Syntax helfen?

    Hier mal zum reinschauen: http://91.67.114.141/page_hydraulis…ischer_plan.php

    Quote

    Versuch das mal über die Kommandozeile zu starten. Ggf mit disableten debugger.

    Super, klappt!

    Quote

    Und es ist auch ein schlechtes Vorgehen, threads einfach auf Modulebene zu starten. Mach das sauber in einer Funktion, und ruf die in main auf.

    Hm, ich bin nicht genug Pytonianer, um zu verstehen was du meinst. Mein Hauptprogramm besteht aus

    Try: hier werden all Threads gestartet und auch Flask

    Except: Keyboard Interrupts, ... abzufangen

    Finally: Um Gpios, Filehandler, ... zurückzusetzten

    Mit den Sachen ___main___ usw. kenne ich mich gar nicht aus. Ist das was mit objektorientierter Programmierung? (kenne ich nur als Schlagwort)

    Quote

    Und zu guter letzt: du machst garantiert einen Fehler, wenn du so viele threads laufen lassen willst. Maximal einer. Der muss dann ggf mehrere Aufgaben erledigen, aber ich verspreche dir, mit so vielen Threads verhedderst du dich.

    Die Treats laufen alle autark. Einzige Schnittmenge is das loggen.

    Quote

    statt das "OK" auf oberster Ebene zu nutzen solltest du threading.Event benutzen, um den Thread etwas "mitzuteilen". Der ist der besserer und sauberer Weg.

    Die OK Methode hat mich auch schon immer gestört, kannte bisher keine Alternative. Dasmit dem threading.Event schaue ich mir mal genauer an.

    In der finalen Version werden 8 Threads mit unterschiedlichen Aufgaben laufen – aber jeder Thread darf natürlich nur einmal existieren; nicht zweimal.

    Die gezeigte Version ist zu Demonstrationzwecken.

    Thread_1 startet zweimal und läuft auch zweimal. Dasselbe gilt für Thread_2

    E sieht so aus, dass der zweite Start der Threats nach der Flaskausgabe „Restarting with stat“ erfolgt.

    An die Python Gemeinde,

    Im Beitrag Kann man den Inhalt einer Python variable nach PHP übergeben? habe ich erste Schritte mit Flask gemacht. Das funktioniert auch soweit.

    Nun bei der Umsetzung des gelernten habe ich das Problem, dass meine dazu gebauten Threads zweimal gestartet werden.

    Hier ein vereinfachter Code zur Demonstration und die dazugehörige Konsolenausgabe.

    Meine Frage: Woran liegt das? – in der Hoffnung einige Codezeilen zur Lösungsfindung zu bekommen.

    Konsolenausgabe:

    Ein (sehr kleines) Stück weiter.

    Habe auf meiner Raspberry2 mit Stretch nun auch die CORS Anbindung installiert (sudo pip install -U flask-cors).

    Jetzt kommt die Anfrage von index.html bei Flask an:

    Aber auf der Webseite kommt noch nichts an.

    Fehlermeldung:

    Code
    Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf http://192.168.178.17:9000/uhrzeit. (Grund: CORS-Kopfzeile 'Access-Control-Allow-Origin' fehlt).

    Den Header einsetzeten war jedoch nicht erfolgreich (https://enable-cors.org/server_apache.html)

    Weder mit Header set Access-Control-Allow-Origin "*" noch mit konkreter url.

    Probiert habe ich es in allen Bereichen wie im obigigen link angeben - ohne Erfolg.

    Noch jemand eine Idee?

    Habe die jQuery Quelle eingefügt (veränderte index.html anbei, da ich mich nicht sicher in der Materie bewege). Jedoch keine Veränderung.

    Auch habe ich, nach Tells Hinweis auf den "Browser Debugger gegoogelt. Ich wusste bis eben nicht, dass ein solcher existiert. (so viel zu meinen Kenntnisstand :)

    Meldung aus dem Debugger: „Fehler beim Laden der folgenden Adresse: Unknown source“

    ..heißt wohl, auf <IP>:9000/uhrzeit so zuzugreifen geht nicht…

    Aber wie sonst?

    Habe es probiert, bekomme es aber nicht hin. Mit dem beiliegenden Code funktionert es nicht.

    Guten Abend,

    Die Daten per flask an einem Port bereitzustellen geht nun.

    Zu Demonstrationszwecke habe ich am oben genannten Code etwas gebastelt.

    Mit dem zusätzlichen WebServer, der nun auf Port 9000 läuft, geht das auch fein mit untiger index.html, die im Unterverzeichnis "static" abgelegt werden muss.

    Aber leider bringt mir das nichts, da meine Webseite auf Apache mit Port 80 läuft.

    Gibt es eine Möglichkeit mit meiner auf Apache / port 80 laufenden Seite die Variable "uhrzeit" die auf <IP>:9000\uhrzeit ja nun permanent vorliegt, abzufragen?

    Wie müsste die xxxx.html dafür gestrickt sein?


    der Python code:


    und die index.html im Verzeichnis "static"

    Vielen Dank für die Rückmeldungen.

    „Echtzeit“ für die Wassermengen ist in der Tat „nice to have“, da die Animationen tatsächlich schon nahezu in Echtzeit laufen durch abfrage der GPIO Status im 1s Takt.

    Anbei ein link, um zu zeigen, woran ich bastele. http://91.67.118.139/page_hydraulis…ischer_plan.php

    Schöner als Abfragen (und wirklich Echtzeit) wäre es, wenn die Daten durch Python bereitgestellt würden.

    Habe mir mal die You tube videos zu Flasks angeschaut – schon mächtig – nicht ganz so einfach – aber cool!

    Ich glaube eine Bereitstellung der Daten aus Python mit Flaks auf einen Port zB 1234 im json Format bekäme ich nun hin.

    Aber wie kann bekomme ich die Daten, die dann am Port 1234 anstehen in meine bestehende Webpage?

    Guten Abend,

    Ich betreibe 3 Impulsgeber in Wasserleitungen. Um diese Wassermengen zu bestimmen zählt mein Python Programm den lieben langen Tag die Pulse in einer Endlosschleife.

    Zurzeit schreibe ich die Wassermengen alle 5 Minuten in eine Datenbank. Diese lese ich mit PHP aus, um sie auf meiner Webpage dargezustellen.


    Nun möchte ich das Ganze aber in Echtzeit auf der Webseite darstellen, - ohne über die Datenbank zu gehen.

    Bekomme ich irgendwie die Inhalte der variablen impulse_warmwasser, impulse_solarkreis und impulse_speicher in eine variable von PHP?

    Falls ja, wie geht sowas?

    Mein Python Code:

    while OK:

    GPIO.add_event_detect(22, GPIO.FALLING, callback = Interrupt_Warmwasser, bouncetime = 1)

    GPIO.add_event_detect(16, GPIO.FALLING, callback = Interrupt_Solarkreis, bouncetime = 1)

    GPIO.add_event_detect(18, GPIO.FALLING, callback = Interrupt_Speicher , bouncetime = 1)

    ……

    def Interrupt_Warmwasser (channel):

    global impulse_warmwasser

    impulse_warmwasser+=1

    def Interrupt_Solarkreis (channel):

    global impulse_solarkreis

    impulse_solarkreis+=1

    def Interrupt_Speicher (channel):

    global impulse_speicher

    impulse_speicher+=1

    Hallo Mobby,
    Mir ist klar, dass dies keine professionelle Programmierung ist, aber den Anspruch sollte es auch niemals haben. Ich habe vor 1/2 Jahr erstmalig was von Python und PHP gehört. Umso wichtiger sind für mich Foren, in denen meine Fragen ernstgenommen werden und ich konstruktive Unterstützung erhalte.
    (Übrigens: Der Anfänger bin ich, nicht kobold254. Er ging lediglich auf meinen Kenntnistand ein und antwortete entsprechend.)

    Als Hobbyhardwarebastler ist Software für mich eine Notwendigkeit.
    Ich werde wohl nie professionell programmieren, lediglich funktionell. Aber das ist OK für mich.

    Ich bin begeisterst, dass ich 3 Vorschläge zu meinem Problem erhalten habe und möchte euch allen dafür Danken.

    Das Gesamtprojekt ist in Stufe 1, die Auswertung der Sensorergebnisse einer Solaranlage. (Steuerung ist zur Zeit diskret aufgebaut)
    In Ausbaustufe 2 soll die Raspberry dann auch die Solar / Heizungsanlage steuern.
    Habe noch zahlreiche weitere Baustellen mit Leitungslängen, Übersprechen, Prellen von Relaiskontakten, Drehzahlsteuerung, ... aber das ist eher meine Welt.

    Wer möchte kann mal einen Blick darauf werfen.
    http://rubanevkg.noip.me/index.php

    Gruß
    Oelkanne