Autor Thema: SIGNALESP: Firm- und Hardware für SIGNALduino direkt auf ESP8266 oder ESP32  (Gelesen 118270 mal)

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4400
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.jsonZusä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:2500Kommt 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
« Letzte Änderung: 01 Oktober 2022, 22:14:03 von Ralf9 »
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

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4400
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
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline sash.sc

  • Hero Member
  • *****
  • Beiträge: 2009
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

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709
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

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709
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

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709
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

Offline pc1246

  • Hero Member
  • *****
  • Beiträge: 3049
  • Kein support per PN oder eMail
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!
« Letzte Änderung: 24 Januar 2018, 22:48:19 von pc1246 »
RasPi2
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; add-on board mit 6 IT-Steckdosen;3 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; KS300; ESA2000; HUE

Offline habeIchVergessen

  • Sr. Member
  • ****
  • Beiträge: 782
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.

Offline Bennemannc

  • Hero Member
  • *****
  • Beiträge: 2730
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

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709


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

Offline Bennemannc

  • Hero Member
  • *****
  • Beiträge: 2730
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

Offline sbiermann

  • Full Member
  • ***
  • Beiträge: 447
FS20, Homematic, LoRa/LoRaWAN, Segelflieger Antikollisionsgedöhns (keine Ahnung wie es heißt) und noch vieles mehr.

Offline Bennemannc

  • Hero Member
  • *****
  • Beiträge: 2730
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

Offline pc1246

  • Hero Member
  • *****
  • Beiträge: 3049
  • Kein support per PN oder eMail
Moin
Ist das Protokoll (HM) im Signalduino ueberhaupt implementiert?
Gruss Christoph
RasPi2
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; add-on board mit 6 IT-Steckdosen;3 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; KS300; ESA2000; HUE

Offline Bennemannc

  • Hero Member
  • *****
  • Beiträge: 2730
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