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:
- Dokumentation der Kanäle
- Dokumentation der mit dem Befehl SeelctScreen auswählbaren Bildschirme
- 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. |