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

sash.sc

Asche auf mein Haupt.  :o

Ich hatte noch ein MySensor Gateway auf dem gleichen USB konfiguriert. Hatte die Config nicht entfernt.
Musste diese auch manuell löschen, da sich das MySensor GW manuell nicht löschen ließ.

Nachdem ich es gelöscht hatte, läuft es jetzt auch ohne Probleme.

Kleine Ursache, große Wirkung.
Habe jetzt auch alle JeeLink Devices auf das LGW umgestellt.

Habe aber nochmal eine Frage. Wie kann ich das WLAN jetzt nachträglich wieder aktivieren, wenn ich das LGW dann doch noch woanders positionieren will ??

Gruß und Danke für die Unterstützung.

Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

HCS

Zitat von: sash.sc am 03 Januar 2017, 13:16:22
Asche auf mein Haupt.  :o
kann man mit:
set LCG_S raw VolcanicEruption
auslösen  ;D ;D ;D


Zitat von: sash.sc am 03 Januar 2017, 13:16:22Habe aber nochmal eine Frage. Wie kann ich das WLAN jetzt nachträglich wieder aktivieren, wenn ich das LGW dann doch noch woanders positionieren will ??
Das kann man mit:
set LCG_S raw "SETUP UseWiFi true"
machen.

HCS

Zitat von: Wallmeier am 02 Januar 2017, 23:08:59
Ich tippe darauf, dass sie schlicht zu groß geworden ist für den ESP :(
Ja, so ist es wohl.
Aber Du hast mich wieder auf den richtigen Pfad zurückgeführt.
Ich habe
- Deine "in kleinen Häppchen an den großen String anfügen" Strategie noch etwas weiter getrieben
- Die Seite etwas byte-schonender gemacht
- Und ich leere und deaktiviere jetzt vor dem Aufbauen der page die log queue, was etwas mehr heap beschert

Damit bin ich zumindest an dem Punkt, dass sie fast immer korrekt funktioniert (zu 99%)
im Gegensatz zu bisher, wo sie zu 99% nicht funktioniert hat (zumindest auf meinem "all you can connect" lGW)

Flexstarr

Zitat von: HCS am 01 Januar 2017, 22:14:35
Dann hast Du das Radio an GPIO2 angeschlossen. Wenn Du es an GPIO15 (D8) anschließt, wird es Radio #1
Das wird nicht gehen. Mit dem Nextion Display wäre das machbar. Siehe hier: https://forum.fhem.de/index.php?action=dlattach;topic=63443.0;attach=65245
Da musst Du Dir in FHEM etwas schreiben, das die Werte alle x Sekunden an das Display schickt.
So in der Art: set myLaCrosseGateway raw "OLED show=55%,,,h"
siehe https://wiki.fhem.de/wiki/LaCrosseGateway#Inbetriebnahme_von_OLED-Display
Danke @HCS, Radio #1 wird jetzt verwendet.
Wie muss denn initCommands aussehen, wenn Radio #1 gesetzt werden soll und das OLED Temp/Hum/Pressure anzeigen soll?
"1,868950,60i 0a v OLED mode=thps" funktioniert leider nicht.
FHEM 5.8 @RPi2
CUL433, CUL868, JeeLink, Hamony Hub, Hue Bridge, ELV EnergieAmpel, IT Steckdosen, mehrere Homematic Teile..

HCS

Zitat von: Flexstarr am 03 Januar 2017, 21:23:05
Wie muss denn initCommands aussehen, wenn Radio #1 gesetzt werden soll und das OLED Temp/Hum/Pressure anzeigen soll?
"1,868950,60i 0a v OLED mode=thps" funktioniert leider nicht.
Ich würde in die initCommands nur
1,868950,60i 0a v
ohne Füße von Gänsen reinschreiben und die Initisierung des OLED auf der setup-page machen.

OLED start: on oder eine Zeit angeben
und bei mode thp eintragen.

HCS

Zitat von: Wallmeier am 02 Januar 2017, 23:08:59
Die Sache hat mir keine Ruhe gelassen und ich habe ein wenig herum gespielt...
Mir auch nicht, und die 99%-Lösung war mir dann doch zu wenig.
Ich denke, dass ich das setup-page-Problem nun endgültig gelöst habe.

Ich habe endlich rausgefunden, wie man das chunked Transfer-Encoding hinbekommt.
Damit muss das html nicht mehr in einen giga-String und kann in kleineren Portionen konstruiert und rausgeschickt werden.

Funktioniert generell so:
m_webserver.setContentLength(CONTENT_LENGTH_UNKNOWN);
m_webserver.send(200, "text/html", "");
m_webserver.sendContent("<p>Das</p>");
m_webserver.sendContent("<p>ist</p>");
m_webserver.sendContent("<p>cool</p>");
m_webserver.client().stop();


Jetzt rückt die 1.25 in greifbare Nähe  8)

Wallmeier


HCS

V1.25

Zweite serial bridge
Man kann nun mit Hilfe eine zweiten SC16IS750 eine zweite serial bridge verwenden.
Damit kann man z.B. zwei nanoCUL oder sonstige serielle devices anschließen.
Der zweite SC16IS750 muss die I2C Adresse 0x92 haben.
Vielen Dank an Walleier für den Patch, der das hinzugefügt hat.

Mehrere Clients auf den Ports der serial bridges
Auf einen Port einer serial bridge können sich nun mehrere clients verbinden.
Vielen Dank an Walleier für den Patch, der das hinzugefügt hat.

setup page
Die Probleme der setup page sollten nun endlich behoben sein.

sash.sc

Hallo HCS

Habe gerade versucht die neue FW zu flashen. Das Gateway läuft bei mir als Stick.
Habe nach dem flashen folgende Meldung bekommen.


flashing LaCrosseGateway LCG_S
hex file: ./FHEM/firmware/JeeLink_LaCrosseGateway.bin
Mode is LaCrosseGateway OTA-update
LCG_S closed
target: http:///dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@57600/ota/firmware.bin

ERROR: 500 No Host option provided at /usr/share/perl5/Net/HTTP/Methods.pm line 44.
LCG_S opened


Was heisst das ??
Guß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

HCS

Zitat von: sash.sc am 06 Januar 2017, 13:34:50
Was heisst das ??
Das bedeutet, dass Du noch einen Tag warten musst.

Aktuell kann das LaCrosseGateway-Modul nur über WiFi flashen.
ich habe aber gerade eingebaut, dass es das auch für ein lokal per USB angeschlossenes LGW (also Deine Variante) hinbekommt.
Ich denke, dass ich diese Version heute Abend einchecke, so dass es dann morgen mit dem Update ausgeliefert wird.

waschbaerbauch

Hab heute meine LCG Armee auf Version 1.25 gebracht. Konnte bisher auf keinem den alten Bug mehr nachstellen ;)

HCS

LaCrosseGateway Modul
Also das Modul in FHEM meine ich damit.
Neuerungen:

set lgwXYZ reboot
Wenn das LGW per USB angebunden ist. wird nun ein harter Reset per RTS ausgelöst.
Bei per WiFi angebundenen LGWs wird wie bisher ein Reset-Wunsch an das LGW übermittelt.

FHEM-Log bei USB angebundenen LGWs
Da der bootloader des ESP8266 beim booten Meldungen mit der "falschen" baud rate schickt, wurde bei jedem booten so etwas ins FHEM-Log geschrieben:
lgwXYZ: Unknown code ے�eo>Il�ˀ��޴����, help me!
Das wird nun unterdrückt.

Firmware upload für per USB angebundene LGWs
LGWs, die per USB mit deaktiviertem WiFi angebunden sind, können nun auch mit der aktuellen Firmware versorgt werden.

Dazu sind einige Voraussetzungen zu schaffen:
Python muss installiert sein.
apt-get install python

pyserial muss installiert werde:
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install pyserial


Der mode muss auf USB eingestellt sein:
attr lgwUSB mode USB

Das Attribut usbFlashCommand muss vorhanden sein. Es wird automatisch generiert und sein Inhalt muss üblicherweise nicht angepasst werden.

Dann kann die Firmware mit
set lgwUSB flash
hochgeladen werden. Dazu wird der USB-Port aus der device definition verwendet.
           
Nach dem Upload bekommt man ein Protokoll das so aussehen sollte:   
flashing LaCrosseGateway LGWusb
hex file: ./FHEM/firmware/JeeLink_LaCrosseGateway.bin
Mode is LaCrosseGateway USB-update
command: ./FHEM/firmware/esptool.py -b 921600 -p /dev/ttyUSB0 write_flash -ff 80m -fm dio -fs 4MB-c1 0x00000 ./FHEM/firmware/JeeLink_LaCrosseGateway.bin > ./log/LaCrosseGatewayFlash.log

--- esptool ---------------------------------------------------------------------------------
esptool.py v2.0-dev
Connecting...
Detecting chip type... ESP8266
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Attaching SPI flash...
Configuring flash size...

Writing at 0x00000000... (3 %)
Writing at 0x00004000... (7 %)
Writing at 0x00008000... (10 %)
Writing at 0x0000c000... (14 %)
Writing at 0x00010000... (17 %)
Writing at 0x00014000... (21 %)
Writing at 0x00018000... (25 %)
Writing at 0x0001c000... (28 %)
Writing at 0x00020000... (32 %)
Writing at 0x00024000... (35 %)
Writing at 0x00028000... (39 %)
Writing at 0x0002c000... (42 %)
Writing at 0x00030000... (46 %)
Writing at 0x00034000... (50 %)
Writing at 0x00038000... (53 %)
Writing at 0x0003c000... (57 %)
Writing at 0x00040000... (60 %)
Writing at 0x00044000... (64 %)
Writing at 0x00048000... (67 %)
Writing at 0x0004c000... (71 %)
Writing at 0x00050000... (75 %)
Writing at 0x00054000... (78 %)
Writing at 0x00058000... (82 %)
Writing at 0x0005c000... (85 %)
Writing at 0x00060000... (89 %)
Writing at 0x00064000... (92 %)
Writing at 0x00068000... (96 %)
Writing at 0x0006c000... (100 %)
Wrote 458752 bytes at 0x00000000 in 6.5 seconds (560.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting...
--- esptool ---------------------------------------------------------------------------------

LGWusb opened



Ist eingecheckt, das Update morgen bringt es dann ins Haus.

sash.sc

Hört sich nach viel Aufwand an.!  8)

Lgw in wifi Modus bringen und dann über ota flashen.

Aber sehr gute Unterstützung hier!

Gruß und danke
Sascha

Von mobil gesendet daher kurze Antwort

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

HCS

Zitat von: sash.sc am 06 Januar 2017, 22:22:07
Hört sich nach viel Aufwand an.!  8)
:o

Aber evtl. habe ich es in meinem Beitrag nicht deutlich gemacht:
apt-get install python
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install pyserial

Muss man nur ein mal auf dem Server machen. Vier Befehle per copy paste in eine SHH-Sitzung kopieren, das war es dann.
Und falls man das noch nicht gemacht hat, halt noch das mode Attribut einmalig korrekt setzen.

Danach kann man immer und jederzeit einen "set lgwUSB flash" absetzen, ohne vorher nochmal irgend etwas machen zu müssen.

Nach meiner persönlichen Einschätzung hält sich der Aufwand doch sehr in Grenzen  ;)

Zitat von: sash.sc am 06 Januar 2017, 22:22:07
Lgw in wifi Modus bringen und dann über ota flashen.
Das geht aber nur, wenn man den define des LaCrosseGateway-Device erst mal auf die TCP-Verbindung umschreibt, sonst hat ein "set lgwBlaBla flash" keine Ahnung, wie es das LGW per WiFi erreicht.

sash.sc

Ok. Hast mich überzeugt!  8)

Von mobil gesendet daher kurze Antwort

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb