Posts by noisefloor

    Hallo,


    das ganz ist halt alles ein bisschen vage. Also das Ziel ist schon klar - nur müsstest du dich halt mal für einen Weg entscheiden. Weil es macht von der Umsetzung halt schon einen ziemlichen Unterschied, ob Pi oder Pico und ob MIDI Interface oder nicht.


    Du könntest jetzt natürlich noch ein bisschen warten, ob jemand was fertiges hat - wobei das ja schon ein ziemliches Nischenthema ist.


    _Persönlich_, also wenn dein mein Problem wäre, würde ich den externen Switch aus deinem 1. Post ausprobieren, weil IMHO einfacher und robuster.

    Wenn du deinem Basteldrang nachgehen möchtest dann würde ich mit dem Pi und dem Midi-Interface anfangen. Am besten Anfangen, wenn was nicht funktioniert hier posten, Tipps / Rat abholen und so Schritt für Schritt entwickeln.


    Gruß, noisefloor

    Hallo,

    Quote

    Na ja, wenn jemand (Betrachter, Betrachterin, Divers, ...) mit dem ersten Plakat der Kampagne, irgendwo draußen, nicht auf der Website, mit dem Plakat mit dem Slogan "Außenwerbung trifft. Jeden." konfrontiert ist, dann sieht er die andere Plakate nicht.

    Boah, was eine krasse einseitige Sichtweise deinerseits. Kann es sein, dass du dir da gerade mal gepflegt so zurechtbiegst, damit es zu deinem Unwohlbefinden passt? Wie __blackjack__ schon sagt: du ignorierst halt komplett den Fall, dass du eines der drei Poster gesehen hättest, wo eben kein Mann zu sehen ist.


    Vorschlag: diskutier' das doch mal in einer geeigneten Telegram Gruppe aus. Gerüchteweise sind die a) wesentlich empfänglicher für so was und b) besser geeignet als das Forum hier.


    Gruß, noisefloor

    Hallo,


    1. Frage: hast du denn ein Midi-Interface an dem Raspberry? Oder willst du Midi selber "low level" für die GPIO-Pins realisieren?


    Quote

    Aber die Damen und Herren dort, haben bisher meine Nachfragen ignoriert, ob das mit dem Volca das macht, was ich möchte.

    Was IMHO auch verständlich ist, weil man dafür ja _beide_ Geräte braucht. Wie im Beschreibungstext ja auch steht hängt das auch von der MIDI Implementierung des anderen Geräts ab.


    Gruß, noisefloor

    Hallo,


    du sendet den gewünschte Befehl / Wert als Request an den Server und der reagiert entsprechend darauf. D.h. du baust die in Django die entsprechenden Route(n) und implementierst serverseitig die Logik zur Ansteuerung der Pins.


    Ob du das clientseitig über ein klassischen Formular, also einen kompletten Request-Response Zyklus für die Seite machst oder die Daten per AJAX bzw. fetch-API schickst hängt ein bisschen davon ab, was du genau vorhast.


    Vom Prinzip ist das also nichts wirklich komplexes oder kompliziertes.


    Gruß, noisefloor

    Hallo,


    da du auf einem Mikrocontroller unterwegs bist gibt es keinen `ping` Befehl, wie ihn Linux oder Windows an Bord haben. Also musst du das wohl low-level selber implementieren. Bzw. schauen, ob das schon jemand für MicroPython gemacht hat.


    Eine Suche z.B. nach "python low level ping test" liefert ein paar Treffer - wie gut die sind bzw. wie gut diese auch in MicroPython implmentierbar sind -> keine Ahnung.


    Gruß, noisefloor


    NACHTRAG: https://gist.github.com/shawww…9e33e82af6d99ec34c38195fb

    Hallo,


    beantwortet nicht so richtig die eigentlich Frage, aber egal. Wo ich drauf hinaus will: wenn du serverseitig "live" auf den Schieberegler reagieren willst (also wenn das "on change" Event des Reglers feuert und du durch das Event einen Request an den Server sendest (z.B. via fetch-API, dann solltest du jetzt mal testen, also bevor du tiefer in die Umsetzung einsteigst, ob der Server überhaupt so schnell die Requests sinnvoll verarbeiten kann. Wenn du nur die Endlagen brauchst und nichts dazwischen, dann würde ich eher einen Radiobutton oder eine Checkbox nehmen, mit der du zwischen "Endlos ja/nein" hin- und her schalten kannst.


    Gruß, noisefloor

    Hallo,


    Quote

    Webzugriff 2 Button + ein Schiebschalter.

    Schiebeschalter = ein virtueller Slider auf Webseite, richtig? Muss die Hardware auf dem ESP32 "live" auf den Slider reagieren können, z.B. um Text auf dem Display live vor- und zurück scrollen zu können?


    Gruß, noisefloor

    Hallo,


    Quote

    seit wann braucht man zum Setzen eines GPIO einen Thread???

    Nee, natürlich nicht. Es geht hier auch um's Blinken - was man halt mit Micropython selber implementieren muss. Auf dem Raspi in Kombination mit dem gpiozero Modul gibt es dafür eine Methode (die AFAIK eine Thread dafür startet :) ).
    Bei Micropython ist dafür das besagte uasyncio eine gute Wahl (ohne zusätzliche Threds), weil dass, was der TE vorhat, IO-Bound ist. Und asyncio ist ja schon eine Abstraktionsschicht auf mittlerem Level, die die low-level Implementierung darunter verbirgt.
    Man kann das sicher auch anders machen und tiefer ansetzen. Bzw. mit anderen Sprache muss man ggf. tiefer ansetzen. Aber du weißt ja, die Python Fasnboys stehen voll aus High-Level APIs und Implementierung :)


    Gruß, noisefloor

    Hallo,


    Quote

    ..., mit 3 Threads, davon 2 SUB Threads umgehen.

    Bitte nichts erfinden. Es gibt kein "sub Threads". Es gibt Threads. Punkt. Wenn ein Thread aus einem anderen Thread heraus gestartet wird ist es ein Thread. Punkt.
    Ob der ESP32 wirklich nur 2 Threads kann habe ich nicht überprüft - aber ich habe da Vertrauen in die Aussage von DeaD_EyE:)


    https://github.com/belyalov/tinyweb setzt auch auf asyncio und da ist in der Doku auch gesagt (siehe Erklärung zur `run` Methode), dass sich andere Tasks in den Eventloop von asycnio, den die run-Methode startet, ziemlich einfach einbinden lassen.


    Musst du eigentlich einen Mikrocontroller nehmen? Das Brett, was du bohren willst, ist schon ziemlich dick. Das wäre z.B. mit einem Raspi Pi Zero W um Längen einfacher.


    Gruß, noisefloor

    Hallo,


    eigentlich verwendet man die _thread Klasse nicht, die ist für den internen Gebrauch, wie durch den führenden Unterstrich gekennzeichnet. Jedenfalls in CPython. In Micropython ist die _thread Klasse als (sehr) experimentell gekennzeichnet... und wie oben schon angemerkt wurde ist die Anzahl der Threads beim ESP32 wohl limitiert, weswegen Threading nicht der Weg sein dürfte. Zumal du, wenn der ESP32 wirklich mit Micropython nur 2 Threads kann, nicht hinkommst, weil den Programm der 1. Thread ist, das Blinken der 2. - und für den Webserver bräuchtest du einen 3. Thread.


    Wenn du mehrere Sachen gleichzeitig machen willst musst du dich zwangsläufig mit nebenläufiger Programmierung beschäftigen. Also allgemein Threads, Multiprocessing oder asyncio, was sich bei Micropython dann effektiv auf asyncio beschränkt.


    Was IMHO der komplexeste Ansatz ist, weil das Programm nicht mehr linear durchläuft, was es schwieriger macht, sich das alles vorzustellen. Oder anders: asyncio ist nicht unbedingt ein Thema für Einsteiger oder fortgeschrittene Einsteiger. Was halt noch dazu kommt ist, dass man mit Micropython den Webserver selber relativ "low level" implenentieren muss, was eine zusätzlich Komplexitätsschicht einzieht.


    Das geht sicherlich alles, wenn du genug Zeit und Motivation hast, das alle zu lernen. Wobei das als 1. Kontakt mit asyncio schon ziemlich harter Stoff ist.


    Gruß, noisefloor

    Hallo,


    ja, stimmt. Die JSON-Daten haben keinen Schlüssel "ENERGY". Wenn du das `[ENERGY]` im Quelltext entfernst und aus `MQTT_FIELDS` `total`entfernst, sollte das Skript zumindest Daten für die DB liefern. In wie fern das die Daten sind, die du Speichern willst (in den JSON-Daten sind ja noch mehr Daten drin) kann ich nicht beurteilen.


    Gruß, noisefloor

    Hallo,


    Quote

    Frage: Muss Firebird als Service laufen? Das scheint beim Pi400 nicht der Fall zu sein.

    Als Service Unit: nein. Aber natürlich muss Firebird laufen, damit die DB erreichbar ist. Ob du Firebird jedes Mal von Hand startest oder dir eine Service Unit für den Start beim Systemstart (falls nicht schon vorhanden) anlegst ist deine Entscheidung.


    Quote

    192.168.2.155

    ist aber sicher die IP-Adresse der Rapsi, auf dem Firebird läuft? Und läuft Firebird auf dem Pi wirklich? Kannst du z.B. über den Befehl im Terminal ps aux rausfinden. In der Prozessliste sollte Firebird auftauchen.


    Gruß, noisefloor