Posts by Kelvin

    Was hast du denn auf lange Sicht überhaupt vor oder geplant? Willst du einen frischen Pi aufsetzen und damit du keinen Monitor und Tastatur anschließen musst, es dann über dieser Web-Oberfläche machen? Willst du immer denselben Pi an andere Orte bringen und dann dort mit einem anderen Netzwerk verbinden? Planst du ein gewisses Produkt, das du verkaufen möchtest und bei dem die Kunden dann selbst das Netzwerk einrichten sollen, wie z.B. die Tesla Wallbox?


    Das ist gut möglich

    Das wird so sein, je nachdem für welches Szenario du das denn brauchst (siehe meine Fragen weiter oben).


    Aber hier [https://github.com/davesteele/…p/wiki/Installing-Comitup] scheint ja eine Anleitung vorhanden zu sein.

    Und diese Anleitung setzt voraus, dass du bereits Zugriff auf den Pi hast und dieser Pi auch mit dem Internet verbunden ist. Wenn du immer denselben Pi durch die Gegend schleppst, kannst du diesen natürlich einmal "normal" einrichten und danach immer wieder die Web-Oberfläche nehmen.

    Brauchst du das aber auf vielen Pis und mit frischem Betriebssystem, müsste man diese Funktion tatsächlich direkt ins Image bringen, damit es von vornherein mitgeliefert wird und nicht mehr nachträglich und manuell installiert werden muss.

    Ergo muss noch ein Abgleich der ID eingebaut werden, sodass auch an den richtigen Endpunkt gesendet wird.

    Haben die anderen Endpunkte ganz andere IP-Adressen, weil das unterschiedliche Server sind? Oder geht das trotzdem noch an denselben Server, aber die URL ändert sich hinten etwas? (z.B. <IP>/api/sensor/0/, <IP>/api/sensor/1/, <IP>/api/sensor/2/, ...)

    Naja, dein Endpunkt nimmt nur einen Wert für die Temperatur an und wird intern dann wohl den aktuellen Zeitstempel nehmen, wann dieser Temperaturwert empfangen wurde. Alles chronologisch zu sammeln wird dir also nichts bringen, wenn du nicht die jeweiligen Zeiten mit übertragen kannst.

    Entweder der Endpunkt wird doch noch geändert, sodass er optional auch den Zeitstempel bekommt oder du sendest doch eben immer nur den aktuellsten Wert, sobald dieser vorhanden ist. Die Zeit wird dann auch nicht exakt sein, aber es ist besser als x Werte gleichzeitig zu senden, die dann alle den gleichen Zeitstempel bekommen.


    Was ist denn eigentlich dieser Endpunkt? Ist das eine Datenbank (InfluxDB) und danach werden die Werte visualisiert (Grafana?)?

    Dann brauchst du tatsächliche diese "Brücke" zwischen dem Programm und dem Endpunkt. Öffne mal die Seite http://<host>:8888/api/sensors und schau dir die Werte an und wie sie sich verhalten. Werden da immer die zuletzt gemessenen Werte der jeweiligen Sensoren angezeigt?

    Sich etwas basteln, was die Ausgabe der Konsole in JSON verpackt und dann an die URL sendet, würde ich jetzt nicht machen. Das von dir gewählte Programm kann bereits die empfangen Daten versenden, guck mal hier: https://github.com/alex-konshi…ning-the-utility#examples

    Das wäre dann z.B.: f007th-send -C -A -t REST -s http://<IP>/endpoint, aber ich kann dir nicht sagen, wie das dann letztendlich bei dir am Endpoint ankommen wird. Wärst du da denn flexibel und könntest am Endpoint was ändern oder sollten die Daten bereits so versendet werden, wie du sie gern hättest/brauchst?


    Eine andere Möglichkeit wäre, dass du die API abfragst, die mit diesem Programm gestartet wird (https://github.com/alex-konshi…irst-start-of-the-utility). Da bekommt man dann wohl in JSON zurück, welche Sensoren gefunden wurden und wie die letzten Werte sind (hoffentlich sind das auch immer die letzten Werte). Auch hier kannst du jetzt entweder diese Antwort einfach an deine gewünschte URL weiterleiten (vielleicht ist das sogar genau das, wovon ich im ersten Abschnitt geschrieben habe) und dann dort weiter verarbeiten (erstmal den richtigen Sensor herausfiltern und dann die einzelnen Werte extrahieren) oder z.B. mit Python erst dieses JSON nehmen, dann die Daten richtig aufbereiten und danach an deine URL senden.


    Am schönsten wäre natürlich das im ersten Abschnitt, weil das Programm das sogar unterstützt und immer bei neuen Daten diese dann gleich weiterschickt. Bei der zweiten Möglichkeit musst du immer periodisch alle x Sekunden abfragen und dann mit den Daten arbeiten.

    Ich habe auch den ioBroker im Einsatz und nutze auch die VPN-Funktion der Fritzbox. Auf Windows ist das nicht ganz so schön, weil die Fritzbox noch ein altes Protokoll nutzt und es gefühlt nur dieses eine Programm gibt, das mit der Fritzbox kompatibel ist. Es gibt auch professionellere Lösungen, z.B. mit WireGuard auf dem Pi, aber die Fritzbox erfüllt ihren Zweck ganz gut und man braucht auch kein DynDNS einzurichten.


    Auf Android ist es sogar einfacher und dort braucht man keine spezielle App installieren. Unterwegs schmeiße ich kurz die VPN-Verbindung zur Fritzbox an und schon kann ich mein Smart Home mit ioBroker steuern - ist echt klasse.

    Kann ich über den Raspberry Pi 4 mit einem Kameramodul direkt auf Twitch streamen? (z.B. OBS Studio).

    Es soll nur das Videobild mit Ton übertragen werden, keine großartigen Animationen oder sonstiges.

    Ja. Hier haben auch schon ein paar Leute eigene Vogelkameras mit Streams zu Twitch und YouTube gebastelt.


    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Kannst du uns mal ein Bild davon zeigen? Das gehört jetzt schon in die Hall of Fame 😅


    Edit: Den Kühlkörper konntest du schon entfernen und es geht jetzt nur noch um die Reste des Heißklebers?

    3. https://github.com/adafruit/Adafruit_Python_DHT


    [...]


    und dann habe ich noch versucht diesen Befehl auszuführen:

    Code
    sudo pip3 install Adafruit_DHT


    Sach mal, jetzt machst du ja genau das gleiche wie vorher...


    NICHT diese Bibliothek installieren. Diese Bibliothek ist VERALTET = funktioniert NICHT mehr.


    Das wurde aber auch schon in den Beiträgen #56 und #57 gesagt und in #64 wurde nochmal die neue Version genannt.



    Benutze diesen Befehl:

    Code
    sudo pip3 install adafruit-circuitpython-dht

    Erstmal Willkommen im Forum!


    Kurz und knapp: Ist machbar. Wobei Raspberry Pis jetzt nicht die besten in Sachen Kameras sind und vor allem wenn dann auch noch so viele davon im Spiel sind.


    Es stimmt, dass die Suchfunktion hier nicht die beste ist, aber zum Thema Videoüberwachung und Haussteuerung gibt es so einiges...


    Lies dich unter diesen Stichwörtern mal weiter ein:

    Videoüberwachung -> "motionEye"
    Haussteuerung -> "ioBroker" / "Home Assistant" / "OpenHAB"

    Hab' mal meinen Node-Red Adapter im ioBroker wieder angeschmissen.

    • Links die Node für "ioBroker in" nehmen
    • Topic auf das stellen, was du haben willst (da gibt es dann diese normale Baumansicht vom ioBroker)
    • Die Node zeigt dann an, für was sie steht und kann mit Debug erstmal ausgelesen werden
    • Rechts habe ich dann in der Debug-Konsole die aktuellen Werte (in meinem Fall ist es der aktuelle Stromverbrauch)


    Ach, moment mal. Um etwas Licht ins Dunkel zu bringen: Normalerweise (!, und davon bin ich auch ausgegangen) gibt es im ioBroker einen MQTT-Adapter, der als Server dient und an den man dann seine Daten schicken kann. Das ist hier aber nicht der Fall - die Temperaturwerte werden NICHT über MQTT an ioBroker gesendet (wurde auch nie gesagt, aber da sind wir wohl alle von ausgegangen). Walter benutzt einen anderen Adapter, der die 1-Wire Sensoren direkt ausliest und die Werte dann in den ioBroker bringt.


    Warum du das jetzt über MQTT in Node-Red haben möchtest, weiß ich nicht. Ich denke, dass es auch ohne gehen sollte (habe nur einmal mit Node-Red gespielt und brauchte da kein MQTT).


    Aber wenn du es brauchst, dann so:

    • Installiere den MQTT-Adapter (https://github.com/ioBroker/ioBroker.mqtt) und stelle den Typ auf "Server/Broker"
    • Du kannst einen Benutzernamen und Passwort angeben, um es sicherer zu machen
    • Um über MQTT auf deine Datenpunkte zuzugreifen, muss sich der MQTT-Client mit dem Broker (der Adapter im ioBroker, also die IP deines Pis und Port 1883. z.B. 192.168.178.2:1883) verbinden
    • Dann abonnierst ("subscribe") du das Topic, das deine Temperaturwerte enthält. In deinem Fall müsste es sein: ds18b20/0/sensors/28-01145e937145
    • Jetzt trudeln die Werte ein, sobald sie sich ändern

    Ich benutze kein Node-Red in meinem ioBroker, aber wenn ich im JavaScript-Adapter den Wert eines Datenpunktes haben möchte, muss ich beim Abfragen des States noch explizit angeben, dass ich den Wert haben will und nicht das ganze Objekt, also getState("ds18b20.0.sensors.28-01145e937145").val.


    Dein msg.payload wird sicherlich das gesamte Objekt sein, aus dem du jetzt noch deinen gewünschten Wert extrahieren musst. Klick mal auf diesen Baustein und rechts sollte dann so eine Leiste mit dem gesamten Objekt sein, durch das du dich hindurchklicken kannst. Dann können wir genauer sagen, wie du auf die Temperatur zugreifen kannst.


    Das ist die normale Oberfläche vom ioBroker (auch "Admin-Adapter" genannt), die du in deinem Browser aufrufst, wenn du etwas am ioBroker einstellen möchtest. Wenn es diese Liste auf der linken Seite nicht gibt, kann es sein, dass du oben links auf das Symbol mit den drei waagerechten Strichen klicken musst.


    Der Rahmen ist der: Ich bin ein Student (Maschinenbau) der in Rahmenseiner Abschlussarbeit ein P-Seminar für eine Wetterstation in einer Schule aufbauen soll.

    Achsooo, na dann kann man ja doch schwerere Geschütze auffahren. Ich dachte du wärst "nur" Schüler 😅


    Quote

    auf einer freizugänglichen Webseite in Diagrammen Dargestellt werden

    Gibt es Anforderungen dafür, wie lange diese Website erreichbar sein soll? Sollen die Schülerinnen und Schüler dieses Projekt jedes Jahr (selbstständig) wiederholen können oder ist das jetzt nur einmalig und nach ein paar Monaten ist es wieder Geschichte?


    Entweder bezahlst du für ein paar Monate eine Domain inkl. Speicher, damit du dort die Sachen erstmal hostest oder du bringst ein neues Kapitel ein, in dem du zeigst, wie man sich kostenlos so einen Dienst aufsetzt, damit es immer wieder selbstständig wiederholt werden kann. Ich habe damals für Schulprojekte diesen Dienst benutzt, https://www.bplaced.net/ , und war recht zufrieden damit. Kostet nichts und würde auch für deinen Fall ausreichen. Oder du nimmst einen Webspace deiner Uni, falls euch dort so etwas zur Verfügung gestellt wird.


    Ablauf wäre dann ungefähr:

    1. Daten sammeln und speichern.
    2. Bokeh benutzen, um die Diagramme zu erstellen. Habe es selbst nie benutzt, aber man kann die Diagramme als HTML-Dateien exportieren, in denen alles nötige beigelegt ist.
    3. Generierte HTML-Seite per FTP auf den Server hochladen.
    4. Alle x Minuten wiederholen

    Dann sieht deine Lehrkräfte jetzt am Zug. Was können sie dir anbieten, um die Daten bereitzustellen und vor allem wie sie es gerne hätten? Wäre schade, wenn du alles mögliche versuchst und sie es letztendlich dann doch immer wieder abschmettern, weil ihnen etwas nicht passt und sie zeitgleich aber auch keine Vorschläge liefern.


    Habt ihr eigene "Webspaces", in denen ihr Websites erstellen und Daten abspeichern könnt? Ich kenne den Rahmen deines Projektes nicht und inwiefern es genutzt werden soll, aber kann die IT der Schule dir da helfen? Wer soll die Website sehen können? Nur wenn man im Netzwerk der Schule ist oder soll sie auch übers Internet verfügbar sein? (ggfs. mit Passwortschutz)


    Meine nächste Idee wäre, dass man irgendwo in der Schule "Grafana" (für die Visualisierung) und "InfluxDB" (Datenbank) auf einem Server hostet. Die anderen Pis könnten über einfache HTTP-Aufrufe die Daten an InfluxDB schicken, wo sie dann gespeichert werden und mit Grafana bastelst du dir unterschiedliche Graphen. Als Schüler wirst du dafür aber nicht genug Rechte haben und nicht einfach so dein eigenes Gerät in das Schulnetzwerk bringen dürfen.

    Da kann man auch Daten von mehreren Raspberrys vernetzen?

    Ja genau. Entweder schreibt jeder Pi in ein eigenes Tabellenblatt/Mappe (unten diese Reiter bei Google Sheets und Excel) oder alle schreiben in dieselbe Tabelle, aber setzen in einer zusätzlichen Spalte ihre eigene Bezeichnung.


    Beispiel 1:

    Mehrere Tabellenblätter: Pi Garten/Wohnzimmer/...

    ZeitstempelTemperatur (°C)
    ......
    ......



    Beispiel 2:

    Ein Tabellenblatt

    ZeitstempelPi/StandortTemperatur (°C)
    ...Garten...
    ...Wohnzimmer...



    Dann musst du nur noch ein Diagramm erstellen und die jeweiligen Daten(reihen) angeben, um unterschiedliche Kurven für die jeweiligen Raspberry Pis zu haben.


    Edit: Musst darauf achten, dass jeder Pi immer ein "append" macht, also selbstständig die letzte beschriebene Zeile sucht und dann den neuen Werte in die nächste leere Zeile schreibt.

    Bevor man mit Kanonen auf Spatzen schießt und eine eigene Website auf dem Pi mit eigener Domain hostet, hätte ich einen einfacheren Vorschlag, der im Rahmen eines Schulprojektes völlig ausreichend sein sollte:


    Mache dich hiermit (https://developers.google.com/sheets/api/quickstart/python) vertraut, damit du deine gemessenen Daten über's Internet in eine Google Tabelle eintragen kannst. Dort kannst du dann ganz einfach ein Diagramm aus den Werten erstellen und dieses unter "Diagramm veröffentlichen" freigeben. Am Ende hast du dann einen Link von Google zu deinem Diagramm, das von den Besuchern sogar interaktiv benutzt werden kann. Genau diesen Ansatz nutze ich, um visualisierte Daten einem Verein zur Verfügung zu stellen. Alternativ kann man das Diagramm auch in einer anderen Website einbetten.