MySensors Wifi Gateway mit ESP8266

Begonnen von Kuzl, 04 August 2015, 19:41:32

Vorheriges Thema - Nächstes Thema

Kuzl

Hallo zusammen,

ich wollte mit dem ESP8266 ein Wifi-Gateway für Mysensors basteln und komme leider nicht mehr weiter.
Die Kommunikation mit dem FHEM-Modul scheint zu funktionieren, da ich z.b. den Inclusion-Mode aktivieren kann. Auch die generelle Kommunikation mit dem NRF24L01+ scheint zu funktionieren, da z.b. die +-Version erkannt wird und auch zuminderst aus den Registern unterschiedliche Werte gelesen werden.

Die Debug-Ausgabe gibt allerdings nur unleserlichen Schwachsinn aus, warum konnte ich nicht finden.

Auch die Zusammenarbeit mit einem Sensor bekomme ich nicht hin, wobei ich nicht ausschließen kann, dass der Sensor nicht funktioniert (habe kein normales Gateway).
Da sollte doch zuminderst was ausgegeben werden wenn was empfangen wurde oder nicht?
Evtl kann ja jemand mit etwas mehr Programmiererfahrung mal drüberschaun, da ich mit meinem Latein am Ende bin.

Viele Grüße,
Kuzl

fh168

Hallo Kuzl,

ein interessantes Thema: WLAN -> Mysensors -> Fhem.
Ich werde das Gateway mal nachbauen und die Hürden und Schwierigkeiten in meinem Blog beschreiben. Mein LAN-Gateway läuft mittlerweile schon über 7 Monate.
Ich komme aber erst ab dem Wochenende dazu.

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Kuzl

Hallo Robin,

vielen Dank für deine Hilfe!
du brauchst bitte unbedinkt einen ESP826-07/12, da der -01 ja nur 2 GPIOs nach außen geführt hat, das reicht für den NRF24L01+ nicht.
Ich habe auch an den Library-Files Anpassungen vorgenommen, da kannst du nicht die originalen nehmen.

Ich bin gespannt ob wir das hinbekommen.

Viele Grüße,
Kuzl

fh168

Hallo,

habe ich da, kein Problem.
Denk auch an die separate 3,3 V Spannung. Von dem Nano kannst du die nicht abnehmen, weil der ESP8266 zuviel Strom verbraucht. Und zwischen dem + und - einen Elko klemmen.
Hast du einen Schaltplan?

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Kuzl

Hallo Robin,
Habe aktuell keinen, kann ich machen wenn ich daheim bin.

Die 3.3V erzeuge ich über einen schaltregler aus den 5V USB und versorge damit alles (esp, die beiden funkmodule, dht22, arduino pro mini)
Bisher hat das immer ganz gut funktioniert so. Ein 100uF Kondensator ist auch drin.

Beim Problem im Gateway tippe ich auf das printf, da selbst normaler text nicht richtig ausgegeben wird. Inwiefern das für die funksachen verwendet wird weiß ich nicht.

Viele Grüße,
Kuzl

Gesendet von meinem GT-I9505 mit Tapatalk

Kuzl

Oben hab ich noch was vergessen:

ich hab noch 2 Funktionen zur EEPROM-Library hinzugefügt (read_block und write_block), die geänderte Version ist im Anhang.

Kuzl

Hallo Robin,

bist du schon dazu gekommen?
Im Prinzip ist ein schaltplan Überflüssig, ist wie bei Mysensors und steht oben in der MyGateway.ino
Die Pinbelegung (incl der Hardwaresachen für das SPI) steht hier: https://github.com/esp8266/Arduino/blob/esp8266/hardware/esp8266com/esp8266/doc/reference.md

Gruß
Kuzl

fh168

Hi Kuzl,

nein, ich bin an anderen Baustellen beschäftigt. Dauert noch was.

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Kuzl

Kein Problem, hab leider auch genug anderes zu tun

fh168

Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

hexenmeister

Zitat von: fh168 am 13 September 2015, 09:22:45
der Spaß geht weiter.
und hier auch nochmal:
Zitat von: hexenmeister am 11 Oktober 2015, 14:04:07
So Jungs (and Mädels, if any ;) )
Von dem schlechten Gewissen leicht geplagt (hab ja versprochen), habe mich heute kurz hingesetzt ud die ganze Sache angeschaut. Wie erwartet, hat FHEM Probleme mit nicht vorhandenen Zeilenumbrüchen.
Bitte testet mal diesen Sketch hier: https://github.com/hexenmeister/MySensors_MyDevices/tree/master/MyEsp8266Gateway
Bei mir tut jetzt wie es soll. Zu Stabilität kann ich nichts sagen, läuft erst seit 1 Stunde.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Samsi

Danke!

Funktioniert jetzt. Es gibt evtl. noch ein kleines Problem. Jedes mal wenn ich mit Inclusion Mode on eine node anlernen will, wird der ESP resetted in dem Moment wo ich den Reset Knopf bei der Node drücke um den Anlernmodus zu starten.
Die Node wird aber trotzdem in FHEM angelegt und kann dann verwendet werden.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

hexenmeister

Das Problem ist mir noch nicht aufgefallen, aber da müsste ich schon viel tiefer einsteigen... Kann noch nichts versprechen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Tom71

ZitatKuzl: Die 3.3V erzeuge ich über einen schaltregler aus den 5V USB und versorge damit alles (esp, die beiden funkmodule, dht22, arduino pro mini)
Was genau benutzt du? Ich kämpfe mit dem gleichen Problem einer konstanten Stromversorgung des ESPs.
Homematic | RaspberryMatic

Kuzl

ich benutze einen LM317 mit den entsprechenden Widerständen. Dahinter ein 100µF Kondensator und ein 100nF Kondensator. Funktioniert wunderbar. Ich habe mir aber mal das Board bestellt, dass bei Mysensors vorgeschlagen wird. Bin gespannt wie das von der Versorgung her ist, da soll alles drauf sein was man braucht.

Viele Grüße,
Kuzl

Tom71

ZitatIch habe mir aber mal das Board bestellt, dass bei Mysensors vorgeschlagen wird

Da gibt es mehrere.Welches hast du genommen?
Homematic | RaspberryMatic

Kuzl

So eins:


http://www.ebay.com/itm/NodeMcu-Lua-ESP8266-CH340-WIFI-Internet-Development-Board-Newest-Firmware-/331616768122?hash=item4d35e6507a


Hab ich allerdings noch nicht getestet. Das schöne ist aber, dass 3.3V und 5V rausgeführt sind und man so eigentlich alles hat, was man braucht. 2 Buttons fürs Flashen sind auch vorhanden.

Samsi

Zitat von: hexenmeister am 11 Oktober 2015, 22:11:54
Das Problem ist mir noch nicht aufgefallen, aber da müsste ich schon viel tiefer einsteigen... Kann noch nichts versprechen.
Ist ja auch nicht so schlimm. Seitdem läuft es ja stabil so wie es bisher aussieht.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Omega

Zitat von: hexenmeister am 11 Oktober 2015, 14:08:35
Bitte testet mal diesen Sketch hier: https://github.com/hexenmeister/MySensors_MyDevices/tree/master/MyEsp8266Gateway
Das wollte ich mal probieren (so als ersten Einstieg in das ganze Thema).
Zuerst habe ich die Arduino IDE installiert (1.6.5) incl. der für den ESP8266 notwendigen Ergänzungen. Danach die MySensors Bibliotheken. Das Beispiel "GatewayESP8266" lässt sich auch korrekt compilieren.

Danach habe ich deine Version versucht, ich bekomme allerdings sofort den Compile-Fehler

MyEsp8266Gateway_1.ino:72:28: fatal error: MySigningNone.h: No such file or directory

Da fehlt wohl noch essentielles. Wäre schön, wenn du oder ein anderer Kundiger mir auf die Sprünge helfen könnte(st).

Danke schon mal
Holger

NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

hexenmeister

Zitat von: Omega am 10 November 2015, 16:26:53

MyEsp8266Gateway_1.ino:72:28: fatal error: MySigningNone.h: No such file or directory

Da fehlt wohl noch essentielles.

für mich sieht das nach einer misglückten MySensors-Lib-Installation.
Bei mir befindet sich MySigningNone.h in <arduino-dir>\libraries\MySensors
Müsste aber auch in <Sketch-Dir>\libraries\MySensors funktionieren.

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

fh168

Sehe ich auch so, hast du den Verweis (Einstellungen) in der Arduino Gui richtig gesetzt?

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Omega

#21
Ihr hattet recht, ein Library-Problem. Ich hatte nur die Development installiert und da ist MySigningNone.h nicht enthalten.

Aber anscheinend habe ich mir jetzt meine gesamte Entwicklungsumgebung zerschossen, da ich das Beispiel "GatewayESP8266" mit einem mal nicht mehr compiliert bekomme.
Ich werde erst einmal das ganze neu aufsetzen und dann den nächsten Versuch starten.

@fh168:
Als Verweis meinst du vermutl. die Einstellung Additional Boards Manager URLs.
Da habe ich: http://arduino.esp8266.com/stable/package_esp8266com_index.json

LG
Holger

P.S. Als IDE habe ich die 1.6.5 da mWn die 1.6.6 mit dem ESP8266 noch nicht richtig zusammenarbeitet

NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

fh168

Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Omega

Alles klar.
So, meine Entwicklungsumgebung habe ich neu aufgebaut.
Den Sketchbook-Speicherort habe ich bei mir auf D:/Arduino verlagert (ich trenne gerne System und Daten). Dort habe ich auch die MySensors_MyDevices-master Dateien.
Die Libraries (Master und Development) habe ich nach c:\Program Files\Arduino\libraries\ geschrieben.

MyEsp8266Gateway kann ich nun auch fehlerfrei kompilieren, jetzt warte ich allerdings erst einmal auf die bestellten AMS1117, bevor ich weitermache.

Danke
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Sany

Hallo Omega,

Du solltest Die Libaries in deinen Sketchbook-Folder unter \libaries speichern. Das hat den nicht zu unterschätzenden Vorteil, dass bei einer Neuinstallation der Arduino-IDE die von Dir installierten Libaries noch da sind. Innerhalb des Arduino-Programm-ordners wird alles gelöscht/überschrieben, wenn Du eine neue IDE installierst. Das kommt dort sogar als Hinweis.
Spart u.U. viel Zeit!

(siehe: https://www.arduino.cc/en/Guide/Libraries unter Manual Installation)


Gruß

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Omega

Hallo Sany,
danke für den Hinweis.

Auf den MySensor-Seiten ist irgendwo auch ein Video zur Library-Installation, da werden die Libraries in's Arduino-Programmverzeichnis kopiert. Daran habe ich mich bisher gehalten, fand das aber auch unglücklich, da mir die Verquickung verschiedener Versionen nicht gefällt.
Was mir fehlt, ist ein Überblick über alle Verzeichnisse inkl. Reihenfolge der Nutzung (es gibt ja z.B. auch noch das Verzeichnis c:\Users\name\AppData\Roaming\Arduino15\).

Gruß
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Sany

Hallo Holger,

deine bisherige Version kommt von füher, deutlich vor Arduino 1.5 oder so. Kann ich nicht genau sagen, aber da mussten die libaries alle im Programm-Ordner von Arduino sein. Jetzt ist das besser gelöst.

ZitatWas mir fehlt, ist ein Überblick über alle Verzeichnisse inkl. Reihenfolge der Nutzung
Solltest Du gleiche libaries in Deinem Sketchordner und im Programm-ordner haben sagt Dir die IDE beim kompilieren, dass es mehrere Versionen gibt und welche verwendet wurde. Ich hatte das gerade, wobei die Version aus meinem libaries-Ordner genommen wurde, der wird also zuerst durchsucht.

Zitat(es gibt ja z.B. auch noch das Verzeichnis c:\Users\name\AppData\Roaming\Arduino15\)
Das ist ein eigentlich versteckter Ordner, Arduino scheint da ein paar aktuelle Informationen abzulegen. Ich würde den wie einen versteckten Ordner behandeln: ignorieren

Meiner Erfahrung nach (nun mit Arduino 1.6.5):
- Installation löscht eine vorherige Installation, incl aller im Programmordner gemachter Änderungen etc
- Der Sketchfolder wird im persönlichen Ordner angelegt, innerhalb des Sketchordners kommen die libaries in den Ordner \libaries
- der Sketchordner ist an belieber Stelle anlegbar, muss dann in der IDE in den Einstellungen angegeben werden
- Libaries werden zuerst im Sketchordner\libaries gesucht, dann innerhalb des Programmordners. Falls doppelt vorhanden wird die im Sktechordner\libaries vorhandene lib genommen.
- libaries MÜSSEN so organisiert sein: \Sketchfolder\libaries\Libname\libname.h    Weitere Unterverzeichnisse sind nicht zulässig.

So habe ich das nun eine ganze Weile bei mir am laufen, es gibt aber immer wieder Änderungen seitens der IDE, steht dann meist in der History.


Viele Grüße

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Omega

Hallo Sany,

danke für die ausführlichen Erläuterungen. Das hilft mir.
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

waschbaerbauch

Ich hatte nun schon mal ein Gateway am laufen / in fhem eingebunden, aber noch keine Sensoren.
Parallel wollte ich dann auf einem Breadboard nun mit einem NodeMCU v2 und einem NRF24L01+ es mal ohne den großen Kabelwust machen.

Ich kann auch die Firmware mit Arduino IDE flashen, kompilieren, exportieren und mit dem NodeMCU Flasher auf das Devkit bringen, aber nach nun fünf physikalischen Boards bekomme ich immer wieder das gleiche Problem nach dem erfolgreichen programmieren.

ESP8266 MySensors Gateway
Connecting to FRITZ7490
......Connected!
IP: 192.168.6.95
GateWay setup done!
0;0;3;0;9;gateway started, id=0, parent=0, distance=0
MySensors init done!
Server ready!

Exception (2):
epc1=0x3ffe8634 epc2=0x00000000 epc3=0x00000000 excvaddr=0x3ffe8634 depc=0x00000000

ctx: sys
sp: 3ffffc50 end: 3fffffb0 offset: 01a0

>>>stack>>>
3ffffdf0:  00000002 4010170b 00000002 3ffed000 
3ffffe00:  4020fb3a 3fff060c 3ffe97fb 3ffed4a4 
3ffffe10:  40216090 3ffeda60 3ffffed0 00000016 
3ffffe20:  3ffed418 3ffed32c 3ffeda60 00000014 
3ffffe30:  40213e55 3ffffed0 3ffed940 3ffed32c 
3ffffe40:  40213eb5 00000004 3ffffea0 3ffffeb1 
3ffffe50:  40107020 00000000 3fff0e00 0000003c 
3ffffe60:  3ffeda60 3ffe9730 000000a5 00000001 
3ffffe70:  40210579 00000000 00000000 3ffffe00 
3ffffe80:  ffffffc6 3ffe978c ffffffc6 3ffe979c 
3ffffe90:  3ffffeb0 3ffffea0 00000004 40105b8d 
3ffffea0:  4000050c 3ffe8748 3fff0e00 000000e5 
3ffffeb0:  000000a5 40234870 0000000b ffffffff 
3ffffec0:  40000f58 00000000 00000020 4010031d 
3ffffed0:  3ffecfb4 00000900 3ffef374 40100426 
3ffffee0:  3ffec918 00000006 00000000 40100537 
3ffffef0:  00000000 3fff060c 00000014 401006c2 
3fffff00:  00000000 3ffe9866 00000002 40107208 
3fffff10:  40210441 3ffe97fb 00000000 4021b5a5 
3fffff20:  00004208 ffffffff 40210358 3ffec940 
3fffff30:  3fff060c 00000008 4020de15 3ffec940 
3fffff40:  3ffec940 402146e5 3ffec940 3ffe9dd0 
3fffff50:  3ffe9dd0 00000066 00000000 00000026 
3fffff60:  00000002 00000018 402099f3 3ffec940 
3fffff70:  3ffe9dc4 3fffdcc0 3ffe8f80 3ffe8f80 
3fffff80:  00000000 3ffec940 00000000 3ffef460 
3fffff90:  4020931b 3fffdab0 00000000 40205da3 
3fffffa0:  3ffe8f80 40000f49 3fffdab0 40000f49 
<<<stack<<<

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
~ld


ESP8266 MySensors Gateway
Connecting to FRITZ7490
..


Alle Devkits resetten / loopen und sind somit natürlich nicht verwendbar. Wenn ich zum testen z.B. die LaCrosseGateway Firmware programmiere, dann gibt es diese loop/rest Verhalten nicht. Hat jemand eine Idee wie ich aus der Box komme?

Mittlerweile habe ich NodeMCU Flasher, Arduino IDE 1.6.8 / 1.6.7 / 1.6.6 ausprobiert und bekomme irgendwie immer ein identisches Ergebnis.

Gruß
Mario

waschbaerbauch

Ich konnte grad eine Löung finden gegen die Reboots:
//server.setNoDelay(true);

und damit ist erstmal Ruhe, keine Ahnung ob das weitere Folgen für mich hat ... :-\

RaspiLED

Hi, soweit hat das bei mir auch geholfen, aber immer wenn etwas über WLAN gesendet wird gibt es wieder den Software WatchDog Reset "rst cause:2" inkl. Memoryzeilen. Ich denke es liegt an dem Stromverbrauch bei tatsächlicher WLAN Verwendung. Wie seht Ihr das?
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

waschbaerbauch

Ich muss mir grad mal einen Sensor bauen. Die Kombination welche ich aus dem Gummibaer-Blog (Wenn man das klingeln nicht hört..) scheint entweder nix zu senden oder das Gateway hört nicht zu ;)

HCS

Zitat von: waschbaerbauch am 12 März 2016, 20:39:23
Ich konnte grad eine Löung finden gegen die Reboots:
//server.setNoDelay(true);

und damit ist erstmal Ruhe, keine Ahnung ob das weitere Folgen für mich hat ... :-\

Das ist ein dokumentierter Bug im core 2.1.0

Die Folgen, die es für dich hat: siehe https://de.wikipedia.org/wiki/Nagle-Algorithmus

waschbaerbauch

Ok der DHT22/AM2302 hinterlässt Spuren im Serialmonitor vom Gateway :D

Jetzt muss ich wohl wieder lesen wie ich das ins FHEM bekomme  ;D

@HCS: Thx 4 info

tiwo85

#34
Ich klink mich hier mal ein.
Ich habe das Gateway wie beschrieben zusammen gesteckt. Ich habe den Sketch vom Hexenmeister genommen und kompiliert mit IDE 1.6.5 API 1.5 und ESPCore 2.0.0.

Jetzt mein Problem:
ESP8266 MySensors Gateway
Connecting to WLAN-UXKTPW
..Connected!
IP: 192.168.2.110
0;0;3;0;9;radio init fail

Soft WDT reset

Edit: Komando zurück. Mein NodeMCU scheint eine Macke zu haben. Ein zweites hat funktioniert.