Installation - GollmerSt/SolvisSmartHomeServer GitHub Wiki

Java

Der SolvisSmartHome-Server benötigt die Laufzeitumgebung von Java (JRE). Auf Windows-Systemen stehen Installtionsdateien unter folgendem Link zur Verfügung: https://www.java.com/en/download/

Unter Linux gibt es ebenfalls Oracle-JRE. Ich habe OpenJDK verwendet, es soll zwar weniger performant sein, wegen der neuen Lizenz-Politik von Oracle verwende ich OpenJDK, das wie folgt installiert werden kann (unter Raspbian Stretch, sollte bei anderen Distributionen ähnlich sein):

Mit

apt search openjdk-.*-jre*

kann man sich die aktuellen JRE-Versionen für das aktuell installierte Betriebssystem ansehen.

Die aktuell stabile Version 9 für Raspbian (hier Stretch) wird dann wie folgt installiert:

apt install openjdk-9-jre

Die installierte Version kann dann über

java -version

angezeigt werden.

Getestet wurde es auf Windows mit der Oracle-JRE-Version jre1.8.0_261, auf der Linux-Seite (Raspbian) mittels OpenJDK 8 .. 11.

SolvisSmartHome-Server Linux-Installation

Dateien des Linux-Installationspaketes

Das Installationspaket beinhaltet folgende Dateien:

Datei Bedeutung
Makefile Zur Installation
SolvisSmartHomeServer.jar Das eigentliche Programm
SolvisSmartHomeServer.pdf Ein älterer Stand dieser Dokumentation
base.xml.new Steuerdatei mit den Basis-Daten
base.xsd XML Schema hierzu
SolvisSmartHomeServer.service SystemD-Datei für die Service-Einrichtung
DebugSolvisSmartHomeServer.service SystemD-Datei für die Service-Einrichtung im Debug-Mode (Remote-Debugging)
CHANGES.txt Datei mit den Änderungen
73_SolvisClient.pm FHEM-Modul

User Kennung solvis ab V01.05.01

Bis zur Version V01.05.00 lief der SolvisSmartHomeServer unter der User-Kennung fhem. Damit auch User ohne FHEM das Makefile so verwenden können, wie es ist, läuft ab V01.05.01 der Server unter dem User solvis.

Dieser User solvis legt das Makefile bei der Installation an. Es ist ein User, für den kein Login möglich ist. Sein Home-Directory liegt unter /opt/solvis und wird ebenfalls vom Makefile angelegt.

Wie später bei den Änderungen der Anpassung der base.xml beschrieben, benötigt der SolvisSmartHomeServer ein beschreibaren Ordner. Default-mäßig ist in der base.xml seit der V01.05.01 dort der Pfad /opt/solvis definiert. Vor dieser Version war es /opt/fhem. Das war jedoch ungünstig, wenn man es auf einem System installieren wollte, wo kein FHEM vorliegt.

Wenn man das Verzeichnis /opt/solvis nutzt, erzeugt das Makefile dieses Verzeichnis (falls nicht vorhanden) und setzt die notwendigen Rechte. Wenn der Anwender ein anderes Verzeichnis wählt, muss er selber dafür sorgen, dass dieses Verzeichnis existiert und vom User solvis beschrieben werden kann entweder in dem dieser Owner dem User solvis gehört, der User solvis der Gruppe des Orners zugehörig ist oder (weniger zu empfehlen) für alle schreibberechtigt ist.

Nur der Make-Aufruf sudo make uninstallAll löscht sowohl das angelegte Verzeichnis /opt/solvis zusammen mit dem User solvis. Das erfogt nur dann, wenn im Verzeichnnis /opt/solvis und dessen Unterverzeichnisse keine zusätzlichen Dateien hinzugekommen sind, die weder vom Makefile noch vom SolvisSmartHomeServer angelegt wurden.

Anpassung der Datei base.xml

Im Paket liegt die Datei base.xml.new. Diese ist in base.xml umzubenennen und dann entsprechend anzupassen. Die Anpassungsmöglichkeiten sind auf der Seite Anpassung der base.xml beschrieben.

Installation des Servers mittels Make

Zur Installation dient das beiliegende Makefile.

Es wird wie folgt aufgerufen:

sudo make <Installationsart>

Die Aufrufmöglichkeiten werden im Anhang unter Makefile-Aufrufsarten näher aufgeführt, hier werden nur die wichtigsten genannt, welche zur Erstinstallation und später zum Update notwendig sind.

Bei der Erstinstallation ist das Makefile wie folgt starten:

sudo make install

Nur wenn der SolvisSmartHome-Server nicht auf dem gleichen System wie Fhem läuft oder ein anderes Smart-Home-System verwendet werden soll, sind die anderen Installationsarten interessant.

sudo make installSolvis

installiert nur den SolvisSmartHomeServer.

Generieren der AES-Schlüssel für das Solvis-Zugriffspasswort sowie für die Mail

Ab Version 1.00.02 sind die Passworte AES-256-Verschlüsselt in die base.xml einzutragen. Nur das Passwort der Solvis-Anlage kann – wegen der Abwärtskompatibilität - NOCH im Klartext eingetragen werden. Auf längere Sicht sollte jedoch auch bei der Solvis-Anlage auf das verschlüsselte Password übergegangen werden. Um die verschlüsselten Passworte zu erhalten, ist das Makefile wie folgt aufzurufen:

sudo make crypt

Es wird dann anschließend nach dem zu verschlüsselnden Wort gefragt. Danach erfolgt die Ausgabe des verschlüsselnden Wertes. Diesen Befehl kann man auch schon aufrufen, bevor man die base.xml fertig bearbeitet hat.

Senden einer Testmail

Um die Funktionalität der Mail zu testen, kann das Makefile wie folgt gestartet werden:

sudo make testmail

Anschließend wird mit den Daten der base.xml-Datei eine Testmail verschickt. Diese Make-Funktion arbeitet lokal in dem Verzeichnis, in dem das Makefile liegt und berücksichtigt die dort liegende base.xml.

Sollte man beim Austesten des Mail-Versands die base.xml geändert haben, ist anschließend noch ein sudo make update notwendig.

Anlernen der Grafiken (gilt nur bis Version 1.02.00)

Nach sudo make install oder sudo make installSolvis kann der Server auf dem System ausgeführt werden.

Wie hier erwähnt wird, muss als Erstes der Server die Grafiken der Solvis-Anlage lernen.

Nun kann der Learn-Modus mittels des Makefiles wie folgt gestartet werden:

sudo make learn

Nun beginnt das Lernen der Grafiken. Dieses Anlernen ist etwas kritisch. Man sollte dabei die Terminal-Ausgaben als auch den Solvis-Bildschirm im Auge behalten. Da die SolvisControl leider manchmal Touchs verschluckt, kann der Learn-Vorgang fehlerhaft sein. Ich habe sehr viel Aufwand dazu verwendet, dass dies erkannt wird und in den meisten Fällen wird auch richtig darauf reagiert und der fehlgelaufene Lern-Vorgang wird wiederholt. 100%ig ist es noch nicht, ganz selten muss man den Lernvorgang wiederholen.

Sollte er nicht durchlaufen, bitte nochmal versuchen, wenn kein prinzipielles Problem (z.B. mit der speziellen Anlagenkonfiguration) vorliegt, sollte er dann fehlerfrei durchkommen.

Zu beachten:

Während des Anlernens sollte niemand unter der Dusche stehen, da kurz die Warmwasser-Pumpe ein- /ausgeschaltet wird um die Grafik einer eingeschalteten Pumpe zu lernen (ca. 4s). Je nach Kesseltemperatur kann das zu Überraschungen führen.

Der Lernvorgang wird seit der Version 1.2.1 automatisch angestoßen, wenn er erforderlich ist. sudo make learn ist daher nur noch dann auszuführen, wenn der Server ein ungewohntes Verhalten zeigt. Das zeigt sich dadurch, dass im Log Fehlermeldungen erscheinen, dass bestimmte Fenster nicht gefunden werden konnten und es dabei zu endgültigen Abbrüchen gekommen ist. Der Anlernvorgang kann nicht 100%ig sicher sein, da die Solvis-Anlage manchmal Touchs nicht registriert, was der Anlernvorgang meist berücksichtigt. Der Anlernvorgangist ist mittlerweile so ausgereift, dass ich seit der Version 1.2.1 keine Anlern-Probleme beobachtet habe, so dass ein manuell angestoßender Anlernvorgang meistens nicht mehr notwendig ist.

Starten des Servers auf der Console

Will man die Meldungen des Servers direkt sehen, kann man den Server auch in der Console mittels folgenden Make-Aufrufs starten:

sudo make foreground

Das empfiehlt sich auch für die ersten Beobachtungen nach einer Neuinstallation oder Updates.

Ab Version 1.2.1 kann man dabei auch den Anlernvorgang verfolgen, wenn sich die Steuerdatei geändert hat. Die beim Anlernvorgang ausgewerteten Scrweenshots werden in den Ordner LearnedImages abgelegt.

Einrichten des Servers als Service

Ist der Lernvorgang erfolgreich, ist der Server als Service einzurichten. Das erfolgt mit folgendem Makefile-Aufruf:

make installService

Hierbei werden die Datei SolvisSmartHomeServer.service bzw. DebugSolvisSmartHomeServer.service in das Verzeichnis /etc/systemd/system abgelegt, anschließend der Service enabled und gestartet.

Man kann auch dem Server im Debug-Mode starten. Diese Art ermöglicht es, den Server Remote zu debuggen. Näheres im Anhang unter den Make-Aufrufen zu finden.

Der Server sollte nicht gleichzeitig im debug und normalem Mode gestartet sein. Nur der zuerst gestartete würde dann laufen.

U.a. stehen folgende Befehle zur Verfügung, hierbei ist <server> im normalen mode SolvisSmartHomeServer, im Debug-Mode DebugSolvisSmartHomeServer:

Make-Befehl Bedeutung
sudo systemctl status <server> Liefert den aktuellen Status des Servers
sudo systemctl start <server> Startet den Server
sudo systemctl stop <server> Stoppt den Service
sudo systemctl restart <server> Beendet den Server und startet ihn wieder neu
sudo systemctl disable <server> Disabled den Dienst, der Server wird nach dem nächsten Boot-Vorgang nicht mehr automatisch gestartet
sudo systemctl enable <server> Enabled den Dienst, der Server wird nach dem nächsten Boot-Vorgang wieder automatisch gestartet.

Der Server sollte nun bei jedem Bootvorgang gestartet werden.

Einrichten des Fhem-Clients unter Linux

Die Datei „73_SolvisClient.pm“ wurde durch das Makefile in das FHEM-Verzeichnis kopiert.

Läuft FHEM auf einem anderen System kann das durch

sudo make installFHEM

erfolgen.

Nach einem FHEM-Neustart kann das Modul mittels folgender Define-Anweisung in FHEM eingebunden werden:

define <Anlagen-Id wie in base.xml> SolvisClient <tcp-ip-Adresse des Servers>:10735

Meistens wird der Server auf dem System des SmartHome-Systems laufen. Dann reicht folgende Anweisung:

define <Anlagen-Id wie in base.xml> SolvisClient localhost:10735

Zum ersten Einrichten reicht das schon. Die Readings der Solvis-Anlage sollten jetzt schon erscheinen. Auch die entsprechenden Pull-Down-Menüs für die möglichen SET/GET-Befehle sollten jetzt auswählbar sein.

Die Dokumentation des FHEM-Moduls ist wie üblich über das Web-Interface von FHEM ereichtbar und ist daher nicht Bestandteil dieser Dokumentation.

Update des Servers

Solange der Server noch nicht als Service in das System eingebunden ist (mittels sudo make installService) reicht es, einfach sudo make install aufzurufen.

Ist der Service integriert, sollte folgender Make-Aufruf genutzt werden:

sudo make update

Der bewirkt, dass zuerst der Service gestoppt wird, dann die Dateien ausgetauscht werden und zum Schluss der Service wieder gestartet wird. Dabei wird auch der FHEM-Client mit aktualisiert.

Bei einem System ohne FHEM ist stattdessen folgender Make-Aufruf zu verwenden:

sudo make updateSolvis

Falls der Fhem-Client „73_SolvisClient.pm“ upgedatet worden sein sollte, sicherheitshalber Fhem (unter Fhem selber) mittels

shutdown restart

neu starten. Alternativ kann natürlich der Fhem-Service direkt unter Linux mit folgendem Befehl neu gestartet werden:

sudo systemctl restart fhem

Zu beachten:

Sollten sich die Grafik-Definitionen im neuen Programmpaket geändert haben, wird beim Starten des Servers (ab Version 1.2.1) automatisch ein Learning gestartet. Erst nach dem Learning werden die Client-/MQTT-Schnittstellen geöffnet. In diesem Fall kann es ca. 5-10 Minuten (Je nach Anlagen-Konfiguration) dauern, bis der Zugriff des Smart-Home-Systems möglich ist. Bei späteren Serverstarts erfolgt dieser Lernvorgang nicht mehr.

Erneutes Anlernen der Grafik

Sollte jemand die control.xml an seine eigenen Wünschen anpassen oder enthält das Update-Paket ein aktualisierte control.xml-Datei ist immer ein neuer Lern-Vorgang auszuführen. Der erfolgt ab Version 1.2.1 mit dem Serverstart automatisch.

Wer ihn von Hand anstoßen und beobachten will kann folgenden Make-Aufruf nutzen:

sudo make learn

Dieser Aufruf bewirkt bei einem installierten Server ein Stoppen des Servers, (nach einem Update) ein Austausch der geänderten Dateien und anschließend wird der Lernvorgang gestartet. Am Ende (bei fehlerfreiem Durchlauf) wird dann der Server wieder im Hintergrund gestartet.

Deinstallation

Das Programmpaket kann mit folgendem Make-Befehl deinstalliert werden:

sudo make uninstall

Dieser Befehl löscht die vom Makefile angelegten Dateien. Auch der Dienst wird abgemeldet.

Will man wirklich alles löschen, auch die vom SmartHomeServer angelegten Log-Dateien, Steuerfiles, Sicherungadateien sowie den angelegten User solvis mit dessen Userverzeichnis (siehe auch hier), so sollte man folgenden Make-Befehl nutzen:

sudo make uninstallAll

Veränderungen am Linux-System durch die Installation und durch das Programm

  • Die Datei 73_SolvisClient.pm wird in den Ordner /opt/fhem/FHEM kopiert
  • Es wird ein User solvis mit dem Home-Verzeichnis /opt/solvis angelegt.
  • Es wird ein Ordner /opt/solvis/SolvisSmartHomeServer angelegt
  • In diesen werden die Dateien base.xml, base.xsd und SolvisSmartHomeServer.jar kopiert und mit entsprechenden Rechten versehen
  • In den Ordner /etc/systemd/system wird die Datei SolvisSmartHomeServer.service sowie DebugSolvisSmartHomeServer.service kopiert
  • Durch den Befehl systemctl enable SolvisSmartHomeServer erstellt das System einen Link zur Datei /etc/systemd/system/SolvisSmartHomeServer.service im Ordner /etc/systemd/system/multi-user.target.wants.
  • Durch den Befehl systemctl enable DebugSolvisSmartHomeServer erstellt das System einen Link zur Datei etc/systemd/system/DebugSolvisSmartHomeServer.service im Ordner /etc/systemd/system/multi-user.target.wants

Das Programm selber legt in das Verzeichnis <writablePathLinux>/SolvisServerData folgende Dateien an (Default: /opt/solvis/SolvisServerData):

  • control.xml, control.xsd, graficData.xml, graficData.xsd, log4j2.xml, tinylog.properties, measurements.xml und measurements.xsd
  • Die Log-Dateien solvis.log, solvis-tiny.log.*, solvis-error.log
  • Zusätzlich wird in diesem Orner die Ordner LearnedImages und SolvisErrorImages vorhanden, in welche die Screenschots des Lernvorganges und Fehlerscreens der Solvis-Anlage abgelegt werden.

SolvisSmartHome-Server Windows-Installation

Dateien des Windows-Installationspaketes

Das Installationspaket beinhaltet folgende Dateien:

Datei Bedeutung
SolvisSmartHomeServer setup.exe Installationsprogramm
SolvisSmartHomeServer.pdf Ein älterer Stand dieser Dokumentation
73_SolvisClient.pm FHEM-Modul

Aufruf des Installationsprogramms

Durch Aufruf des Programmes SolvisSmartHomeServer setup.exe erfolgt die Vorinstallation des Servers. Das Installationsprogramm fragt folgendes ab:

  • Das Installationsverzeichnis (Default: C:\JavaPgms\SolvisSmartHomeServer)
  • Der Pfad im Startmenü
  • Abfrage, ob der Server mit Windows oder bei Benutzeranmeldung gestartet werden soll

Vom Installationspaket angelegte Dateien

Dabei werden folgende Dateien im dabei auszuwählenden Installationsverzeichnisses angelegt:

Datei Bedeutung
SolvisSmartHomeServer.jar Das eigentliche Programm
base.xml.new Steuerdatei mit den Basis-Daten
base.xsd XML Schema hierzu
CHANGES.txt Datei mit den Änderungen
Startup.bat Batch-Datei für die Aufrufsvarianten
Task.xml XML-Datei welche in die Aufgabenplanung importiert wird
unins000.dat Datei zur Deinstallation
unins000.exe Deinstallationsprogramm

Einträge im Startmenü

Die Installation hat noch folgende Einträge im Startmenü bereitgestellt:

Windows Menü Windows Menü

Die Einträge im Start-Menü haben folgende Bedeutung:

Eintrag Bedeutung
CreateCsv Erstellt im Userverzeichnis eine CSV-formatierte Dokumentationsdatei mit den Kanälen der aktuellen Dokumentation. Zu beachten: Vorher muss ein Learning-Vorgang fehklerfrei ausgeführt worden sein.
Crypt Aufruf zum Verschlüsseln der Passwörter
Learn Aufruf zum Anlernen der Solvis-Grafik
Send testmail Sendet eine Testmail
SolvisSmartHomeServer Manueller Start des SolvisSmartHomeServer
SolvisSmartHomeServer in DOS window Server im DOS-Fenster starten
Terminate SolvisSmartHomeServer kontrolliert beenden
Uninstall SolvisSmartHomeServer Server-Paket deinstallieren

Anpassung der Datei base.xml

Im Installationsverzeichnis liegt die Datei base.xml.new. Diese ist in base.xml umzubenennen und dann entsprechend anzupassen. Die Anpassungsmöglichkeiten sind auf der Page Anpassung der base.xml beschrieben.

Anlernen der Grafiken (gilt nur bis Version 1.02.00)

Nachdem die base.xml angepasst wurde, muss der Server die Grafiken der Solvis-Anlage anlernen, wie hier erwähnt wird. Dazu ist er erst mal mittels des Startmenü-Eintrages Learn zu starten.

Nun beginnt das Lernen der Grafiken. Dieses Anlernen ist etwas kritisch. Man sollte dabei die Terminal-Ausgaben als auch den Solvis-Bildschirm im Auge behalten. Da die SolvisControl leider manchmal Touchs verschluckt, kann der Learn-Vorgang fehlerhaft sein. Ich habe sehr viel Aufwand dazu verwendet, dass dies erkannt wird und in den meisten Fällen wird auch richtig darauf reagiert und der fehlgelaufene Lern-Vorgang wird wiederholt. 100%ig ist es noch nicht, ganz selten muss man den Lernvorgang wiederholen.

Sollte er nicht durchlaufen, bitte nochmal versuchen, wenn kein prinzipielles Problem (z.B. mit der speziellen Anlagenkonfiguration) vorliegt, sollte er dann fehlerfrei durchkommen.

Zu beachten:

Während des Anlernens sollte niemand unter der Dusche stehen, da kurz die Warmwasser-Pumpe ein- /ausgeschaltet wird um die Grafik einer eingeschalteten Pumpe zu lernen (ca. 4s). Je nach Kesseltemperatur kann das zu Überraschungen führen.

Starten des Servers im DOS-Fenster

Will man die Meldungen des Servers direkt sehen, kann man den Server auch mittels des Start-Menüs SolvisSmartHomeServer im DOS-Fenster ausführen. Dann werden mögliche Fehlermeldungen direkt angezeigt und man kann das base.xml-File entsprechend korrigieren. Evtl. kommt beim Start auch einen Meldung der Firewall. Der lokale Netztwerkzugriff muss für den SolvisSmartHomeServer erlaubt werden.

Empfehlung:

Bei einer neuen Version oder Anlagen-Konfiguration empfiehlt es sich immer erstmal diesen Weg zu gehen, da man Probleme direkt erkennen kann, ohne erst in die Logfiles zu shenen.

Anpassungen der Aufgabenplanung

Nach der Installation und falls die Checkbox selektiert wurde, dass der Server mit Windows oder mit dem Anwender-Login gestartet werden soll, ist in der Aufgabenplanung der Task SolvisSmartHomeServerTask automatisch angelegt worden. Die Start-Optionen können nachträglich über die Aufgabenplanung geändert werden.

Wichtig:

Der Task muss über die Aufgabenplanung einmal manuell gestartet werden, um die Firewall-Einstellung richtig setzen zu können.

Update des Servers

Um den Server zu aktualisieren, ist es erforderlich ihn zuerst zu beenden. Das erfolgt über das Startmenü Terminate. Anschließend reicht es das Installationsprogramm SolvisSmartHomeServer setup.exe der neuen Version aufzurufen.

Möglicherweise ist das base.xml noch an die neue Version anzupassen.

Empfehlung:

Es empfiehlt sich den Server über den Startmenüeintrag SolvisSmartHomeServer im DOS-Fenster zu starten, damit man mögliche Fehlermeldungen direkt erkennen kann und evtl. die base.xml entsprechend zu erweitertn/ändern.

Zu beachten:

Sollten sich die Grafik-Definitionen im neuen Programmpaket geändert haben, wird beim Programmsart automatisch der Lern-Vorgang gestartet. In dieser Zeit sind die MQTT- und Client-Schnittstelle noch nicht offen. Das Learning dauert ca. 5 Minuten!

Erneutes Anlernen der Grafik

Sollte jemand die control.xml an seine eigenen Wünschen anpassen oder enthält das Update-Paket ein aktualisierte control.xml-Datei ist immer ein neuer Lern-Vorgang auszuführen. Der erfolgt ab Version 1.2.1 mit dem Serverstart automatisch.

Wer ihn von Hand anstoßen und beobachten will, kann über das Menü Learn den Vorgang von Hand anstoßen. Dabei öffnet sich ein DOS-Fenster, in dem man dann die einzelenn Schritte des Vorganges sieht.

Deinstallation

Um den Server zu deinstallieren, ist es erforderlich ihn zuerst zu beenden. Das erfolgt über das Startmenü Terminate.

Das Programmpaket kann danach mit den üblichen Windows-Bordmitteln wieder deinstalliert werden. Dabei bleibt das Installationsverzeichnis bestehen, da dort noch die manuell erstellte Datei base.xml liegt. Wenn man wirklich auch später den Server nicht mehr benötigt, kann man den kompletten Installationspfad manuell löschen.

Veränderungen am Windows-System durch die Installation und durch das Programm

  • Im Installationsverzeichnis werden die Dateien base.xml, base.xsd und SolvisSmartHomeServer.jar kopiert.
  • Hat man bei der Installation angegeben, dass der Server automatisch gestartet werden soll, wurde in der Aufgabenplanung der Task SolvisSmartHomeServerTask erstellt.

Das Programm selber legt in das Verzeichnis <writablePathWindows>/SolvisServerData folgende Dateien an:

  • control.xml, control.xsd, graficData.xml, graficData.xsd, log4j2.xml, tinylog.properties, measurements.xml und measurements.xsd
  • Die Log-Dateien solvis.log, solvis-tiny.log.*, solvis-error.log
  • Zusätzlich wird in diesem Orner die Orner LearnedImages und SolvisErrorImages vorhanden, in welche die Screenschots des Lernvorganges und Fehlerscreens der Solvis-Anlage abgelegt werden.
⚠️ **GitHub.com Fallback** ⚠️