mikrocontroller.net

Forum: PC-Programmierung LON Bus Windhager mitlesen/steuern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Peter M. (peter2003)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,

da ich seit einem gutem Jahr einen Heizkessel von Windhager habe
(VarioWin, UML+, WVF+ und InfoWin+), habe ich mich auch schon längere
Zeit bemüht, eine Möglichkeit zu finden, diverse Werte über den LON Bus
auszulesen (Status, Temperaturen, Pellets Verbrauch, ...).

Beim Suchen ist mir dann die Service SW von Windhager über den Weg
gelaufen.
In der beiliegenden Doku ist der verwendete USB-LON Adapter zu sehen.
Den habe ich mir besorgt, und jetzt kann ich die Anlage "auslesen" (es
werden alle vorhandenen Module gesucht/gefunden, und die NV ausgelesen),
und könnte FW Updates durchführen.
Vom VarioWin kann man auch ein paar Parameter auslesen und am PC
speichern bzw.  zurück schreiben (für Baugruppentausch).

Damit habe ich mal ein schönes (funktionierendes) Beispiel, was sich so
am LON abspielt.

Im Prinzip möchte ich auch genau so was machen, aus den Modulen diverse
NV auslesen.

Ich habe schon mit einem USB-Analyser und diversen PDF von Echelon auf
der USB Schnittstelle zwischen Treiber und LON Adapter mitgelesen, und
kann die Nachrichten einigermaßen interpretieren.

Auch habe ich versucht mit dem Echelon Paket „OpenLDV SDK“ und der darin
enthaltenen ldv32.dll (ist laut Adapterhersteller kompatibel mit der HW)
mit Visual Basic die Verbindung zu öffnen. Laut der „C“ Beispiele sollte
das ja ganz einfach sein, bekomme aber immer den Fehler „invalid
Parameter“ beim Aufruf der Open Funktion in der ldv32.dll zurück.
Ich habe schon alle möglichen Varianten der Funktionsdeklaration in VB
versucht, aber ohne Erfolg.

Ein anderer Weg wäre, die beiden DLL die mit dem Service Toll
mitgekommen sind zu verwenden. Aber dafür habe ich ja gar keine
Beschreibung. Müsste man mühsam mit einem Debugger raus finden, was da
passiert.

Wer Interesse hat an näheren Informationen, oder helfen kann, ist
herzlich willkommen.

Lg. Peter

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich bin auch schon seit einiger Zeit an einer Anbindung der Heizung an 
meine Haussteuerung interessiert. Leider ist Windhager da etwas träge.

Ich selbst habe einen Firewin mit UML und WVF (nicht die Plus-Version). 
Es gibt seit 2 Wochen eine Möglichkeit von Windhager die Heizung über 
das Smartphone zu steuern, jedoch ist der Preis für die Lösung einfach 
zu hoch, davon mal abgesehen dass die Steuerung über einen 
Windhager-Server (Cloud) läuft.

Mir wäre es deshalb auch lieber, das ganze über den LON-Bus zu steuern 
bzw. mitzulesen. Kannst du mir mal die Unterlagen zukommen lassen, die 
du dazu gefunden hast?

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
email ist:

rainer<punkt>mueller@gmx<punkt>at

Autor: Peter M. (peter2003)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Also inzwischen bin ich ja schon viel weiter, als meine letzte Nachricht 
vermuten lässt.

Ich bin zwar mit der OpenLDV Bibliothek von Echelon soweit gekommen, 
dass ich den XLON-USB Adapter (http://www.xlon.de/index.htm) öffnen 
kann, aber eine Kommunikation mit UML/WVF/VarioWIN ist mir nicht 
gelungen.
Scheinbar ist der Adapter doch nicht kompatibel, wie angegeben, und 
leider auch nicht ganz billig.

Somit habe ich dann "einfach" die Service SW von Windhager analysiert,
und mit einem VB2005 Programm nachgeahmt, mithilfe der mitgelieferten 
DLLs.

Mein Progi kann jetzt alle Komponenten (UML, WVF, Kessel) selber finden, 
die darin enthaltenen NV (Variablen) abfragen, und deren Werte auslesen.

Weiters habe ich eine Trace Funktion, wo ich zyklisch in einer Datei 
hinterlegte NV abfrage, und speichere.

Zuz. bin ich am spielen (mit dem Kessel), um die Bedeutung der einzelnen 
NV zu erforschen.
Nicht alle sind durch den Namen selbsterklärend.

Wer es mit einem anderen Adapter versuchen möchte, oder ganz ohne, der 
kann auch nähere Informationen haben, was so am Lon Bus nötig ist, um 
die Komponenten anzusprechen.

Autor: Peter M. (peter2003)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich bin jetzt einigermaßen fertig mit diesem Projekt.
Die interessantesten Parameter werden jetzt periodisch aus dem Kessel 
ausgelesen, und in eine Datei gespeichert.
Diese Datei (bzw. deren Inhalt) wird dann über eine .ASP Datei auf einem 
Webserver bereitgestellt (siege Bild), und kann mit jedem Browser 
aufgerufen werden.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
schön das sich da auch andre mit beschäftigen atte vor ca. 5 Jahren auch 
mal ein versuch gestartet scheiterte aber an den Protokollen bzw konnte 
ich den Bus nicht richtig lesen. Ich wäre für infos zu der Abrage des 
Uml sehr interessiert gern per mail.

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo  Christian (Gast),

was für Infos würdest du denn genau brauchen?
Um sie dir per Mail zu senden, musst du mir deine Adresse zukommen 
lassen.

Autor: Jürgen R. (juergenle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter M.
Ich habe auch eine Windhager-Pelletheizung. Ich bin im Moment daran den 
Datenverkehr auf dem LON Bus zu analysieren. Schwere Aufgabe !
Hast du da Unterlagen zum Telegrammaufbau, zum datenverkehr etc ?
Mfg Juergen R.

Autor: David M. (amd6409)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter M.,

ich habe einen Windhager HMX Holzvergaserkessel, also den Vorgänger der 
derzeitigen Modellpalette von Windhager.
Hast du Informationen ob deine Lösung auch bei diesem Kessel 
funktionieren würde?
Er nutzt intern auch schon LON um Zusatzmodule an den Kessel anzubinden.
Wäre sehr Interessiert den Status, Temperaturen,… auszulesen, um diese 
dann in meiner Heizungsregelung, Visu zu integrieren.

Vielen Dank!

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo David,

möglicherweise kann das original Service Tool auch mit HMX 
Holzvergaserkessel kommunizieren.
Im Unterordner wo die Symbolbilder liegen, die angezeigt werden, wenn 
eine Komponente beim einlesen der Anlage gefunden wurde, ist ein Bild 
HMX.jpg.

Allerdings sind in den Ordnern, wo die FW der einzelnen Komponenten 
liegt, die vom Service Tool aktualisiert werden können, nur BioWin, 
VarioWin und FireWin Anlagen.

Man müsste das halt testen, aber dazu braucht man den Xlon-USB Adapter.

Peter

Autor: Martin Rechberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

darf ich fragen wie du zu dem "Technikermodul" gekommen bist? Mir wurde 
gesagt, dass das nicht verkauft wird.

lg
Martin

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An Privatpersonen wird leider nicht geliefert.
Ich habe den Adapter über die Firma eines Bekannten bestellt.

Autor: Jürgen V. (jrgen_v)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher kann ich die Service SW bekommen?
Modul mit rs232 Schnittstelle ist schon da :)

: Bearbeitet durch User
Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jürgen,

wo du die SW findest, habe ich dir per Email gesendet.

Aber du wirst den oben erwähnten XLON USB Adapter brauchen, was anderes 
funktioniert mit der Service SW nicht.

Peter

Autor: Dominic M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
könntest du mir eine Mail zukommen lassen, wo ich die Software finde.

Danke und Gruss Dominic

sgtdodo81@gmail.com

Autor: Angel C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, Im trying to interact with a windhager variowin with mes module and 
fb5210 thermostat from an open domotic platform in raspberry, someone 
can confirm me what interface could communicate with the bus, im looking 
that cheapest option is u60 from échelon and appear to be compatible 
with same drivers and software than u10/u20. Could someone indicate me 
if im investigating in the correct way? Thanks!

Autor: Gerhard E (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bin soeben auf diesen Thread gestoßen.
Ich habe seit 2006 einen Vitolig 200, der eigentlich ein HMX von 
Windhager ist. Hatte auch bisher nach Vitolig gesucht, dachte nicht an 
die Suche nach HMX.
Vor drei Jahren habe ich erfolglos versucht, die Daten aus dem Kessel 
auszulesen. Dazu habe ich einen LON-Bus PCMCIA-Adapter besorgt, bin aber 
wohl an der Softwareumgebung gescheitert. Ich wusste nichts von einem 
Service-Tool.
Ich habe mir inzwischen mit einem Beckhoff-System (Analoge 
Eingangsklemmen und Ethernet-Buskoppler) beholfen und ein zweites dünnes 
Thermoelement in die Brennkammertauchhülse geschoben, ebenso im Abgas. 
Die Tank- und sonstigen Wassertemperaturen messe ich mit PT100-Fühlern. 
Dazu in Labview einen Recorder geschrieben, um den Verlauf der 
Verbrennung über der Zeit zu beobachten (ein Schritt ca. 3 sek.).
Seit 2 Jahren habe ich zusätzlich noch eine Lambda-Sonde im Abgasstrang 
installiert. Dabei habe ich feststellen müssen, dass der Kessel von Zeit 
zu Zeit in einen Zustand verfällt, der durch starken Luftmangel 
gekennzeichnet ist. Normalerweise pendelt der Kessel zwischen Lambda = 
1,05 und 1,2. Dann aber stimmt plötzlich das Luftverhältnis nicht mehr 
und es kommt zu Phasen mit Lambda kleiner 0,7, ggf. auch mit Qualmen. 
Das passiert bevorzugt bei Lastwechseln (wenn die Rücklauftemperatur 
ansteigt).

Ich würde die Sache gerne nochmal mit der Abfrage der Daten aus dem 
Kessel selbst angehen. Besteht die Möglichkeit, mir für einen erneuten 
Anlauf am LON-Bus unter die Arme zu greifen?

Grüße
Gerhard

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gerhard,

kannst du "unter die Arme zu greifen" näher erläutern?

Die Service SW dient ja "nur" zum aktualisieren der FW der diversen 
Teile.
Im Verzeichnis der FW sind folgende Komponenten zu sehen:

AB-Modul
BioWIN
BioWIN2
BioWINXL
B-PLM +
FireWIN
InfoWIN
InfoWIN BW
InfoWIN FW
InfoWIN SW
JetWIN
KAS +
LogWIN
LWP
PMX
SilvaWIN
SOFU
UML +
VarioWIN
WVF +
ZSP-O2

Da ist kein HMX dabei.

Das bedeutet nicht, dass man mit dem XLON-USB (den die Service SW 
verwendet) nicht auch mit einem HMX kommunizieren kann.
Aber für die Kommunikation werden diverse Informationen gebraucht.
Die kann man für die Komponenten, die in der Service SW vorhanden sind, 
aus deren FW Ordner gewinnen.
Da dort kein HMX vorhanden ist, ist das nicht so einfach.

Und nur zum testen ist der XLON-USB etwas teuer.

Was für einen LON-Bus PCMCIA-Adapter hast du denn?

Peter

Autor: Gerhard E (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

vielen Dank für die schnelle Antwort.
Da die letzten Aktivitäten mit dem LON-Bus bereits mehrere Jahre her 
sind muss ich das Interface erst mal suchen. Ich glaube mich zu 
erinnern, dass es ein Interface von Echellon war. Inzwischen ist die HW 
irgendwo in meinem Bastelkeller nach hinten gewandert, ich werde am 
Wochenende mal versuchen das Kärtchen aufzutreiben, dann werde ich mich 
wieder mit genaueren Informationen melden.

Bis dahin eine angenehme Woche
Gerhard

Autor: Horst V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

wir haben seit letzem Herbst auch eine Windhager Pellet-Heizung 
(BioWin2). Ich möchte nun auch diverse Werte aus der Anlage auslesen und 
ein wenig STatistik damit betreiben. Infos über den LON-Bus habe ich 
schon im Netz gefunden. Das Protokoll ist zwar prinzipiell verständlich, 
aber selber einen protokoll-Stack zu programmieren erscheint mir recht 
mühsam.

In einem Deiner ersten Posts schreibst Du:

> Wer es mit einem anderen Adapter versuchen möchte, oder ganz ohne, der
kann auch nähere Informationen haben, was so am Lon Bus nötig ist, um
die Komponenten anzusprechen.

Da ich beabsichtige, mit einer eigenen Interface-Hardware in Verbindung 
einem RasperryPi zu arbeiten, bin ich dringend auf Insider-Wissen des 
Protokolls und der Datenformate bei der Kesselsteuerung angewiesen.

Über eine Reaktion würde ich mich sehr freuen!

Grüße
Horst

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Horst,

ohne LON Stack glaube ich nicht das es gehen wird. Entweder mit einem 
Adapter (zB. so wie den XLON-USB, wo man dann eine DLL mit den 
Funktionen anspricht, oder einen von Echelon, der mit deren DLL bedient 
werden kann), oder alles selber programmieren, was sehr aufwendig ist, 
wie du schon angemerkt hast.

"Nur" mit passivem mitlesen am Bus wirst du nicht weiterkommen. Die 
gesuchten Informationen werden in Netzvariablen gespeichert/übertragen.
Die sind aber nur nach "Aufforderung" am Bus vorhanden, somit muss man 
am Bus "mitreden". Und dazu wirst du den LON Stack brauchen.

Die Informationen die ich liefern kann, beziehen sich auf die LON 
Kommandos, die nötig sind, um die am Bus vorhandenen Komponenten 
(Kessel, UML, WVF, InfoWin) zu finden, und deren Eigenschaften (wie die 
Netzvariablen, Knotenadressen, ...) auszulesen. Mit diesen Werten kann 
dann gezielt ein/mehr Werte aus einem Knoten ausgelesen werden.

Die Informationen liegen in Form von Mitleseprotokollen vor, die ich an 
der USB Schnittstelle zwischen PC und XLON-USB gewonnen habe.
Da sieht man mit welchen Befehlen die Knoten gesucht und ausgelesen 
werden.

Was aber bei der DLL ein ganz einfacher Funktionsaufruf ist (Open, 
Reset, Write CMD, Close, ...), sind an der USB Schnittstelle schon 
einige Befehle mehr (Handshake mit Quittungen, ...), und was genau 
direkt am LON Bus passiert, kann ich dir gar nicht genau sagen (zB. die 
Kollisionserkennung, wann ist der Bus frei, damit geschrieben werden 
kann, ...).
Ich habe mir den Bus zwar auch mit dem Oszilloskop angesehen, aber mehr 
als die physikalischen Bedingungen (wie Spannung, Übertragungsrate) ist 
da nicht zu erfahren.

lg. Peter

Autor: Horst V. (hoschti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

vielen Dank für Deine ausführliche Antwort. Ich hatte etwas in der Form 
leider schon erwartet. Eigentlich möchte ich ja ohne teure Spezial-Teile 
auskommen. Und da ich auch kein Freund von Windows bin (ich nutze 
auschließlich Linux), kann ich auch mit einem Tool, dass auf DLLs setzt 
nicht richtig was anfangen. Mir wird also nichts anderes übrig bleiben, 
als den Protokoll-Stack irgendwie nachzubauen. Das ist ja prinzipiell 
nicht unmöglich, aber bisher ist mir noch keine halbwegs verständliche 
Beschreibung über den Weg gelaufen. Bis auf die Bit-Kodierung 
(Manchester) habe ich noch nichts gefunden. Ist Dir vielleicht bei 
Deinen Recherchen irgendwas in der Art aufgefallen? Ich bin da für jeden 
Himweis (Link) dankbar.

Grüße
Horst

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sende mir deine Email per privater Nachricht, dann sende ich dir diverse 
PDF die ich über LON habe.

Peter

Autor: Jochen S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

Ich habe eine Rapido KP100, der ist baugleich mit der Biowin Exclusiv. 
Kannst Du mir schreiben wo ich die Service Software und das Interface 
bekomme?
Deine Visualisierung finde ich sehr gut, kann ich die an den Biowin 
anbinden?

Mit freundlichen Grüßen Jochen

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jochen.

KP 100: Da habe ich folgende Installationsanleitung gefunden:
http://www.rapido-waermetechnik.at/pdf/manuals/Pelletkessel/Inst-Anl_KP100_D_011407_06-06_Rue.pdf

Wenn die für alle KP 100 gilt, wird man zwar mit der Service-SW sicher 
den Kessel auslesen/updaten können (den Feuerungsautomaten, siehe Seite 
22 Abb. 5.2), weil der ja sicher von Windhager ist, und auf XR2 1+2 der 
LON Bus raus kommt).
Die meisten Werte die in meiner Ansicht oben zu sehen sind, sind aber 
aus der Heizungssteuerung. Das ist bei mir ein UML+ und WVF+ von 
Windhager, die auch vom Bedienfeld des Kessels aus angesprochen werden 
können (und natürlich auch von der Service-SW).
Aber auch bei ältere UML/WVF (ohne "+") können die wichtigsten Werte 
über den LON ausgelesen werden. Eingestellt werden die aber "mechanisch" 
am Modul.

Beim KP 100 sieht es aber in diesem PDF so aus, wie wenn da eine andere 
Steuerung drin ist (Seite 17, "rapidomatic"). Die ist auch in den 
Bildschirm Ansichten des Bedienfeldes des KP 100 nicht zu sehen (bei mir 
ist Im Menü noch die Zeile "MES Module", wo es zum UML/WVF geht).

Das bedeutet nicht, dass nicht auch die "rapidomatic" über den LON 
gelesen/gesteuert werden kann.
Alleine ich (und vermutlich die Service-SW) haben davon keine Ahnung.

Alle Informationen zu den NV (Netzvariablen) von Kessel/UML/WVF habe ich 
aus der Service-SW bzw. den mitgelieferten Dateien.
Für die "rapidomatic" müsste man da erneut Grundlagenforschung 
betreiben.
Oder man ist damit zufrieden, was man aus dem Kessel an Daten bekommt.

Was man aus einem Kessel ausgelesen kann (Beispiele für VarioWin und 
fireWin):
####################################################################
Node: VarioWin
###############
NV:nvoError              (nvo_Störcode        )  Typ:SNVT_count(8)
NV:OXY_nvoHeating        (nvo_O2_Heizung      )  Typ:SNVT_lev_cont(21)
NV:nvoWvEnergyHold       (nvo_EnergyHold_HK   )  Typ:SNVT_lev_percent(81)
NV:nvoBwEnergyHold       (nvo_EnergyHold_WW   )  Typ:SNVT_lev_percent(81)
NV:WET_nvoTist           (nvo_WET_T_Kessel    )  Typ:SNVT_temp_p(105)
NV:GB_nvoNist            (A_GB_Drehzahl       )  Typ:SNVT_rpm(102)
NV:GB_nvoNsoll           (A_GB_Drehzahl_Soll  )  Typ:SNVT_rpm(102)
NV:FS_ioMsum             (B_Pellets_Gesamt    )  Typ:SNVT_count(8)
NV:FS_nviMfoerder        (A_FS_Menge_berech   )  Typ:SNVT_mass_kilo(24)
NV:FS_nciCO2             (E_Korr_Brennstoff   )  Typ:UNVT(0)
NV:FS_nvoRotation        (A_FS_Überwachung    )  Typ:SNVT_lev_percent(81)
NV:PMX_Status            (nvo_FMP_Status      )  Typ:UNVT(0)
NV:PMX_nvoLstg           (P_Leistung          )  Typ:SNVT_lev_cont(21)
NV:PMX_PwrAvg            (P_Leistung_Mittel   )  Typ:SNVT_lev_cont(21)
NV:PMX_avgTb_Tk          (T_TB_TK_berechnet   )  Typ:SNVT_temp(39)
NV:PMX_state             (B_Zustand_Brenner   )  Typ:UNVT(0)
NV:PMX_eeBetrStd         (B_Betriebsstunden   )  Typ:SNVT_time_hour(124)
NV:PMX_eeNbrAnhz         (B_Anheizvorgänge    )  Typ:SNVT_count(8)
NV:PMX_CntShort          (Z_Ausbrand_Kurz     )  Typ:UNVT(0)
NV:PMX_CntLong           (Z_Ausbrand_Lang     )  Typ:UNVT(0)
NV:PMX_InModTmr          (Z_TimeModulation    )  Typ:SNVT_time_min(123)
NV:LPC_nvoState          (B_Druckschalter     )  Typ:UNVT(0)
NV:NIC_nvoValue          (T_Brennraum         )  Typ:SNVT_temp(39)
NV:NIC_nvoTboard         (T_Schaltfeld innen  )  Typ:SNVT_temp_p(105)
NV:NIC_nvoAvgVal         (T_Brennraum_Mittel  )  Typ:SNVT_temp(39)
NV:TK_nviSetP            (T_Kessel_Soll       )  Typ:SNVT_temp_p(105)
NV:TK_nvoTemp            (T_Kessel            )  Typ:SNVT_temp_p(105)
NV:TK_nviExtSetP         (T_Kessel_Soll_ext   )  Typ:SNVT_temp_p(105)
NV:TK_nvoAvgVal          (T_Kessel_Mittel     )  Typ:SNVT_temp_p(105)
NV:TK_Stpt               (T_Kessel_Soll       )  Typ:SNVT_temp_p(105)
NV:TK_nvoNSollBP         (A_Kesselpumpe       )  Typ:SNVT_lev_cont(21)
NV:RG_nvoTemp            (T_Abgas             )  Typ:SNVT_temp(39)
NV:PZS_status            (PZS_Betriebszustand )  Typ:UNVT(0)
NV:PZS_Restmenge         (PZS_Restmenge       )  Typ:SNVT_mass_kilo(24)
NV:RUE_cntError          (Z_Störung_Entasch   )  Typ:SNVT_count(8)
NV:RUE_status            (B_Zustand_Entasch   )  Typ:UNVT(0)
NV:RUE_cntEntaZue        (Z_Stör_Warmstart    )  Typ:SNVT_count(8)
NV:FWN_nviRunTm2Cln      (B_Kesselreinigung   )  Typ:SNVT_time_hour(124)
NV:FMx_status            (B_Betriebszustand   )  Typ:UNVT(0)
NV:WVF_nvoFBflag         (nvo_WVF_FB-Betr     )  Typ:SNVT_switch(95)

Node: FireWin
###############
NV:nvoTime               (nvo_Uhrzeit_FA      )  Typ:SNVT_time_stamp(84)
NV:nvoError              (nvo_Störcode        )  Typ:SNVT_count(8)
NV:nvoWvEnergyHold       (nvo_EnergyHold_HK   )  Typ:SNVT_lev_percent(81)
NV:nvoBwEnergyHold       (nvo_EnergyHold_WW   )  Typ:SNVT_lev_percent(81)
NV:WET_nvoTist           (nvo_WET_T_Kessel    )  Typ:SNVT_temp_p(105)
NV:GB_nvoNist            (A_GB_Drehzahl       )  Typ:SNVT_rpm(102)
NV:GB_nvoNsoll           (A_GB_Drehzahl_Soll  )  Typ:SNVT_rpm(102)
NV:FS_ioMsum             (B_Pellets_Gesamt    )  Typ:SNVT_count(8)
NV:FS_nviMfoerder        (A_FS_Menge_berech   )  Typ:SNVT_mass_kilo(24)
NV:FS_nciCO2             (E_Korr_Brennstoff   )  Typ:UNVT(0)
NV:FS_nvoRotation        (A_FS_Überwachung    )  Typ:SNVT_lev_percent(81)
NV:PMX_nvoLstg           (P_Leistung          )  Typ:SNVT_lev_cont(21)
NV:PMX_PwrAvg            (P_Leistung_Mittel   )  Typ:SNVT_lev_cont(21)
NV:PMX_avgTb_Tk          (T_TB_TK_berechnet   )  Typ:SNVT_temp(39)
NV:PMX_state             (B_Zustand_Brenner   )  Typ:UNVT(0)
NV:PMX_eeBetrStd         (B_Betriebsstunden   )  Typ:SNVT_time_hour(124)
NV:PMX_eeNbrAnhz         (B_Anheizvorgänge    )  Typ:SNVT_count(8)
NV:PMX_nvoLps            (B_Druckschalter     )  Typ:SNVT_switch(95)
NV:NIC_nvoValue          (T_Brennraum         )  Typ:SNVT_temp(39)
NV:NIC_nvoTboard         (T_Schaltfeld innen  )  Typ:SNVT_temp_p(105)
NV:NIC_nvoAvgVal         (T_Brennraum_Mittel  )  Typ:SNVT_temp(39)
NV:TK_nviSetP            (T_Kessel_Soll       )  Typ:SNVT_temp_p(105)
NV:TK_nvoTemp            (T_Kessel            )  Typ:SNVT_temp_p(105)
NV:TK_nviExtSetP         (T_Kessel_Soll_ext   )  Typ:SNVT_temp_p(105)
NV:TK_nvoRist            (T_Kessel_Rücklauf   )  Typ:SNVT_temp_p(105)
NV:TK_nvoAvgVal          (T_Kessel_Mittel     )  Typ:SNVT_temp_p(105)
NV:RG_nvoTemp            (T_Abgas             )  Typ:SNVT_temp(39)
NV:PZS_status            (PZS_Betriebszustand )  Typ:UNVT(0)
NV:FWN_nviRunTm2Cln      (B_Kesselreinigung   )  Typ:SNVT_time_hour(124)
NV:FMx_status            (B_Betriebszustand   )  Typ:UNVT(0)
NV:WVF_nvoFBflag         (nvo_WVF_FB-Betr     )  Typ:SNVT_switch(95)

Was man aus den UML[+] auslesen kann:
#####################################
Node: UML +
###############
NV:nvoTimeSet            (Lokale Zeit         )  Typ:SNVT_time_stamp(84)
NV:nvoOprMode            (Betriebsphase       )  Typ:UNVT(0)
NV:nvoCtrlMode           (nvo_Betriebswahl    )  Typ:UNVT(0)
NV:WET_nvoTsoll[0]       (WET_T_Soll_HK       )  Typ:SNVT_temp_p(105)
NV:WET_nvoTsoll[1]       (WET_T_Soll_WW       )  Typ:SNVT_temp_p(105)
NV:WET_nvoTist           (nvo_WET_T_Kessel    )  Typ:SNVT_temp_p(105)
NV:nviTaFb               (nvi_T_Aussen        )  Typ:SNVT_temp_p(105)
NV:nvoTa                 (T_Aussen            )  Typ:SNVT_temp_p(105)
NV:LX_nviTist[0]         (L_T_Boiler          )  Typ:SNVT_temp_p(105)
NV:LX_nviTsoll[0]        (L_T_Boiler1_Soll    )  Typ:SNVT_temp_p(105)
NV:LX_nvoPump[0]         (L_Pumpe_BK1         )  Typ:SNVT_lev_cont(21)
NV:LX_nvoValve[0]        (L_Ladeventil_BK1    )  Typ:SNVT_lev_cont(21)
NV:WVF_nviTPO            (T_PufferOben TPO    )  Typ:SNVT_temp_p(105)
NV:WVF_nviTPU            (T_PufferUnten TPU   )  Typ:SNVT_temp_p(105)
NV:WVF_nviTPM            (nvi_WVF_TPM         )  Typ:SNVT_temp_p(105)
NV:M_nviTVsoll           (T_Vorlauf_Soll      )  Typ:SNVT_temp_p(105)
NV:M_nviTVist            (T_Vorlauf           )  Typ:SNVT_temp_p(105)
NV:M_nvoPump             (Pumpe               )  Typ:SNVT_lev_cont(21)
NV:M_nvoValve            (M_Mischventil       )  Typ:SNVT_lev_percent(81)
NV:FA_nviTVsoll          (FA_T_Kessel_Soll    )  Typ:SNVT_temp_p(105)
NV:FA_nvoTk              (FA_T_Kessel_VL      )  Typ:SNVT_temp_p(105)
NV:FA_nvoTr              (FA_T_Kessel_RL      )  Typ:SNVT_temp_p(105)
NV:FA_nvoError           (FA_Störcode         )  Typ:SNVT_count(8)
NV:nvoTi                 (T_Raum              )  Typ:SNVT_temp_p(105)
NV:nvoTiStpt             (T_Raum_Soll         )  Typ:SNVT_temp_p(105)
NV:nvoError              (nvo_Störcode        )  Typ:SNVT_count(8)
NV:nviError              (nvi_Störcode        )  Typ:SNVT_count(8)

Node: UML C1
###############
NV:nvoTimeSet            (Lokale Zeit         )  Typ:SNVT_time_stamp(84)
NV:nviError              (nvi_Störcode        )  Typ:SNVT_count(8)
NV:nvoError              (nvo_Störcode        )  Typ:SNVT_count(8)
NV:nciLocation           (Bezeichnung         )  Typ:SNVT_str_asc(36)
NV:WET_nvoTsoll[0]       (WET_T_Soll_HK       )  Typ:SNVT_temp_p(105)
NV:WET_nvoTsoll[1]       (WET_T_Soll_WW       )  Typ:SNVT_temp_p(105)
NV:WET_nvoTist           (nvo_WET_T_Kessel    )  Typ:SNVT_temp_p(105)
NV:WET_m                 (??                  )  Typ:UNVT(0)
NV:nviTaFb               (nvi_T_Aussen        )  Typ:SNVT_temp_p(105)
NV:nvoTa                 (T_Aussen            )  Typ:SNVT_temp_p(105)
NV:TA_m                  (                    )  Typ:UNVT(0)
NV:LX_nviTist[0]         (L_T_Boiler          )  Typ:SNVT_temp_p(105)
NV:LX_nviTsoll[0]        (L_T_Boiler1_Soll    )  Typ:SNVT_temp_p(105)
NV:LX_nvoPump[0]         (L_Pumpe_BK1         )  Typ:SNVT_lev_cont(21)
NV:LX_nvoValve[0]        (L_Ladeventil_BK1    )  Typ:SNVT_lev_cont(21)
NV:WVF_nviTPO            (T_PufferOben TPO    )  Typ:SNVT_temp_p(105)
NV:M_nviTVsoll           (T_Vorlauf_Soll      )  Typ:SNVT_temp_p(105)
NV:M_nviTVist            (T_Vorlauf           )  Typ:SNVT_temp_p(105)
NV:M_nvoPump             (Pumpe               )  Typ:SNVT_lev_cont(21)
NV:M_nvoValve            (M_Mischventil       )  Typ:SNVT_lev_percent(81)
NV:RC_nvoMode[0]         (BDM1_Betriebsart    )  Typ:UNVT(0)
NV:RC_nviError[0]        (BDM_Störcode        )  Typ:SNVT_count(8)
NV:RC_nvoSpaceTemp[0]    (BDM_T_Raum          )  Typ:SNVT_temp_p(105)
NV:RC_nvoHeatSetPt[0]    (                    )  Typ:SNVT_temp_p(105)
NV:RC_nvoBoilSetPt[0]    (BDM_T_Boiler_Soll   )  Typ:SNVT_temp_p(105)
NV:RC_nviSolarTemp       (BDM_TSA_Koll.Austr  )  Typ:SNVT_temp_p(105)
NV:RC_nviSolarEnrgy      (BDM_Solargewinn     )  Typ:SNVT_elec_kwh(13)
NV:FA_nviTVsoll          (FA_T_Kessel_Soll    )  Typ:SNVT_temp_p(105)
NV:FA_nvoTk              (FA_T_Kessel_VL      )  Typ:SNVT_temp_p(105)
NV:FA_nvoTr              (FA_T_Kessel_RL      )  Typ:SNVT_temp_p(105)
NV:FA_nviExtTsoll        (                    )  Typ:SNVT_temp_p(105)
NV:SYS_pack              (                    )  Typ:UNVT(0)

LON-USB Adapter: http://www.xlon.de/index.htm (XLON-USB RS485)

Service-SW: sende mir deine Email Adresse für nähere angaben.

Grüße, Peter

: Bearbeitet durch User
Autor: Jochen S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Infos.
Meine E-Mail Adresse lautet sierck@gmx.de (Sierck at gmx Punkt de)
Mit freundlichen Grüßen Jochen

Autor: Stephan M. (thesimpsons)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Peter,

ich hab mich länger nicht mehr mit dem LON Bus meines Windhagers 
beschäftigt und deine Erfolge erst heute gelesen, kannst du mich mal 
unter the.simpsons@aon.at kontaktieren wegen weiterer Details ?

DANKE und lg

Autor: Stephan K. (stephan_kw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hoffe der Thread wird noch gelesen.
Ich habe eine Windhager XenoWin und würde gerne die Daten der Gastherme 
auslesen. Die Frage die sich stellt ob die XenoWin Anlage ebenfalls über 
die Schnittstelle verfügt und überhaupt ausgelesen werden kann.
(Ich vermute Mal ja, der Techniker ist ja dazu auch in der Lage)

Sofern @peter2003 noch mitliest würde mich die Bezugsquelle des 
Schnittstellenkabels und der Software interessieren. Wenn ich die 
Angaben im Thread richtig gelesen habe so kann man das Kabel und xlon.de 
kaufen - gibt es günstigere Möglichkeiten? Ist ja nicht gerade billig.

Gibt es die entwickelte Auslesesoftware vielleicht in einem Github Repo?

Falls eine Mailadresse benötigt wird: stephan.kw+lonbus (a) gmail.com

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stephan,

im Beitrag "Re: LON Bus Windhager mitlesen/steuern" 
sind alle Systeme gelistet, die die Service SW bedienen kann. Das sind 
alles Windhager Systeme.

Windhager verkauft zwar Gaskessel/thermen, die sind meines Wissens aber 
alle zugekauft. So wie andere Hersteller Kessel von Windhager unter 
deren Namen verkaufen.

Die sind aber nicht mit dieser Service SW zu bedienen. Welche 
Schnittstelle dein XenoWin hat (und ob er eine hat), kannst du nur in 
den technischen Unterlagen des original Herstellers sehen.

Den XLON-USB gibt es nur beim Hersteller. Meine SW, um mit einem 
XLON-USB einen Windhager Kessel auszulesen, nur bei mir (VB2005).

Peter

: Bearbeitet durch User
Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hello

Is it ok to write in english? Ansewr in German is ok for me :)

Very great thread this! Good work from Peter and many more!

I have recently installed a Biowin Exklusiv, and would like to connect 
it with an Arduino board or a Raspberry Pi.

Is it the LonWorks/LonTalk protocol that is used by Windhager?

Peter, would you be so kind and send also me the information you have 
collected about the bus-interface?   trnilsson at gmail punkt com

Thomas, Gothenburg, Sweden

Autor: Peter M. (peter2003)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hello Thomas, more details via direct email.

Peter

Autor: MrMint (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

würde mich ebenso über nähere Informationen zu LON BUS und Windhager 
Pelletkesseln freuen. mrmint bei gmx net. Vielen Dank im Voraus!

Autor: Roman B. (rbrunka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

ich habe den BioWin2 Touch und kann die Daten über API auslesen.
Da brauchst Du:
1. einen Rechner (kann auch RaspberryPi sein)
2. FHEM https://fhem.de/
3. und einen zusätzlichen Modul: 
https://github.com/tobias-d-oe/fhem-windhager

Bei mir funktioniert das Ganze gut. Ich versuche gerade einen Modul für 
ioBroker zu schreiben, das auch die API-Schnittstelle verwendet.

VG.
Roman

Autor: Thomas Nilsson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, that was really interesting information. There is a LON to LAN 
converter, the RC3070. That needs to be further investigated!

Thanks!

Autor: Karl Z. (griffin27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Roman B. schrieb:
> Bei mir funktioniert das Ganze gut. Ich versuche gerade einen Modul für
> ioBroker zu schreiben, das auch die API-Schnittstelle verwendet.

Hallo Roman,

wie läuft es mit deiner Visualisierung? Wir haben nun auch so einen 
Pellets Kessel von Windhager mit dem Touchpanel, das sich auch via 
Ethernet per Handy-App steuern lässt.

Kannst du die Werte nur auslesen, oder auch Werte manipulieren?

LG, Karl

Autor: Roman B. (rbrunka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Karl,

es gibt zwei Möglichkeiten:
1. Du nimmst das FHEM-Modul: 
https://github.com/tobias-d-oe/fhem-windhager und liest die Anlage aus
2. Du wartest noch eine Woche bis ich mein Modul (Javascript für 
ioBroker) veröffentliche

Mit dem FHEM-Modul kannst Du die Werte nur auslesen. Mit meinem Modul 
könntest Du auch die Module auslesen, aber auch steuern: z.B. habe ich 
die Alarmanlage mit dem Warmwasserkreislauf verbunden - wird die 
Alarmanlage scharf, schaltet sich die Zirkulationspumpe aus. ioBroker 
macht hier alles. Ich habe nur den Adapter geschrieben. Das hat leider 
noch keine Admin-Oberfläche. Aber bis Ende der nächsten KW müsste ich 
das fertig haben...

VG.
Roman

Autor: Karl Z. (griffin27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Roman,

wenn alles glatt läuft, dann schreibe ich auch einen Daemon. Dieser 
sollte dann eine Schnittstelle zwischen der Web API und MQTT bilden. Das 
ganze sollte dann in Home Assistant integriert werden.

Dann sollten wir drei die Wichtigsten Sprachen eingebunden haben :)

Aber ich werd so schnell noch nicht dazukommen, und werde mir somit 
deine Lösung gerne Anschauen.

Hab nun schon 3 mal mit dem Kundensupport telefoniert, aber die Herren 
dort wollen echt nix rausrücken. Die API ist oft gar nicht dokumentiert. 
Bei uns werden im Optimalfall alle Radiatoren mit Funk-Ventile 
ausgestattet, die dann von einer Zentralen stelle gesteuert werden.

LG, Karl

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

Erstmal Hut-Ab was hier schon geleistet wurde und zusammengetragen 
wurde. ;-)

Ich habe eine BioWin Exklusiv und würde auch gerne eine Steuerung meiner 
Heizung realisieren.

Bin gerade am recherchieren was ich alles dazu brauche. (LON?)
Könnte dazu nähere Info´s brauchen.

Meine E-Mail lautet le(punkt)ram(ät)gmx(punkt)at

Vielen Dank und liebe Grüße
Christian

Autor: Roman B. (rbrunka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

leider habe ich mit dem Adapter noch nicht geschafft... Mein Urlaub war 
zu kurz.

Aber für die, die sich damit auskennen, nenne ich einfach paar Wörter:
- Login: Service, Password: kann man hier bekommen: 
https://connect.windhager.com/
- REST API mit DigestAuth
- Werte lesen: GET
- Werte schreiben: PUT (value="Wert")

- http://BioWin-IP/api-docs/ - hier sind die API Docs
- http://BioWin-IP/api/1.0/datapoint/1/15/0/115/0 - bei mir die 
Aussentemperatur

Viel Spaß,
Roman

Autor: Roman B. (rbrunka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

auf Deiner Stelle würde ich nur mit API arbeiten. Ich wollte auch mal 
über LON steuern. Die Steuerung über API ist aber viel einfacher und 
billiger.

VG.
Roman

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Roman,
das mit api-docs muss ich probieren, wie bist denn auf diese URL 
gekommen?

Passwort kann man durch 10s auf Resettaster am Touchpanel auch löschen. 
Aber dann ist der Remotezugang von außen auch weg...

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich denke ich werde die Steuerung anderweitig realisieren, jedoch möchte 
ich gerne per LON Bus die Prozessdaten (Temperaturen, Verbrauch,...) 
auslesen.
Mittlerweile konnte ich ein MES Kommunikationsmodul ergattern, brauche 
dazu aber noch nähere Info´s zu den Datenpunkten, Befehlen, etc,..

Könnte mir jemand diese dankenswerterweise zusenden?
Meine E-Mail Adresse wäre le(punkt)ram(ät)gmx(punkt)at

Vielen Dank
Christian

Autor: Rainer Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

ich habe vor etwa 1 Jahr auch meine Windhager Steuerung (Firewin) 
ersetzt mit einer UVR 16x2 von der Technischen Alternative. Diese 
Steuerung kann ich nur empfehlen. Die Brenneranforderung habe ich über 
die X18 Klemme (0-10V) an meinem Kessel realisiert, d.h. die UVR schickt 
z.B. 7,5V und fordert damit eine Kessel-Vorlauftemperatur von 75°C an. 
Den Rest steuert die UVR, also Pumpen, Mischer, etc. selbst. Mir war das 
aber auch noch zu wenig, da ich z.B. Fehlermeldungen, Pelletsverbrauch 
usw. auch in meiner Haussteuerung sehen möchte. Deshalb habe ich mir vor 
3 Wochen nun auch den XLON USB Adapter besorgt. Zum Auslesen der Daten 
vom Kessel nimmst du am Besten die Windhager Software MES und 
dekompilierst sie mit dem ILSpy. Damit kannst du ein C# Projekt 
generieren. Das kannst du dann entsprechend umbauen. Alternativ kann ich 
dir auch mal meinen bisherigen Code schicken bei Bedarf.

LG, Rainer.

Autor: Karl Z. (griffin27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rainer Müller schrieb:
> nimmst du am Besten die Windhager Software MES und
> dekompilierst sie mit dem ILSpy. Damit kannst du ein C# Projekt
> generieren. Das kannst du dann entsprechend umbauen.

Kann es sein, dass das nicht ganz legal ist? Nur so aus Interesse. Bei 
so proprietären Systemen darf ruhig auch mal illegal gehandelt werden.

Eigentlich müssten so Systeme immer mit offenen Schnittstellen 
ausgeliefert werden müssen, da man sonst einem Vendorlockin unterliegt. 
Hier sollte sich der Konsumentenschutz mal engagieren, denke ich.

Autor: pkuli6kg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich bin über das KNX-UF auf den Thread gestoßen, ich habe mich 
auch lange mit dem Auslesen der Heizung beschäftigt, und habe den weg 
über die API eingeschlagen. Aktuell habe ich ein kleines PHP Skript 
(welches in einem EDOMI LBS läuft) welches mir alle relevanten DAten 
ausliest. ebenso kann ich Daten schreiben (Also RT setzen, oder 
ähnliches)

Hier ein Auszug aus meinem Code - man kann sich auch eine einfache 
Website basteln und die Werte dort ausgeben, habe ich bereits auch 
laufen, da ich mit meinem GIRA Homeserver die Website dann auslese. Und 
auch übers Web kann man dann einfach Werte ändern!

LG PETER
$url = $E[2]['value']; // URL für Abfrage
$login = $E[3]['value'];  // User vom LBS-Eingang
$password = $E[4]['value'];  // Password vom LBS-Eingang
$ch = curl_init();
//Login Daten
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result  = curl_exec($ch);
$json_raw=('{"entries":' . $result) . '}';

$json=json_decode($json_raw);
$data = json_decode($json_raw);
$rows=(count($data->entries)-1);



//OID Nummer den jeweiligen Werten zuweisen, als Variable festlegen!
$OID_Aussentemperatur = '/1/15/0/0/0/0';  
$OID_Warmwassertemperatur_IST ='/1/15/0/0/4/0';
$OID_Warmwassertemperatur_SOLL ='/1/15/0/1/4/0';
$OID_Kesseltemp_IST = '/1/15/0/0/7/0';
$OID_Kesseltemp_SOLL = '/1/15/0/1/7/0';
$OID_VORLAUF_HK1_IST = '/1/15/0/0/2/0';
$OID_VORLAUF_HK1_SOLL ='/1/15/0/1/2/0';
$OID_VORLAUF_HK2_IST ='/1/15/1/0/2/0';
$OID_VORLAUF_HK2_SOLL ='/1/15/1/1/2/0';
$OID_RAUMT_HK1_IST ='/1/15/0/0/1/0';
$OID_RAUMT_HK2_IST ='/1/15/1/0/1/0';
$OID_RAUMT_HK1_SOLL ='/1/15/0/1/1/0';
$OID_RAUMT_HK2_SOLL ='/1/15/1/1/1/';
$OID_KESSELLEISTUNG ='/1/60/0/0/9/0';
$OID_ABGASTEMPERATUR ='/1/60/0/0/11/0';
$OID_HKP_HK1 ='/1/15/0/1/20/0';
$OID_HKP_HK2 ='/1/15/1/1/20/0';
$OID_WW_Ladepumpe ='/1/15/0/1/66/0';
$OID_MISCHER_HK1 ='/1/15/0/1/21/0';
$OID_MISCHER_HK2 ='/1/15/1/1/21/0';
$OID_MODUS ='/1/15/0/3/50/0';
$OID_PHASE ='/1/60/0/2/1/0';
$OID_VERBRAUCH_GES ='/1/60/0/23/103/0';
$OID_VERBRAUCH_FUELLUNG ='/1/60/0/23/100/0';
$OID_T_REINIGUNG ='/1/60/0/20/61/0';
$OID_T_HAUPTREINIGUNG ='/1/60/0/20/62/0';
$OID_T_WARTUNG ='/1/60/0/20/63/0';
$OID_BRENNERSTARTS ='/1/60/0/2/80/0';
$OID_BETRIEBSSTUNDEN='/1/60/0/2/81/0';
$OID_KESSEL_SOLL_TEMP ='/1/60/0/1/7/0';
$OID_BETRIEBSWAHL_HK1 ='/1/15/0/3/50/0';
$OID_BETRIEBSWAHL_HK2 ='/1/15/1/3/50/0';
$OID_ALARM='/1/60/0/2/0/0';


$i=0;
for ($i = 0; $i <= $rows; $i++) {
  //Aussentemperatur
if ($json->entries[$i]->OID == $OID_Aussentemperatur) {
    $Aussentemperatur    = $json->entries[$i]->value;
}
  //Warmwassertemperatur
if ($json->entries[$i]->OID == $OID_Warmwassertemperatur_IST) {
    $Warmwassertemperatur_IST  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_Warmwassertemperatur_SOLL) {
    $Warmwassertemperatur_SOLL  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_Kesseltemp_IST) {
    $Kesseltemp_IST  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_Kesseltemp_SOLL) {
    $Kesseltemp_SOLL  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VORLAUF_HK1_IST) {
    $VORLAUF_HK1_IST  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VORLAUF_HK1_SOLL) {
    $VORLAUF_HK1_SOLL  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VORLAUF_HK2_IST) {
    $VORLAUF_HK2_IST  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VORLAUF_HK2_SOLL) {
    $VORLAUF_HK2_SOLL  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_RAUMT_HK1_IST) {
    $RAUMT_HK1_IST  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_RAUMT_HK1_SOLL) {
    $RAUMT_HK1_SOLL  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_RAUMT_HK2_IST) {
    $RAUMT_HK2_IST  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_RAUMT_HK2_SOLL) {
    $RAUMT_HK2_SOLL  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VORLAUF_HK2_IST) {
    $VORLAUF_HK2_IST  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VORLAUF_HK2_SOLL) {
    $VORLAUF_HK2_SOLL  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_KESSELLEISTUNG) {
    $KESSELLEISTUNG  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_ABGASTEMPERATUR) {
    $ABGASTEMPERATUR  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_HKP_HK1) {
    $HKP_HK1  = $json->entries[$i]->value;
    
}if ($json->entries[$i]->OID == $OID_HKP_HK2) {
    $HKP_HK2  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_WW_Ladepumpe) {
    $WW_Ladepumpe  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_MISCHER_HK1) {
    $MISCHER_HK1  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_MISCHER_HK2) {
    $MISCHER_HK2  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_MODUS) {
    $str_modus  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_PHASE) {
    $str_phase  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VERBRAUCH_GES) {
    $VERBRAUCH_GES  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_VERBRAUCH_FUELLUNG) {
    $VERBRAUCH_FUELLUNG  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_T_REINIGUNG) {
    $T_REINIGUNG  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_T_HAUPTREINIGUNG) {
    $T_HAUPTREINIGUNG  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_T_WARTUNG) {
    $T_WARTUNG  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_BRENNERSTARTS) {
    $BRENNERSTARTS  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_BETRIEBSSTUNDEN) {
    $BETRIEBSSTUNDEN  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_BETRIEBSWAHL_HK1) {
    $str_modus_hk1  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_BETRIEBSWAHL_HK2) {
    $str_modus_hk2  = $json->entries[$i]->value;
}
if ($json->entries[$i]->OID == $OID_ALARM) {
    $str_alarm  = $json->entries[$i]->value;
}
}
switch($str_phase) //Zuordnung der Betriebsphase
{
  case("0"):
  $PHASE=('"Brenner gesperrt"');
  break;
  case("1"):
  $PHASE=('Selbsttest');
  break;
  case("2"):
  $PHASE=('WE ausschalten');
  break;
  case("3"):
  $PHASE=('Standby');
  break;
  case("4"):
  $PHASE=('Brenner AUS');
  break;
  case("5"):
  $PHASE=('Vorspülen');
  break;
  case("6"):
  $PHASE=('Zündphase');
  break;
  case("7"):
  $PHASE=('Flammenstabilisierung');
  break;
  case("8"):
  if($res_wwp >= "1" and $res_mischer=-100){
  $PHASE=('Warmwasser-Ladung');
    }else{
  $PHASE=('Modulationsbetrieb');
    }
  break;
  case("17"):
  $PHASE=('Ausbrand');
  break;
}

switch($str_modus) //Zuordnung aktueller Betriebsmodus Allgemein
{
  case("0"):
  $MODUS=('Standby');
  break;
  default: 
  $MODUS=('Kein Modus erkannt');
  break;
  case("1"):
  $MODUS=('Heizprogramm 1');
  break;
  case("2"):
  $MODUS=('Heizprogramm 2');
  break;
  case("3"):
  $MODUS=('Heizprogramm 3');
  break;
  case("4"):
  $MODUS=('Heizbetrieb');
  break;
  case("5"):
  $MODUS=('Absenkbetrieb');
  break;
  case("6"):
  $MODUS=('Warmwasserprogramm');
  break;
  case("7"):
  $MODUS=('LEER');
  break;

}

switch($str_modus_hk1) //Zuordnung aktueller Betriebsmodus Allgemein
{
  case("0"):
  $BETRIEBSWAHL_HK1=('Standby');
  break;
  default: 
  $BETRIEBSWAHL_HK1=('Kein Modus erkannt');
  break;
  case("1"):
  $BETRIEBSWAHL_HK1=('Heizprogramm 1');
  break;
  case("2"):
  $BETRIEBSWAHL_HK1=('Heizprogramm 2');
  break;
  case("3"):
  $BETRIEBSWAHL_HK1=('Heizprogramm 3');
  break;
  case("4"):
  $BETRIEBSWAHL_HK1=('Heizbetrieb');
  break;
  case("5"):
  $BETRIEBSWAHL_HK1=('Absenkbetrieb');
  break;
  case("6"):
  $BETRIEBSWAHL_HK1=('Warmwasserprogramm');
  break;
  case("7"):
  $BETRIEBSWAHL_HK1=('LEER');
  break;

}

switch($str_modus_hk2) //Zuordnung aktueller Betriebsmodus Allgemein
{
  case("0"):
  $BETRIEBSWAHL_HK2=('Standby');
  break;
  default: 
  $BETRIEBSWAHL_HK2=('Kein Modus erkannt');
  break;
  case("1"):
  $BETRIEBSWAHL_HK2=('Heizprogramm 1');
  break;
  case("2"):
  $BETRIEBSWAHL_HK2=('Heizprogramm 2');
  break;
  case("3"):
  $BETRIEBSWAHL_HK2=('Heizprogramm 3');
  break;
  case("4"):
  $BETRIEBSWAHL_HK2=('Heizbetrieb');
  break;
  case("5"):
  $BETRIEBSWAHL_HK2=('Absenkbetrieb');
  break;
  case("6"):
  $BETRIEBSWAHL_HK2=('Warmwasserprogramm');
  break;
  case("7"):
  $BETRIEBSWAHL_HK2=('LEER');
  break;

}

switch($str_alarm)
{
    default: $alarm_text("Sonstiger Alarm");
break;
    case("-"): $alarm_text="Kein Alarm";
break;
    case("1"): $alarm_text="Primärluftklappe blockiert oder defekt.";
break;
    case("3"): $alarm_text="Sekundärluftklappe blockiert oder defekt.";
break;
    case("5"): $alarm_text="Entaschung / Rostrüttelung defekt oder steckt. Brennertopf reinigen.";
break;
    case("6"): $alarm_text="Motor Förderschnecke defekt";
break;
    case("8"): $alarm_text="Heizflächenreinigung defekt Heizflächenreinigung überprüfen.";
break;
    case("15"): $alarm_text="Netzspannung nicht vorhanden";
break;
    case("16"): $alarm_text="Saugzuggebläse defekt Gebläserad und Gebläsekasten reinigen.";
break;
    case("17"): $alarm_text="Saugzuggebläse steckt Gebläserad reinigen.";
break;
    case("18"): $alarm_text="Saugzuggebläse instabil";
break;
    case("37"): $alarm_text="Klappe Pelletszuführung öffnet nicht Klappe in Zuführeinheit überprüfen.";
break;
    case("40"): $alarm_text="Absperreinheit defekt Absperreinheit der Pelletszuführung öffnet oder schließt nicht.";
break;
    case("41"): $alarm_text="Schalter Deckel Vorratsbehälter defekt Schalter Deckel Vorratsbehälter überprüfen.";
break;
    case("42"): $alarm_text="Relais Saugturbine defekt Netzstecker am Kessel abstecken.";
break;
    case("57"): $alarm_text="Brennerstörung";
break;
    case("62"): $alarm_text="Zuluftklappe defekt bzw. öffnet nicht. Klappe überprüfen.";
break;
    case("71"): $alarm_text="Sicherheits-/Notschalter offen Schalterstellung bei Sicherheits- und  Notschaltern kontrollieren.";
break;
    case("76"): $alarm_text="Kesselfühler defekt Kesselfühler und Anschlüsse prüfen.";
break;
    case("78"): $alarm_text="Thermocontrolfühler defekt Thermocontrolfühler und Anschlüsse überprüfen.";
break;
    case("88"): $alarm_text="O2-Sonde defekt O2-Sonde und Anschlüsse überprüfen.";
break;
    case("89"): $alarm_text="O2-Sonde Heizung defekt O2-Sonde; Trafo und Anschlüsse überprüfen.";
break;
    case("101"): $alarm_text="TWE-Fühler defekt";
break;
    case("103"): $alarm_text="Kessel-Fühler defekt";
break;
    case("104"): $alarm_text="TPE-Fühler defekt";
break;
    case("105"): $alarm_text="TPA-Fühler defekt";
break;
    case("107"): $alarm_text="Saugzuggebläse steckt Gebläserad reinigen.";
break;
    case("114"): $alarm_text="Weichen-/Pufferfühler defekt Weichen-/Pufferfühler und Anschlüsse am Kaskadenmodul überprüfen.";
break;
    case("115"): $alarm_text="ZSK Kesselfühler defekt";
break;
    case("128"): $alarm_text="Keine Flammenbildung im Regelbetrieb Kessel und Brenner reinigen.";
break;
    case("129"): $alarm_text="Maximale Ausbrandzeit überschritten";
break;
    case("130"): $alarm_text="Brennraumtemperatur zu gering";
break;
    case("133"): $alarm_text="Sicherheitstemperatur Abschaltung Anlage und Fülldruck überprüfen.";
break;
    case("135"): $alarm_text="Übertemperatur am Schneckenrohr";
break;
    case("144"): $alarm_text="Sicherheitseinrichtung unterbrochen Sicherheitseinrichtung überprüfen.";
break;
    case("155"): $alarm_text="Wassermangelsicherung hat angesprochen Anlagendruck überprüfen.";
break;
    case("156"): $alarm_text="Kein Unterdruck im Brennraum bzw. Sensor defekt.";
break;
    case("171"): $alarm_text="Maximale Anheizzeit überschritten Brennertopf reinigen.";
break;
    case("186"): $alarm_text="Keine Kommunikation mit MES Modul";
break;
    case("187"): $alarm_text="Keine Kommunikation mit Feuerungsautomat Bindung Feuerungsautomat und  Anschlüsse überprüfen.";
break;
    case("188"): $alarm_text="Internal error occurred";
break;
    case("189"): $alarm_text="Keine Kommunikation mit Zusatzprint Bindung Zusatzprint; Feuerungsautomat  und Anschlüsse prüfen";
break;
    case("191"): $alarm_text="GAS-FA meldet Störung";
break;
    case("194"): $alarm_text="Keine Kommunikation mit einem Wärmeerzeuger";
break;
    case("195"): $alarm_text="Brennraumtür im Betrieb geöffnet";
break;
    case("206"): $alarm_text="Überwachung der Förderschnecke defekt";
break;
    case("208"): $alarm_text="Heizflächenreinigung defekt Heizflächenreinigung überprüfen.";
break;
    case("226"): $alarm_text="Keine Flammenbildung beim Zünden Zündvorgang nicht erfolgreich";
break;
    case("238"): $alarm_text="Zuführung saugt keine Pellets an Pelletsvorrat im Lagerraum und Zuführschlauch überprüfen.";
break;
    case("239"): $alarm_text="Sondenumschaltung defekt Umschalteinheit überprüfen.";
break;
    case("240"): $alarm_text="Absperreinheit Pelletszuführung offen Absperreinheit der Pelletszuführung schließt nicht.";
break;
    case("241"): $alarm_text="Deckel Vorratsbehälter offen Deckel Vorratsbehälter schließen.";
break;
    case("266"): $alarm_text="Fülltürschalter schaltet nicht Nicht mehr einheizen.";
break;
    case("268"): $alarm_text="Verkleidungstürschalter defekt";
break;
    case("281"): $alarm_text="Abgastemperaturfühler defekt Abgastemperaturfühler und Anschlüsse überprüfen.";
break;
    case("296"): $alarm_text="Vorlauffühler defekt";
break;
    case("297"): $alarm_text="Sollwert wird nicht erreicht";
break;
    case("299"): $alarm_text="RT-Fühler defekt";
break;
    case("300"): $alarm_text="WW-Fühler defekt";
break;
    case("320"): $alarm_text="Notbetrieb! Reinigung";
break;
    case("321"): $alarm_text="Notbetrieb! Hauptreinigung";
break;
    case("322"): $alarm_text="Aschebox entleeren; Brennraum  und Brennertopf reinigen.";
break;
    case("324"): $alarm_text="Die Wartung ist Voraussetzung für die Gerätegarantie.";
break;
    case("330"): $alarm_text="Brennraumtemperatur zu gering Hauptreinigung entsprechend der Bedienungsanleitung durchführen.";
break;
    case("345"): $alarm_text="Brennraumtür offen Brenner gesperrt.";
break;
    case("356"): $alarm_text="Brennraumdruck nicht stabil";
break;
    case("372"): $alarm_text="Anheizauswertung Zu geringe Brennkammertemperatur beim Anheizen.";
break;
    case("373"): $alarm_text="Zu geringe Leistungsabnahme beim Anheizen.";
break;
    case("374"): $alarm_text="Anheizabbruch";
break;
    case("375"): $alarm_text="Anheizen bei zu hoher Kesseltemperatur";
break;
    case("381"): $alarm_text="Vorratsbehälter leer Zeitprogramm sperrt Zuführung. Freigabezeit in Menü/ Betreiberebene ändern.";
break;
    case("382"): $alarm_text="Klappe oder Schalter im Vorratsbehälter defekt. Klappe und Schalter im Vorratsbehälter überprüfen.";
break;
    case("387"): $alarm_text="Fehler bei der Kommunikation mit Feuerungsautomat Reset Taste mindestens 5 sec drücken.";
break;
    case("390"): $alarm_text="Notbetrieb!  Kessel und Brenner reinigen. Reinigung bestätigen.";
break;
    case("393"): $alarm_text="Fehlermeldung E1";
break;
    case("395"): $alarm_text="Brennraum- oder Aschetür offen.";
break;
    case("396"): $alarm_text="Verkleidungstür schliessen.";
break;
    case("438"): $alarm_text="Eine Zone im Lagerraum ist leer Pelletsvorrat im Lagerraum überprüfen.";
break;
    case("496"): $alarm_text="Anlagen-Frostschutz aktiv";
break;
    case("499"): $alarm_text="Raum-Frostschutz aktiv";
break;
    case("500"): $alarm_text="WW-Frostschutz aktiv";
break;
    case("504"): $alarm_text="TP/TW Frostschutz aktiv";
break;
    case("520"): $alarm_text="Reinigung Aschelade entleeren; Asche unter Nachheizfläche entfernen. Thermocontrolfühler reinigen.";
break;
    case("521"): $alarm_text="Hauptreinigung Hauptreinigung entsprechend der Bedienungsanleitung durchführen.";
break;
    case("522"): $alarm_text="Reinigung Aschebox entleeren; Brennraum und Brennertopf reinigen.";
break;
    case("523"): $alarm_text="Hauptreinigung Hauptreinigung entsprechend der Bedienungsanleitung durchführen.";
break;
    case("524"): $alarm_text="Wartung Die Wartung ist Voraussetzung für die Gerätegarantie.";
break;
    case("581"): $alarm_text="Vorratsbehälter ist fast leer. Pellets nachfüllen.";
break;
    case("582"): $alarm_text="Vorratsbehälter ist leer. Pellets nachfüllen. Brenner wird gesperrt.";
break;
    case("590"): $alarm_text="Kessel und Brenner reinigen. Reinigung bestätigen.";
break;
    case("591"): $alarm_text="Vorsicht beim Öffnen der Fülltür Fülltür mind. 15 sek. lang anlüften.";
break;
    case("595"): $alarm_text="Tür offen";
break;
}

logic_setOutput($id, 1, $result);
logic_setOutput($id, 2, $Aussentemperatur);
logic_setOutput($id, 3, $Warmwassertemperatur_IST);
logic_setOutput($id, 4, $Warmwassertemperatur_SOLL);
logic_setOutput($id, 5, $Kesseltemp_IST);
logic_setOutput($id, 6, $Kesseltemp_SOLL);
logic_setOutput($id, 7, $VORLAUF_HK1_IST);
logic_setOutput($id, 8, $VORLAUF_HK1_SOLL);
logic_setOutput($id, 9, $VORLAUF_HK2_IST);
logic_setOutput($id, 10, $VORLAUF_HK2_SOLL);
logic_setOutput($id, 11, $RAUMT_HK1_IST);
logic_setOutput($id, 12, $RAUMT_HK1_SOLL);
logic_setOutput($id, 13, $RAUMT_HK2_IST);
logic_setOutput($id, 14, $RAUMT_HK2_SOLL);
logic_setOutput($id, 15, $KESSELLEISTUNG);
logic_setOutput($id, 16, $ABGASTEMPERATUR);
logic_setOutput($id, 17, $HKP_HK1);
logic_setOutput($id, 18, $HKP_HK2);
logic_setOutput($id, 19, $WW_Ladepumpe);
logic_setOutput($id, 20, $MISCHER_HK1);
logic_setOutput($id, 21, $MISCHER_HK1);
logic_setOutput($id, 22, $PHASE);
logic_setOutput($id, 23, $MODUS);
logic_setOutput($id, 24, $VERBRAUCH_GES);
logic_setOutput($id, 25, $VERBRAUCH_FUELLUNG);
logic_setOutput($id, 26, $T_REINIGUNG);
logic_setOutput($id, 27, $T_HAUPTREINIGUNG);
logic_setOutput($id, 28, $T_WARTUNG);
logic_setOutput($id, 29, $BRENNERSTARTS);
logic_setOutput($id, 30, $BETRIEBSSTUNDEN);
logic_setOutput($id, 31, $BETRIEBSWAHL_HK1);
logic_setOutput($id, 32, $BETRIEBSWAHL_HK2);
logic_setOutput($id, 33, $alarm_text);
//print_r($Aussentemperatur);

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter

Sehr interessant!

How do you connect to the LON bus, physically?

Thanks, Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.