SIGNALESP: Firm- und Hardware für SIGNALduino direkt auf ESP8266 oder ESP32

Begonnen von Ralf9, 24 Januar 2018, 20:04:44

Vorheriges Thema - Nächstes Thema

Ralf9

Für den ESP8266 und ESP32 gibts eine Firmware von Sidey
https://wiki.fhem.de/wiki/SIGNALduino




Hier ist eine Zusammenfassung für den ESP32 von meiner (Ralf9) Firmware:

Für den ESP32 gibt's von meiner SIGNALduinoAdv Firmware die Version V 4.2.2,
https://github.com/Ralf9/SIGNALDuino/releases/tag/V4.2.2-dev220712
https://github.com/Ralf9/SIGNALDuino/tree/dev-r422_cc1101

Es sind bis zu vier cc1101 möglich, Pin Belegung siehe:
https://forum.fhem.de/index.php/topic,83273.msg1234529.html#msg1234529

Es gibt auch von AZ-Delivery das Dev Kit C, es hat aber ein anderes PINOUT als das DEVKIT V1.
Bei der Arduino IDE wird das Board "ESP32 Dev Module" empfohlen.

Mit dem ESP32 D1 mini sollte es auch funktionieren, es gibt dafür aber kein bin File.

Das bin File kann z.B. mit dem Flash Download Tools geflasht werden
https://www.espressif.com/en/support/download/other-tools
https://www.aeq-web.com/esp32-flash-tool-exported-program-upload-bin-hex-file/


Wer es mit der Arduino IDE selbst kompilieren will, der muß unter Einstellungen, zusätzliche boards, dies eintragen:
https://dl.espressif.com/dl/package_esp32_index.json
Zusätzlich ist noch die Bibliothek "WiFiManager" von tzapu notwendig. https://github.com/tzapu/WiFiManager

Die letzte Version mit ESP-IDF v3.3.x ist die platformio Ver 3.3.0 und die Arduino IDE Ver 1.06.
Ab der ESP-IDF v4.4 habe ich Probleme bei den Wifi-events festgestellt

In der compile_config.h muss folgende stehen:
...
// Config flags for compiling correct options / boards Define only one

//#define MAPLE_SDUINO 1
//#define MAPLE_CUL 1
//#define BLACK_BOARD 1  // 1 - USB, 2 - serial USART2 fuer ESP
#define SIGNALESP32 1
//#define EVIL_CROW_RF 1
//#define ESP32_SDUINO_TEST 1

//#define LAN_WIZ 1        // nur fuer MAPLE_SDUINO mit USR-ES1 W5500
#define LAN_INIT_DHCP 1  // damit wird bei der ersten Inbetriebnahme DHCP verwendet
//#define MAPLE_WATCHDOG 1
...






Es kann auch schon ohne cc1101 Modul getestet werden

Der ESP32 ist am Anfang ein AP und kann z.B. mit dem Handy über WLAN verbunden werden (siehe Anlage)
und dann auf verwalten des Routers klicken
und dann auf configure WiFi klicken
und dann SSID und Passwort eingeben

Wenn sich der ESP32 mit dem wlan verbunden hat, kann zum Testen mit telnet verbunden werden
mit V wird dann die Version angezeigt




Wenn der ESP32 mit dem Seriellen Monitor verbunden wird, gibts debugausgaben vom WifiManager.
Es gibt auch ein kleines serielles config Menü

Wenn beim booten innerhalb von 2.5 Sek 'cmd' eingegeben wird
serial menue? (enter 'cmd') Timeout:2500
Kommt ein Menü
serial command menue
i - printDiag
c - change DHCP <> StaticIP, act: static
R - resetWifiSettings
q - quit





Für meine V 4.x.x firmware ist auch mein angepasstes 00_SIGNALduino Modul notwendig, die dev Version ist die aktuelle
https://forum.fhem.de/index.php/topic,111653.msg1058900.html#msg1058900

Wenn nur das zweite cc1101 Modul B verwendet wird, wird das Modul B und Bank 0 automatisch auf slowrf konfiguriert.

Bei mehrern Modulen:
https://forum.fhem.de/index.php/topic,106278.msg1032098.html#msg1032098

Bei FSK:
https://forum.fhem.de/index.php/topic,111653.msg1058902.html#msg1058902
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

Ideen und Wünsche für zukünftige Versionen:

Der ESP32 müsste doch eigentlich genügend RAM haben, um den Messagepuffer so groß zu machen, damit es zu keinem Messagepuffer überlauf mehr kommt. Dies würde auch die SignalDetectorClass deutlich vereinfachen.
Z.B. eine Messagepufferlänge von 1000 oder größer.
Können mit einem println oder write Befehl auch mehr als 1000 Zeichen ausgegeben werden?

Dann könnte die komplette Nachricht mit allen Wiederholungen an den 00_Signalduino übergeben werden und dort dann die Wiederholungen erkannt und ggf getrennt werden.

Da es wahrscheinlich auch Wünsche für einen SIGNALESP mit einem 433 cc1101 und 886 cc1101 gibt.
Ist der ESP32 schnell genug, damit er die Interrupts von den Signalflanken von zwei cc1101 verarbeiten kann?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

sash.sc

Das hört sich gut an.  ;D

Bin noch auf der Suche nach einer eierlegenden Wolmilchsau !!  ;)
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Sidey

Zitat von: Bennemannc am 24 Januar 2018, 12:46:11
Er meldet sich beim Start direkt auf "Home_Router_N" an - richtig wäre "Cubie-Wifi". Wenn ich dann die Config aufrufe (192.168.4.1) sehe ich beide Netzwerke. Wenn ich dann das richtige wähle und den Schlüsseleingebe funktioniert alles anscheinend normal, aber das Netzwerk wird nicht gewechselt. Auch nach einem Reset meldet er sich sofort wieder beim falsche AP an. Das Netzwerk und der Schlüssel stehen irgendwo falsch drin und werden immer wieder genommen.

Meine Recherchen deuten darauf hin, dass es ein Problem ist, dass mit den Arduino8266 Bibliotheken zusammen hängt.
Vermutlich tritt das Problem mit Relase 2.4.0 und manchen flash chips auf.


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Zitat von: hjgode am 24 Januar 2018, 06:54:10
Ich wollte dass der code möglichst nahe an SignalDuino ist. Wie gesagt, auuser dem Main ino wurde nur die PatternDecoder Klasse angepasst, damit ich dort ein WifiClient object übergeben kann, dass dann ebenfalls als Ausgabe benutzt wird.

Der SIGNALDuino gibt aber nicht mehr direkt auf ein Stream Objekt aus.
Ich sehe da halt immer noch eher die Nähe zum signalESP Ableger. Sollte ja auch nichts dagegen Sprechen die paar Anweisungen dort zu integrieren. Bis auf das deaktivieren der Interrupts habe ich auf Anhieb nichts festgestellt. Richtig?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Ich habe die Firmware für den SignalESP noch mal neu compiliert.
Bei mir funktioniert jetzt auf einem NodeMCU auch das manuelle Setzen von IP / WLAN Einstellungen.

SIGNALESP_331rc3.bin (mit cc1101)
https://drive.google.com/uc?export=download&id=1V8ZfLnRnskc64XZkfL-qwmI7AsSd6KRG

Bitte gebt mir mal Rückmeldung ob das bei euch auch klappt.

Grüße Sidey


Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

pc1246

Moin
Klappt nicht! Er zeigt zwar alles aus der Configuration an, macht dann aber doch was anderes.
Der AP wird immer noch aufgespannt, und statt der vorgegebenen IP holt er sich eine vom DHCP. Das aber viel schneller als vorher!
Gruss Christoph

Edith: Und irgendwie setzt er die Frequenz auch falsch. Er erkennt den 868 CC1001 zwar, aber die Frequenz war 1025Mhz oder so!
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

habeIchVergessen

Zitat von: Sidey am 24 Januar 2018, 21:11:20
Meine Recherchen deuten darauf hin, dass

Das ist ein Bug im HTTP-Handler, der die Config speichern soll (WifiManager). Wenn Wifi verbunden ist, dann wird nicht neu conneted und somit landen die Werte nicht im EEPROM.

Bennemannc

Das mit dem BUG ist nicht schön, aber wenn man es weiß, kann man es ja umgehen.

Wenn man es also geschafft hat, das richtige Netzwerk einzutragen, wird versucht per dhcp eine Adresse zu bekommen. Das ganze läuft in einer WHILE Schleife. Die feste IP ist zu diesem Zeitpunkt noch nicht gelesen worden. Da in dem Netzwerk eben alles nur mit fester IP läuft, gibt es dort keinen dhcp Server. Somit bleibt der Sketch in der while Schleife hängen und booted nicht durch.
Das bedeutet die feste IP bringt mir nichts, da sie zu spät gelesen wird.
ich würde forschlage anstatt der while Schleife eine Zählschleife die 20 mal durchlaufen wird. Dann aussteigen und die feste IP lesen und noch einmal versuchen mit den Daten eine Verbindung aufzubauen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Sidey



Zitat von: Bennemannc am 25 Januar 2018, 16:18:51
Das mit dem BUG ist nicht schön, aber wenn man es weiß, kann man es ja umgehen.

Ich muss mir das noch in Ruhe ansehen.
Die statische Adresse wird gelesen. Aber leider, nicht mehr direkt nach dem Schreiben neuer Konfigurationen.

Grüße Sidex

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Bennemannc

Was macht man denn mit einem SignalESP 868 Mhz?
Welche Signale kann der empfangen? Bei 433 ist das klar, da senden die meisten Temperatursensoren. Aber was sendet auf 868?

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

sbiermann

FS20, Homematic, LoRa/LoRaWAN, Segelflieger Antikollisionsgedöhns (keine Ahnung wie es heißt) und noch vieles mehr.

Bennemannc

Hm, bei Homematic müsste der viel empfangen - es kommen aber keine Daten. Der cc1101 wird erkannt. Da muss ich wohl noch einmal suche wo der Fehler liegt.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

pc1246

Moin
Ist das Protokoll (HM) im Signalduino ueberhaupt implementiert?
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

Bennemannc

Genau das war die Frage - was kann man damit empfangen. Also HM klappt bei mir schon einmal nicht.
Welche Protokolle sind denn für 868.3 Mhz im Signalduino implementiert.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF