LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino

Begonnen von HCS, 07 November 2015, 14:39:36

Vorheriges Thema - Nächstes Thema

Steigerbalett

Zitat von: HCS am 25 Februar 2021, 08:58:50@schmadde: anbei eine Beta LGW 1.36

Kann man nicht per OTA auf das LGW hochladen, nur per USB

Hallo @HCS,
ich möchte demnächst mein LaCrosseGateway mit der MQTT Version von @Rainerlan_2 flashen. Dabei ist mir aufgefallen, dass die Version noch auf der 1.35 basiert.
Kannst Du eine aktuelle (z.B. 1.36-Beta) Codebasis zur Verfügung stellen oder die letzten Änderungen seit 1.35 durchgeben? Dann könnte man gleich eine aktuellere Version kompilieren.

Unabhängig davon:
Danke für Deine Arbeit, das LaCrosseGateway ist bei mir schon seit Jahren zuverlässig im Dauereinsatz.

TWry

#1966
Zitat von: Rainerlan_2 am 13 August 2022, 13:37:37Hi, mittlerweile habe die den Code erweitert, so dass die wichtigsten settings, wie MQTT server, port, username, pw usw ebenso über den Browser konfiguriert werden, wie der Rest der Einstellungen des Gateways. Siehe Screenshot.

@Rainerlan_2 scheint leider nicht mehr aktiv zu sein. Kann mir jemand sagen, wie ich seine Version installiert bekomme? Das Binary ist acht oder neun MB groß und passt bei mir nicht. Oder muss ich mir dafür einen NodeMCU mit mehr Flash-Speicher organisieren?


TWry

Das Erstellen des korrekten Binaries hat jetzt doch geklappt mit dem folgenden Befehl:

elf2bin.py -a /pfad/zu/LaCrosseGateway.ino.elf -f 80 -e /pfad/zu/eboot.elf -m dio -s 4M -o LaCrosseGateway.bin -p ./xtensa-lx106-elf/bin
elf2bin stammt aus dem esp8266 Arduino Github Repo. Dann mit esptool.py geflasht.

MQTT funktioniert jetzt fein für Temperaturen, allerdings vermisse ich die EC3000 Werte. Hat jemand einen Tipp?

malutz

Update 19.09.23:
Einmal neu installieren von Python und Update der ArduinoIDE haben Wunder bewirkt, das Gateway wurde ohne Murren kompiliert und läuft auf dem Wemod D1mini. Jetzt muss ich das Ding noch zusammenlöten und dann sind meine Sensoren wieder eingebunden :)

Grüße Martin


Hallo TWry,
vielen Dank für deine Erklärung zur Erstellung des Binaries. Hast du die unter Windows oder unter Linux erstellt?
Ich will mir das Binary für einen Wemos D1Mini erstellen, aber da erhalte ich unter Windows leider eine Fehlermeldung:

elf2bin.py -a ..\..\LaCrosseGatewayMQTT-main\binaries\LaCrosseGateway.ino.elf -f 80 -e ..\bootloaders\eboot\eboot.elf -m dio -s 4M -o LaCrosseGatewayMQTT.bin -p ./xtensa-lx106-elf/bin
Creating BIN file "LaCrosseGatewayMQTT.bin" using "..\bootloaders\eboot\eboot.elf" and "..\..\LaCrosseGatewayMQTT-main\binaries\LaCrosseGateway.ino.elf"
Traceback (most recent call last):
  File "D:\Programmieren\Arduino-master\tools\elf2bin.py", line 256, in <module>
    sys.exit(main())
  File "D:\Programmieren\Arduino-master\tools\elf2bin.py", line 234, in main
    wrapper(
  File "D:\Programmieren\Arduino-master\tools\elf2bin.py", line 232, in wrapper
    write_bin(out=out, args=args, **kwargs)
  File "D:\Programmieren\Arduino-master\tools\elf2bin.py", line 107, in write_bin
    entry = int(get_elf_entry( elf, args.path ))
  File "D:\Programmieren\Arduino-master\tools\elf2bin.py", line 43, in get_elf_entry
    result = subprocess.run(
  File "C:\Users\Martin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 489, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Users\Martin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\Martin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden

Hab ich mit Python 3.8 eine falsche Version? Oder woran kann das sonst liegen?

Grüße Martin

Bapt. Reverend Magersuppe

Zitat von: malutz am 29 August 2023, 19:23:41D1mini. Jetzt muss ich das Ding noch zusammenlöten und dann sind meine Sensoren wieder eingebunden :)

Hat jemand mal ein .bin der MQTT-Version für mich zum flashen? Ich bekomme es mit meinen Versionen weder unter ArduinoIDE noch mit Platformio sauber durchkompiliert.

@malutz: Hast du EC3000 am Laufen?

Danke!
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Bapt. Reverend Magersuppe

Zitat von: TWry am 26 Juli 2023, 08:58:43Das Erstellen des korrekten Binaries hat jetzt doch geklappt mit dem folgenden Befehl:

elf2bin.py -a /pfad/zu/LaCrosseGateway.ino.elf -f 80 -e /pfad/zu/eboot.elf -m dio -s 4M -o LaCrosseGateway.bin -p ./xtensa-lx106-elf/bin
elf2bin stammt aus dem esp8266 Arduino Github Repo. Dann mit esptool.py geflasht.

MQTT funktioniert jetzt fein für Temperaturen, allerdings vermisse ich die EC3000 Werte. Hat jemand einen Tipp?

@malutz @TWry

Da ich zu dusslig war das ganze selber zu kompilieren hat mit malutz freundlicherweise sein Binary zur Verfügung gestellt.
VIELEN DANK AN MALUTZ DAFÜR!


Flashen eines ESP ging dann auch problemlos!
Und dann kam der Kulturschock. Irgendwie eben sehr fhem-like, sei's drum, ein typisches WorksForMe-Ding. Das Ding hat bei mir einen AccessPoint aufgemacht, hat aber entgegen der Anleitung keine IP per DHCP an ausgegeben. Na pfeif drauf. Also habe ich mir 192.168.222.2 gegeben, konnte mich verbinden und das Ding dann in mein WLAN bringen.
Dann auf die Oberfläche um das Ding zu konfigurieren. Kulturschock, achso, sagte ich schon.
Funktionell nennt man sowas dann wohl, wenn es denn tut, ok. MQTT-Server konfiguriert.
Aber Hey! Das Modul empfängt schon ein paar Temperatursensoren, laut ID sind das nicht nur meine. Im MQTT-Explorer findet man die Temperaturwerte auch wieder.
Von EC3000 leider keine Spur.

@TWry nun zum EC3000. Meine Steckdose direkt daneben wurde irgendwie nicht erkannt. Auch nicht auf der seriellen Konsole. Auf der Wikiseite steht was von 20000r. Aber wo gibt man das ein? Dachte erst auf der seriellen Konsole, aber da tat sich gar nichts. Nee, man geht auf der Webconfig auf Log und gibt dort bei Command 20000r ein. Wenn der Empfang stimmt krümeln auch nach einiger Zeit Daten rein. Am besten gibt man bei Filter die HexAdresse der Steckdose ein.
Dann bekommt man solche Daten auf der Logconsole, aber nicht per MQTT.
19:29:51: OK 22 186 205 3 222 240 0 3 222 240 0 0 9 117 241 0 0 0 0 1 0 [BA CD F0 00 00 00 F0 00 00 00 00 05 0A 8D 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3D E0 00 00 00 08 3D E0 10 00 11 D7]

Meine Teststeckdose ist in diesem Fall die BA CD. Der Rest der Datenkrümel ist noch zu ermitteln.
Per MQTT werden diese Daten leider nicht versendet.  Wie man am Format unten sieht bringt das auch nicht richtig was.

Selbst wenn man den Sketch dazu bringt auch die EC3000-Daten per MQTT zu versenden wäre da wohl noch einiges an Skripting am auswertenden System zu machen.

Ich denke, wenn man das vernünftig machen möchte, müsste man das anders aufziehen. Aber das hat in diesem Forum wahrhaftig nichts zu suchen.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!