SmartHome (Neuentwicklung des SHC in Java)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • SmartHome (Neuentwicklung des SHC in Java)

      Da die Frage aufkam ob ich nicht auch meine Neuentwicklung hier zuv Verwendung bereit stellen kann. Möchte ich das ganze erst einmal Vorstellen und wissen ob generell Interesse daran besteht.

      Vorwort:

      Das alte SmartHome Control (kurz SHC) hat sich nur mit dem Thema Hausautomatisierung beschäftigt. Mit der Neuentwicklung, mit dem simplen Namen SmartHome, habe ich den Funktionsumfang wesentlich weiter gefasst.
      Für mich besteht nun eine SmartHome Anwendung nicht mehr nur aus der Hausautomatisierung, sondern auch aus verschiedenen Datenbanken wie zum Beispiel einer Filme und Rezepte Datenbank. Näheres dazu in den folgenden Abschnitten.
      Die ganze Anwendung wird damit flexibler, aber auch Umfangreicher.

      Allgemeines:

      Die grundlegenden Neuerungen zum alten SHC sind vor allem, die Entwicklung in Java (statt PHP) und der Datenbankserver MongoDB (statt Redis). Zudem ist die Komplette Nutzeroberfläche responsiv. Was zur folge hat, das nur eine einzige Benutzeroberfläche für alle Geräte Typen existiert. Das vereinfacht die Entwicklung wesentlich und man arbeitet immer auf einer Oberfläche die auch immer gleich aussieht. Es wird lediglich die Anordnung von Elementen verändert und an manchen stellen Randinformationen ausgeblendet.

      Es gibt jetzt auch eine voll Automatisierte Backup Funktion, die jede Nacht ein komplettes Backup erstellt und auf Wunsch auf einen FTP Server schiebt.

      Aktuell in Arbeit ist eine Benutzerverwaltung mit Gruppenrechten und die Absicherung für einen Onlin Betrieb (SSL Verschlüsselung und sichere Authentifizierung) .

      Anwendungen im Smarthome:

      Diese Amwendungen (Apps) gibt es im neuen SmartHome:

      • Automatisierung
      • Film Datenbank
      • Rezepte Datenbank
      • EInkaufsliste
      • Kontakte Datenbank
      • Datenbank für Vertäge (in Planung)
      • Netzwerkübersicht
      • Wissen Datenbank (eine Art erweiterter Notizblock, in Planung)
      Automatisierung:

      Der Umfang der Automatisierung entspricht im wesentlichen der des alten SHC. Lediglich die Bedingungen fehlen, da ich diese selbst nie verwendet habe.
      Zusätzlich wird jetzt MQTT unterstützt (voller Umfang ist noch in Arbeit).
      Der wesentliche Fortschritt ist, das die Automatisierungsfunktionen jetzt parallel im Hintergrund laufen (im SHC noch als einzelnes lineares Script realisiert). Dadurch funktioniert das schalten von beliebig vielen Steckdosen o.ä. quasi ohne Zeitverzögerung.
      Neu ist auch die Unterstützung von Rollläden (auf MQTT Basis).

      Film Datenbank:

      Die Filmdatenbank unterscheidet zwischen Filmen, Film Boxen und Film Reihen. Dazu gibt es eine Suchfunktion und diverse Views für alle möglichen Verknüpfungen.
      Ein Dashboard sorgt für eine allgemeine Übersicht und eine Merkliste zum wieder finden von Filmen die man sich vorgemerkt hat.
      Optional gibt es eine Anbindung an die TMDB Filmdatenbank, was das Eintragen von Filmen und die Suche nach Cover Bildern vereinfacht.

      Rezepte Datenbank:

      Die Rezepte Datenbank ist ähnlich wie die Film Datenbank Strukturiert. Hier gibt es Kategorien (Hauptgang, Dessert usw.), Tags und eine Zutaten Verwaltung.

      Einkaufsliste:

      Die Einkaufsliste ist ein Notizzettel in den man über die Woche Eintragen kann was gerade alle geworden ist bzw. was einem gerade so einfällt. Vor dem Einkauf Druckt man die Liste dann einfach aus.
      Mir ging es immer so, das mir über die Woche dauernd Sachen eingefallen sind die ich mitbringen wollte. Beim schreiben des Zettels vor dem Einkaufen habe ich dann immer die hälfte wieder vergessen.

      Kontakte:

      Eine Einfache Kontakte Verwaltung mit Gruppen Funktion.

      Verträge (in Planung):

      Hier kann man später alle Laufzeitverträge eintragen. Dabei geht es vor allem um einen Überblick was wie viel kostet, wann die Laufzeit endet und wann gekündigt werden muss. Auch einer Erinnerungsfunktion ist geplant.

      Netzwerk:

      Hier kann mann eine Übersicht über die im Netzwerk befindlichen Geräte erstellen. Die Einträge können auch Gruppiert werden.
      Zusätzlich kann ich hier den Status meines Druckers und meiner Synology NAS abfragen.

      Wissen (in Planung):

      Hier steht der Funktionsumfang noch nicht ganz fest. Ziel ist es eine Datenbank zu schaffen in der ich mir Notizen und Code Schnipsen Organisieren kann. Aktuell habe ich eine Liste aus hunderten Links zu Code Schnipseln die ich immer wieder komplett durchsuchen muss um etwas bestimmtes zu finden. Das soll mit der Datenbank ein Ende haben.


      Voraussetzungen:

      • ein Rechner mit Multicoe Prozessor (möglichst 4 oder mehr Kerne)
      • 2GB Ram (besser 4 oder 8 GB, wegen Mongo DB)
      • Open JRE 11 oder höher
      • Mongo DB 4 oder neuer


      Ob das neue SmartHome auf einem Raspberry Pi läuft, weis ich nicht. Das hat für mich keine Rolle mehr gespielt. Ich habe für den Server einen eigenen Rechner angeschafft (der auch nicht viel mehr Energie als der Raspberry Pi benötigt, aber wesentlich mehr Leistung hat).

      Ausblick:

      Aktuell bin ich an einer Umfangreichen Neuasrichtung des Unterbaus dran. Dazu zählt der Einbau einer Benutzerverwaltung, der Umstieg auf eine neue Template Engine (die alte wird nicht mehr weiter Entwickelt) und der EInbau von Automatisierten Formularen und Views.
      Die Entwicklung geht auch aktuell (im Sommer) recht schleppend vorran, das wird erst im Herbst wieder fahrt aufnehmen.


      Wenn euch das neue SmartHome Interessiert, kann ich gern eine Anleitung schreiben wie man das ganze zum laufen bringt und wie die Grundlegende Bedienung funktioniert.
      Bilder
      • Screenshot_20200731_085958.png

        67,51 kB, 1.263×815, 598 mal angesehen
      • Screenshot_20200731_090014.png

        54,17 kB, 1.263×815, 577 mal angesehen
      • Screenshot_20200731_090028.png

        75,56 kB, 1.263×815, 590 mal angesehen
      • Screenshot_20200731_090049.png

        817,63 kB, 1.263×815, 588 mal angesehen
      • Screenshot_20200731_090106.png

        955,12 kB, 1.263×815, 560 mal angesehen
      • Screenshot_20200731_090123.png

        797,01 kB, 1.263×815, 571 mal angesehen
      • Screenshot_20200731_090150.png

        131,4 kB, 1.263×815, 556 mal angesehen
      • Screenshot_20200731_090215.png

        230,48 kB, 1.263×815, 558 mal angesehen
      • Screenshot_20200731_090230.png

        50,2 kB, 1.263×815, 566 mal angesehen
      • Screenshot_20200731_090304.png

        35,81 kB, 1.263×511, 581 mal angesehen
    • Absolut cool gemacht. Chapeau.

      Gerade die Rezepte-DB und Einkaufsliste finde ich interessant, denn bei uns taucht des öfteren die Frage auf "Was wollen wir essen". Und eine gemeinsame Einkaufsliste zu pflegen ist super, denn so können wir die gemeinsam ergänzen, und wer gerade Zeit hat holt die Sachen. So kann sich das nicht überscheiden und wir haben plötzlich alles doppelt (was doch öfter mal vorkommt),
      Cool wär's natürlich, ich habe es mir noch nicht angeschaut aber ich denke das wirst du wohl drin haben, wenn man die Zutagen von einem Rezept gleich auf die Einkaufsliste schieben kann.

      Wie nutzt du die Film-DB? Als reine Datenbank, ohne Zugriff auf die Filme selbst, oder ließt du Filmarchive aus? Hast du eine Anbindung an einen Mediaplayer, oder dient es nur als reine Informationsübersicht?
      Gruß Dieter
      --------------
      Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
    • Ja, man kann Rezept Zutaten gleich auf eine Einkaufsliste übertragen. Es gibt auch eine Merkliste auf die man Rezepte packen kann für die man das zeug eingekauft hat.

      Die Filmdatenbank ist momentan eine reine Datenbank, Zugriffe auf Dateien oder Player gibt es nicht.
      Lediglich eine Anbindung an The Movie DB (TMDB) gibt es, so muss man nicht alles von Hand zusammen suchen. Dafür muss man sich aber bei TMDB registrieren und einen API Key holen.