Giter Club home page Giter Club logo

solvissmarthomeserver's Introduction

SolvisSmartHomeServer

Überblick

Dieses Programnm dient der Anbindung der SolvisMax 6 und 7 mit SolvisControl2 in Kombination der SolvisRemote an Smart-Home-Systeme wie z.B. Fhem, ioBroker, OpenHAB, Indigo.

Es eignet sich nicht für die neueren Anlagen der SolvisMax7 und SolvisBen, welche mit der neuen SolvisControl3 ausgeliefert werden. Bei diesen sollte man zur Smart-Home-System-Anbindung das Modbus-Interface nutzen.

Dieses Programm ist ein eigenständiges Java-Programm, das als Service/Task/Daemon im Hintergrund läuft. Ziel war nicht nur ein Monitoring der Anlage zu ermöglichen sondern auch die Einstellung der wichtigsten Anlageparameter wie z. B. Soll-Temperaturen, Raumabhängigkeit, Anlagemodus.

Die bisher mir bekannten Lösungen liefern nur die Messwerte/Zustände einer Solvis-Anlagen an die SmartHome-Systeme. Dabei wird ein XML-String interpretiert, der über das WebInterface der SolvisRemote abgefragt wird. Der SolvisSmartHomeServer nutzt ebenfalls diese Schnittstelle. Eine Steuerung der Anlage mit dieser Schnittstelle ist jedoch nicht möglich.

Erst bei neueren Anlagen (von der Solvis-Control-2-Zentralreglerversion MA205 an) hat die Firma Solvis die Steuermöglichkeit über das Modbus-Interface realisiert. Ältere Anlagen bleiben dabei außen vor.

Bei älteren Anlagen gibt es nur die Möglichkeit der Steuerung über die Web-Oberfläche der SolvisRemote, das jedoch auf rein grafischer Basis arbeitet (es ist eine Pixelkopie der SolvisControl2 der Anlage). Die Steuerung darüber erfolgt über Maus-Klicks auf bestimmte Koordinaten auf diesem GUI, die Rückmeldung erfolgt ebenfalls nur grafisch über das GUI.

Funktionsweise der Einstellung der Anlageparameter

Dieses Projekt nutzt diesen Weg. Bei einer Sollwert-Änderung wird mit Hilfe eines OCRs zunächst der aktuelle Wert grafisch aus der Web-Oberfläche ermittelt. Anschließend wird der Wert entsprechend der Anforderung durch entsprechende simulierte Maus-Klicks geändert. Zum Abschluss wird diese Änderung durch das OCR verifiziert.

Gui

So wird bei einer Änderung der Feineinstellung die 0 in den eckigen Klammern im oben angezeigten "Home-Screen" mittels OCR erkannt und abhängig vom einzustellenden Wert die Plus/Minus-Buttons auf der rechten Seite solange betätigt, bis der richtige Wert zwischen den eckigen Klammern erscheint. Ist der zu ändernde Wert nicht auf dem "Home-Screen", so wird automatisch der entsprechende Screen angefahren. Das erfolgt z.B. durch die Buttons auf der linken Seite.

Features

  • Auslesen der Messwerte der Sensoren

  • Einstellung der Anlagenparameter wie Temperatur-Sollwerte, Raumabhängigkeiten etc.

  • Monitoring der Solvis-Uhr mit entsprechender Nachjustierung.

  • Erkennen eines Fehlerzustandes der Anlage. Im Fehlerfall kann optional eine Mail versendet werden. Wird der Fehler als Fehlerscreen von der Anlage angezeigt, wird an die Mail die Hardcopy des Bildschirmes angehängt. Hier ein Beispiel einer solchen Fehlermeldung:

    Fehlermeldung

  • Es werden Anwender und Service-Zugriffe auf den Touchscreen der SolvisControl erkannt und nach beenden die möglicherweise veränderten Anlagenparameter wieder erneut gelesen.

  • Anbindung über MQTT, damit ist das System in SmartHome-Systeme ohne speziellen Client möglich. Voraussetzung ist nur eine MQTT-Schnittstelle(-Erweiterung) im SmartHome-System sowie ein MQTT-Broker (z.B. Mosquitto). U.U. bringt ein Smart-Home-System einen solchen Broker das selber mit.

  • Zusätzliche Möglichkeit der Anbindung über eine Client-Server-Verbindung

    • Daten zwischen Server-Client werden im JSON-Format ausgetauscht
    • Es können sich max. 50 Clients mit dem Server verbinden
  • Leichte Anpassungsmöglichkeit an vorhandene Anlage über XML-Files. Die XML Schema sind mit enthalten, so dass Anpassung mittels XML-Editor (z.B. integriert in Eclipse) stark vereinfacht wird. Ab Version 1.03.00 sind für SolvisMax 6 und 7 die laut der Anlagenschema-Dokumentation von Solvis möglichen Konfigurationen berücksichtigt.

Eine Liste der Kanäle findet sich u.a. im Kapitel MQTT-Schnittstelle bzw. kann ab Version 1.03.00 vom Programm selber passend zur Anlagenkonfiguartion generiert werden. Dies ist hier beschrieben.

Voraussetzungen

  • Solvis-Heizungsanlage (SolvisMax6/7) mit einer SolvisControl 2 und SolvisRemote. Bei einer SolvisControl 3 ist der Einsatz nicht möglich, da das Web-Interface durch das Solvis-Portal ersetzt wurde. Zur Anbindung an ein Smart-Home-System sollte man dort den Modbus verwenden.
  • PC/Raspberry o.ä. mit Linux oder Windows, mit JRE >= 1.8.
  • Ein Smart-Home-System wie FHEM, ioBroker, OpenHab o.ä. mit MQTT Schnittstelle.

Interfaces zu Smart-Home-Systemen

Die Anbindung an das SmartHome-System werden durch zwei verschiedene Interfaces ermöglicht:

  1. MQTT-Schnittstelle
  2. Eine proprietäre Server-Client-Schnittstelle. Diese Schnittstelle erfordert auf der Smart-Home-System-Seite einen speziellen Client. Ein solcher existiert bisher nur für das FHEM-SmartHome-System

Vom Funktionsumfang her gibt es zwischen beiden Interfaces keine Unterschiede. Anfangs gab es nur die proprietäre Server-Client-Schnittstelle. Um bei SmartHome-Systemen nicht auf ein spezielles Modul angewiesen zu sein, wurde die MQTT-Schnittstelle zusätzlich implementiert. Für die meisten SmartHome-System gibt es für die MQTT-Schnittstelle entsprechende Module.

Es sind für folgende SmartHome-Systeme Anpassungen vorhanden:

Smart-Home-System Beschreibung
FHEM Modul, das auf der Server-Client-Schnittstelle basiert (Teil des Progarmmpaketes).
ioBroker Objektliste mit Pairing-Script für das ioBroker-Modul MQTT Client (Wird vom Programm konfigurationsspezifisch generiert).

Weitere sind in Vorbereitung

Installation

Die genauen Installationsanweisungen enthält die unten angehängte ausführliche Dokumentation. Hier daher nur ein grober Überblick.

Das Release beinhaltet normalerweise immer 2 unterschiedliche Installationspakete:

  • Installationspaket für Linux mit einem Makefile, das der Installation dient
  • Installationspaket für Windows mit einem Installer

Vor der Ausführung der Installationspakete ist es wichtig, dass bereits Java installiert ist, da die Installation selber schon Java-Programme ausführen. Ich verwende unter Windows die Oracle-Java-Version 1.8, oder die OpenJDK ab 8, aktuell 14. Unter Linux habe ich bisher die Version ab JDK 8 verwendet, vom Funktionsumfang müsste noch die Version 7 gehen.

Der Ablauf der Installation sollte folgendermaßen ablaufen:

  1. Installation von Java
  2. Herunterladen und Auspacken des Zip-File-Release in einem Ordner
  3. Unter Windows Aufruf des Installers
  4. Kopieren des base.xml.new unter dem Namen base.xml
  5. Anpassen des base.xml (Solvis-IP, Passwörter, etc.), in einer zukünftigen Version werde ich hier einen Konfigurator noch zur Verfügung stellen
  6. Aufruf des Learning (über Startmenü unter Windows oder über das Makefile unter Linux). Ein Learning ist notwendig, da die unterschiedlichen Screens grafisch erkannt werden. Je nach eingestellter Sprache unterscheiden sich die Screens entsprechend. Auch die Erkennung der Symbole (Standby, Nacht, Tag etc.) wird hierbei vom Screen gelesen und gemerkt.
  7. Start des Servers

Die genaue Vorgehensweise muss man aus der folgenden Dokumentation entnommen werden:

Ausführliche Dokumentation

Eine umfangreiche Dokumentation der Installation, Interfaces, Arbeitsweise etc. findet sich in der Wiki.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.