Dokumentationsfunktionen - GollmerSt/SolvisSmartHomeServer GitHub Wiki

Mit Version 1.03.00 sind die Kanalbelungen teilweise konfigurationsabhängig. Dies wurde erforderlich, da sich die Anlagen SolvisMax6 und SolvisMax7 stärker unterscheiden und bestimmte Auswertungen so bei der SolvisMax 7 fehlerhaft erfolgten.

Aus diesem Grund wird die Kanalbelegung auch nicht mehr in der Wiki aktualisiert, die der Wiki-Angaben (z.B. hier) gelten nur bis zur Version 1.02.xx.

Neben der Kanalbelegung wird in der Dokumentation auch die möglichen Screen-Ids aufgelistet, welche mit dem Server-Command SelectScreen angefahren werden können.

Erstellung einer Dokumentation

Vor der Erstellung der Dokumentation muss der Server den Learning-Vorgang vollständig abgeschlossen haben, da einige Konfigurationen aus dem GUI der SolvisControl 2 direkt ermittelt werden.

unter Linux

Die Dokumentation der Kanalbelegung erfolgt unter Linux mit Hilfe des Makefiles. Folgender Befehl ist einzugeben:

sudo make documentation

Dabei wird die Dokumentation im CSV-Format in die Datei mit dem Pfad Appendix/SolvisChannels.csv in den in base.xml definierten beschreibbaren Pfad geschrieben.

unter Windows

Die Dokumentation der Kanalbelegung erfolgt unter Windows über den Startmenüpunkt CreateCsv. Dabei wird die Dokumentation im CSV-Format in die Datei mit dem Pfad Appendix\SolvisDocumentation.csv in den in base.xml definierten beschreibbaren Pfad geschrieben.

Inhalte der Dokumentation

Die erzeugte CSV-Datei enthält drei Teile:

  1. Dokumentation der Kanäle
  2. Dokumentation der mit dem Befehl SeelctScreen auswählbaren Bildschirme
  3. Dokumentation der MQTT-Topics mit einer Kurzbeschreibung

De Verwendung des CSV-Formates ist hier aktuell noch nicht das Gelbe vom Ei, möglicherweise werde ich in Zukunft ein anderes Datei-Format verwenden. Aber einen CSV-datei ist besser als nichts.

Bedeutung der Spalten der CSV-Dokumentation der Kanäle:

Für jeden Kanal wird in die CSV-Datei eine Zeile mit folgenden Spalten geschrieben:

Spaltenname Bedeutung
Id Interne Id des Kanals, z.B. A02, S01 ...
Name Name des Kanals (auf SmartHome-Seite), z.B. A02.Pumpe_Warmwasser
Unit Einheit des Messwertes, z.B. °C
Write "true", wen der Kanal auch beschreibbar ist (z.B. bei C05.WassertemperaturSoll)
MQTT suffix Suffix des MQTT-Topics des Kanals. Er muss noch durch .data für das Lesen und .cmnd für das Schreiben ergänzt werden.
Channel type Es gibt 3 unterschiedliche Kanaltype, Measurement wird aus dem XML-String regelmäßig gelesen, Control erfordert einen Zugriff auf das Gui der SolvisControl und Calculation sind berechnete Werte, welche teilweise auch mit den Control-Werten synchronisiert werden (z.B. Brenner-Laufzeit).
Buffered Bei false werden Werteänderungen des Kanals direkt zum SmartHome-System gesendet, andernfalls gebündelt in einem bestimmten Raster (durch bufferedInterval_ms im base.xml vorgegeben).
Glitch inhibit Da berechnete Werte von mehreren Messwerten abhängig sind und eine ungünstige zeitliche Abfrage zu fehlerhafte Events führen können, wird hier die Zahl der Abfragezyklen definiert, für die das Signal stabil sein muss, ehe ein Event ausgelöst wird.
Divisor Die Solvis-Anlage liefert Messergebnisse in Form eines Integer-Wertes. Dieser Wert wird kanalabhängig durch den Divisor dividiert.
Average true: Es wird ein Mittelwert über die Messwerte gebildet, wobei größere Messwertsprünge höher gewichtet werden. Die Zahl der Werte, über die der Mittelwert gebildet wird, wird durch das Attribut defaultAverageCount in der base.xml bestimmt.
Delay after on Nach dem Einschalten der Anlage werden Messwerte des Messsensor erst um diesen Wert (in ms) verzögert erfasst. Dies erfolgt, da bestimmte Sensoren nach dem Einschalten eine größere Zeit benötigen, ehe sie stabile Werte liefern (z.B. Raumthermostat). Diese Verzögerung erfolgt nur dann, wenn in der base.xml das Attribute delayAfterSwitchingOnEnable auf true ist.
Fast Bei bestimmten Kanälen ist eine höhere Abtastrate sinnvoll. Bei diesen ist Fast auf true. Diese Abtastrate wird durch das base.xml-Attribut measurementsIntervalFast_s bestimmt.
Strategy Die verwendetete Startegie zum Auslesen/Beschreiben des Kanals. Siehe weiter unten
Optional Im Gui der Solvis-Control fehlen - je nach Konfiguration - bestimmte Einträge/Bedienungsmöglichkeiten. Für diese Kanäle ist Optional auf dem Wert true.
Increment Dieser Wert definiert die Schrittweite in dem Gui der SolvisControl im Schreibfall für den Kanal.
Least Dieser Wert definiert den Minimalwert in dem Gui der SolvisControl im Schreibfall für den Kanal.
Most Dieser Wert definiert den Maximalwert in dem Gui der SolvisControl im Schreibfall für den Kanal.
Increment change Bei bestimmten Kanälen ändert sich die Schrittweite im Gui der SolvisControl von einem bestimmten Wert an. Increment change gibt in diesen Fällen den Wert vor, an dem die Schrittweite gewechselt wird.
Changed increment Schrittweite oberhalb des durch Increment change vorgegeben Wertes im Gui der SolvisControl.
Modes Mögliche Modes des Kanals, jeweils getrennt durch "|". Zu jedem Modewert wird in Klammern die Art der Verwendung dokumentiert. Bei werden welche nur gelesen werden können (GET/subscribe), stehtdahinter "(ro)". Bei Werten, welche nur geschrieben werden könne (SET/publish), steht dahinter "(wo)". Bei denen, welche sowohl gelesen als auch geschrieben werden können, steht dort "(rw)". "subscribe" und "publish" bezieht sich auf die Seite des Smarthome-Systems.
Alias Werte für Berechnungen müssen - je nach Konfiguartion - von unterschiedlichen Kanälen gelesen werden. Die Zuordnung erfolgt dabei über einen Alias-Namen.

Spalte Strategy

Die Spalte Strategy gibt an, welche programminterne Strategie zur Auswerung und Beschreiben des Kanals notwendig ist. Folgende Strategien sind aktuell definiert:

Strategie Bedeutung
Date Interpretiert bestimmte Hex-Zeichen im XML-String der Anlage als Datum
Unsigned Interpretiert bestimmte Hex-Zeichen im XML-String der Anlage als vorzeichenlosen Wert
Signed Interpretiert bestimmte Hex-Zeichen im XML-String der Anlage als vorzeichenbehafteten Wert
Boolean Interpretiert bestimmte Hex-Zeichen im XML-String der Anlage als Boolean
RunTime Bestimmt die Laufzeit eines Gerätes (z.B. Pumpe, Brenner).
Starts Bestimmte die Zeit der Einschaltvorgänge eines Gerätes (z.B. Brenner).
BurnerStatus Bestimmt den Status des Brenners Aus, Stufe 1, Stufe 2 (bei ÖlBW).
MixerPosition0 Ermittelt, ob der Mischwer auf in der Nullstellung ist.
Read Wertet einen Integer-Wert auf dem Gui der SolvisControl per OCR aus
ReadWrite Wertet einen Integer-Wert auf dem Gui der SolvisControl per OCR aus, beim Schreiben wird der Wert über Aufwärts-/Abwärts-Butztons eingestellt.
Button Wertet den Zustand eines Buttons aus (gedrückt/nicht gedrückt). Beim Schreibvorgang wird der Button gedrückt, falls er noch nicht in dem richtigen Zustand ist (z.B. Warmwasserzirkulation-Puls).
Mode Der Mode wird grafisch ermittelt. Im Schreibvorgang wird abhängig zum einzustellenden Mode ein bestimmter Button gedrückt (z.B. Anlagenmodus).

Die Id der Kanäle

Die Id der Kanalnamen sind durch die Solvis-Anlage vorgegeben. Zusätzlich gibt es noch folgende von SolvisSmarthomeServer selber vorgegeben Ids:

Id Bedeutung
Cxx Aus dem Gui der SolvisControl ermittelte Werte. Teilweise lassen sie sich beschreiben
Xxx Aus anderen Kanälen berechnete Werte wie Laufzeiten, Mischerposition0 etc.

Bedeutung der Spalten der CSV-Dokumentation der MQTT-Topics:

Diese Dokumentation hat folgende 3 Spalten:

Spalte Bedeutung
direction Bezogen auf die Seite des SolvisSmatHomeServers. Publish bedeutet, dass der SolvisSmatHomeServers der Sender ist, bei subscribe versendet das Smarthome-System die Daten.
topic Das komplette MQTT-Topic berücksichtigt die in der base.xml definierten MQTT-Daten.
comment Eine Kurzbeschreibung des Topics.