Posts by Hofei

    Anderer Vorschlag welchen man probieren könnte wäre,
    mit einem Ultraschallsensor, der die Position der Person im Flur erfasst und in Abhängigkeit der Distanz die LEDs x-y dann steuert. Bei den LEDs könnte WS2812 oder ähnliches verwenden, die lassen sich einzeln einfach Ein- Ausschalten.

    Das ist jetzt aber nur eine spontane Idee, keine Ahnung ob das so schonmal umgesetzt worden ist und ob das so dann praktisch auch funktioniert.

    Gibt es einen zu bevorzugenden Shop, der ggf. auch das Forum hier unterstützt?

    ps915
    July 7, 2014 at 10:08 PM

    Ist das noch aktuell ps915 ?

    Hallo,

    als Browser kommt bei mir Firefox zum Einsatz mit dem Add On: Vergiss Mein Nicht - Vergiss Cookies und andere Daten
    Mit diesem Add On kann man für jede Seite eine eigene Cokkie Strategie hinterlegen mit den 4 Optionen:

    • Niemals
    • Beim Start
    • Beim Verlassen
    • Instand


    Dazu klickt man einfach während man auf der entsprechenden Website ist auf das Add On Icon. Auch sieht man anhand des Add On Icons welche Einstellung man für die aktuelle Website ausgewählt hat, wie hier für das Forum Niemals:  

    Somit muss ich mich hier auch nicht jedes Mal neu anmelden und bei anderen Websites werden dennoch die Cookies gemäß den Einstellungen regelmäßig gelöscht.

    Ja, das wars auch schon zu meiner "Cokkie Strategie" :)

    Ich meinte einen neuen Beitrag erstellen

    Argangel
    August 16, 2024 at 3:38 PM

    Wie du schon sagtest, die Ausnahme ist behoben. Danke. Dafür überschlägt sich die Ausgabe jetzt mit soetwas:

    Code
    <Task pending name='Task-140' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-508' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-141' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-509' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-142' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-510' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-143' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-511' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-144' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-512' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>, <Task pending name='Task-145' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> 
    ...gekürzt, das geht ewig so weiter ...

    Kann das mit deinem Hinweis in def on_ready() zusammen hängen?

    Quote
    Code
    #
    # FIXME There is no guarantee that this is called only once, so it must be
    #       guarded against subsequent calls.  After this is moved into a class.
    #


    Denke ich fahre mit der Subprocess Variante doch gar nicht so schlecht, ich werde jetzt dort mal deine angebrachten Verbesserungsvorschläge einarbeiten und hier dann nochmals präsentieren. Bei der Kombination seh ich mich nicht in der Lage die Probleme selbst zu beheben und ich möchte ja doch die Möglichkeit behalten, Probleme und Wartungen am Skript vornehmen zu können.

    Hallo und vielen Dank für die Mühe mit den ausführlichen Verbesserungshinweisen und auch vorgelegten Code. Diesen habe ich gleich einmal gestartet, folgende Ausgabe bekomme ich bei dem Start, trotz des Tracebacks stürzt das Skript aber nicht ab. Allerdings funktioniert es auch nicht, wie es soll. Zeitpunkte, die am selben Tag aber in der Vergangenheit liegen, lösen eine Benachrichtigung in Discord aus und der gewünschte Testzeitpunkt, den ich eigentlich erwarten würde, löst keine Benachrichtigung aus. Das wird da dran liegen, dass du die Zeitmechanik und die Zeitzonen geändert hast.

    Das ich auf alle Absatzblöcke eingehe und versuche bei mir zu ändern, bzw. deine Vorlage anzupassen, dass sie meinen Wünschen entspricht, dafür fehlt mir heute die Zeit. Fußball UCL ist ja heute .... Damit werde ich dann morgen beginnen.

    Jedoch möchte ich noch gleich folgendes beantworten:

    Ja, die Zeitangaben in der Toml Datei sind UTC, da sie so auch aus der entnommenen Quelle vorlegen und dann kann ich das 1:1 übernehmen und muss das auch nicht halbjährlich ändern.

    `get_remaining_time()` wird nirgends aufgerufen. Da ist auch Code drin den es noch mal in `get_target_ts()` gibt. Wenn man die Funktion also nicht entfernt, sollte man den gemeinsamen Code in eine weitere Funktion auslagern.

    Das liegt daran, dass alles was ich in utils.py ausgelagert habe von einem weiteren unabhängigen Skript verwendet wird. Die Funktion wird also benötigt, dass ich jedoch den redundanten Codeteil auslagern kann ist ein richtiger und sinnvoller Tipp. Zudem erwähnten weiteren Skript habt ihr sogar auch schonmal Hilfestellungen gegeben, und zwar hier. Auch werden noch weitere, bisher noch nicht existierende Skripte folgen.


    Bei asyncio kommt IMHO noch dazu, dass man das auch nicht "mal einfach so" ausprobiert bzw. die "Hallo Welt" asyncio Bespiele mega-trivial sind und damit eine ziemlich große Lücke zu realen Anwendungen kommt.

    Ja genau das ist eines der Probleme, mit denen ich zu kämpfen habe

    Bei sowas seh ich den Sinn nicht und wenn ich sowas sehe:

    erkenne ich keinen Unterschied/Vorteil zu dem hier


    Zu deiner Ehrenrettung: Das Probleme hatte / habe ich auch latent

    "Witzigerweise" habe ich gestern mit Dennis89 per Privat Nachricht über dich und asyncio geschrieben, dass du wohl einer hier bist, der damit am besten umgehen kann und dass ich dich mal fragen will, ob du nicht eine kleine Erweiterung zu PyTuDe machen willst und ein deutsches Tutorial zu asyncio machen willst. Hatte aber auch im Zuge gleich erwähnt, dass ich erstmal das Kontrolllesen von PyTuDe abschließen möchte. Das wird auf alle Fälle wieder fortgesetzt, will nur erst den Discord Erinnerungsbot zuverlässig in Betrieb haben. :thumbup:

    Wenn ich aber auf unterschiedliche Beiträge der Helfer antworte macht das editieren meines Beitrags wenig Sinn. Schönen Tag noch.

    Doch das geht, man kann mehrere Zitate in einen Beitrag packen

    Kleiner Hinweis: du bist hier nicht bei Whatsapp. Wenn noch keiner geantwortet hat, kannst du deinen Beitrag ruhig editieren und neue Infos hinzufügen.

    Zitat nur zur Demonstrationszwecken, dass es geht.

    Wie das geht, wurde erstmal ausfühlrich in einem Thread gezeigt, mom ich suche .... gefunden, ab hier:

    forum-raspberrypi.de/forum/thread/?postID=588735#post588735

    Der Lesestoff beweist mir einmal mehr, dass ich viel zu wenig asyncio verstehe.

    Durch deine Antwort __blackjack__ fühle ich mich bestätigt, dass asyncio (discord.py) und sched einfach wirklich nicht gut zusammen passen und ich mit meiner gezeigten Lösung aus #2 mit subprocess gut fahre. Somit werde ich mal beginnen dem Code aus #2 den Feinschliff zu verpassen.

    Vielen Dank für eure Hilfe :thumbup:

    Teilerfolg, das Skript stürzt nicht ab, gibt jedoch dennoch gleich nach Start einer Meldung aus. Eine Nachricht an Discord kommt aber noch nicht an. Dann werde ich mal versuchen diese awaited Meldungen noch zu beheben.

    Code
    C:\Users\***\Nextcloud\P_Python\tabellenanzeige\test.py:57: RuntimeWarning: coroutine 'create_territory_capture' was never awaited
      create_territory_captures_after_start(scheduler,
    RuntimeWarning: Enable tracemalloc to get the object allocation traceback

    Nein, mir wäre jetzt aber auch die Stelle nicht bekannt, an der ich die loop bewusst schließe, sodass ich an der Stelle die loop wieder neu starten müsste. An welcher Stelle würdest du die loop neu starten? Genau in der Zeile bzw. eine zuvor wo der Fehler auftritt? Oder meinst du gar nicht das neustarten sondern viel mehr diesen Teil hier?

    Code
    import platform
    if platform.system()=='Windows':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

    Zu Problemen wird es bestimmt deswegen kommen, da discord.py mit asyncroner Programmierung arbeitet (wo ich mir immer sehr schwer tue) und sched Multi Thread tauglich ist. Aber reine Vermutung....

    Hallo,

    mir ist jetzt tatsächlich eine funktionierende Lösung eingefallen, weshalb ich meinen Eingangspost nicht editieren wollte, sondern die Lösung in einem separaten Post herzeigen möchte. Die Lösung ist zwar nicht elegant, aber sie funktioniert. Mittels subprocess starte ich beim Eintreten des Ereignisses das Discord Skript und übergebe dabei als Parameter den zu postenden Text, anschließend kann sich der Discord Bot sofort wieder beenden.

    Skript welches Dauerhaft läuft:

    und hier das Skript, welches durch subproccess aufgerufen wird

    und zur Vollständigkeit noch utils und data.toml

    Obwohl ich nun eine funktionierende Lösung habe, würde es mich dennoch interessieren, wie und ob es anders auch zu lösen ist.