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
Hi Michael
Michael L. schrieb:> 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?
Nope, I never experienced that. Though I have never used EasyEDA, I
generally use Altium and Circuitmaker.
An alternative way you could use is an M5Stack with a Commu module to
connect to the LON-bus.
I am currently using an M5Stack with a separate RS485 transceiver on a
breadboard, but I ordered a Commu module and it arrived yesterday so I
will try that out any day. Then all you need should be two wires to
connect to the LON-bus.
I'll post a note when I've tried it.
Hallo Georg,
wahrscheinlich wirst Du mit Anfragen bombadiert, aber
solltest du ggf. noch eine Platine (gerne eine ältere, die nur lesen
kann) haben, würde ich dir die gerne abnehmen ;-)
bitte kurze Rückmeldung.
Danke,
Gruß
Johannes
Hallo,
danke für das Angebot, aber dann werde ich das erstmal mit einem
Breadboard mit einem ESP-WROOM-32 DEV Board und einem MAX487 aufbauen.
Im Moment versuche ich gerade die Dateien in Arduino
zusammenzukompilieren, scheitere aber im Moment an einer RMT.h
Wo bekomme ich die her? Die, die ich probiert habe, bringen immer
Kompilierungsfehler
Sorry für die vielleicht blöden Fragen, bin elektronisch nicht ganz so
bewandert...
Danke!
Gruß
Johannes
Vielleicht sollte ich noch die Fehlermeldung posten:
C:\Users\Johannes\Desktop\MESWiFi-master\MESWiFi\LON_RMT_Rx.ino: In
function 'void lon_rx_setup()':
LON_RMT_Rx:415:24: error: 'PERIPH_RMT_MODULE' was not declared in this
scope
periph_module_enable(PERIPH_RMT_MODULE);
^~~~~~~~~~~~~~~~~
LON_RMT_Rx:415:3: error: 'periph_module_enable' was not declared in this
scope
periph_module_enable(PERIPH_RMT_MODULE);
^~~~~~~~~~~~~~~~~~~~
C:\Users\Johannes\Desktop\MESWiFi-master\MESWiFi\LON_RMT_Rx.ino:415:3:
note: suggested alternative: 'dhcps_router_enabled'
periph_module_enable(PERIPH_RMT_MODULE);
^~~~~~~~~~~~~~~~~~~~
dhcps_router_enabled
C:\Users\Johannes\Desktop\MESWiFi-master\MESWiFi\MQTT.ino: In function
'bool mqtt_loop()':
C:\Users\Johannes\Desktop\MESWiFi-master\MESWiFi\MQTT.ino:102:89:
warning: ISO C++ forbids converting a string constant to 'char*'
[-Wwrite-strings]
mqtt_publish_int("feeds/integer/heizung/burning-minutes",
lon_stat.burning_minutes);
....
Hallo Michael,
danke für den Tipp, hab es ausprobiert, aber leider keine Änderung.
Bekomme nach wie vor folgende Fehlermeldung (s. angehängtes Bild)
Hat jemand eine Idee?
Danke,
Gruß
Johannes
> Weiters habe ich die includes in der LON.ino anpassen müssen, damit es> im Arduino kompiliert:> #include <WiFi.h>> #include <WiFiUdp.h>> #include <FS.h>> #include <SPIFFS.h>
Aber möglicherweise nur deswegen, weil ich zuerst alle Submodule
auskommentiert hatte und nur schrittweise wieder hinzugefügt habe.
Welchen Link habt ihr in die Voreinstellungen kopiert für das ESP-Board?
Manche Libraries finde ich in Arduino gar nicht, z.B. ESPmDNS.
Wäre es ggf. möglich, dass ihr mir an meine Email-Adresse alle Libraries
als Zip sendet?
Funktioniert!
Danke an alle für die Hilfe!!
Ich konnte alles kompilieren und jetzt auf den Chip flashen.
Das Problem war scheinbar, dass ich die Arduino Version 1.8.19 aus dem
Microsoft Store verwendet habe, anstatt die Version 1.8.1.
Mit der 1.8.1 funktioniert jetzt alles!
Wenn ich die restliche Hardware aufgebaut habe, kann ich das dann
"einfach" an die 2 Lon-Verbinder verkabeln, oder muss ich das noch wie
die Windhager-Module irgendwie "binden"?
Du kannst dich einfach auf den LON hängen, binden muss man hier nichts.
Stelle aber bitte vorher sicher, dass dein GND bei deinem ESP und deiner
Heizung verbunden ist.
Nicht dass dummerweise die GNDs 200V auseinander liegen :)
Well, in theory this works well.
A faulty USB power supply fried a microcontroller in an other setup,
because it wasn't isolated well enough.
And when connecting something to my central heater, i'd do my best that
this won't happen here as well ;)
So this was thought as a security measure hint except you are aware that
your
transceiver and your circiuit is isolated for the maximum possible
voltage difference.
Hallo,
ich konnte es heute ausprobieren, leider war ich nicht so erfolgreich.
In meinem PMX gibt es eine Klemme für GND, LON+ und LON-, da habe ich
mich parallel zur Pellets-Saugeinheit draufgehangen.
Leider kommt im Seriell-Monitor ausser den WIFI und Co. Meldungen nichts
vom LON an.
Die Verkabelung mit dem MAX487 habe ich gefühlt 100x kontrolliert.
Anbei der Schaltplan. Ich hatte mir gedacht, ich schmeiß alles raus, was
ich gerade "noch" nicht brauche. Die Pin's musste ich wie folgt ändern,
da ich dieses Board hier verwende:
https://www.amazon.de/gp/product/B08TBPBJGV/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
#define LON_RX 17
#define LON_TX 16
#define LON_TX_EN 26
Oder fehlt da ich Schaltplan jetzt noch was, dass ich einen PIN auf
Ground oder so ziehen muss?
Servus,
schaut eigentlich sinnvoll aus.
1. die Polarität vom LON passt?
2. die gewählten Pins werden sicher nicht von etwas anderem verwendet?
(1-wire?, Relais, ...)
3. Bei dem Board liegt wirklich der GPIO da an, wo du denkst? :D
In dem Fall ist erst mal nur der RO-Pin notwendig.
Magst da mal mit dem Oszi messen?
Gruß,
Georg
Hallo Georg,
Polarität vom Lon hab ich gecheckt, die passt.
Auf dem Modul steht hinten IO26, IO16 und IO17 drauf.
Das muss ich doch dann so ins Programm eingeben, oder?
Oszi messen ist schwierig, ich kann nur mit einem Multimeter dienen ;-)
Ich habe jetzt mal nochmal alles von GitHub runtergeladen und neu
kompiliert und hochgeladen. Auch den MAX487 habe ich schon in einen
anderen getauscht. Aber keine Änderung...
Welch .ino-Dateien müsste ich eigentlich kompilieren lassen?
Theoretisch könnte ich ja LED, Relay usw. weglassen, oder? Ich habe bis
jetzt immer die MESWIFI in Arduino geöffnet und dann die anderen INOs
mit in Arduino aufgemacht, dass ich 12 Tabs hatte. Und dann alles
kompiliert und auf den Chip.
Gruß
Johannes
Ausgabe aus dem seriell-Monitor:
[i] Starting
[i] Setup WiFi
[WiFi] Connecting...
[i] Setup OTA
[i] Setup Time
[i] Setup SPIFFS
[i] Setup LON bus
[i] read status from SPIFFS
[i] Setup MQTT
[i] Setup Relays
[REL] setting 0 to OFF
[REL] setting 1 to OFF
Setup done
[REL] setting 0 to ON
[REL] setting 1 to ON
[REL] setting 0 to OFF in 2000 ms
[REL] setting 1 to OFF in 5000 ms
[i] cyclic status save
[NTP] Sending request
[REL] setting 0 to OFF
[WiFi] Connected, IP address: 192.168.0.40
[NTP] The time is: 18:32:29
[REL] setting 1 to OFF
Johannes K. schrieb:> Oder fehlt da ich Schaltplan jetzt noch was, dass ich einen PIN auf> Ground oder so ziehen muss?
You have connected /RE with GND. This is incorrect. Connect /RE with DE,
also replace R2 with 120ohm.
Mit welcher Spannung betreibst du den MAX487?
Der Teiler passt zur Spannung?
Ich würde langsam hergehen und die anliegenden Pegel messen bzw mal
manuell setzen und im ESP32 schauen, ob der Pegel auch wirklich ankommt.
(per digitalRead und Serial.printf)
z.B. den MAX abklemmen und z.B. 5V an den Spannungsteiler anlegen.
Hallo,
ich habe den Vorschlag von Thomas ausprobiert, leider keine Änderung.
Kein Output.
Die Spannung kommt im Moment direkt aus meinem Laptop vom USB-Port in
das ESP-Board. Von da aus weiter zum MAX487.
Gemessen habe ich gerade 4,6V am MAX.
Auch mit einem USB-Netzteil keine Änderung. 4,55V
Gruß
Johannes
#define LON_TX_EN 26 // Connects to DE + /RI on MAX487
BUT!!!!
There is no GPIO16 and 17 in the schematic above! So, it is not
possible! (?)
GPIO16 and 17 is also used for UART2 in some ESP-modules.
Which pins on the module did you connect to, and exactly which module
are you using?
Hello,
this was "in between", sorry for the confusion.
At the moment i have my setup like this:
#define LON_RX 26 // Connects to RO on MAX487
#define LON_TX 18 // Connects to DI on MAX487
#define LON_TX_EN 19 // Connects to DE + /RI on MAX487
Modul is excactly this one:
https://www.amazon.de/gp/product/B08TBPBJGV/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
Code:
#define LON_RX 26
#define LON_TX 18
#define LON_TX_EN 19
Thanks for your help!
Johannes
Also, if you are using a breadboard, make sure you have a buffer
capacitor close to the MAX487, it is required for proper function! I
forgot it on my first setup and I lost 50% of all packets due to that.
Ok, many of the pins on the EPS32 has many different uses and can
sometimes be troublesome to use.
You could try the same setup as I have used that worked fine.
#define LON_RX 35 // Connects to RO on MAX487
#define LON_TX 5 // Connects to DI on MAX487
#define LON_TX_EN 2 // Connects to DE + /RE on MAX487
To receive, you only need the RO line of the transceiver, so please
focus on that first.
- double-check LON polarity (or try reversing, to check if it changes
things)
- measure the RO line with your multimeter. is it static 0V or 5V? ->
bad
- does it toggle irregulary? -> good
- or - do you see some voltage when you use AC measurement? -> good
- also a good idea to use a different pin. be aware that <13 is tricky
and > 33 is input only ->
https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
- yeah, that bypass cap is a good point, but then you still should see
some packets on UDP 3333 in wireshark
- what do the "System report" packets tell you?
Hallo,
anbei 2 Bilder, weiß aber nicht, ob man darauf was erkennen kann.
Spannung zwischen RO und GND sind im Gleichspannungsmodus 0 - 66mV.
Im Wechselstrommodus bleibt's bei 0V.
Vielleicht ist auch mein Multimeter zu ungenau.
Ich probiere jetzt mal noch einen anderen PIN als den 26er für RO aus.
Gruß
Johannes
Johannes K. schrieb:> Ich probiere jetzt mal noch einen anderen PIN als den 26er für RO aus.
23er Pin probiert --> gleiches Verhalten. bleibt bei der Zeit stehen.
> Spannung zwischen RO und GND sind im Gleichspannungsmodus 0 - 66mV.> Im Wechselstrommodus bleibt's bei 0V.
Zwar ist das eher Kategorie "Spannung mit nassem Finger schätzen", aber
es deutet drauf hin, dass dein Transceiver nix sieht.
Was sagt dein Multimeter an den LON-Leitungen, was da anliegt?
hab nochmal gemessen,
springt rum, zwischen 0 und 0,24V im AC Mode.
Was sollte es denn sein?
Irgendwie muss das aber passen, sonst würde meine Pelletssaugerei nicht
funktionieren...
Okay, wenn sich hier "etwas tut", dann könnte die Basis schon passen.
Aber ganz ehrlich - ohne Oszi ist das hier besseres Schätzen.
Wo hast du den LON abgegriffen? Wie lang sind die Leitungen?
You MUST add a much larger capacitor between VCC and GND close to the
MAX487!!!!
Before you do that, it is pointless to fault find anything else.
You should preferably put 100uF.
You can easily turn the ESP32 into a simple logic analyzer, and the way
things are right now, that or some LED's can get you a long way ;)
But first, a buffer capacitor!
Hallo,
ich Schaltplan stand was von 100nF, den hatte ich drin.
Hab jetzt auf einen 100uF gewechselt, aber immer noch keine
Kommunikation.
Außerdem habe ich noch ein anderes Multimeter genommen, und da ist auf
beiden LON-Klemmen gegen Masse 2,4V drauf. Kann ungenau sein, aber
beides mal exakt das Gleiche.
Gruß
Johannes
Ich habe jetzt auch an meiner Anlage gemessen.
Beide LON haben bei mir 2.20 V und bei starker Aktivität auf dem Bus
sehe ich ~10mV als AC mit meinem Fluke.
Daher besser warten bis dein Oszi da ist.
ich glaube, wir müssen wo anders suchen ;-)
Die Ausgabe im Serial-Monitor bleibt immer noch an der Zeit stehen.
Allerdings habe ich gerade mal den LON-Scanner angeworfen und auf einmal
kommen da Daten an ?!?!?
Es wird zwar immer noch nichts im SerialMOnitor oder MQTT ausgegeben,
aber prinzipiell scheint das Lesen zu funktionieren... :-)
Gruß
Johannes
Hallo,
ich habe mal den Quellcode in GitHub angeschaut, da ist "MQTT_setup"
auskommentiert?
Ein einkommentieren bringt aber auch nichts, da es scheinbar nirgends
einen "Connect" gibt?
Gab's Probleme mit MQTT?
Gruß
Johannes
Nein, MQTT funktioniert perfekt, bei mir mit Mosquitto.
du musst natürlich die MQTT.ino anpassen (Server etc.) als auch in der
MESWiFi.ino sowohl mqtt_setup() als auch mqtt_loop() aktivieren.
lg Michael
Ja, natürlich ;-)
mqtt_loop() auskommentieren, den Rest hatte ich schon.
Jetzt sehe ich was im Serial-Monitor und auf dem MQTT-Explorer sind auch
die Werte drauf!!! :-)
Vielen Dank an alle für die Mithilfe!!
Das war eigentlich schon das Ganze "Problem"...
Danke nochmal!!
Johannes
heisst: Ich muss das fixen. da steht nicht WVF oben in den Textfeldern.
Wenn du mehr ins MQTT schaufeln willst, musst den arduino source in der
LON.ino anpassen.
Ist aber nicht so wirklich sauber.
Ich hab das insbesondere für WVF deutlich erweitert - kann ich gerne zur
Verfügung stellen.
Wobei ich immer noch am Lernen bin, wie mein UML C1 und WVF mit meiner
Gastherme zusammenspielen. Die sehe ich nämlich im Unterschied bei
Georgs PMX nicht am LON-Bus.
Ich fürchte ich muss mir den eBus auch noch ansehen.
lg Michael
den PMX Kessel sehe ich auch nicht, auch nicht im LON-Scan.
Könnte daran liegen, dass mein Kessel beim Start immer Version 2.60
zeigt?
Wenn du mir deine LON.ino zur Verfügung stellen könntest, das wäre
super!
Ich habe auch UML C1 und WVF in Betrieb.
Danke,
Johannes
Anbei mein Scan-Ergebnis.
Im Regelbetrieb hab ich knapp über 0% CRC Fehler - wenn ich das Tool
verwende, geht der Wert stark rauf. Ich hoffe, dass da das hoffentlich
bald neue Setup Besserung bringt :)
> Wenn du mir deine LON.ino zur Verfügung stellen könntest, das wäre> super!> Ich habe auch UML C1 und WVF in Betrieb.
gerne, anbei! Auch die MQTT.INO
Es fehlt dort noch das ganze Handling von noch nicht abgefragten, sprich
noch frisch initialisierten Variablen.
Johannes K. schrieb:> <screenshot>
Ich habe in dem screenshot gesehen, dass der version-string falsch
interpretiert wird.
Könntest du mit der v0.3.7 die "Application" deiner WVF dumpen und mir
zuschicken?
https://github.com/g3gg0/LonScan/releases/tag/v0.3.7
So könnte ich mir genauer anschauen was an deiner version anders ist.
mailadresse: mes ÄT g3gg0 PUNKT de
Gruß,
Georg
Hallo zusammen,
ich habe einen Solvis Lino 3. Der ist wohl baugleich mit einem Windhager
BioWin BWE 150 Exklusiv. Ich würde den gerne mit Georgs Lösung auslesen.
Ich versuche mir das aus dem Thread zu erschließen, leider gelingt es
mir nicht vollständig. Vielleicht könnt Ihr mir helfen das zum fliegen
zu bekommen:
Ich habe einen ESP-WROOM-32 und ein C25B RS485 Modul. Ich habe das so
auf dem Breadboard aufgebaut:
RO -> G26
RE/DE -> G25
DI -> G35
VCC -> 3,3V
GND -> GND
Ist es richtig, den Aufbau nun wie folgt an den LON-Bus zu hängen?
A -> LON+
B -> LON-
Ist es egal wo ich das reinhänge? Ich verstehe das mit dem Widerstand R7
nicht. Darf der immer da sein und MUSS am Ende vorhanden ein. Oder muss
der entfernt werden, wenn ich im Bus hänge.
Bus-Kabel
Im Installateur-Handbuch S.42 habe ich die Belegung der Klemme X17
gefunden:
1: 12V (Gelb)
2: GND (Orange)
3: LON+ (Rot)
4: LON- (Braun)
Von dort läuft ein "Bus-Kabel" von der Reglerplatine zum Bedienpanel.
Kenn ihr diese roten Stecker, da könnte man sich ja schön einklinken,
wenn man so einen als Female-Stecker bekommt. Alternativ gibt es am Bus
auch einen Diagnosestecker.
Danke vorab für die Hilfe.
Ich hoffe die Gxx sind die GPIOxx.
Wenn ja, dann sollte es so sein:
RO (RX) -> G35
RE/DE (TX_EN) -> G26
DI (TX) -> G25
Referenz: https://github.com/g3gg0/MESWiFi/blob/master/LON.ino#L15
#define LON_RX 35
#define LON_TX 25
#define LON_TX_EN 26
Terminator: Kannst so drin lassen, sollte nicht stören.
Hallo Georg,
danke für die Antwort. Ich habe die Hardware nun entsprechend aufgebaut
und den ESP32 geflasht.
1
[i] SDK: 'v3.3.5-1-g85c43024c'
2
[i] CPU Speed: 240 MHz
3
[i] Chip Id: 9A12CFA4
4
[i] Flash Mode: 00000002
5
[i] Flash Size: 00400000
6
[i] Flash Speed: 80 MHz
7
[i] Heap 312232/338720
8
[i] SPIRam 0/0
9
10
11
[i] Starting
12
[i] Setup WiFi
13
[WiFi] Connecting...
14
[i] Setup OTA
15
[i] Setup Time
16
[i] Setup SPIFFS
17
[i] Setup LON bus
18
[i] read status from SPIFFS
19
[i] Setup MQTT
20
[i] Setup Relays
21
[REL] setting 0 to OFF
22
[REL] setting 1 to OFF
23
Setup done
24
[REL] setting 0 to ON
25
[REL] setting 1 to ON
26
[REL] setting 0 to OFF in 2000 ms
27
[REL] setting 1 to OFF in 5000 ms
28
[i] cyclic status save
29
[REL] setting 0 to OFF
30
[NTP] Sending request
31
[WiFi] Connected, IP address: 192.168.0.148
32
[NTP] The time is: 13:48:17
33
[REL] setting 1 to OFF
MQTT läuft auch, habe ich aber wieder ausgeschaltet, denn leider
passiert weiter nichts. Ich werde auch nicht ganz schlau aus dem Code
was ich nun tun könnte. Wie verbinde ich denn deinen Logger korrekt mit
dem ESP32?
1
constchar*udpAddress="192.168.1.255";
Diese Broadcast-Adresse muss ich sicherlich auf mein Netz anpassen,
oder?
Dein Logger hört auf diese Broadcasts?
Es werden aber leider keine Geräte gefunden. Hast du eine Idee?
Es kommt nichts. Ich habe in der LonScan.cfg die Broadcast-Adresse und
die direkt Adresse vom ESP32 probiert.
1
"RemoteAddress":"192.168.0.255",
In der LON.ino
1
constchar*udpAddress="192.168.0.255";
Müsste man hier nicht auch auf einen Local Broadcast 255.255.255.255
stellen können? Dann muss man das nicht anpassen.
Hab ich vielleicht verpolt angeschlossen? Oder ist das egal?
C26B -> Pelletkessel
A -> LON+
B -> LON-
Johannes K. schrieb:> Funktioniert!> Danke an alle für die Hilfe!!>> Ich konnte alles kompilieren und jetzt auf den Chip flashen.> Das Problem war scheinbar, dass ich die Arduino Version 1.8.19 aus dem> Microsoft Store verwendet habe, anstatt die Version 1.8.1.>> Mit der 1.8.1 funktioniert jetzt alles!>> Wenn ich die restliche Hardware aufgebaut habe, kann ich das dann> "einfach" an die 2 Lon-Verbinder verkabeln, oder muss ich das noch wie> die Windhager-Module irgendwie "binden"?
Hello Johannes.
I am at the moment trying to compile, and I end up with the same error
"error: 'PERIPH_RMT_MODULE' was not declared in this scope".
I am using IDE 2,0, also installed 1,81 Also "PERIPH_RMT_MODULE' was not
declared in this scope" error.
What did you change ?
BR Claus
Hi all there,
First thanks for all your work this is awesome. I tried to use the MES
Wifi firmware on a BIOWIN2 but I have trouble parsing messages and I am
seeking some help.
I get CRC errors from messages coming from the bus. Message sent by the
esp are read back correctly on the rs485 loopback and there seems to be
an answer to every esp requests. Scope signal taken on esp rx pin looks
good so i don't really understand, it looks like a decoding problem.
I am using a lolin32 board with a rs485 module board, I already tried to
change hardware.
Any ideas ? Thanks
As a follow up I checked out the previous commit on
https://github.com/g3gg0/MESWiFi.git and now it is working fine. So
there might be a bug in this last commit.
You are right, the value 2 is a lot more stable. Thanks!
No idea why it made it into the repo.
I also updated the repo to be used with PlatformIO, not arduino.
It also now has
a) a web interface
b) SoftAP if no config was found (http://192.168.4.1/)
c) configurable MQTT server and wifi credentials
d) versioning (see web interface)
e) binary releases and update-via-http feature
(https://g3gg0.magiclantern.fm/Firmware/MES-WiFi/firmware.bin will be my
latest release, currently v1.3 - 1a0128a)
For building from source:
If you don't have WSL installed: edit platformio.ini and change
> build_flags = !bash -c "echo -Isrc -DDEBUG_ESP_HTTP_UPDATE> -DDEBUG_ESP_PORT=Serial -DPIO_SRC_REVNUM=$(git rev-list --count HEAD)> -DPIO_SRC_REV=$(git rev-parse --short HEAD)"
to
> build_flags = -Isrc -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_PORT=Serial> -DPIO_SRC_REVNUM=0 -DPIO_SRC_REV=none
Can it be build with arduino IDE 2.0 ? I am having problems with the
error
"error: 'PERIPH_RMT_MODULE' was not declared in this scope". and have
tried IDE 1.8.1. but still get the same error.
Best regards Claus
Claus L. schrieb:> Can it be build with arduino IDE 2.0 ?> I also updated the repo to be used with PlatformIO, not arduino.
probably not :)
I am working with PlatformIO only now for this project.
Did someone manage to send command ? Like changing heating mode,
ordering a water heater cycle, or temperature settings.
And is it the same protocol on the Ebus line ?
Dear all,
I´m deeply impressed by the work that has been done yet in this place!
Respect!!!
A Windhager BioWin Exclusive wants to be connected to my MQTT ecosystem.
I´ve compiled the MESWifi (GIT latest), and flashed it to an ESP32,
which connects via a RS485 adapter board to the LON bus.
Some data was available immediately, but unfortunately I can only see
some of the variables.
Tried to get a deeper understanding with LonScan, but somehow it seems
that there are connection issues.
ESP sends it´s udp data to broadcast (x.x.x.255:3333), and Lonscan sends
also to broadcast (x.x.x.255:3334). Unfortunately Lonscan tells me that
all packets get lost. (Timeouts constantly increasing)
Can someone help me to figure out what´s wrong with my setup?
Please forgive, if I have read something wrong... ;-)
Christian R. schrieb:> Can someone help me to figure out what´s wrong with my setup?
Welcome.
Send the packets to the specific IP instead of the broadcast address.
Regards,
Georg
Georg H. schrieb:> Send the packets to the specific IP instead of the broadcast address.
I´ve already tried to send the traffic directly between my pc and the
ESP32, but this didn´t work either.
(Think i read somewhere that it only works with broadcast for some
reason)
Here´s the result with direct traffic. To debug a little further, I
added a serial debug message to the function (lon_tx) which sends data
onto the LON bus to see if the ESP receives udp packets. I see the debug
message appear on the ESP when Lonscan sends its udp requests, and it
should be transmitted to the bus. (Didn´t check yet if the data is
really sent to the LON physically with an Osci)
Yet I´m unsure if it´s a problem on the ESP/LON side or a plain network
thing between the ESP and Lonscan. Is the lack of visible values caused
by not correctly set NV´s in my software because my heating differs from
yours, or should be more values visible anyway when the get polled
properly?
Christian R. schrieb:> Yet I´m unsure if it´s a problem on the ESP/LON side or a plain network> thing between the ESP and Lonscan. Is the lack of visible values caused> by not correctly set NV´s in my software because my heating differs from> yours, or should be more values visible anyway when the get polled> properly?
Maybe the TX path isn't working and the LON network doesn't see the
messages of the ESP32.
Are you sure about the wiring being correct?
i.e. the enable pin and the tx pin to the transceiver
Georg H. schrieb:> Are you sure about the wiring being correct?> i.e. the enable pin and the tx pin to the transceiver
I´ll check it with an osci later, thanks so far!
Georg H. schrieb:> Is this A-to-B on the LON bus?> Are you using the latest git revision?
Yes and yes. I downloaded the zip from git on 25.9. so it is the latest.
Picture is not very good, sorry for that. But you can clearly see the
differential voltage. I switched the heating also on and measured again
to see if the signals from my rs485 adapter are at the same voltage
level. (barely no difference)
What puzzles me is the fact that I see some of the values, which seem to
come cyclically and don´t need to be polled. Right?. That works ok, very
low CRC error rate (1-2%) which lets me believe that the connection is
right in this place.
But on the other hand it seems that the NV´s which are requested by
MESWifi never get answered by some node.
Even the requests from Lonscanner aren´t gonna answered from another
node.
So I share your opinion that TX path must somehow be not right.
But I see that it sends something which does not look that bad when
viewed on the Oscilloscope....
One of these RS485 adapters is used:
https://www.amazon.de/WINGONEER-MAX485-RS485-RS-485-Entwicklungsboard/dp/B06XHHWLMW
It is supplied with 5V, RO pin is connected through a voltage divider to
clip input voltage at 3.3V to GPIO35. RE/DE are connected to GPIO 26. DI
is connected to GPIO25.
A is connected to LON+ and B to LON-
Did I miss anything?
Thats weird... now it seems that Lonscanner can poll the device, I see
some data now...
But the last commit on the Git repo is 15days old...
Did I really managed it to work with an old/wrong version??
Georg H. schrieb:> No, I just forgot to push the last change I made :D
A classic... happens to me 1-2 times per year @ work and always makes me
going nuts before someone asks: did you push it?? :D :D :D
Glad it´s working now and thank you for your effort.
I can work from here to customize the code to my heating system. Some of
the NV´s are differing against the hardcoded ones in LON.ino/MQTT.ino.
Would be great to have id implemented more modular and separated, so a
future code update doesn´t break customizations.
Your code is great work, and I think a lot of people could/will use it!!
:)
Hello
Ok, so I have downloaded VSCode, installed PlatformIO and WSL, and
downloaded your MES-WiFi from Github, Georg.
I have opened it in VSCode/PlatformIO and can see the Project Tasks
"Default", "MES-WiFi" and "MES-WiFi_ota".
Compiling does not work with the "!bash" build flags, but it does work
with the "-Isrc" build flags.
Out of curiosity, what do I need to do to get it working with WSL and
the "!bash" build flags?
I am new to VSCode, PlatformIO and WSL.
Will continue with trying to getting this into an M5Stack Core2
connected to my Windhager Biowin.
Thomas N. schrieb:> Compiling does not work with the "!bash" build flags, but it does work> with the "-Isrc" build flags.>> Out of curiosity, what do I need to do to get it working with WSL and> the "!bash" build flags?
this is for fetching the git version number via scripts.
you can set the defines manually to something you want - or - install
git.
regards
Wer noch Interesse an einer PCB hat, bitte melden.
Hier haben sich auch ein paar gemeldet:
https://github.com/g3gg0/MESWiFi/issues/1
Ich hoffe da kommen keine Doppelmeldungen :)
Hallo Georg, eine tolle Arbeit!
Ich habe gerade auch im Github eine, wenn es irgendwie geht, fertig
bestückte Platine angefragt. Leider kann ich mein Löten nur als Braten
bezeichnen.
Vielen Dank und Grüße
Holger
Kleines update von meiner Seite.
Ich hab mir mittlerweile einen Home Assistant eingerichtet und baue
langsam meine MQTT-Geräte so um, dass sie dem HA die config-messages
gleich mitschicken.
So hab ich das jetzt auch bei MES-WiFi gemacht.
Screenshots anbei.
Gruß,
Georg
Hier läuft die Heizung grad an.
Dieser Wert ist geeignet, um die "Energiemenge", die verheizt wurde zu
tracken.
Ich berechne diese, indem ich die "Fördermenge [kg/h]" mit der
Energiemenge von Pellets 4.8 [kWh/kg] multipliziere und das jede paar
Sekunden integriere.
Für mich schaut es so aus, als würde des passen.
Am Ende kann man sich das dann auch im HA visualisieren lassen.
Hallo,
nachdem ich Georg ordentlich per Nachricht genervt habe, bin ich bei
meiner Suche auf diesen Thread gestoßen :-)
Leider komme ich nicht weiter:
Ich habe einen ESP32 mit Max485 Transceiver erfolgreich in Betrieb
nehmen können.
Nun unterscheidet sich meine Paradigma MES wohl in ein paar Details.
Ich konnte das Wireshark LUA erweitern und so einige Daten verfügbar
machen, es fehlen aber noch einige Daten, die auch nicht als UNKNOWN in
Wireshark auftauchen.
Es fällt zugegeben schwer, Euren ganzen Ausführungen zu folgen, daher
die Bitte um Ideen, wie ich mein Ziel doch noch erreichen kann.
Es sind folgende Punkte für mich noch ungelöst:
1.) Wieso sehe ich nicht alle Daten, zB.: Temperatur Solarausgang sehe
ich, Eingang nicht, Drehzahl Pumpe sehe ich nicht, Brennerstatus der
Gastherme kann ich nicht zuordnen, oder sehe ich nicht. Muss man auf den
LON noch einen Request senden, um alles zu sehen?
2.) Kann man die Uhrzeit in den MES Geräten per ESP32 setzen? Ist das
richtig? Das wäre ja unglaublich toll, nach Stromausfall ist bei mir
immer alles auf 1997...
Ich habe auch LON Scan probiert, da sehe ich aber nichts, irgendwann
stürzt es einfach ab.
Danke vorab,
Ron
PS: Sorry nochmal Georg, ich hatte den Thread vorher nicht gefunden.
Alles gut. Wenn ich keine Zeit habe, dauern Antworten oft etwas :D
Und da ich viele Hobbies hab, gerät da auch oft was in Vergessenheit.
Alles etwas lang her, daher der Versuch, das zu erklären.
Also ein paar Infos werden von der Heizung zyklisch als Network Variable
(NV) rausgesendet.
Die Infos legen quasi als broadcast auf dem LON-Bus.
Andere Variablen lese ich gezielt aus. Ich glaub die heissen auch NV,
werden aber nicht aktiv gesendet.
Dazu frage ich per LON-Protokoll gezielt die NVs an.
Mit meinem C#-Tool LonScan kann man das für die jeweiligen Module sehen,
was sie auf dem Bus als Broadcast senden.
Aber davor müssen die Module erst im .cfg konfiguriert werden.
Ich hab dazu alle Windhager .xif eingelesen und entsprechend im .cfg vom
LonScan aufgelistet.
Du kannst ja erst mal mit dem "Suchen" Button neben dem grünen Plus das
Netz durchsuchen. Mal kucken, was da so gefunden wird.
Wenn dann rechtsklick "Add as xxxx" machst, kommt ein Dialogfeld in dem
Firmware details stehen.
Am besten mal screenshots davon machen.,
Ron S. schrieb:> 2.) Kann man die Uhrzeit in den MES Geräten per ESP32 setzen? Ist das> richtig? Das wäre ja unglaublich toll, nach Stromausfall ist bei mir> immer alles auf 1997...
Ja, kann man: "File -> Set system time"
Aber z.B. UML C1 haben ihre eigene Zeit.
Ich hab noch nicht rausgefunden, wie ich bei denen in die config komme
:(
Wenn hier einer nen Tip hat, gern her damit :)
> Ich habe auch LON Scan probiert, da sehe ich aber nichts, irgendwann> stürzt es einfach ab.
Ich hab ein paar Änderungen gemacht. Crasht das tool noch?
Und wenn ja, screenshots bitte.
https://github.com/g3gg0/LonScan/releases/tag/v0.4.0
Hallo Georg,
vielen, vielen Dank.
Das bestätigt aber im gewissen Rahmen meine Annahme, dass mir die
Requests fehlen.
Gibt es irgendeine Chance, den Aufbau dieser Requests zu erlernen?
Es erinnert mich sehr an CAN-Bus, aber da hatte ich eine Doku und konnte
die Abfragen als CAN Nachricht senden.
Hier habe ich es noch nicht verstanden.
Ich glaube auch, dass ich die Geräte IDs einfach noch nicht alle kenne.
Die alte MES von Paradigma bei mir ist wahrscheinlich noch älter als
Eure Pellet Systeme, scheint aber identisch zu funktionieren.
Ich glaube, mir fehlt einfach so eine Initial-Zündung, vielleicht ein
Beispiel, keine Ahnung.
Das Tool teste ich gerne, es ist aber möglich, dass es bei mir nicht
funktioniert, weil ich ein UniFi Netzwerk einsetze, für Wireshark musste
ich auch direkt über die Konsole tracen.
Was praktisch ist: ich habe vor einiger Zeit eine Platine gebaut, die
als Ersatznetzteil dient, davon konnte ich eine unbestückte Platine
verwenden, um an die 12V zu kommen, damit ist es per Bauer Step-Down nun
einfach, das vorhandene Leergehäuse zu verwenden :-)
Also wenn es noch ein Beispiel, einen Hinweis zu den Requests oder
ähnliches gibt, immer her damit!
Noch einmal: ich bin wirklich dankbar, so komme ich vielleicht noch ans
Ziel.
Gruß
Ron
> Gibt es irgendeine Chance, den Aufbau dieser Requests zu erlernen?> Es erinnert mich sehr an CAN-Bus, aber da hatte ich eine Doku und konnte> die Abfragen als CAN Nachricht senden.
Ja, es gibt eine spec dazu - google mal nach "LonTalk Protocol
Specification"
Macht keinen Spass zu Lesen, aber es gibt sie...
Ich hab auch einen "PacketForge" gebastelt, mit dem du Pakete selber
bauen kannst: "File -> PacketForge"
Der dekodiert dir auch die Pakete und du kannst die senden und die
Antwort anschauen.
Warum das mit deinem Netzwerk nicht geht, müsstest du mir noch genauer
erklären.
Ich denke, muss aber nochmal schauen, dass bestimmte Funktionen bei mir
geblockt werden.
Wireshark funktionierte auch nicht über das Wifi, sondern nur über
tcpdump.
Daher meine Annahme.
PacketForge könnte ein guter Ansatz sein, ich frage mich nur, wohin ich
was senden muss, aber vielleicht ist das ja Teil der erwähnten Doku.
Eine Firmware zerlegen wird es bei mir wohl nicht geben. Ich kenne
keine, aber auch viele Geräte aus Deiner Config sind mir unbekannt, UML
etc kenne ich, aber das war es fast schon.
Danke :-)
So wie hier im Anhang sieht es immer aus, 100% loss.
Keine Ahnung, wie gesagt, vielleicht verhindert das Netzwerk etwas an
der Stelle, Config ist länger her :-)
Ich habe die IP eingegeben, aber leider passt was nicht.
Ping funktioniert einwandfrei...
Wie gesagt, Wireshark auch nicht so einfach.
Über ssh dann schon, siehe Bilder...
Könntest du die firmware des ESP32 so konfigurieren, dass die
broadcast-address korrekt ist?
LON.ino
von: const char *udpAddress = "192.168.1.255";
auf: const char *udpAddress = "192.168.15.255";
Ich denke schon, dafür muss ich nur neu compilieren, oder?
Mittlerweile läuft VS Code mit PlatformIO gut.
Ich habe es nur noch nie vom PC hochgeladen, bis jetzt nur Mac.
Ist auf Git die aktuellste Version?
Meine erste Version hat sich mit "V1." gemeldet und nach einem Update
kam dann "V1.6".
...dazu musst du hässlich geschriebenen source code selbst ändern :)
Ausserdem würde ich erst mal prüfen, ob die Konfiguration überhaupt
korrekt ist.
Kann gut sein, dass meine Daten hier unvollständig sind.
Ok, verstanden, da die Daten ja in Deinen Abfragen sind, sollte man das
anpassen können und dann in den Abfrage Loop des ESP32 integrieren.
Vielen Dank, wieder ein Stück weiter.
Hoffentlich kommt der Knoten im Kopf nicht wieder und ich komme dahin,
wo ich hin möchte, einfach nur einen Alarm mitbekommen :-)
> Hoffentlich kommt der Knoten im Kopf nicht wieder und ich komme dahin,> wo ich hin möchte, einfach nur einen Alarm mitbekommen :-)
Wird sicher beides passieren :D
Guten Morgen,
hast Du noch einen Tipp, wie man die Remote Update Funktion nutzt?
Dann muss ich nicht immer zum ESP32 rennen, sondern könnte schneller
meine Ideen testen.
Gruß
Ron
In PlatformIO kannst du unten in der Statuszeile das aktuelle Projekt
auswählen und dann kann man per remote update die software updaten.
In PlatformIO gibts eine section für die Projektvariante
"[env:MES-WiFi_ota]" in der platformio.ini in der die IP-Adresse des µC
hinterlegt ist.
Hier die IP deines ESP32 eintragen und dann sollte das "Upload" diese
updaten.
Ich glaube ich hatte die firmware so konfiguriert, dass das remote
update nur eine gewisse Zeit aktiv bleibt.
Per Home Assistant bzw MQTT kann man das wieder aktivieren.
Alternativ müsste auch http://<ip>/ota funktionieren.
Ok, ich teste und werde berichten :-)
Ich dachte, wenn man ein Update macht, muss man immer alles von vorne
konfigurieren. So wie beim USB Upload halt.
Kurzer Zwischenbericht:
Ich bin wahnsinnig weit gekommen.
Mittlerweile schreibe ich diverse Daten in die InfluxDB und zeige sie
mit Grafana an.
@Georg: kannst Du mir verraten, woher die Daten für die einzelnen Geräte
stammen? Es scheint mir so, dass meine Geräte andere Werte haben und
deswegen die Anzeige in Deinem Tool nicht stimmt. Wie kann ich das
berichtigen?
Bei Dir gibt es halt keine UML C1, BBU C1, Solar...
Danke,
Ron
Georg H. schrieb:> Aber davor müssen die Module erst im .cfg konfiguriert werden.> Ich hab dazu alle Windhager .xif eingelesen und entsprechend im .cfg vom> LonScan aufgelistet.
die .xif hab ich aus dem service tool von windhager genommen.
Noch mal:
Vielen, vielen Dank für die Hilfe, ohne wäre ich jetzt nicht so weit.
Ich arbeite weiter an den Auswertungen und den Daten, eine XIF gibt es
von Paradigma eher nicht für meine Module.
Mal sehen, welche Werte ich noch finde.
Habe noch nichts für Brenner, Solarfurchfluss etc…, aber vielleicht wird
das noch :-)
Ich dokumentiere fleißig, welcher Wert was für Paradigma bedeutet,
vielleicht hilft das später auch noch mal…
Kann ich machen, werden dann aber 3 - 4 Einträge, für jedes Device
einen.
Danach strukturiere ich auch gerade meine Doku.
Welches Gerät, welche ID, welches Signal, welcher Wert etc.
Ich bin weiter fleissig dabei, meine Doku und die CFG zu erweitern.
Noch scheitere ich an der Uhrzeit und dem Datum, aber vielleicht mache
ich auch was falsch?
Hast Du noch einen Tipp?
Es geht bei mir ja quasi nur um 2x UML, mehr Datum gibt es bei mir
nicht...
Georg H. schrieb:> 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!)
Was genau war dann damit gemeint?
Auslesen kann ich Datum und Zeit ja auch…
Hallo Ron,
Windhager verwendet zum "steuern" der Module sogenante "User Application
Message codes", nicht NV Variablen.
Auslesen kann man die zB. mit (Hex Werte am LON Bus):
Wie du das senden kannst, kann dir sicher Georg sagen.
Und ob das bei allen UML funktionier, kann ich auch nicht sagen.
Bei meinem UML+ V2.0 funktioniert es so.
lg. Peter
Hallo Peter,
vielen Dank, in diese Richtung wollte ich, diese Basis hat mir gefehlt.
Vielleicht hatte ich mich auch nur falsch ausgedrückt.
Es stimmt, ich muss noch heraus finden, wie ich das auf den Bus bringe.
Leider ist es wirklich schwierig, dieses Projekt umzusetzen.
Allerdings macht es auch großen Spaß und ich würde mich freuen, wenn
mein kleiner Anteil noch mal einem Paradigma User bei der Fehlersuche
hilft.
Ohne die Hilfe hier wäre das sowieso alles nicht möglich.
Gruß
Ron
Könnte man so auch die Betriebsart setzen?
Also von Absenken auf Auto oder ähnlich?
Dann könnte man über den ESP32 nach Stromausfall wieder komplett auf
Normalbetrieb schalten, inkl aktuellem Datum/Zeit Faktor.
Super! Ich danke dir vielmals.
Habs noch nicht überprüft, aber werd mich heut Abend dran machen.
Ich hab vor geraumer Zeit schon mit den Nachrichten gespielt, wusste
aber keine Addressen und hab auch nie eine Antwort bekommen.
Im PacketForge sieht man schon die ein oder andere vorbereitete
Nachricht.
Wie gesagt, bei der "UML read time" kam aber nie eine Antwort.
Wo hast du die Adressen her?
Ich konnte nicht so lange warten, auch wenn meine Frau, die gerade den
Garten aufräumt mich dafür hassen wird :)
Ich bekomme bei keiner 0E (LonAPduGenericApplication) mit
READ_STANDARD_VARIABLE Nachricht eine Antwort.
Ah, ich erinnere mich. Das ist der EBus.
Aber irgendwie krieg ich beim UML C1 keine Antwort.
Hat die überhaupt einen EBus?
Aus meinen Notizen, als ich vor nem Jahr die Software etwas reverse
engineered hab:
APDU 0x0E -> EBUS command
Service 0x06 Command 0x21 "ReadEbusVariable"
TT SS CC LL (ML MH SL SH)
TT = transaction sequence number, incrementing
SS = service (0x06)
CC = command (0x21)
LL = payload length (0x04)
ML = MainLow -> Main ID
MH = MainHigh -> (extended ? 0x80 : 0x00) | SubID
SL/SH = (type<<14) | (function<<9) | (entity<<4) | blockNumber
Service 0x06 Command 0x22 "ReadEbusVariableValue"
see 0x21
Service 0x06 Command 0x23 "WriteEbusVariable"
see 0x21, just LL and number of payload bytes incremented by the
variable width
Ich hab mir die OperationalData.xml für die "UML +" angekuckt.
Dort sieht man schön die EBus IDs
https://github.com/g3gg0/LonScan/releases/tag/v0.4.2
Hab mal PacketForge etwas erweitert, so dass man die EBus IDs sehen
kann.
Hallo Georg,
wenn ich bei mir über das Bedienfeld (InfoWin) Datum/Zeit ändere, werden
genau die Pakete am LON gesendet, die ich oben gezeigt habe.
Aber ich habe ein UML+. Ob das beim UML C1 auch so geht?
Wie kannst du Datum/Zeit ändern, an der Anlage? Und was sieht man da am
LON Bus?
Über NV Variablen ist es mir auch nie gelungen, Datum/Zeit zu stellen.
Nur zu lesen.
Das hab ich nicht angeschaut.
Bei mir sind die Bedienteile mit einem extra bus zu ihren jeweiligen UML
verbunden.
Ist kein LON, sondern irgendein serial.
UART, 4.8k, 9.7V, siehe screenshot.
Wenn ich an einem Bedienteil die Zeit einstelle, hat das keine
Auswirkungen auf das andere oder gar die NV des UML.
Daher glaub ich nicht, dass da irgendwas raus geht.
Hi Georg,
ich habe Dein Programm noch nicht ganz durch gearbeitet, deshalb auf die
Schnelle hier die Frage:
Meinst Du, ich kann Dein Programm mit dem Controller aus dem Anhang
verwenden?
Er nutzt wohl FlowControl, Du schaltest die PINs selber, oder?
Hintergrund: ich baue mir gerade ein zweites Set auf und habe diesen
Controller geliefert bekommen, er macht aber erstmal nur TX an und das
war es dann.
Danke!
Ich habe es noch mal etwas besser versucht, man kann den Chip erkennen.
Bei R13 kann man wohl eine Brücke setzen, um den 120 Ohm Widerstand zu
aktivieren, ich weiß nicht, ob es den braucht. Einen Schaltplan habe ich
nicht.
Ich denke, es ist nicht die Frage, ob der Transceiver das kann, meine
Frage war, ob Dein Programm auf dem ESP32 ins Nichts läuft, wenn der
Transceiver das Senden und Empfangen automatisch macht/regelt.
Ich bin leider nicht so weit mit diesem Thema und manche Frage mag
komisch sein, aber ich habe unglaublich Lust, dabei was zu lernen und
selber weiter zu kommen.
Dazu brauche ich aber oft erst mal was “zum Anpacken”, um dann weiter
machen zu können.
Es steckt keine Faulheit meinerseits dahinter, bevor das falsch
verstanden wird.
Ich habe nun meine Platine fertig gemacht, es bleibt bei dem alten
Controller. Mit dem neuen FlowControl Device wollte ich die restlichen
CRC Fehler ausmerzen, aber ich denke, es ist gut genug so.
Konnte eine meiner Netzteil Platinen verwenden, um so direkt die 12V
abzugreifen und das Ganze in ein Leergehäuse zu bauen, läuft jetzt
prima.
Leider komme ich nicht weiter, was Steuerung etc. angeht. Da muss ich
mal sehen, wie ich da hinter komme, was noch möglich ist. Schön wäre
wirklich, die Uhrzeit setzen zu können (da probiere ich gerade die Tips
oben aus) und zB die Anforderung für Warmwasser triggern zu können.
Mir fehlt noch immer das Verständnis, das zu übersetzen, was ich zB in
Wireshark sehen kann.
Die Windhager truncated Messages tauchen aber nur auf, wenn ich einen
Nachricht sende, die im Tool von Georg unter EBus gespeichert ist. Dazu
muss ich Sender und Empfänger anpassen, dann kommt was zurück.
Hallo,
ich habe noch eine konkrete Frage, da wir diese Funktion oft benötigen:
Ist es möglich, die (oder ähnliche) Funktion: "Jetzt Wasser erwärmen" zu
steuern bzw. über den Bus anzutriggern?
Wenn ja: wie finde ich die Funktion bzw. kann diese so mitschneiden,
dass ich sie reproduzieren kann?
Ich würde gerne den Befehl über iobroker senden, um nicht in den Keller
zu müssen und dies per Hand zu erledigen.
Falls es Hilfe gibt: bitte eine kurze Step-by-Step Anleitung, da ich so
nicht weiterkomme und irgendwie auch nicht weiß, wo ich noch suchen
soll.
Vielen Dank,
Ron
Hi,
nächste Frage: kann man die EBus Anfragen / Auswertung auch Wireshark
fähig machen?
Hintergrund: wenn LON nur Variablen enthält muss ich ja versuchen die
EBus Befehle mitzulesen um zB. den Befehl zur Wassererwärmung
reproduzieren zu können.
So stehe ich immer noch am Anfang mit den Befehlen. So schön die
Erweiterung von Georg um EBus in dem LON Scanner auch ist, ich weiß
nicht, ob ich damit weiter komme, ich brauche ja eigentlich erstmal den
Befehl, der von der Steuerung gesendet wird, wenn man die Funktion am
Bedienteil einschaltet...
Danke,
Ron
Hallo zusammen,
nachdem ich nun mein Projekt erfolgreich abschliessen konnte, wollte ich
mich noch einmal bedanken:
Danke an Georg, für die tolle Inspiration und die Vorgaben.
Danke an Peter, für die eingebrachten Tipps.
Danke an meinen Kumpel, der mich wahrlich bei der Programmierung
unterstützt hat.
Leider habe ich hier keine Reaktionen mehr erhalten, vielleicht war ich
auch zu fordernd, keine Ahnung.
Jedenfalls habe ich:
1.) Den ESP Teil von Georg nachgebaut und erstmal damit getestet.
2.) Die Firmware der Paradigma MES in allen Teilen zerlegt.
3.) Den ESP in großen Teilen umprogrammiert.
4.) Den LON Bus so weit wie möglich zerlegt und analysiert.
Was habe ich erreicht:
1.) Ich kenne nun alle Variablen der Paradigma MES Module 4,8,10,11
(BBU, Solar, 2x C1 UML)
2.) Ich weiß, wie ich den LON beeinflussen kann
3.) Ich kann alle mir wichtigen Funktion steuern oder einbringen, sowohl
Alarm bei zu hoher Solar Temperatur, als auch die Warmwasser
Ansteuerung, kann mit Timings umgehen und auch den LON aushebeln etc.
4.) Ich habe unglaublich viel gelernt und bin froh, nicht aufgegeben zu
haben.
Was ich noch nicht kann:
1.) Die Uhrzeit der Module -> das Thema macht micht irre... Aber ich
werde mit ein wenig Pause dort weitermachen und mich noch dran setzen,
es muss auch möglich sein, das zu beeinflussen...
Viele Grüße, alles Gute, Danke,
Ron
Servus,
gute Arbeit, dann hast du ja das Beste draus gemacht.
- Was gelernt
- Dein Ziel erreicht
- Es selbst erreicht!
Naja zu den Fragen hat wohl keiner pauschale Antworten.
Ich muss sagen, ich hab die letzten auch nicht wirklich gesehen :)
Ich weiss leider auch noch nicht, wie ich meine Bedienteile ansprechen
kann.
EBus scheint es nicht zu sein. Jedenfalls reagiert da nichts drauf.
Magst vllt deine Firmware auch irgendwo online stellen?
So kann der nächste Paradigma-Nutzer vllt draus was machen.
Gruß,
Georg
Ist schon cool, dass ich jetzt am iPad über einen Button mit iobroker
das Wasser erwärmen kann :-)
Die Fragen waren hauptsächlich dazu gedacht, am Ende Aufwand und Zeit zu
sparen, ich habe da echt viele Stunden dran gesessen.
Ich kann gerne meine Erfahrungen zusammenfassen und dann Online stellen,
aber dazu muss ich alles aufräumen und noch den letzten Teil fertig
bekommen.
Es macht einfach Spaß gerade… :-)
Martin schrieb:> Windhager Biowin 2
Hi Martin,
Liebe BioWin 2 Touch -Nutzer,
Mir war folgende Info lange Zeit nicht klar und hätte beinahe dazu
geführt dass ich mir ein extra RC-7030 LON-Adapter besorge.
Zumindest die BioWin 2 Touch hat hinter der Display-Einheit einen
LAN-Buchse (Siehe Bild).
Offensichtlich ist der RC-7030 schon integriert und muss nicht extra
gekauft werden.
BG
Wil
Georg H. schrieb:> Ich hab mir mittlerweile einen Home Assistant eingerichtet und baue> langsam meine MQTT-Geräte so um, dass sie dem HA die config-messages> gleich mitschicken.>> So hab ich das jetzt auch bei MES-WiFi gemacht.
Lieber Georg,
Bei meiner BioWin2-Touch habe ich schon LAN-Zugriff auf den Webserver.
Damit ist für mich MESWiFi nicht notwendig (obwohl es sehr cool ist!).
Ist deine Integration in Home Assistant aber in irgendeiner Art
kompatibel mit dem Zugriff über LAN?
Zwei Projekte die sich mit dem Zugriff von HA auf die BioWin
beschäftigen sind:
- https://github.com/vermi0ffh/ha-windhager /
https://community.home-assistant.io/t/windhager-integration/348369/11
- https://github.com/sessl3r/windhager/tree/master braucht noch eine
separate VM für die Bereitstellung der Daten als über MQTT
Wobei ich noch nicht beurteilen kann ob diese Integrationen stabiler,
umfangreicher sind als deine.
Aus meiner Sicht wäre natürlich eine Kompatibilität hinsichtlich einer
aktuellen und breite Unterstützung/Wartung, Robustheit und Einfachheit
wünschenswert.
Ist aus deiner Sicht so etwas denkbar? Alternativ würde ich ansonsten
erstmals auf https://github.com/vermi0ffh/ha-windhager setzen.
BG
Wil
Wil schrieb:> https://github.com/sessl3r/windhager/tree/master braucht noch eine> separate VM für die Bereitstellung der Daten als über MQTT> Wobei ich noch nicht beurteilen kann ob diese Integrationen stabiler,> umfangreicher sind als deine.
Servus Wil,
da bei mir die HA-Integration eher so ein "ich schick die Daten halt auf
MQTT raus" ist, mit ein bisschen Zusatzinfo bzgl der Datenformate etc,
glaub ich nicht, dass es Sinn macht, bei mir da was in der Richtung zu
erweitern.
Ich empfehle dir das von dir genannte Projekt zu nutzen.
Das scheint dann wohl Explizit dafür gemacht und dadurch die bessere
Wahl.
Hallo,
hat schon jemand Erfahrung mit den neuen Infinity Plus Modulen von
Windhager? Die Lon Schnittstelle wurde anscheinend durch Ethernet
ersetzt.
Ich bekomme die Tage das Update auf den Biowin2 und möchte das ganze
dann auch in den HA einbinden. Bzw. suche immer noch nach einer sauberen
Lösung um die Heizkreise in den Absenkbetrieb zu versetzen, wenn alle
Ventile den FBH geschlossen sind und bei Anforderung wieder sauber die
Mischer und Pumpen einzuschalten.
Danke und Grüße
Hallo, ich habe hier ein ESP32-WROOM-32 Board, ein MAX485/RS485 Modul
und ein Step Down Modul auf 5V. Kann ich damit das MES-WiFi von Georg
nutzen? Kann mir da vllt. jemand bei der korrekten Pin-Belegung zwischen
Board und dem MAX485/RS485 Modul helfen? Ich war da bis jetzt leider
erfolglos. Der MES-WiFi Server auf dem ESP32 läuft immerhin :)
Ok, ich habe weiter oben folgende Pin-Belegung gefunden, aber leider
kommt im Home Assistant nichts an.
RO (RX) -> G35
RE/DE (TX_EN) -> G26
DI (TX) -> G25
Der ESP32 connected sich mit dem MQTT-Server, das sehe ich im Home
Assistant-Log. Hat der MES-WiFi Server auch ein Log?
Georg H. schrieb:> Ich hab mir die OperationalData.xml für die "UML +" angekuckt.> Dort sieht man schön die EBus IDs>> https://github.com/g3gg0/LonScan/releases/tag/v0.4.2> Hab mal PacketForge etwas erweitert, so dass man die EBus IDs sehen> kann.
Hallo Georg,
ich habe ein UML+ und würde gerne mehr über EBus Ids in Erfahrung welche
entsprechend angesprochen werden können. Besteht die Möglichkeit das du
mir die vollständige OperationalData.xml zu bekommen?
VG Stefan
Hallo Leute,
ich möchte auch gerne meine Windhager Heizung etwas modernisieren und
Temperaturen online auslesen.
Nur bin ich jetzt etwas überfordert bei den ganzen Beiträgen und
Ansätzen, sodass ich gefühlt nicht mehr weiß wo vorne und hinten ist.
Bei meiner Recherche ist mir folgendes Produkt aufgefallen. Könnte das
evtl. helfen?
https://www.waveshare.com/usb-to-rs485.htm