Kostenlose Poolsteuerung mit dem Raspberry Pi: Veröffentlichung

Du wolltest schon immer wissen, was ein Pool kostet? Hier gibts alle Infos -> Ein Überblick über alle anfallenden Kosten beim Poolbau
  • Ok,


    Dann wirds wohl keine Poolsteuerung..

    Doch ein zweiter Reifeschrank..

    Dafür reichen meine Kennnisse nicht aus..


    Ansonsten falls du ein irgendwann ein image file ziehen kannst kannst du dich ja noch mal melden.


    Falls noch we nen Touch und Sensoren braucht bitte melden.


    Gruss


    Thomas

  • Hi Tammo,


    die Poolsteuerung sieht ja sehr vielversprechend aus.

    Da ich eh noch zwei 3er Raspberries hier rumliegen habe und einen neuen Pool mit etwas mehr Technik, wollte ich mich daran versuchen.


    Leider bekomme ich das Frontend nicht ans laufen...



    Wenn ich den Testserver starten möchte, sieht es relativ vielversprechend aus, ...


    aber wenn ich http://localhost:4200 aufrufe, kommt nur die Meldung "Could not GET /" .


    Kann das an der Fehlermeldung liegen?

    Oder fällt dir sonst irgendetwas ein was mir vielleicht weiterhelfen könnte?


    Chris

  • So Chris zieh Dir mal den neuen Stand von Github, sollte behoben sein. Da gab es tatsächlich noch ein Problem mit dem Modul für das Inventar.

    Herzlichen Dank für den schnellen Fix !

    Jetzt lässt sich das Ganze auf dem PC schon mal ohne Error bauen und auch schon mit ng serve starten.

    Auf meinem Pi 3 hab ich anscheinend zu wenig RAM um das Projekt zu bauen - bricht immer mit Heap Fehler ab.

    Versuche gerade auf einem Pi 4 zu bauen und es dann auf den 3er zu kopieren.

    Melde mich wenn ich es geschafft habe...


    Hast du außer auf Github und in dem Artikel hier noch irgendwo Infos zum Setup und was die Software schon alles kann?

    Gibt noch viel für mich zu ergründen ..


    - Wie arbeiten Frontend und Backend zusammen?

    - Reicht eine leere MongoDB oder braucht es irgendwelche Vorbereitung?

    - Sind die Ein/Aus Schalter jetzt nur für den Shelly 4Pro, oder für das Vierer Relais Pad?

    - Können auch andere Sensoren außer Temperatur konfiguriert werden?

    - Sind Automatikfunktionen einstellbar, also z.B. Zeitsteuerung oder wenn Solar warm und Pool kalt Pumpe an?


    Ich bin nicht so fit im Programmieren, würde aber trotzdem gerne unterstützen um solche Features zu bauen.

  • Hallo!

    bin gerade über der Planung für einen Pool und bin so auf deine Seite gestoßen...

    Wirklich Super!

    Ich will mir jetzt mal deine Steuerung installieren und habe auch 2 PIs.

    Allerdings stelle ich mich leider zu dumm an...

    Habe schon paar Stunden investiert, aber ich bekomme weder Backend noch Frontend zum laufen...

    Hast du evtl. eine ausführliche Installationsanleitung für dummys?

    Ich denke es gibt viele Schritte bei der Installation die für einen Profi selbstverständlich sind aber da stoße ich an meine Grenzen :)


    Gruß Josef

  • Hallo Josef,


    ich hab mich anfangs auch schwer getan, aber mittlerweile läufts und ich bin gerade am Customizen für meine Geräte.


    Womit ich so meine Herausforderung hatte waren diese Punkte :


    - Richtige Version von NodeJS :

    keine Pakete des Raspberry OS installieren sondern wie in der Anleitung direkt als root folgendes ausführen :

    1. curl -sL https://deb.nodesource.com/setup_12.x | bash -
    2. apt-get install -y nodejs

    - Datenbank:

    MongoDB ist auf den normalen Rasperry Betriebssytemen zu alt (NodeJ braucht >=2.6) und die ganz neuen Versionen haben keine Installationspakete für die Architektur.

    Lösung: Ich hatte auf einem 3er Raspberry noch UbuntuMate laufen. Dort gab es aus den Paketen die Version 2.6.

    Gibt aber auch Artikel wie man neuere Versionen auf Raspberry OS bekommt.


    - DB Authentifizierung und config:

    Mit mongo lokal an der DB anmelden und DB sowie user einrichten:

    Code
    use  <DATENBANKNAME>
    db.createUser( { user: "<USERNAME>",
                     pwd: "<PASSWORD>"
                     roles: [ "readWrite"] } )

    Die Datei config/database.js wie in der Anleitung anlegen und die Variablen mit deinen gewählten Werten ersetzen.

    Code
    {MONGO_USER}:{MONGO_PASS}@{SERVER_IP:SERVER_PORT}/{AUTH_DB}
    Beispiel: <USERNAME>:<PASSWORD>@<IP_ADRESSE>:27017/<DATENBANKNAME>
              User1:Pass@127.0.0.1:27017/poolinario

    Wenn die DB nicht auf dem selber Rechner läuft geht natürlich nicht localhost(127.0.0.1) sondern die entsprechende IP des Rechners auf dem die DB läuft.

    27071 ist der Standard Port sofern dieser nicht verändert wurde.


    - Angular Build:

    Meine 3er Raspies waren mit nur 1GB Ram nicht in der Lage das Ding zu bauen.

    Lösung: Ich hatte noch einen 4er mit 4GB - da geht es ohne Probleme. Alternativ sollte auch ein Linux Rechner in der Lage sein.

    Anschließend einfach den Inhalt des dist Verzeichnis auf den Frontend Raspi kopieren und durch Webserver anzeigen lassen.


    - Backend und Frontend zusammenspiel:

    Damit alles zusammen läuft, braucht es:

    1. die MongoDB und passende config

    2. den Backend App Teil inkl. benötigter node module (npm i)

    3. laufendes Backend (z.B. node app.js)

    4. compiliertes Frontend ng build --prod inkl. Module (npm i im angular-src Verzeichnis) mit der korrekten IP für das App Backend

    (angular-src/src/app/app.module.ts

    angular-src/src/environments/environment.prod.ts)

    5. Frontend in einem Webserver starten

    z.B. nginx oder zum testen in lite-server -c <config> (sudo npm install lite-server -g)

    Beispielconfig für lite-server

    Code
    {
    "port": 8000,
    "server": { "baseDir": "./dist/fwSoftware" }
    }


    6. Webbrowser öffnen http://FRONTENDIP:8000


    Viel Erfolg!

    Chris