Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Siehe auch diese Information um Frust zu vermeidenProbleme mit Grünbeck SoftliQ Software


Autor
Logo

Status

PRERELEASE

Version0.1.7
Kompatibilität

LB 0.2.3LB 1.2.4

Downloadhttps://github.com/christianTF/LoxBerry-Plugin-Gruenbeck/archive/0.1.7.zip
Zweck Daten auslesen und schreiben bei einer Grünbeck-Enthärtungsanlage

Inhalt



Download

Alle Releases: https://github.com/christianTF/LoxBerry-Plugin-Gruenbeck/releases

LoxBerry Kompatibilität

Das Plugin verwendet LoxBerry-Funktionen, die erst ab LoxBerry V1.2.4 verfügbar sind.

Funktion des Plugins

Das Plugin empfängt HTTP-Anfragen vom Miniserver, leitet diese an eine Grünbeck-Enthärtungsanlage weiter, und sendet deren Antworten per HTTP und/oder UDP an den Miniserver.

Das Plugin führt autonom keine Aktionen durch. Nur durch HTTP-Anfragen werden Daten beantwortet. Somit ist die Steuerung, wann Daten abgerufen werden sollen, direkt im Miniserver per Logik konfigurierbar (z.B. mit einem Impulsgeber oder dergleichen).

Konfigurationsoptionen

  1. Konfiguriere die IP-Adresse der Grünbeck-Anlage
  2. Wähle den Miniserver aus, an den die Antworten per HTTP und/oder UDP gesendet werden sollen.
  3. Wähle aus:
    1. Willst du die Daten per HTTP an den Miniserver senden, oder/und
    2. Willst du die Daten per UDP an den Miniserver senden?
  4. Wenn du UDP gewählt hast, gib den UDP-Port beim Miniserver an.

Die Daten werden gespeichert, wenn du die jeweiligen Eingabefelder verlässt. Es gibt keinen Speicher-Button.

Einrichtung in der Loxone Config Software

Virtuelle Ausgänge

Du benötigst einen virtuellen Ausgang zum LoxBerry. Wenn du bereits einen virtuellen Ausgang zum LoxBerry eingerichtet hast, kannst du diesen weiterverwenden.

Adresse: http://<loxberryuser>:<loxberrypassword>@<loxberryip>

  • <loxberryuser> ist dein LoxBerry Benutzername
  • <loxberrypassword> ist dein Passwort des LoxBerrys
  • <loxberryip> ist der Hostname oder die IP-Adresse von LoxBerry. Wenn du den Port vom LoxBerry geändert hast, musst du <loxberryip>:<loxberryport> verwenden.

Virtuelle Ausgangsbefehle

Für die Abfrage benötigst du einen oder mehrere virtuelle Ausgangsbefehle.

Du kannst mit jeweils einem Ausgangsbefehl entweder einzelne Werte abfragen, oder gleich eine ganze Liste von Werten abfragen. Für die Schnittstelle von Grünbeck ist es besser, mehrere Abfragen zusammenzufassen, allerdings dürfen es nicht zu viele sein (lt. Grünbeck: Anfrage und Antwort darf nicht länger als 1000 Zeichen sein). Man kann mehrere Abfragen mit mehreren, unterschiedlichen Parametern erstellen.

Im Webinterface des Plugins kannst du Parameter auswählen - oben wird dir der virtuelle Ausgangsbefehl dafür angezeigt.

Das Prinzip einer Abfrage ist immer:

/admin/plugins/gruenbeck/request.cgi?action=GET&<Param1>&<Param2>&<Param3>& usw.

Die Parameter sind dabei aus der Grünbeck-Liste, also z.B. D_A_1_1&D_A_1_2&D_A_1_3&D_A_1_5

Zum Testen im Webbrowser kann die gesamte URL verwendet werden:

http://<loxberryuser>:<loxberrypassword>@<loxberryip>/admin/plugins/gruenbeck/request.cgi?action=GET&<Param1>&<Param2>&<Param3>& usw.

Dabei gibt es keine Antwort im Webbrowser, sondern die Werte werden per HTTP oder UDP an den Miniserver gesandt!

Grünbeck-Liste (Stand 20.07.2017) mit allen Parametern: Gruenbeck_Webserver_Dokumentation.pdf

Für HTTP-Empfang

Die Daten werden mittels der Loxone Webservices direkt an virtuelle Eingänge vom Miniserver geschrieben. Damit ist übrigens auch der Abruf von Texten möglich.

Vorteile / Nachteile:

+ Einrichtung einfacher (keine Befehlserkennungen)

+ Vermutlich weniger Ressourcenverbrauch am Miniserver (keine Auswertung von Befehlserkennungen)

- Texte (wie z.B. D_C_4_3 Startzeit Regeneration) können damit nicht sinnvoll verarbeitet werden

Einrichtung Virtuelle Eingänge

Die Daten werden mittels der Loxone Webservices direkt an virtuelle Eingänge vom Miniserver geschrieben. Damit ist übrigens auch der Abruf von Texten möglich.

  • Erstelle für jeden abgerufenen Wert einen "Virtuellen Eingang".
  • Bei der Bezeichnung verwende den Parameter von Grünbeck (z.B. D_A_1_1). Die Bezeichnung muss exakt so heißen wie bei Grünbeck.
  • Bei der Beschreibung kannst du einen sprechenden Namen für diesen Eingang eingeben. Wenn du visualisierst, wird dieser Text angezeigt.
  • "Als Digitaleingang verwenden" auf Nein.

→ Bezeichnung? Beschreibung??? Siehe "Bezeichnung" und "Beschreibung" von Objekten.

Nach dem Speichern im Miniserver sollten durch das Plugin die Virtuellen Eingänge befüllt werden. Sonst ist nichts weiter zu tun.

Sollten Texte von der Grünbeck abgefragt werden (z.B. D_C_4_2 Uhrzeit), muss stattdessen ein "Virtueller Texteingang" erstellt werden.

Für UDP-Empfang

Die Daten werden mit dieser Einstellung mittels UDP an den Miniserver übertragen und müssen dort ausgewertet werden.

Vorteile / Nachteile

+ Für jeden Wert muss ein virtueller UDP-Eingangsbefehl mit Befehlserkennung eingerichtet werden.

+ Auch Texte mit Zahlen (z.B. D_C_4_3 Startzeit Gegeneration) können - wenn auch beschwerlich - ausgewertet werden (Stunden und Minuten getrennt mit jeweils einer Befehlserkennung)

- Der Miniserver muss bei einem Eingangspaket immer alle Befehlserkennungen aller UDP-Eingangsbefehle auf eine Übereinstimmung prüfen - vermutlich höhere Last als per HTTP Webservice.

- Der Miniserver kann per UDP keine vollständigen Texte verarbeiten.

Einrichtung Virtueller UDP-Eingang

Die Daten werden per UDP an den Miniserver geschickt. Deswegen musst du einen "Virtuellen UDP Eingang" erstellen:

  • Sendeadresse: leer (oder die IP des LoxBerrys)
  • UDP Eingangsport: Jener, der im Plugin eingestellt ist.

Einrichtung Virtuelle UDP Eingang Befehle

Im virtuellen UDP-Eingang musst du Virtuelle UDP Eingang Befehle für jeden Wert erstellen.

Erzeuge dazu für jeden Wert einen Eingangsbefehl. Die Bezeichnung ist egal (nimm einen sprechenden Wert).

  • Befehlserkennung: Gruenbeck:\i<Param>=\i\v
  • Als Digitaleingang verwenden: Nein
  • Werteinterpretation mit Vorzeichen: Ja

Also zum Beispiel

Gruenbeck:\iD_A_3_5=\i\v

Werte setzen

Dafür kannst du eigene virtuelle Ausgangsbefehle im zuvor erstellten Virtuellen Ausgang erstellen.

Das Prinzip des Setzen eines Wertes ist:

/admin/plugins/gruenbeck/request.cgi?action=SET&<Param1>=<value>&<Param2>=<value>&<Param3>=<value>& usw.

Zwar unterstützt die Grünbeck nicht, mehrere Werte auf einmal zu setzen, das Plugin jedoch schon. Wahrscheinlich ist es aber sinnvoller, für jeden Wert einen einzelnen Ausgang zu erstellen.

Nach jedem Setzen eines Wertes wird automatisch auch der neue Wert abgerufen und per HTTP und/oder UDP an den Miniserver gesendet. Deswegen ist danach kein explizites Abrufen notwendig.

Zusätzliche Informationen und Spezielles

Grünbeck-"Code"

Manche Parameter erfordern, dass im Request ein Code (in der Regel 005) mitgesendet wird, um Parameter zu lesen oder zu editieren.

Dafür einfach in der Request-URL anfügen: &code=005, z.B. /admin/plugins/gruenbeck/request.cgi?action=SET&D_A_1=20&code=005

Datencache

Das Plugin nutzt eine LoxBerry-Funktion (msudp_send_mem bzw. mshttp_send_mem), die an den Miniserver gesendete Daten cached und somit ausschließlich Daten an den Miniserver sendet, die sich tatsächlich verändert haben. Das reduziert die Last am Miniserver erheblich, egal, wie viele und in welchem Intervall von der Grünbeck Daten abgerufen werden. Der Algorithmus der Funktion erkennt nach maximal 5 Minuten auch einen Miniserver-Neustart und übermittelt alle Daten neu.

Um diesen Cache temporär abzuschalten, kannst du in der URL mitgeben: &force=1. Damit werden alle gecachten Daten gelöscht und alles jeweils einmal neu übertragen. 

Das "Forcen" sollte nur zum Testen verwendet, und im Produktivbetrieb entfernt werden. Der Miniserver wird bestimmt unglücklich, wenn er immer wieder mit den gleichen Daten behelligt wird.

Base64 „verschlüsselt“

Parameter, die laut Grünbeck Base64-codiert („verschlüsselt“) sind, werden beim Lesen automatisch „entschlüsselt“, beim Setzen automatisch „verschlüsselt“. D.h. derartige Parameter können immer als „reiner Text“ gesendet werden, bzw. kommen als reiner Text beim Miniserver an.


Offene Punkte

  • Es findet keine Werteumwandlung statt. Z.B. D_H_2 (Durchfluss) liefert 102 zurück, das entspricht 1,02 m³.
  • Manche Parameter erfordern einen Code - dieser wird derzeit nicht automatisch angehängt.
  • Es gibt derzeit keine Retries, wenn Grünbeck einen Fehler zurückmeldet.
  • Das Setzen von Werten habe ich absolut nicht getestet, weil ich mir nicht getraut hab, auf Jochens Anlage was umzustellen (Zwinkern) 
  • Jemand könnte ein UDP-Eingangs-Template erstellen, das alle Grünbeck-Parameter enthält.

Mitarbeit

Wiki-Artikel: Alle Grünbeck-Benutzer möchte ich explizit dazu einladen, diesen Artikel zu verbessern, Beispiele zu ergänzen (direkt im Artikel!) und den Artikel grundsätzlich weiterzupflegen. 

Query Builder: Der Query Builder bezieht seine Vorlage aus der Datei /opt/loxberry/templates/lang/GruenbeckConfig_de.ini bzw. GruenbeckConfig_en.ini (key=Beschreibung Paare). Die Grünbeck-Liste ist dort nicht vollständig abgebildet. Wenn jemand diese Datei erweitert und mir zuschickt, lege ich die erweiterte Variante dem Plugin bei.

Fragen stellen und Fehler melden

Issues: https://github.com/christianTF/LoxBerry-Plugin-Gruenbeck/issues

Forum: https://www.loxforum.com/forum/faqs-tutorials-howto-s/102375-howto-grünbeck-wasserenthärtungsanlage-auslesen

Allgemein: Ich (Christian Fenzl) habe keine Grünbeck-Anlage. Ihr könnt mir alles erzählen (Lächeln) !
Aber nur wenn ich sinnvolles Feedback, Fehlermeldungen, Fehlverhalten usw. bekomme, kann ich das vielleicht in Sourcecode umsetzen.
Jochen (Forum: Kazumi) hat mir zum Testen einen Zugang zu seinem LoxBerry eingerichtet, mit dem ich einige Tests durchgeführt habe. Alles habe ich aber nicht durchgetestet.


Siehe auch

Grünbeck Wasserenthärtungsanlage

5 Kommentare

  1. Jo K sagt:

    super Christian, vielen Dank für die Entwicklung - es klappt alles bestens !!

  2. Sage auch Danke, werde es gleich mal installieren.

  3. Erwin Wanner sagt:

    Ich bekomme als Rückmeldung im Browser einen "Fehler 500 Internal Server Error".

    Kann das an meinem Passwort mit Sonderzeichen (Punkt) liegen?

    Mit der Lösung von Iwan Eberhart, klappt es!

    Getestet habe ich mit meinen Daten für meinen Loxberry:

    /admin/plugins/gruenbeck/request.cgi?action=GET&D_Y_1

    1. LB1.2.4 installiert?

      v0.1.5 verwendet?

      1. Erwin Wanner sagt:

        Danke Version v0.1.5 war nötig!

        siehe: <opt dataset="2/8" success="true" successmessage="GET request successful"/>

        Die virtuellen Eingänge werden nicht befüllt!

        UDP funktioniert!