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
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?
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.
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.
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.
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.
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!
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
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
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!
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
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
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
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
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
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
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
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):
####################################################################
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
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
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
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
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
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
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
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
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
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
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
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...
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
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.
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.
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
1
$url=$E[2]['value'];// URL für Abfrage
2
$login=$E[3]['value'];// User vom LBS-Eingang
3
$password=$E[4]['value'];// Password vom LBS-Eingang
Hi
Tonight I hooked my oscilloscope up with my Biowin.
I've read the LonTalk Protocol Specification (see link below), and
section 35.7.3.2 of the processor SAM3X datasheet (see link below), the
processor of the Arduino Due that I intend to use as it has a Manchester
UART natively.
Based on info from these, and the oscilloscop measurements. I can
conclude that the Biowin only uses the LON-bus in the mode that LonTalk
calls "Special Purpose Mode". Because the BitSync is always a ZERO-ONE
preamble, and the ByteSync varies between 0 and 1. While the "normal"
usage of the LON bus specifies a number of 1's as the BitSync and always
only a 0 as ByteSync. Which did not happen at all when I was logging the
bus.
Well, that was the very first thing I noticed. I'll decode the data
retreived on the bus, to see how it matches the LonTalk specification.
It would be really exciting if it will be possible to hook an Arduino up
directly to the LON-bus :)
http://www.enerlon.com/JobAids/Lontalk%20Protocol%20Spec.pdfhttp://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11057-32-bit-Cortex-M3-Microcontroller-SAM3X-SAM3A_Datasheet.pdf
Thomas schrieb:> Hallo Peter>> Sehr interessant!>> How do you connect to the LON bus, physically?>> Thanks, Thomas
Garnicht, ich baue die Verbindung übers LAN zum Webserver (RC 7030)
direkt auf, und lese von dort die Daten ein!
Funktioniert nun schon seit einem halben Jahr einfach perfekt!
PETER
Hi pkuli6kg_KNXUF
Super script.
Ich bin gerade dabei meinen PuroWin auch mit PHP auszulesen.
Ich finde nur keine vollständige Liste meiner datapoints. Wie und wo
hast du diese bekommen?
Eine vielleicht nützliche Info für die API:
Bei der Mycomfort App unter Einstellungen/Geschütze Einstellungen findet
man eine DNS-Url wo man dann vom Internet aus auf den Ofen zugreifen
kann. Ist nur die Frage ob das von Windhager mitgetrackt wird...
Grüße
Hallo,
Ich habe keine vollständige Liste gefunden (Habe auch mit WH gesprochen,
die konnten mir so eine Liste auch nicht geben, obwohl sie sehr
hilfreich sind) - habe mir die Daten die ich auslesen wollte "einzeln"
rausgesucht aus dem Web-Frontend. Am besten den Wert suchen, und dann
mit Firefox "F12" Entwicklerkonsole die URL suchen (das ist dann ja
gleichzeitig der OID)
Die kannst du in meinem Script ja dann adaptieren, aber ich denke das
diese ähnlich sind, oder?
Ich habe gerade gesehen, dass mein Skript nicht vollständig hochgeladen
wurde, wenn du Hilfe brauchst kannst du mich gerne kontaktieren, und das
Skript schicken, habe die Tage gerade eben wieder etwas verbessert.
Wo verwendest du dein System? Hast du KNX Bus mit Visualisierung, oder
nur so?
peter.kulig(at)gmailDOTcom
LG PETER
Achja, ganz vergessen:
Ja die URL ist so wie du sagtest, bzw. ganz einfach:
https://MAC-ADRESSE.windhager-dns.com/api/1.0/datapoint
Zur Info, unter http://IP/api-docs/ gibt es eine Dokumentation, habe ich
gefunden, stehen einige Daten drinnen
Hier noch ein Code wie du Werte (zB. Raumtemperatur) ändern kannst:
1
$url=$E[2]['value'].'/api/1.0/datapoint';// URL für Abfrage
2
$login=$E[3]['value'];// User vom LBS-Eingang
3
$password=$E[4]['value'];// Password vom LBS-Eingang
Hallo Daniel,
hast du denn einen XLON-USB Adapter? Denn nur mit dem funktioniert die
Service SW.
Und selbst dann kannst du nur FW Updates bei den Modulen machen, und
nichts auslesen.
Hi,
nein ich hab das MES Modul mit ner Seriellen Schnittstelle an der Front.
Das ist ein original Windhager Teil, dass man vorne in einen Einschub
schieben kann. Damit kann man Daten auslesen mitloggen usw. Mein
Heizungsbauer hatte da ne Service Software die das alles angezeigt
hatte. Der hat die aber auch nicht mehr.
Ich kenne dieses Teil, das war bei mir auch schon mal im Einsatz.
Die in diesem Beitrag oben erwähnte Service Software hat aber nichts mit
dem MES Modul zu tun. Die dient, mit dem XLON-USB zusammen, "nur" zum
updaten der Modul FW und zum tauschen der Hauptplatine des Kessels
(sichert ein paar Parameter, und restauriert diese auf der neuen
Baugruppe).
Für das MES Modul muss es eine extra Software geben, die aber nicht auf
den Seiten von Windhager zu finden ist (und ich auch nicht habe).
Ah ok. Das dumme ist, dass ich die Software schon mal hatte. Leider aber
nicht mehr finde. Vor 8 Jahren, als die Anlage eingebaut wurde hat mein
Heizungsbauer mir die gegeben. Ich denke der Einschub ist nicht viel
mehr als ein LON-UART adapter (obwohl da ganz schön viel Bauteile drauf
sind).
Ich frag nochmal meinen Heizi...
Hallo zusammen,
ich hatte den thread vor einigen Jahren mal gelesen und damals erschien
mir das alles noch recht aussichtslos. Ihr seid mittlerweile ja wirklich
erfolgreich. Ich habe auch seid einigen Jahren einen Windhager Biowin 2
im Einsatz, der direkt an den Heizkreis angeschlossen ist. Um die
Brenndauer zu verlängern, würde ich gerne die Warmwasserladung nicht
mehr mit dem Wochenprogramm durchführen. Sobald es zu wenig Abnahme
durch den Heizkreis gibt und die Kesseltemperatur richtung Maximalwert
steigt, sollte die Warmwasserladung starten, bevor der Kessel in
Ausbrand geht. Dazu müsste ich die aktuelle Kesseltemperatur auslesen
(ich konnte auch einen Temperaturfühler am Vorlauf des Kessels montiren)
und das wichtigste, ich müsste die manuelle Warmwasser Ladefreigabe
emitieren. Gibt es dazu einen API Befehl?
Hardwareseitig habe ich einen Loxone Smart home Server, der über einen
virtuellen Ausgang den API Befehl senden könnte.
Zur Verbindung mit dem Lon Bus müsste ich dann noch einen Windhager
Webserver kaufen!? Den Webserver (RC 7030) scheint es wohl nicht mehr zu
geben, sondern nur noch den Webserver Touch um gut 400Euro.
Auf der Platine des Pelletkessel selbst wird es vermutlich keinen
"Eingang" geben um eine Warmwasserladefreigabe von extern auszulösen!?
Hallo Martin,
mit "meiner" Konfiguration (siehe Bild), mit dem XLON-USB Adapter, kann
ich inzwischen nicht nur alle Werte aus dem Kessel und UML+ auslesen,
sondern auch verändern. Das beinhaltet auch zB. die Warmwasserfreigabe,
und auch das ändern der Heiz-/WW-Programme.
Aber alles nur über den XLON-USB mit den im Bild zu sehenden DLL auf
Windows Basis.
Wenn eine andere Möglichkeit der LON Kopplung/Steuerung vorhanden ist,
kann ich die LON "Befehle" liefern, die bei meinem VarioWin mit UML+
verwendet werden.
lg. Peter
Hallo Zusammen,
da ich an dieser Steuerung schon eine Weile interessiert bin, habe ich
eine Frage an die Gruppe.
Bei mir läuft ein WH Genio 210 Gasbrennwertgerät mit MES Steuerung, gibt
es da eine Möglichkeit die fernzusteuern?
Über Antworten würde ich mich freuen.
LG aus Österreich
Rudolf
Hallo Rudolf,
wenn du in deiner MES Steuerung ein UML+ Modul hast (da sind keine Poti
zum einstellen drauf im Unterschied zu einem alten UML), dann sollte es
möglich sein.
Dann brauchst du eine LON Schnittstelle (zB. den oben genannten XLON-USB
Adapter, aber teuer), und eine passende SW dazu.
Die Befehle und Steuermöglichkeiten für Pellets Kessel sind mir schon
bekannt, für Gasgeräte nicht. Da müsste dann noch einiges an „Forschung“
gemacht werden.
Peter
Hallo Peter,
danke für Deine schnelle Rückmeldung. Es dürfte eine UML+ Steuerung
sein, aber die Preise für die Schnittstelle sind ziemlich heftig. Da
werde ich wohl passen, der Kessel ist auch schon 15 Jahre alt und
eigentlich sehr zuverlässig. Für die Bastelei mit einer Steuerung fehlt
mir dann auch die Geduld.
Vielen Dank auf alle Fälle.
LG Rudi
Hallo Forum,
ich habe den Thread gefunden, da ich auch auf der Suche bin, Daten aus
den Modulen/dem Bus auszulesen zu können und idealerweise in meinen
ioBroker oder sonstiges einzubinden. Zur Zeit laufen bei mir eine
ioBroker Instanz und 2 Homebridge Instanzen. Hintergrund ist, dass die
Heizung PMX150 seit einiger Zeit verrückt spielt, mir aber niemand
wirklich weiterhelfen kann. Vielleicht kann ich ja auf diese Art und
Weise herausfinden, ob bzw. welches Teil der Anlage nicht richtig
arbeitet oder nicht richtig eingestellt ist.
Meine Heizung besitzt 2 UML-C1 Module (1xHeizkörper, 1xFubo) mit jeweils
einem FB5210 Bedienteil, daneben befindet sich ein leerer Einschub.
Wäre für weiterführende links zu benötigter Hardware/Software sehr sehr
dankbar...
Danke schon mal im voraus
Gerald
Roman B. schrieb:> Hallo Zusammen,>> leider habe ich mit dem Adapter noch nicht geschafft... Mein Urlaub war> zu kurz.> [...]> Viel Spaß,> Roman
Hi Roman,
ich habe Deinen ioBroker Adapter für meinen BioWin2 Kessel installiert.
Die Verbindung der Instanz zum Kessel klappte sofort und alle
Datenobjekte wurden angelegt. Super!
Ich habe aber den Effekt, dass die Werte vom Kessel in ioBroker nur
aktualisiert werden, wenn ich vorher einmal die myComfort App öffne oder
vorher den Wert direkt auf der Webpage des Kessels vorab einmal aufrufe.
Wie ist dieser Effekt zu erklären? Für die VIS sollte ioBroker selbst
regelmäßig die Werte in der Steuerung aktualisieren und abrufen. Habe
ich einen Schritt in der Einrichtung vergessen?
Danke für die tolle Arbeit, hoffe auf einen Tipp 🙂
Viele Grüße
Felix
Ich würde die Spezialisten aus dem Mail-Betrag bitten, mir alle
Unterlagen zum LONBUS, openLDV etc. zu senden, mir fehlen noch ein paar
Puzzlesteine im CNIP-Protokoll bzw. Layer 2, gern auch per p.M.
Danke
Windhager PMX Probleme mit der Hauptplatine.
Hallo,
ich bin bei der Internetrecherche hier auf diese Seite gestoßen.
Nun zu dem Problem, ich habe mir eine 2 Platine auf Reserve gekauft
welche auch funktioniert hat.
Da ich halt ein neugieriger Menschen bin habe ich den Flashspeicher Mal
rausgebaut.
Jetzt geht die Platine leider nicht mehr, sie zeigt bei P 1 "0" anstatt
der "75" Grad an. Auch die Anzeigephasen usw. sind weg.
Funktionieren tut sie allerdings im Handbetrieb.
Frage, habe ich durch den Ausbau des Flashspeichers da was gelöscht und
kann man das wieder neu programmieren?
Wäre schön wenn mir da vielleicht jemand weiter helfen könnte.
Grüße Michael
Hallo Peter,
ich hoffe dass Sie mir vielleicht irgendwie weiter helfen können.
Ich habe eine Windhager PMX 150 Pelletheizung.
Ich habe mir eine 2 Platine auf Reserve gekauft welche auch funktioniert
hat.
Jetzt habe ich da den Flashspeicher Mal raus/ getauscht und nun sind da
denke ich teilweise Daten weg (meine laienhafte Meinung)
Frage an Sie, kann man die irgendwie neu programmieren oder kennen Sie
jemanden der das kann, ich möchte halt die Platine nicht schon wieder
entsorgen müssen.😕
Wäre schön wenn Sie mir vielleicht weiter helfen könnten.
Ansonsten Grüße
Michael
Hallo, ich habe 2 x PMX welche über 20 Jahre alt sind.
Da die Kessel leider doch öfters auf Störung gehen wäre mein größter
Wunsch eine Web App zu haben wo ich die jeweiligen Status des Kessel
sehen kann. Da Windhager für diesen alten Kessel selber keine
Möglichkeit einer Anbindung bietet muss selber etwas gebaut werden.
In Bezug auf Mikroelektronik bin ich zwar sehr interessiert aber leider
unerfahren, meine Vorstellung wäre gewesen beim Steuerungsdisplay
(Raumthermostat) dort die Daten abzufangen.
Könnt Ihr mir ein Tool bauen (bzw. habt ihr das ja schon?) was ich
einfach nur irgendwo anhängen muss um damit die Daten auszulesen?
Aufbauend auf dieses Tool einen Webserver wo man eben die Stats dann
sehen kann?!
Zahle gerne für eure Hilfe!
LG
Hallo an alle. Ich habe einen DuoWin180 und würde den überhaupt erst mal
gerne Netzwerkfähig machen. Dazu wollte ich mir eigentlich den Webserver
RC7030 organisieren. Doch den gibt es von Windhager nicht mehr. Dafür
gibt es jetzt einen Webserver touch. Doch damit tut sich mein
Installateur irgendwie schwer und Windhager selber will für die Hardware
und die Installation knapp 1000€ (wovon 420€ schon alleine der neue
Webserver kostet). Das ist mir aber etwas zu happig. Und an Privatleute
verkaufen die das Teil ohnehin nicht. Also falls hier irgendjemand
zufällig den RC7030 noch rumliegen hat und diesen für einen fairen Kurs
abgeben möchte wäre ich da sehr interessiert daran.
Gruß René
Michael S. schrieb:> Hallo Peter,> ich hoffe dass Sie mir vielleicht irgendwie weiter helfen können.> Ich habe eine Windhager PMX 150 Pelletheizung.> Ich habe mir eine 2 Platine auf Reserve gekauft welche auch funktioniert> hat.> Jetzt habe ich da den Flashspeicher Mal raus/ getauscht und nun sind da> denke ich teilweise Daten weg (meine laienhafte Meinung)> Frage an Sie, kann man die irgendwie neu programmieren oder kennen Sie> jemanden der das kann, ich möchte halt die Platine nicht schon wieder> entsorgen müssen.😕> Wäre schön wenn Sie mir vielleicht weiter helfen könnten.> Ansonsten Grüße> Michael
Hallo Michael,
du musst die Platine nach einem firmware update/ flashtausch erneut an
den LON-Bus binden. Links auf der Platine ist ein Taster, gedrückt
halten zum Entbinden, erneut drücken zum Binden (genau wie bei den
anderen Modulen).
Achtung: Wenn Du den Kessel ohne Bindung im Handbetrieb benutzt hängt
die Kesselpumpe aber immer noch auf dem BUL Modul! Das schaltet die
Pumpe einfach ab wenn der Speichesollwert (+6K) erreicht ist. Dann
brennt dein Kessel ohne Kesselpumpe ... Fukushima....
Hallo auch von mir zu dem scheinbar einzigen Thread im WWW, der sich mit
dem Abgreifen von Daten eines Windhager PMX150 befasst (ja, alte
Technik, läuft aber).
Da hier mittlerweile nach meinem Verständnis alte (PMX150 mit UML C1),
neuere (mit UML+) und ganze neue Systeme (BioWin mit Webserver)
vermischt sind, würde ich gerne :-) nochmal speziell auf die Thematik -
PMX 150 mit UML-C1 über LON auslesen - kommen.
Ich verstehe, für den PMX150 mit UML-C1 benötigt man
- den XLON-USB Adapter, um physisch überhaupt zugreifen zu können
- nicht die Windhager Service Software, da nur zum Eeprom auslesen etc
- mit dem richtigen Programmcode kann man aber die Daten über den LON
lesen und schreiben
Jetzt hänge ich nur an dem Thema Programmcode?! Geht dies bereits mit
den vom XLON-USB Adapter mitgelieferten Windows dll? Linux wäre mir auch
lieber (falls da jemand etwas gemacht hat), dann könnte man das über
einen Raspi zur Weiterverarbeitung zur Verfügung stellen.
Kann mic da jemand auf die richtige Spur bringen?
Grüße
Marc
Hallo Marc,
ja, neben dem XLON-USB Adapter und der mitgelieferten Windows DLL
brauchst du noch eine weitere DLL (zB. aus der Service SW).
Und noch ein Programm, dass dann die Daten ausliest/ändert (von mir, als
VB.NET zu haben).
Leider gibt es die beiden DLLs halt nur für Windows. Da wird die ganze
Steuerung des XLON-USB darin abgehandelt.
Da ich keine Source für die XLON-USB DLL habe, wäre es schwierig das
Ganze auf Linux nachzubauen.
Peter
Hi Peter,
danke für die schnelle Rückmeldung.
Okay, da ich die "weitere DLL" nicht habe und, was im Moment schwerer
wiegt, keinen WinPC im Ferienhaus laufen lassen möchte nur um die
Heizung zu schalten, schiebe ich das Thema erstmal für unbestimmte Zeit
nach Hinten.
Habe aktuell die Betriebsartweiterschalttasten unserer 2 Bedienterminals
angezapft, so dass ich darüber mit einem Relais einen Tastendruck
auslöse. Die Relais steuere ich über eine ioBroker Installation auf
einem Raspi an, die Kamera des Raspis zeigt dabei die Anzeige des
Bedienterminals. Dann greife ich von Extern über VPN zu.
Ein klassisches "Durch die Brust ins Auge" Setup aber funktioniert
zumindest, um die Betriebsarten der Heizung durchzuschalten :-)
Und: lieben Dank für dein Angebot der VB.NET Ergänzung!
Grüße
Marc
@g3gg0
Hammer! Habe es gerade angeschaut, Wahnsinn!
Du hast ein fertiges Modul entwickelt, an dem Windhager weder Zeit noch
Lust hat etwas zumachen.
Klasse!
Werde mir das in einer ruhigen Minute nochmal durchlesen - und sicher
mit Fragen kommen :-)
Verstehe ich es richtig, dass ich einen freien Steckplatz im PMX
brauche? Bei mir sind alle drei Felder belegt...
Marc
Servus,
Danke für das feedback :)
Ja, du brauchst einen freien Steckplatz. Aber du kannst das auch sicher
fliegend verdrahten.
Schnapp dir einen ESP32, RS485 transceiver und einen step-down auf 5V.
Dann die LON-Leitungen anzapfen und das sollte auch reichen.
Eigentlich sogar in der "dead-bug"-Methode auf einem ESP32 Devboard
machbar.
Im Grunde ist das ein einfacher Aufbau. Ich wollte es nur "solide" und
hab das deshalb als MES-Modul aufgebaut.
Gruß,
g3gg0
Ja, am Ende vom LON Bus einfach dranhängen, das dachte ich auch.
Deinen Schaltplan hatte ich auch schon gesehen, danke!
Muss wirklich mal in Ruhe das anschauen, ob meine Basisfähigkeiten in
Elektrotechnik ausreichen ;-) Ja, sicher ein Zeit Thema, aber mal
schauen.
Und dann benötige ich bestimmt noch ein Stück Software, um das ganze in
MQTT geliefert zu bekommen. Ich kenne zwar den ESP32 prinzipiell, aber
nicht in der eigenen Anwendung.
Übrigens: Wenn in deinem Block irgendwo der Tag PMX150 oder Windhager
gesetzt wäre, vielleicht wäre ich früher darauf gestoßen? Weiß nicht,
warum Tante Google das nicht ausgespuckt hat?!
Marc
Okay ich hab mal PMX150 reingepackt, sollte dann irgendwann besser
gefunden werden. Danke :)
Die Software dafür ist auf github. Einfach WiFi-Daten angeben und
MQTT-Server aktualisieren.
Eigentlich(TM) musst sonst nichts mehr ändern.
Gruß,
Georg
Georg H. schrieb:> Hallo zusammen,>> vor geraumer Zeit habe ich eine eigene Platine dafür gebastelt.
Hallo Georg,
da hast Du ja ein Super-Projekt gebaut. Ich hatte auch schon länger mal
überlegt, die Steuerung der Heizung von außen zugreifbar zu machen. Aber
mir war bisher der Aufwand, den LON-Bus "zu Fuß" zu beackern dann doch
immer zu hoch. War ein Mix aus knapper Zeit und Bequemlichkeit. Daher
Hut ab für die Arbeit. Dein Artikel über den Bau des Moduls ist schon
klasse. Auch die Elektronik sieht professionell aus. Da juckt es direkt
in den Fingern, sich da mal ranzusetzen und das nachzubauen. Ich muss
dann nur noch den Wlan-Teil auf Kabel umbauen, da am Standort der
Heizung (Keller) kein Wlan mehr ankommt. Aber das sollte dann auch
machbar sein.
Grüße
Horst
Hallo Horst,
danke für das Kompliment. Ich finde der Platinenteil hat auch sehr viel
Spaß gemacht.
Bei den Steckkarten hat man auch gefühlt unendlich viel Platz :)
Wenn du einen Ethernet PHY an den ESP32 hängen willst, sind glaub die
LON-Leitungen (GPIOs 25, 26, 27) im Weg.
Die müsstest dann umlegen auf z.B. 12, 13, 14.
Falls du an einen anderen µC gedacht hast - mit der aufwändigste Part
war glaub das Bit-Timing.
Die Daten sind Manchester-kodiert und beim Sync-Pattern am Anfang kommen
manchmal mehr oder weniger Transitionen.
Wäre eigentlich auch gut mit nem kleinen FPGA lösbar - dann wäre auch
das Empfangen langer Nachrichten fehlerfrei machbar.
Der Arrow MAX1000 ist ein top Teil, sehr empfehlenswert.
Das wäre dann ein ideales USB<->LON Board mit vielen extra IOs :)
Gruß,
Georg
Absolutely fabulous @g3gg0 !
I have been working on the same thing as you, but you are way ahead of
me.
I had begun to setup an ESP32 based M5stack with an old MAX1480 RS485
driver I had laying around, to start decoding the LON-bus.
But now that you have already decoded it, I downloaded your code and
made some small changes since I have very little knowledge about MQTT,
Grafana and Pushingbox.
And now it is up and running, I use the LCD of the M5 and also setup a
small Web-server on the M5 instead, so I can easily access the
information from the web just for trying out now.
I guess I need to learn about MQTT, Grafana and Pushingbox :)
I have a Windhager Biowin Exklusiv, that I would like to monitor and
control.
So I am very interested in further exploring the LON-bus protocol and
all the messages, also how to send messages.
I noticed however I got some strange value on abgastemperatur with your
code, the result was 1365, when the actual temp was 74, and then the
same 1365 when the actual temp was 104.
Here is a document I found that lists nv-variables. I have no idea if
Windhager complies with these, but I guess the do.
https://www.exhausto.com/~/media/Global/Technical%20Documents/Manuals/3005290.pdf
Ciao, Thomas
Horst V. schrieb:>> Hallo zusammen,>>>> vor geraumer Zeit habe ich eine eigene Platine dafür gebastelt.>> Hallo Georg,>> da hast Du ja ein Super-Projekt gebaut.
Also dem kann ich mich nur anschließen - ein tolles Projekt! Ich möchte
meine Windhager MultiWin 100 Gastherme darüber auslesen, habe genau wie
du noch einen Steckplatz in der Regelung frei.
Nachdem ich eher der "Softwerker" bin, wollte ich die Platine schon
bestückt bei JLCPCB bestellen, leider scheitert es daran, dass manche
Bauteile wie z.B. der TPS2113APWR im Moment nicht verfügbar sind.
BTW, I hooked my MAX1480 up on a plain breadboard, attached it to the
M5Stack and to LON-bus "Phoenix"-type connectors inside the burner. Very
simple and works like a charm.
I power the M5Stack from a normal USB-charger/adapter.
Servus,
freut mich dass es euch hilft. Stell aber bitte sicher, dass das pinout
zu deiner Anlage passt :)
Ich habe keine Ahnung ob es hier relevante Unterschiede gibt und etwas
abrauchen kann.
Ich glaub zwar nicht, aber im Zweifel dann doch lieber erst mal von Hand
aufbauen und nur LON anzapfen.
Der genannte TPS2113 ist mit das Unwichtigeste auf dem Board, kannst
also
getrost weglassen und pins 6-8 Brücken.
Ich hab ihn als Sicherheit mit drauf, dass der onboard 5V step down
nicht meinen Laptop mit Strom speist, falls hier mal
paar hundert mV unterschied wären.
@Thomas:
I assume you can read german, being on the forum here? If not, just
tell.
Super, dass das bei dir geklappt hat.
Bin mir aber nicht sicher ob die NV Variablen deckungsgleich sind.
Ich empfehle dir, mit Wireshark und dem dissector, den ich auch in
meinem blog habe,
die ganzen Nachrichten mitzulesen und den dissector etwas zu erweitern.
Per default werden alle LON-Botschaften auf port 3333 an die
broadcast-Adresse 192.168.1.255 geschickt.
LON.ino:8 const char * udpAddress = "192.168.1.255";
Ich glaub ich stelle den auch in ein repository, dann kannst du deine
Änderungen auch mit einpflegen. (wenn du möchtest)
Gruß,
Georg
Hi Georg
Great thanks!
I had to swap all IO's to fit the M5stack, but that was the easy bit ;)
One quick question finally for tonight.
Does your software broadcast all LON-messages to wifi 192.168.1.255 as
it is setup now?
So I can just setup your wireshark LUA and go?
That is, again, fantastic if so!
Oh yes, I read german, sehr slecht, aber mit Google translate alles get
:)
Bis morgens :)
Yes, it's automatically broadcasting all received packets.
If you send a LON frame in an UDP packet to <esp-address>:3334 (or even
broadcast), then the firmware will send that frame raw on the LON bus.
Using that in a C# software to poll all NVs of a given address (10, 11
or 60 in my case)
Für die C# hacker.
Das ist der EXPERIMENTELLE C# code, mit dem ich die NVs testweise
visualisiert hab.
Sehr hässlich, dessen bin ich mir bewusst :)
Nächster Schritt - sauber in Klassen kapseln:
- network layer
- device instance
- visualization
Noch ein quick'n'dirty Form1.cs code
Anderes Thema:
Ich parse aktuell die NV-IDs, deren Name und den Datentyp aus der
PMX_A3_V270.XIF, die ich mal gefunden hab.
(Firmware version v2.70 mit den notwendigen Extradaten)
Weiss jemand, ob diese Datei auch irgendwo für ein UML C1 verfügbar ist?
Oder hat jemand Firwmare für andere für Modelle?
Gruß,
Georg
Herzlichen Dank Georg und Thomas!
Ich werde wie vorgeschlagen "klein" anfangen - nun warte ich auf den
RS485 Chip.
Ich habe selbst auch ein UML C1 und ein WVF wie Peter viel weiter oben
im Thread. Mit dem hattest du wahrscheinlich schon Kontakt Georg?
LG Michael
Hi
Great little LUA-script :)
I ran Wireshark and got the attached log.
I have sources 2, 10, 60 and 90 in my system.
I am getting quite a lot of messages with Error code: 2 (Bit time too
short)
Messages with source 90 always have destination 60.
There are some few source 60 with destination 90 and some with
destination 127 that reports a RESPONSE, network variable fetch and a
value, but most messages with source 60 has no destination. Those
reports the Kessel temperature.
Src 10 sends four different messages
Date/time, (no destination)
Aussen temp, (no destination)
Vorlauff soll HK temp, (no destination)
RESPONSE, Network variable fetch, (destination 127)
None of the messages between 60 and 90 decodes the TPDU (not
implemented).
Messages with Src: 2 reports as UNKNOWN, but there are only three
different messages that re-occur:
Selector: 24, 96 or 128,
Value: 00, 7fff or 01 respectively
So I assume the Src address matches the following
Main PCB, Src: 60
Display, Src: 90 (?)
UML C1 module, Src: 10
WVF module Src: 2 (?)
I guess it should be possible to get quite some further info by
analyzing the traffic while operating the display to read out different
info and to set various stuff to send messages from the display to
request certain info. But I am not at the burner right now so this is
what I could get remotely.
Hello again
I could see from the system report I have around 40% CRC Errors. I might
need to check up my physical connection to the LON-bus, or investigate
if I have something else causing poor signal integrity.
I got some help scrolling through the information on the boiler display
while I was logging with wireshark, it definitely generated a lot of
unknown requests and failed responses, so I guess that should be able to
generate som good info to add going forward.
But more on that tomorrow.
I guess ID 127 is the ESP-module, and the responses I see without
requests sent to 127 are responses to requests from the ESP32?
And this is where the ID is set in the ESP32 code?
RMT.conf_ch[channel].conf0.val = 0x01271050;
Thomas schrieb:> I could see from the system report I have around 40% CRC Errors. I might> need to check up my physical connection to the LON-bus, or investigate> if I have something else causing poor signal integrity.
Uh thats bad,
So there is really something odd
> I guess ID 127 is the ESP-module, and the responses I see without> requests sent to 127 are responses to requests from the ESP32?>> And this is where the ID is set in the ESP32 code?>> RMT.conf_ch[channel].conf0.val = 0x01271050;
LON.ino:627 uint8_t nvVarCommand[] =
"\x01\x19\x01\xFF\x01\x80\x54\x0D\x73\x00";
that \xff is a \x80 OR \x7F, where \x7F is the source address.
I think in the receiving code I do not check the destination address,
so you should be able to change it if you need to.
Hmmm this is very strange, it looks like I have a much narrower
variation in bit length than you do.
My variation is 0,6 us and 0,8us
While yours is about 15 us and 12 us. Which is a full bit length at
78kbaud, which is also a bit strange I think.
Still 100% of my errors are "Bit time too short"
With a min bit length of 12,55us there should be no "Bit time too
short", right?
Bit length 0 min: 251(12,55us)
Bit length 0 avg: 251(12,55us)
Bit length 0 max: 263(13,15us)
Bit length 1 min: 508(25,40us)
Bit length 1 avg: 509(25,45us)
Bit length 1 max: 524(26,20us)
Packets received: 117
Packets CRC Errors: 53 (45,30%)
Message type: 2 (LON Frame)
Error code: 2 (Bit time too short)
Bits sampled: 20
Bit duration: 511(63,88us)
Yeah your values look okay.
Maybe some other disturbances?
Would be interesting to see with a scope.
I posted the statistics for more than two months of packets.
And as there are known "bugs" like long packets being troublesome, these
statistics may come from these.
Well, sometimes sloppiness causes extra unnecessary work.
If you look closely at the photo of my breadboard above, you will notice
I forgot to add power line capacitors. Now it works fine :)
Yeah one tick is a bit low.
Thats the reason why it signals a corrupted packet.
Ich hab mittlerweile die C# sourcen überarbeitet und eine GUI gebastelt.
Leider erst mal hardcoded auf 192.168.1.255 als Adresse. (bis ich einen
Optionsdialog einbaue)
Zwei Features:
- Passiver Device Scan (die Lupe), dann rechtsklick auf ein device zum
aktiven scannen
- Aktiver NV Scan (das Plus), ein Gerät (hardcoded 10, 11 und 60) aktiv
scannen
https://g3gg0.magiclantern.fm/LON/
Ok, now I am getting somewhere.
Attached is a request from the display for operating hours and the
response from the main board. Reported operating hours on the display is
38426 hours.
And the response has the payload 0x961a which equals 38426 :)
Now all I need to do is go through all the rest, and learn how to get
everything into the sw :)
It says now "Generic application message #11"
And then shows 010B961A
Where I believe the 010B is a message info rather than the parameter
requested.
I noticed the request is 020B, and then the response is 010B.
I have seen several requests where the request "payload" is 02nn and the
response is always 01nn. Where nn is the same in both, so I guess nn is
what specifies which parameter is requested, and responded.
Hallo Georg
nochmals - herzlichen Dank für deine unglaubliche Arbeit, sowohl für den
ESP-Code als auch den Dissector.
Ich konnte nun erste Werte vom LON-Bus abgreifen. Spannend sind für mich
auch die NVs von Source 2 - ich nehme auch an, dass das das WVF ist.
Georg H. schrieb:> Ich hab mittlerweile die C# sourcen überarbeitet und eine GUI gebastelt.> Leider erst mal hardcoded auf 192.168.1.255 als Adresse. (bis ich einen> Optionsdialog einbaue)>> Zwei Features:> - Passiver Device Scan (die Lupe), dann rechtsklick auf ein device zum> aktiven scannen> - Aktiver NV Scan (das Plus), ein Gerät (hardcoded 10, 11 und 60) aktiv> scannen
Könntest du bitte gelegentlich die IP-Broadcast-Adresse änderbar machen
und das Device 2 ergänzen?
Dankeschön!
lg Michael
Hab das Tool aktualisiert.
Beim Start erstellt er jetzt ein config file. Bitte das editieren.
Hier kannst du die broadcast (*) IP ändern und auch die NVs des WFV
anpassen,
sollte ich da ein Feld oder einen Typ falsch definiert haben.
Hab von dem die Infos zugeschickt bekommen: (danke!)
1
SW Name = WVF
2
SW Version = V 3.51
3
SW Date = 20.01.03
(*) Kommunikation scheint wirklich nur per broadcast zu klappen.
Muss ich mir mal genauer ankucken, dachte eigentlich das geht auch wenn
man die IP direkt nutzt.
EDIT:
Wie sehen deine Statistiken so aus?
Hallo!
I have been working intensely on my system, when I have time to spare.
I am now analyzing the bus on my Biowin, and it seems the data
transferred on it does not follow any of the data in anything reported
so far, except for the LON-protocol of course. But none of the data I
have extracted matches the addressing and NV's I've seen.
I have extracted most of the information that is available in the Info
section of the Biowin control display, and some of the stuff in the
Operator and System menu.
I am working on setting up a web-server on the ESP32 that will report
the data, and will also offer to adjust some settings.
I will use a setup that doesn't require any specially made electronics.
Just two parts that can be bought for a low cost online and connects
directly to the LON-bus in the burner.
I'll keep you updated on my progress.
Thank you Georg for the update LONScanner and the source.
I see that the scanner reports one value for, for instance, NV 23.
But when I filter on NV23 in messages from Src 60 to Dest 90 in
Wireshark on my system, I get at least 6 messages with different types
of payload. One of those is the current "Leistung", another one is the
Burner model, in my case 150, and it is reported in ASCII charactares so
can actually be read in the ASCII column. It is the only data so far I
have found being reported in the ASCII format.
Then there are some that I have not decoded yet, but I am pretty sure
two of them are the auger feed, actual and range. I just need to figure
out how the data in them are coded.
But nevertheless, it seems like there are several different types of
data reported under the same NV number. I'll attach a wireshark file to
this message so you can have a look.
Third packet is Leistung, reporting 100%
Forth packet is Model, reportin 150
BTW, one of the most interesting things to find out, is of course
information about the different alarms in the system.
Does anyone have any information on those?
And now I noticed it looks like I get the same parameter reported under
different NV's as well.
Like the Leistung 100% is reported both on NV 22 and on NV 23
I made a quickie and included the two hex-dumps for those two packets.
0000 ff ff ff ff ff ff 24 6f 28 8f cf 50 08 00 45 00
0010 00 30 02 54 00 00 ff 11 34 f5 c0 a8 01 24 c0 a8
0020 01 ff ea 42 0d 05 00 1c 10 15|02 00 70 00 00 02
0030 00 19 01 bc 01 da 54 22 0b 01 0a c8 94 48
^ ^
nv 100%
0000 ff ff ff ff ff ff 24 6f 28 8f cf 50 08 00 45 00
0010 00 30 02 5a 00 00 ff 11 34 ef c0 a8 01 24 c0 a8
0020 01 ff ea 42 0d 05 00 1c 66 43|02 00 70 00 00 02
0030 00 19 01 bc 01 da 54 23 0b 01 0a c8 3e 19
^ ^
nv 100%
As you can see above the whole LON packet (starting at |02 looks the
same, except for the NV nr and the CRC.
I am under the impression that it is the 0b 01 0A sequence that relates
to what parameter is in a packet.
Sorry, what I noted as NV above is not NV, it is the TPDU Type and
Format.
and the 2 and 3 and 22/33 is the Trans_no.
It is not any NV at all that is being sent in those messages. It is just
a TPDU including and APDU only as far as I have understoond, up to now.
The thing is, the LONScanner only shows NV's, so that's what I used as a
base. But I have now realized all this information seems to be
incorrect, at least in my system. Nothing what is reported in the
LONScanner actually matches those parameters in my system.
My system seems to be using only the SPDU/APDU generic application
messages, Request/Response where all information is in the APDU,
including the type of parameter, and perhaps also the length of the
packet, but that may also be implied by the parameter type. I have not
yet analyzed all the parts of those packages as I realized this just
yesterday.
But I have been able to decode a lot of parameter data from those
packages now, which is always the last parts of the message. So next
step will be to try to penetrate the header info of the APDU, which then
is Windhager, and maybe even Biowin specific. I will see if I can get
some time tonight to look into that.
Attached is a screenshot of a LONScan of my system.
Thanks for the link.
Could not remember where I got my PDF from ;)
Yeah that point was clear.
Just wanted to give hints as you went through manually dissecting the
payload.
The APDU really just starts with 1 or 2 bytes (depending on the first
bits, see Figure 10.2)
followed by the payload of that specific NV.
I have a list of NVs for:
WVF V 3.51
InfoWIN FW V 2.60
FireWin V 3.10
PMX v2.7
UML C1 V 3.51
VarioWin (?)
Ok, so I looked a bit more into the NV's trying to understand them
Attached are two screenshots, one from the LONScanner showing NV 0x0D
and one from the Wireshark showing the corresponding LON packet, with a
selector of 272.
A couple of questions
1. How do we know that selector 272 corresponds to Kessel temperature,
or has that been "reversed engineered from an actual system"?
2. How do we know that selector 272 corresponds to NV 0x0D?
There are some Parameter/NV-lists around for some Windhager burners and
"nodes" like firewin, variowin and UML C1 or WVF, as above in the thread
as well, and as I understand the lists differ from product to product.
Where do these lists come from or how are they extracted? Can I find or
generate one for my Biowin?
In the analysis of my system I have noticed Requests from the Infowin
are sent as SPDU/APDU Requests and responded in the same way, not using
the NV index or selector. There are also some less frequent TPDU
messages with specified destinations.
Thanks Georg for the help and support.
I have now looked more deeply into the ESP32 code and started adding
code for sending and receiving generic application messages, as I have
found how to retreive many of the parameters I am looking for that way.
Right now things are presented via a webserver on the ESP, so it's easy
to add stuff and get some debug info remotely as well.
> How do we know that selector 272 corresponds to Kessel temperature,> or has that been "reversed engineered from an actual system"?
Got a lot of information from another user, that helped
in understanding how that stuff generally works.
As it is already a few years back, I fear that I mix up a bit.
(especially the terms)
But basically what I remember was:
I got information for an other windhager device (VarioWin) which NV
selector for these broadcasts have which meaning.
Also got text files that explained the NV ID (for the request via SPDU)
have what meaning.
(e.g. a PMX_A3_V270.XIF file)
And matching the exact NV Selectors against the NV ID I did via
comparing values.
Not sure how much (if any) was already matching and how much I had to
find on my own.
As I usually do things from scratch, It was still quite a lot.
Thomas schrieb:> There are some Parameter/NV-lists around for some Windhager burners and> "nodes" like firewin, variowin and UML C1 or WVF, as above in the thread> as well, and as I understand the lists differ from product to product.> Where do these lists come from or how are they extracted? Can I find or> generate one for my Biowin?
These are the ones I also got.
Wonder if someone has some more .XIF files.
> In the analysis of my system I have noticed Requests from the Infowin> are sent as SPDU/APDU Requests and responded in the same way, not using> the NV index or selector. There are also some less frequent TPDU> messages with specified destinations.
Yeah, you can "wait" for a broadcasted APDU or query it via SPDU.
I just remembered that you also can read the NV config from the device.
The "ID" I mentioned before is just an "entry number 0 to n" and the
device
has a table that contains various information.
Here is the result that I got right now for this test on a PMX150:
As you can see, the ID 272 matches "15# WET_nvoTist" and 257 matches "7#
nvoError".
Thats also a possibility to get the mapping.
Will add this as a GUI in my tool the next days. First without the
possibility to edit ;)
Ahhh cool. Now i know how to set the current time.
Just broadcast it as network variable 0x100.
So simple... Wanted to have this for years now.
Good that we talked about that.
Ich habe die Zeit der PMX und der beiden UML gesetzt indem ich die
network variable 0x100 entsprechend gesetzt hab.
Die jeweiligen Geräte haben jetzt auch (laut ihrer NV) auch die Zeit
übernommen. (yay!)
Nur das Bedienmodul - genauen Typ weiss ich jetzt nicht, sieht aus als
wärs eine Windhager MES D-Bedienmodul FB 5210 - das ja
meinem Verständnis nach eigentlich die ganzen Vorgänge steuert, hat die
Zeiten nicht übernommen.
Jetzt hab ich noch auf haustechnikdialog was gefunden, wie das Protokoll
aussieht.
Weiss jemand ob diese Bedienteile per Routing am LON erreichbar sind
oder ist das was freifliegendes?
Ansonsten muss ich mal schauen ob die UML was in der routing table
stehen haben :-/
Ok, so when I send the command 8 I get the selector and config table
index, but how/where do I get the table itself so I can map these
values?
I tried some memory reads to see what I could find, but nothing sensible
in the first few tries.
No, there is a table in the neuron chip i posted above.
It has indices 0 to e.g. 55 which are the "NV Index" value we used to
fetch with the SPDU.
In this table it is written if this index is published on the bus.
Either if this node should send this index or if it should listen to and
fill the value of this NV with that data.
Also encoded there is the "NV Selector" that is being used.
And that selector is the one you see in the "broadcasted" NV messages.
Okay,
habs geschafft aus dem service tool alle .xif zu entpacken - sind 64
Stück.
Jetzt muss ich wohl einen Parser dafür schreiben um mir daraus die
config zu ziehen.
Dann werden alle hoffentlich alle Modelle unterstützt.
Thomas schrieb:> Hi>> Which service tool is this?> Is there an .XIF file for the Biowin? Could you please make it available> to me?> Thanks!
If its okay, you can read the LonScan.cfg which contains the necessary
information.
Servus,
freut mich dass es klappt! :)
https://github.com/g3gg0/LonScan/releases/tag/v0.2.2
Noch ein Update für die etwas experimentierfreudigeren unter uns.
PacketForge, um pakete selber zu bauen.
Noch muss man die Hex-Daten editieren, aber ich habs vom Grundkonzept so
gebaut,
dass man später auch irgendwann per Dropdown und Textfelder sich die
Pakete selbst konfigurieren kann.
Wenn ich Zeit finde das zu implementieren ;)
Gruß,
Georg
Hat jemand neuere UMLs in seinem setup und würde im PacketForge
(dropdownmenu rechts neben der textbox) das EBus paket mal ausprobieren?
@Michael vllt?
Wäre interessant ob hier eine Antwort kommt.
Die bytes sind auf "DestinationNode" 10 oder 11 hartkodiert, kann aber
im Textfeld geändert werden falls notwendig.
Im dump links unten sieht man was das für ein Paket ist, das man gerade
zusammenschustert.
Blöde Frage, wie finde ich die Version meines Moduls raus?
Allerdings habe ich ja ein UML C1 und kein UML + (gibt es da eigentlich
ein eigenes XIF zum importieren)?
lg Michael
Hi
Thanks Georg, really great work and things you are supporting us with!
I am still working on understanding the protocol :)
When I send a Network message request with command 8, APDU Destin&Type =
0x68,
the response I get has the APDU Destin&Type = 0x28
This is then an application message, not a network message, and the
thing is, the '2' in 0x28 is then part of the command. Which makes the
response command = 0x28 (40), but it should be 8
See following references in the Protocol Specification.
1
10.4 APDU Types and Formats
2
11.7.8 Query Network Variable Configuration
Here's the Request and the Response NPDU's, excluding CRC
1
19 01 fe 01 bc 54 01 68 02
2
19 01 bc 01 fe 54 21 28 01 00 4f
So, my question is, where does the 2 in 0x28 response Destin&Type come
from?
It seems to me the response command is 0x28, not 8. But that is not
consistent with the protocol specification, as far as I can see.
First, you miss the PPDU header, which is 01. But I guess thats just a
copy paste issue.
Adding it, we will get this:
1
01 19 01 FE 01 BC 54 01 68 02
2
3
Prior = no
4
AltPath = no
5
DeltaBl = 1
6
NPDU = LonNPdu
7
Version = 0
8
DomainLength = Bits_8
9
Domain = 84
10
Address = LonAddressNode
11
DestinationSubnet = 1
12
DestinationNode = 60
13
SourceSubnet = 1
14
SourceNode = 126
15
PDU = LonSPdu
16
Auth = no
17
ReminderLength = 0
18
ReminderMList = 0
19
SPDUType = Request
20
APDU = LonAPduNetworkManagement
21
Code = QueryNetworkVariableConfig
22
Data = [ 02 ]
23
TransNo = 1
Response:
1
01 19 01 BC 01 FE 54 21 28 01 00 4F
2
3
Prior = no
4
AltPath = no
5
DeltaBl = 1
6
NPDU = LonNPdu
7
Version = 0
8
DomainLength = Bits_8
9
Domain = 84
10
Address = LonAddressNode
11
DestinationSubnet = 1
12
DestinationNode = 126
13
SourceSubnet = 1
14
SourceNode = 60
15
PDU = LonSPdu
16
Auth = no
17
ReminderLength = 0
18
ReminderMList = 0
19
SPDUType = Response
20
APDU = LonAPduGenericApplication
21
Code = 40
22
Data = [ 01 00 4F ]
23
TransNo = 1
Now when you check Page 84/112, it says that responses are always
directed
to the application and have the code 00pxxxxx where p=1 tells the
operation
was successful.
In your case the xxxxx was 8, which was your original command.
>> Blöde Frage, wie finde ich die Version meines Moduls raus?> Allerdings habe ich ja ein UML C1 und kein UML + (gibt es da eigentlich> ein eigenes XIF zum importieren)?>> lg Michael
Richtig. Hab auch ein UML C1.
Ich muss nacher nochmal schauen, ich hab aus Versehen das C1
rausgeworfen.
XIF hatte ich keines, ich hatte das händisch gestrickt
Also die genaue version auslesen, ich hab mir da noch keine Gedanken
gemacht.
Aber guter Punkt. Das kuck ich nach.
Du hattest ja dein C1 als node 10, so wie das kommando gestrickt war.
Mist. Das heisst per 0x0e kommt man nicht auf den EBus.
Vllt geht das nur mit dem UML+?
Ich will die Uhrzeit der Bedienpanel setzen :(
Dass jede Stunde vom ESP32 die Zeit korrigiert wird, dann hat sich das
mit der Zeitumstellung erledigt.
Mit dem Kommando
01 19 01 FE 01 8A 54 0D 6D 00 40 00 10 # read version
kannst die version aus dem flash lesen
Aie Antwortbytes dann im hexeditor betrachten.
1
00 19 01 8A 01 FE 54 24 2D A3 45 4A 56 20 33 2E 35 31 20 20 00 32 30 2E 30
2
Prior = no
3
AltPath = no
4
DeltaBl = 0
5
NPDU = LonNPdu
6
Version = 0
7
DomainLength = Bits_8 (1)
8
Domain = 84
9
Address = LonAddressNode
10
DestinationSubnet = 1
11
DestinationNode = 126
12
SourceSubnet = 1
13
SourceNode = 10
14
PDU = LonSPdu
15
Auth = no
16
ReminderLength = 0
17
ReminderMList = 0
18
SPDUType = Response (2)
19
APDU = LonAPduGenericApplication
20
Code = 45
21
Data = [ A3 45 4A 56 20 33 2E 35 31 20 20 00 32 30 2E 30 ]
Hatte die vorherige Nachricht am Handy getippt.
Peinlicher Tippfehler - ich weiss wie man Fenster schreibt :D
Hier eine neue Version, die auch anzeigt, welche NVs input sind (grün)
und welche output (rot).
Die NetVar Spalte ist der "selector" der NV auf dem Bus.
Im Screenshot sieht man, dass mein UML C1 die NV#04 "Lokale Zeit"
aktualisiert wird, wenn eine NV mit selector 256 reinkommt.
Und sie schickt die T_Aussen auf NV selector 0 raus (sobald die software
den Wert zum verschicken markiert)
Mit "00 35 01 FE 01 54 80 00 00 C9" kann man die Temperatur dann auch
von aussen reinmelden.
So könnte der ESP32 andere Sensoren an euer Busyystem reporten.
Oder andere Temperaturen anfordern ("Meine Frau hat laut Google Kalender
Frühschicht, für ein warmes Bad schon mal um 04.30 die Vorlauftemperatur
hochfahren...")
https://github.com/g3gg0/LonScan/releases/tag/v0.3.2
Das heisst, bei langen Nachrichten hast ein Leseproblem :(
Dann muss ich mir den ESP32 code mal wieder etwas genauer ansehen und
schauen ob ich da was optimieren kann.
Wie schaut dein Aufbau aktuell aus? Sind da recht lange Drähte im Spiel?
Transceiver nahe am ESP32? Stichleitungen vom LON sind kurz oder
terminiert?
Gruß,
Georg
I also get the Bitphase error for the sw version request. But not
always, it worked one time.
It also gets the product name ok, but does not report it in the sw,
perhaps because of the bitphase error.
Please see the attached wireshark file.
The product name response is much longer than the sw version response,
and seems to work fine every time, so it seems the bitphase error is not
directly related to packet length.
> Wie schaut dein Aufbau aktuell aus? Sind da recht lange Drähte im Spiel?> Transceiver nahe am ESP32? Stichleitungen vom LON sind kurz oder> terminiert?
noch ist alles auf einem Breadboard - die Leitung vom LON sind ca. 50cm,
vom Receiver zum ESP sind es noch mal gut 10cm. Meinst du das ist zu
lange?
Für die Dauerlösung hätte ich ja gerne deine Platine und dass mir JLCPCB
nicht nur die Platine fertigt, sondern auch gleich fertig bestückt.
Allerdings ist da ein Start aufgrund von Lieferzeiten frühestens nach
dem chinesischen Neujahr möglich. Oder hättest du da andere Tipps für
mich?
Danke und lg
Michael
The latest version just downloaded and tested.
For the Biowin (90) I get bitphase error, the product name works, but
nothing is reported in the tool and no data is shown.
For the WVF there is no error, but nothing is reported in the tool and
no data is shown.
Det WVF is reported as "5.06 WVF" in the packet, and the version is
reported as V3.52 in the packet. But the LONScanner tool does not report
anything, the tool window is just epmty.
Servus,
Bei der PCB v1.3 ist mir nicht aufgefallen, dass ein IO-Pin falsch
gelegt ist.
Man konnte mit der LON nur LESEN, nicht aber senden, was mir bisher
nicht auffiel.
Darum hab ich auf EasyEDA eine v1.4 veröffentlicht mit einer Korrektur.
Habe die Änderung per Kupferlackdraht auf einer v1.3 nachgebaut und das
klappt.
Auch hab ich in der Firmware kleine Änderungen vorgenommen.
Es ist zwar nicht so, dass das Grundproblem des ESP32/RMT damit behoben
ist.
Allerdings habe ich etwas mit den Timings gespielt und es könnte sein,
dass die Fehlerquote bei größeren Paketen geringer ist.
Änderungen in der Firmware:
- glitch filter für kurze spikes < 100µs
- lange Pakete dürften eine höhere chance haben, geparsed zu werden
- Latenz beim Empfangen vom LON verringert
https://github.com/g3gg0/MESWiFi
Änderungen am LonScanner:
- Timeout und delays konfigurierbar
https://github.com/g3gg0/LonScan/releases/tag/v0.3.3
Hier ein Video wie es bei mir läuft:
https://www.youtube.com/watch?v=6MgHI1anq8U
Die CRC Fehler sind wahrscheinlich u.a. auch weil ich keine
Kollisionserkennung drin hab.
> noch ist alles auf einem Breadboard - die Leitung vom LON sind ca. 50cm,> vom Receiver zum ESP sind es noch mal gut 10cm. Meinst du das ist zu> lange?
Das find ich persönlich schon etwas lang aber sollte eigentlich auch
ohne Terminator klappen. So hoch sind die Raten hier auch nicht.
Vielleicht kommts auch von der Spannungsversorgung.
Der ESP32 zieht beim WiFi Senden schon ordentlich und oft sind die
falschen
5V -> 3.3V Spannungsregler verbaut. Die wären okay für den ESP8266, beim
ESP32 bricht die Spannung oft etwas ein.
Ich würd mal probieren ein paar kerkos zu platzieren. Beim Transceiver
und am ESP.
Thanks, that made all the difference :)
I am working on mapping up the same way of getting information out of my
Biowin the same way as the Infowin (Display) does.
The Infowin requests information from Biowin using the following format
APDU Generic Application Message with code = 0x0B
The next byte is 0x02 = Request
And the following byte is the parameter requested, for instance 0x0A is
Current Output (Power).
So requesting Power, the NPDU looks like this
19 01 bc 01 ff 54 27 0b 02 0a c8
The answer follows the same format, but Response is indicated by 0x01
and then followed by the parameter index, 0x0A for Current Output
(Power).
Then the parameter data follows which can be "any" number of bytes.
Apparently it is implied that the receiver knows the amount of data, as
this is not part of the message.
It is also interesting that there seems to be no connection to Network
Variables (0x17 for Output Power) or the Selector.
I noticed that the LON Scanner has two columns, NV# and NetVar, the name
indicating that the columns shows the same thing, but as I understand
the NetVar actually shows the Selector.
For instance for the Time Setting, the NV is 2, The Selector is 0x100.
But for Current Output the NV and the selector is the same =0X17.
And here is a question.
I am quite sure that the APDU Request command for the Exhaust
temperature is
0b 02 09
and the response when the temperature is 90 C is
0b 01 09 0e 3f
Where 0e 3f is the temperature.
However, I have not figured out how 0e 3f converts to 90 C. Or what it
should be otherwise.
The change in this parameter also seems to follow the change in exhaust
temp, but to some non linear scale (?), which is strange.
Any suggestions on this.
I'll put together a list of these indexes and publish here when I sorted
it out.
> 0b 01 09 0e 3f>> Where 0e 3f is the temperature.>> However, I have not figured out how 0e 3f converts to 90 C. Or what it> should be otherwise.
Just a guess - it is SNVT_temp:
0x0E3F = 3647 = 364.7 K - 273.1 K => 91.6 °C
Sorry, copy-paste error, how did I manage that mistake) ;)
Please disregard from that, it is messed up by me manually somehow.
Here are the Correct packets.
Just a guess - it is SNVT_temp:
> 0x0E3F = 3647 = 364.7 K - 273.1 K => 91.6 °C
Perfect, how stupid of me :) I checked F but totally missed K ;)
Thanks!
https://github.com/g3gg0/LonScan/releases/tag/v0.3.4
Added latency infos.
It will periodically try to send a packet to itself and check its
latency.
Please make sure the SourceNode 126 in config file is not used in your
setup.
If it is used, change it to a free node id.
Thomas schrieb:> I noticed that the LON Scanner has two columns, NV# and NetVar, the name> indicating that the columns shows the same thing, but as I understand> the NetVar actually shows the Selector.
yes, the left NV# is the "Network Variable's table index".
The NetVar is the "selector" that is used for the Network Variable.
Thomas schrieb:> I am quite sure that the APDU Request command for the Exhaust> temperature is>> 0b 02 09>
This reminds me of the DAP requests I found when reverse engineering the
MES software.
0x0B -> DAP request
0x02 -> DAP Read
0xnn -> DAP ID
0x0B -> DAP request
0x01 -> DAP read response
0xnn.. data
Attached some descriptions from the Report.xml files of the MES
software.
It does not show all of them, just a few.
> Attached some descriptions from the Report.xml files of> the MES software. It does not show all of them, just a few.
Das ist ja super-toll :)
What MES software is that, and how was the Report.xml file generated?
I'd very much like them all :)
I see now I was a bit unclear, I ment I want all the DAP ID's ;)
So it is the Windhager Service sw then I assume. Do you have a license
for this? Is it possible to get as private person? There is no longer
any distributor or reseller of Windhager here in Sweden, and it's hard
to get any info from anyone outside of sweden as they see me as a
non-customer.
I have a Windhager Biowin Exklusiv from 2007, or if it was 2005.
It consist of
Firing automate, SW ver 3.22 : Lon bus ID: 60
Infowin (Display), SW ver 2.50 : Lon bus ID: 90
UML C1 (I think): Lon bus ID 10
WVF: Lon bus ID 2
I do not have the FB 5210 indoor controller, but I need to get one to
get a good control of the system. But maybe now I can manage it with a
couple of M5Stack instead :)
Hallo Georg!
> Bei der PCB v1.3 ist mir nicht aufgefallen, dass ein IO-Pin falsch> gelegt ist.> Man konnte mit der LON nur LESEN, nicht aber senden, was mir bisher> nicht auffiel.> Darum hab ich auf EasyEDA eine v1.4 veröffentlicht mit einer Korrektur.> Habe die Änderung per Kupferlackdraht auf einer v1.3 nachgebaut und das> klappt.
Danke für die Überarbeitung! Wirst du dir eine neue Platine bestellen
oder bleibst du beim Kupferlackdraht?
lg Michael
Ich werd erst mal beim Kupferlackdraht bleiben.
Hab ich mit einem Mikroskop gemacht und ist kaum von nem 0603 zu
unterscheiden ;)
Sind drei übereinander gekreuzte Drähte.
Ich hab die bisher immer per Hand bestückt, aber vor geraumer Zeit
Gefallen
an einem SMT stencil und der miniware mini-hotplate gefunden.
Falls ich eine Bestücke, gehts dann wahrscheinlich eher etwas schneller.
Ich hab den LonScanner aktualisiert.
Jetzt werden bekannte Geräte autmatisch gefunden wenn man auf den
Scan-Button
klickt und dann den Eintrag in der Liste doppelklickt.
https://github.com/g3gg0/LonScan/releases/tag/v0.3.5
Hallo Georg,
> Bei der PCB v1.3 ist mir nicht aufgefallen, dass ein IO-Pin falsch> gelegt ist.> Man konnte mit der LON nur LESEN, nicht aber senden, was mir bisher> nicht auffiel.> Darum hab ich auf EasyEDA eine v1.4 veröffentlicht mit einer Korrektur.> Habe die Änderung per Kupferlackdraht auf einer v1.3 nachgebaut und das> klappt.
Beim Gerber-Export meckert das Tool wg. einer unvollständigen Verbindung
(siehe Screenshot), könntest du da bitte mal einen Blick drauf werfen?
Danke und lg
Michael
Hi Thomas,
> Michael, you can check with Aisler, for european made PCB's. I usually> use them, works great.
I tried to import the Gerber files both for PCB Version 1.3 und 1.4.
Unfortunately the Aisler import does not recognize the PCB - no size and
no elements.
Do you have some experience with that?
Thank you and best regards
Michael