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
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 :)
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
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
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
:
Bearbeitet durch User
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.
Uhm, that is possible, but not necessary.
:
Bearbeitet durch User
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
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 |
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?
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
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?
:
Bearbeitet durch User
Magst vielleicht ein, zwei Fotos vom Breadboard reinstellen? Vielleicht hilft das. lg Michael
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?
Masse gegen LON+ --> 2,27V Masse gegen LON- --> 2,27V LON- gegen LON+ --> 0V
Wenn sich da auf den Leitungen nichts ändert, (AC mode, LON+ <-> LON-) würde ich skeptisch werden.
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?
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
Bin kein Messgeräte-Profi, aber ich hätte mal gesagt, dass das von der Bandbreite ausreichend ist.
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!
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
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
:
Bearbeitet durch User
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
ich hab schon länger einen Grund für den Kauf eines Oszis gesucht ;-)
heißt? auch würde mich interessieren, wie ich zusätzliche Datenfelder aus dem LON-Scanner auf mein MQTT bekomme. Steht das irgendwo?
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
siehe Anhang. Kann es sein, dass die 70 dieses Raumbediengerät ist, das bei mir im Wohnzimmer hängt?
generell: https://github.com/g3gg0/LonScan/releases/ konkret die letzte: https://github.com/g3gg0/LonScan/releases/tag/v0.3.5
Ok ändert nix. Schad. Dann hab ich die genaue version nicht als info-file. Falls jemand alte XIF files hat, gerne melden.
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.
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
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
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.
:
Bearbeitet durch User
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?
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
hm. Eigentlich sollte es mit den Broadcast-Adressen gehen. Was sagt das oszi am transceiver? Spannungsverlauf A, Spannungsverlauf B, RO ?
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.
Found out that it works for a value of bits_overlap of 1 or 2 but not above. Last commit set it to 3.
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
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 ?
:
Bearbeitet durch User
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
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?
:
Bearbeitet durch User
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!
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.
Is this A-to-B on the LON bus? Are you using the latest git revision?
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
Christian R. schrieb: > Did I miss anything? cough no... fetch the latest version from git now and try again... :)
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??
No, I just forgot to push the last change I made :D This change was 2 weeks ago.
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!! :)
Great to hear that it works :) If you have contributions, feel free to send pull requests.
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
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!