LaCrosseGateway32 - LaCrosse, PCA301 und EC3000 über WiFi mit ESP32

Begonnen von HCS, 09 April 2017, 21:08:54

Vorheriges Thema - Nächstes Thema

HCS

Hier entsteht die Portierung des LaCrosseGateway (https://forum.fhem.de/index.php/topic,43672.0.html) auf den ESP32.

Hinweis: Das Projekt ist vorerst wegen Zeitmangel zurückgestellt

Vorteile auf dem ESP32:
- deutlich mehr IOs verfügbar
- für die Serial-Bridges und den Alarm wird kein SC16IS750 benötigt
- bis zu fünf Radios ohne SC16IS750
- Mehr Speicher und mehr Rechenleistung
- Zusätzlich zu Radio #1 stehen 16 GPIOs zur Verfügung, die man recht frei als Ein- oder Ausgang oder für spezielle Funktionen (Bridges, ...) konfigurieren kann

HCS

Change log

Aktueller Status: pre Alpha, nicht für den Produktivbetrieb
Es gibt noch viel zu tun, bei manchen Dingen klemmt es noch im esp-idf und/oder im Arduino core und vieles muss ich im LGW noch umbauen/anpassen oder teils neu schreiben.
Wird also noch dauern, bis es produktiv wird.

Aber wer es mal ausprobieren möchte - gerne.
Auf FHEM-Seite wird das 36_LaCrosseGateway-Modul benötigt, es funktioniert nicht mit dem JeeLink Modul

USB-Upload:
python esptool.py --chip esp32 --port "COM3" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_freq 80m --flash_mode dio --flash_size 4MB 0x1000 bootloader.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 LaCrosseGateway32.bin
Die Schnittstelle "COM3" ist entsprechend anzupassen

OTA-Update:
curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@LaCrosseGateway32.bin; filename=firmware.bin" http://192.168.31.212/ota/firmware.bin
Die IP-Adresse (192.168.31.212) ist entsprechend anzupassen

Die erforderlichen Dateien findet man im angehängten ZIP.

Was ich schon länger erfolgreich verwende, ist das "SparkFun ESP32 Thing" (https://www.sparkfun.com/products/13907)
Es sollte aber auch mit jedem anderen ESP32-Board funktionieren.

Funktionen (Legende) (Alle Angaben ohne Gewähr)
[X] = funktioniert
[H] = funktioniert so halbwegs
[ ] = fehlt noch

[X] Connect zu einem AccessPoint / eigener AP für die Konfiguration
[X] Web frontend incl. setup page
[X] DataPort für FHEM
[X] Alarm
[X] BME280, BMP180, LM75, DHT22, DHT11, SHT75
[X] Statuswerte (KVP)
[ ] Nextion
[X] MCP23008
[X] Digitalausgänge
[X] Digitaleingänge
[ ] Analogausgänge
[ ] Analogeingänge
[ ] Touch-Eingänge
[ ] Serial-Bridge 1 und 2
[X] OTA-Update
[X] MDNS
[ ] USR-TCP
[X] RFM69 #1 ... #5
[ ] CC1101
[X] PCA301
[X] EC3000
[X] EMT7110
[X] LaCrosse-Sensoren inc. WS1600
[X] OLED

Beispiel-Konfiguration am Beispiel SparkFun ESP32 Thing
In "Mögliche Optionen" ist aufgeführt, welche Option für den jeweiligne GPIO möglich ist (auf der Setup-Page konfigurierbar)
Man kann beim LGW32 also selbst entscheiden, ob man lieber mehr IO oder mehr Radios oder Bridges usw. haben will.


Pin   GPIO                 Verwendung                                Mögliche Optionen
  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   36   GPIO36 (only IN)  -> AI "TMP36.1"                              DI, AI
   37   GPIO37 (only IN)  -> AI "TMP36.1"                             (DI, AI)  (nicht ESP-32S, Nano32 und NodeMCU-32S)
   38   GPIO38 (only IN)  -> DI "Button38"                            (DI, AI)  (nicht ESP-32S, Nano32 und NodeMCU-32S)
   39   GPIO39 (only IN)  -> DI "{OLED Off}"                           DI, AI
   32   GPIO32            -> Serial bridge 1 TXD - AddOn CPU 1 RXD     DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
   33   GPIO33            -> Serial bridge 2 TXD - AddOn CPU 2 RXD     DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, Bridge2.Reset, SHT75.Clock, SHT75.Data
   34   GPIO34 (only IN)  -> Serial bridge 1 RXD - AddOn CPU 1 TXD     DI, AI, Nextion.RXD, Bridge1.RXD, Bridge2.RXD
   35   GPIO35 (only IN)  -> Serial bridge 2 RXD - AddOn CPU 2 TXD     DI, AI, Nextion.RXD, Bridge1.RXD, Bridge2.RXD
   25   GPIO25            -> Radio.3 NSS                               DI.PU, DI.PD, DO, AI, AO, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
   26   GPIO26            -> Radio.4 NSS                               DI.PU, DI.PD, DO, AI, AO, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
   27   GPIO27            -> Radio.5 NSS                               DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
   14   GPIO14            -> Alarm (Buzzer / LED rot)                  DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
   12   GPIO12            -> Radio.2 NSS                               DO, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.Reset, Bridge2.Reset (DARF BEIM BOOTEN NICHT HIGH SEIN)
   13   GPIO13            -> DHT22                                     DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
  RST   Reset  (PullUp)   ---
  3V3   3.3V              -> 3.3V
  GND   GND               -> GND   
VBAT   4.2V              ---
VUSB   5.0V              -> Nextion VCC
  GND   GND               -> Nextion GND   

  GND   GND               -> GND
   21   SDA               -> SDA + 4k7 PU                              (auto sense) BMP180 (0x77), BME280 (0x76), LM75 (0x4F), OLED (0x3C), MCP23008 (0x27)
   TX   FTDI              --- 
   RX   FTDI              ---
   22   SCL               -> SCL + 4k7 PU
   19   SPI MISO          -> RFM69 MISO  / CC1101 SO
   23   SPI MOSI          -> RFM69 MOSI  / CC1101 SI                   10K PullUp = "no WiFi"
   18   SPI SCK           -> RFM69 SCK   / CC1101 SCLK
   05   GPIO05 LED        -> LED                                       DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
   15   GPIO15            -> Radio.1 IRQ / CC1101 GDO0                             
   02   GPIO02(PullDown)  -> DO "LED.02" (LED bei NodeMCU-32S)         DO, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge2.TXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD
   00   GPIO00(PullUp)    -> Button "00" (on board)                                           
   04   GPIO04            -> Radio.1 NSS / CC1101 CSN                               
   17   GPIO17            -> 0.1uF -> Bridge 2 Reset                   DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
   16   GPIO16            -> 0.1uF -> Bridge 1 Reset (LED bei Nano32)  DI.PU, DI.PD, DO, AI, Touch, DHT22, Alarm, LED, Radio.2, Radio.3, Radio.4, Radio.5, Bridge1.TXD, Bridge1.RXD, Bridge2.TXD, Bridge2.RXD, Bridge1.Reset, Bridge2.Reset, Nextion.TXD, Nextion.RXD, SHT75.Clock, SHT75.Data
  3V3   3.3V              -> 3.3V
  GND   GND               -> GND   
VBAT   4.2V              ---
VUSB   5.0V              ---
  GND   GND               -> GND   



sash.sc

Hallo HCS.

Ich weiß es ist Sommer.
Wie ist der Stand der Dinge?

Gruß Sascha

Gesendet von meinem SM-T560 mit Tapatalk

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

HCS

Zitat von: sash.sc am 18 Juni 2017, 18:16:47
Wie ist der Stand der Dinge?
Wegen Zeitmangel nicht viel passiert.
Allerdings ist am Espressif IDF auch nicht viel passiert in letzter Zeit.
Willst Du es einsetzen?
Falls ja, welche der oben als "fehlt noch" deklarierte Funktionalität wäre erforderlich?

sash.sc

Hi HCS.

Mein Bedarf besteht darin, die 2 nanocul die ich habe, evtl. die Signalduino Funktion, und LaCrosse mit 2 oder 3 Radios auf einem gateway zu haben.

Das was ich oben gesehen habe, fehlt cc1101 und serial bridge.

Zur Zeit habe ich nen 868 nanocul für HM im Einsatz und 433 cul für div. Temp. Sensoren und IT und revolt funkmessdosen. Habe auch nen Signalduino über WLAN angeschlossen. Dieser ist auch mit nen cc1101 bestückt.

Ist alles bastelzeug was sich so angesammelt hat., bzw was ich ausprobiert habe. [emoji6]

Deswegen suche ich ne Möglichkeit alles auf ein gateway zu bekommen.

Gruß Sascha

Gesendet von meinem SM-T560 mit Tapatalk

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

HCS

Zitat von: sash.sc am 18 Juni 2017, 18:57:00
Mein Bedarf besteht darin, die 2 nanocul die ich habe, evtl. die Signalduino Funktion, und LaCrosse mit 2 oder 3 Radios auf einem gateway zu haben.
Ja, da fehlen Dir die Bridges.
Dass der CC1101 mit auf der Liste steht, kann man erst mal vergessen, den habe ich nur hardwaremäßig eingeplant, was und ob überhaupt mal mit wird, ist noch unklar.

Der Plan ist aktuell, als nächstes die bridges zu machen. Dann würde die beiden nanocul + bis zu fünf RFM69 für LaCrosse, PCA301, ... gehen (ohne weitere Hardware wie SC16IS750)

Zeithorizont aktuell nicht vorhersehbar.

sash.sc

Danke für die Infos.

Gruß Sascha

Gesendet von dem teuren ding in meiner hand

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

Smarti