Forum: PC-Programmierung LON Bus Windhager mitlesen/steuern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Georg H. (g3gg0)


Lesenswert?

Nur die letzten 4 sind welche aus dem library manager.
Die anderen sind alle Teil des ESP32 v1.0.6
https://dl.espressif.com/dl/package_esp32_index.json

von Thomas (Gast)


Lesenswert?

I seem to recall you need to install the FastLED library.

von Johannes K. (nilpferdjk)


Lesenswert?

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"?

von Georg H. (g3gg0)


Lesenswert?

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 :)

von Thomas (Gast)


Lesenswert?

Johannes K. schrieb:
> 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"?

I am running with an M5Stack ESP32 module and only a MAXIM RS485 IC 
connected directly to the LON-bus. The M5Stack/ESP32 is powered from a 
plain USB-power adapter.

In my case I have NOT connected ground between my ESp32 setup and the 
burner. Only the differential RS485 LON-bus.

It works great. A simple RS485 adapter like the one below can easily be 
used. All you need is the ESP32 module and the RS485 adapter and that's 
it.

https://www.amazon.de/-/en/DollaTek-MAX485-Module-RS-485-Development/dp/B07DK4QG6H/ref=sr_1_18?crid=2NK01FS6P0E6S&keywords=ICQUANZX+MAX485%2FRS485&qid=1643754798&sprefix=icquanzx+max485%2Frs485%2Caps%2C80&sr=8-18

von Georg H. (g3gg0)


Lesenswert?

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.

: Bearbeitet durch User
von Johannes K. (nilpferdjk)


Angehängte Dateien:

Lesenswert?

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?

von Georg H. (g3gg0)


Lesenswert?

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

von Johannes K. (nilpferdjk)


Lesenswert?

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

: Bearbeitet durch User
von Thomas (Gast)


Lesenswert?

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.

von Georg H. (g3gg0)


Lesenswert?

Uhm, that is possible, but not necessary.

: Bearbeitet durch User
von Georg H. (g3gg0)


Lesenswert?

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.

von Johannes K. (nilpferdjk)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

Johannes,

can you copy paste the part of the code where you assign the GPIO's so 
we can see what it looks like.

Mine currently looks like this.
1
#define LON_RX    16 // GPIO16 is for Commu, GPIO35 is for my breadboard
2
#define LON_TX_EN 17 // GPIO17 is for Commu, GPIO2 is for my breadboard
3
#define LON_TX    5  // GPIO 5 is for both Commu and my breadboard

von Thomas (Gast)


Lesenswert?

Ah, I see now the info I asked for is already there ;)

von Thomas (Gast)


Lesenswert?

This his how you should have connected it then,
1
#define LON_RX    17    // Connects to RO on MAX487
2
#define LON_TX    16    // Connects to DI on MAX487
3
#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?

von Johannes K. (nilpferdjk)


Lesenswert?

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

: Bearbeitet durch User
von Thomas (Gast)


Lesenswert?

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

von Georg H. (g3gg0)


Angehängte Dateien:

Lesenswert?

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?

: Bearbeitet durch User
von Michael L. (michaelleitner)


Lesenswert?

Magst vielleicht ein, zwei Fotos vom Breadboard reinstellen? Vielleicht 
hilft das.

lg Michael

von Johannes K. (nilpferdjk)


Angehängte Dateien:

Lesenswert?

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

von Johannes K. (nilpferdjk)


Lesenswert?

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.

von Georg H. (g3gg0)


Lesenswert?

> 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?

von Johannes K. (nilpferdjk)


Lesenswert?

Masse gegen LON+
Masse gegen LON-

Oder
LON- gegen LON+ ??

von Georg H. (g3gg0)


Lesenswert?

Johannes K. schrieb:
> Masse gegen LON+
Ja

> Masse gegen LON-
Ja

> LON- gegen LON+ ??
Ja

 ;)

von Johannes K. (nilpferdjk)


Lesenswert?

Masse gegen LON+  --> 2,27V
Masse gegen LON-  --> 2,27V
LON- gegen LON+   --> 0V

von Georg H. (g3gg0)


Lesenswert?

Wenn sich da auf den Leitungen nichts ändert, (AC mode, LON+ <-> LON-) 
würde ich skeptisch werden.

von Johannes K. (nilpferdjk)


Lesenswert?

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...

von Georg H. (g3gg0)


Lesenswert?

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?

von Johannes K. (nilpferdjk)


Lesenswert?

Kabel sind ca. je 15 - 20cm lang.
Der Anschluss ist für den Pelletssauger, direkt im Heizkessel an der 1. 
Klemme, wo das UML C1 draufsteckt.

Würde sowas hier reichen, um was zu "sehen"?

https://www.amazon.de/Quimat-Digital-Oszilloskop-Maschine-montiert/dp/B077CZVZTJ/ref=sr_1_7?keywords=oszilloskop&qid=1643839033&refinements=p_76%3A419122031&rnid=419121031&rps=1&sprefix=oszilo%2Caps%2C86&sr=8-7

von Georg H. (g3gg0)


Lesenswert?

Bin kein Messgeräte-Profi, aber ich hätte mal gesagt, dass das von der 
Bandbreite ausreichend ist.

von Thomas (Gast)


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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!

von Georg H. (g3gg0)


Lesenswert?

Was mir grad so kommt, beim LON sollte doch der LON+ bei 2,7V liegen?
LON- liegt bei so 2.3V
-> 
https://store.chipkin.com/articles/rs485-what-are-possible-rs485-polarity-issues

von Johannes K. (nilpferdjk)


Lesenswert?

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

von Georg H. (g3gg0)


Lesenswert?

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.

von Johannes K. (nilpferdjk)


Angehängte Dateien:

Lesenswert?

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

: Bearbeitet durch User
von Johannes K. (nilpferdjk)


Lesenswert?

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

von Michael L. (michaelleitner)


Lesenswert?

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

von Johannes K. (nilpferdjk)


Lesenswert?

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

von Georg H. (g3gg0)


Lesenswert?

Aber dafür hast du jetzt ein Oszi ;D

von Johannes K. (nilpferdjk)


Lesenswert?

ich hab schon länger einen Grund für den Kauf eines Oszis gesucht ;-)

von Georg H. (g3gg0)


Lesenswert?

Ah ich sehe WVF hat fehlerhafte Header-Daten...

von Johannes K. (nilpferdjk)


Lesenswert?

heißt?

auch würde mich interessieren, wie ich zusätzliche Datenfelder aus dem 
LON-Scanner auf mein MQTT bekomme. Steht das irgendwo?

von Georg H. (g3gg0)


Lesenswert?

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.

von Michael L. (michaelleitner)


Lesenswert?

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

von Johannes K. (nilpferdjk)


Lesenswert?

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

von Georg H. (g3gg0)


Lesenswert?

Wie sieht euer "Scan" aus? Der zweite Button.

von Johannes K. (nilpferdjk)


Angehängte Dateien:

Lesenswert?

siehe Anhang.
Kann es sein, dass die 70 dieses Raumbediengerät ist, das bei mir im 
Wohnzimmer hängt?

von Georg H. (g3gg0)


Lesenswert?

nutz bitte mal die aktuelle software ;)

von Johannes K. (nilpferdjk)


Lesenswert?

aktuelle Software? Link?

von Georg H. (g3gg0)


Lesenswert?


von Johannes K. (nilpferdjk)


Angehängte Dateien:

Lesenswert?

dann siehts so aus ;-)

von Georg H. (g3gg0)


Lesenswert?

Ok ändert nix. Schad.
Dann hab ich die genaue version nicht als info-file.

Falls jemand alte XIF files hat, gerne melden.

von Michael L. (michaelleitner)


Angehängte Dateien:

Lesenswert?

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 :)

von Michael L. (michaelleitner)


Angehängte Dateien:

Lesenswert?

> 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.

von Thomas (Gast)


Lesenswert?

I have been using the M5Stack Core module to run this.

Tonight I wanted to install on a Core2 module, and then I ended up with 
the
1
error: 'PERIPH_RMT_MODULE' was not declared in this scope

To overcome this problem, I replaced an include in LON_RMT_rx.ino
1
//include "driver/rmt.h"
2
#include "driver/periph_ctrl.h"

Perhaps the same change will fix the same issue occuring when updating 
IDE from 1.8.1 to 1.8.19

von Georg H. (g3gg0)


Lesenswert?

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

: Bearbeitet durch User
von Lucas (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Georg H. (g3gg0)


Lesenswert?

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.

: Bearbeitet durch User
von Lucas F. (lucas_f)



Lesenswert?

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
const char * 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?

von Georg H. (g3gg0)


Lesenswert?

Ja, musst auf 192.168.0.255 anpassen.
kommt dann was?

von Lucas F. (lucas_f)


Lesenswert?

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
const char * 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-

: Bearbeitet durch User
von Georg H. (g3gg0)


Lesenswert?

hm.
Eigentlich sollte es mit den Broadcast-Adressen gehen.

Was sagt das oszi am transceiver?
Spannungsverlauf A, Spannungsverlauf B, RO ?

von Claus L. (claus_l)


Lesenswert?

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

von Dauriata (zoulou)


Angehängte Dateien:

Lesenswert?

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

von Dauriata (zoulou)


Lesenswert?

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.

von Dauriata (zoulou)


Lesenswert?

Found out that it works for a value of bits_overlap of 1 or 2 but not 
above. Last commit set it to 3.

von Georg H. (g3gg0)


Lesenswert?

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

: Bearbeitet durch User
von Claus L. (claus_l)


Lesenswert?

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

von Georg H. (g3gg0)


Lesenswert?

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.

von Dauriata (zoulou)


Lesenswert?

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 ?

: Bearbeitet durch User
von Christian R. (leram)



Lesenswert?

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... ;-)

: Bearbeitet durch User
von Georg H. (g3gg0)


Lesenswert?

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

von Christian R. (leram)



Lesenswert?

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?

: Bearbeitet durch User
von Georg H. (g3gg0)


Lesenswert?

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

von Christian R. (leram)


Lesenswert?

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!

von Christian R. (leram)


Angehängte Dateien:

Lesenswert?

This is the LON bus when the heating is shut off. So it shows only the 
data that is sent by the ESP. Doesn´t look too bad IMHO.

von Georg H. (g3gg0)


Lesenswert?

Is this A-to-B on the LON bus?
Are you using the latest git revision?

von Christian R. (leram)


Lesenswert?

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?

: Bearbeitet durch User
von Georg H. (g3gg0)


Lesenswert?

Christian R. schrieb:
> Did I miss anything?

cough no...

fetch the latest version from git now and try again... :)

von Christian R. (leram)


Lesenswert?

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??

von Georg H. (g3gg0)


Lesenswert?

No, I just forgot to push the last change I made :D
This change was 2 weeks ago.

von Christian R. (leram)


Lesenswert?

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!! 
:)

von Georg H. (g3gg0)


Lesenswert?

Great to hear that it works :)
If you have contributions, feel free to send pull requests.

von Thomas N. (thomasx)


Lesenswert?

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.

von Georg H. (g3gg0)


Lesenswert?

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

von Georg H. (g3gg0)


Lesenswert?

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 :)

von Holger (Gast)


Lesenswert?

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

von Sheldon C. (081569)


Lesenswert?

Hallo,

würde auch folgender Adapter funktionieren, dieser braucht aber keinen 
TX enable pin d.h. den kann ich einfach weglassen oder? Verwendet den 
MAX13487.

https://www.amazon.de/gp/product/B07B667STP/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

Btw - kann man die serielle konsole oder zumindest die LON werte auch 
ins WebIf packen, hätte es versucht bin aber kläglich gescheitert.

danke!

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

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

Formatierung (mehr Informationen...)

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




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

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