ESP8266 mit ESPEasy in wenigen Minuten an Fhem anbinden

Begonnen von Reinhart, 26 Dezember 2015, 10:33:51

Vorheriges Thema - Nächstes Thema

pink99panther

#45
Hallo in die Runde,

beschäftige mich im Moment auch mit ESP Easy.
Finde die Softwahre klasse.
Hab im Moment den Build 70 am laufen.
Ist nach meinem Empfinden sogar stabieler als die R48.

Benutze als MQTT nicht die PiDome sondern die OpenHAB Einstellung.
Damit sind die Publishs und Subscribes leichter und Aussagekräftiger zu gestalten.

Hier mal ein Beispiel für einen Lichtschalter über MQTT

define licht_wohnzimmer MQTT_DEVICE
attr licht_wohnzimmer IODev MyBroker
attr licht_wohnzimmer devStateIcon on:FS20.on off:FS20.off
attr licht_wohnzimmer eventMap 1:off 0:on
attr licht_wohnzimmer publishSet 1 0 /Test2/gpio/5
attr licht_wohnzimmer room Schulungsraum
attr licht_wohnzimmer stateFormat state



chunter1

#46
Wie habt ihr das Problem gelöst, dass wenn z.B. ein Schaltbefehl nicht beim ESP8266 ankommt, dass dann wie bei Homematic Geräten z.B. eine Lampe mit Rufezeichen angezeigt wird?

Ich bin von ESPEasy begeistert, nur vermisse ich noch die Rückmeldung vom ESP8266.

Ist bei Verwendung von MQTT evtl. die Lösung? (mag eigentlich nicht noch einen MQTT Broker laufen haben)

Bapt. Reverend Magersuppe

Zitat von: chunter1 am 02 Februar 2016, 08:51:22
Wie habt ihr das Problem gelöst, dass wenn z.B. ein Schaltbefehl nicht beim ESP8266 ankommt, dass dann wie bei Homematic Geräten z.B. eine Lampe mit Rufezeichen angezeigt wird?

Ich bin von ESPEasy begeistert, nur vermisse ich noch die Rückmeldung vom ESP8266.

Ist bei Verwendung von MQTT evtl. die Lösung? (mag eigentlich nicht noch einen MQTT Broker laufen haben)

Das sollte eigentlich über MQTT geregelt werden, da kann man ja auch verschiedene Prioritäten angeben wie oft eine Nachricht ankommen soll usw. So gesehen sollte das Protokoll das sicherstellen. Müsste man mal nachsehen ob einerseits Mosquitto das auch macht und wie man das auf fhem-Seite auswerten kann.
Wenn man den mosquitto_sub verbose laufen lässt sieht man genauer, was da so umherläuft:

mosquitto_sub -d -v -t \#
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

schka17

Gerade ist die neue Firmware R78 als binary (Firmware) veröffentlicht worden.
http://sourceforge.net/projects/espeasy/
Firmware Files für die drei verfügbaren Speichergrössen, mit flashtool.

Das vereinfacht das ganze nochmal, da braucht man sich nicht mehr um das Arduino environment zu kümmern.

Ich habe es mit dem nodemcu firmware programmer geflasht.

OTA von R77 auf R78 hat auch einwandfrei funktioniert.

bei mir laufen zur Zeit ESP-01, nodemcu 0.9, und nodemcu 1.0 (ESP-12e und ESP-12f)

Gruß

Karl
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000


Tom71

Ja, ich hab den gleichen ESP. Musst nur GPIO 0 mit GRN vor dem flaschen verbinden.
Siehe hier: http://www.14core.com/build-your-own-esp8266-web-server-tutorial/


Gesendet mobil
Homematic | RaspberryMatic

Reinhart

8266 mit App steuern!

Vor kurzem hat mich ein Freund ersucht ob man einen Garagentoröffner übers Handy bauen kann und es soll so billig wie möglich sein.
Ich habe einfach einen 8266 mit ESPEasy geflasht ein Relaise dazugehängt und einen Temperatursensor (DHT11) angeschlossen. Das ganze in eine kleine Feuchtraumdose und fertig ist der Empfänger unter 10.- €. Habe auch eine Variante mit dem Blackboard aufgebaut, da hier das Relais und der Fühler schon alles da ist.
Da nicht jeder eine Fhem Instanz laufen hat, habe ich einfach eine kleine App zur Steuerung gebaut. Die bietet mir jetzt den Vorteil, dass ich unabhängig von Fhem es ohne irgendwelche weiteren Devices (außer dem Wlan AccesPoint) realisieren kann. Da ich noch nie eine Android App programmiert habe und das auch nicht kann, habe ich es mit dem Tool "ai2 appinventor" mit ein paar Klicks zusammen gestoppelt. Das Befehle Senden war eine Kleinigkeit von ein paar Minuten aber die Temperaturerfassung ist schließlich in einem kompletten JsonParser ausgeartet da der gesamte JsonString gefiltert werden muss. Im Anhang ein paar Bilder wie der Parser aufgebaut ist, vielleicht kann da ein Könner mit wesentlich weniger Aufwand zum Ziel kommen, aber es funktioniert so auch perfekt. Ich habe dazu einiges im Internet recherchieren müssen weil trotz Klicki-Klacki das doch sehr komplex wird.

Den GPIO zum Senden habe ich hardcodiert als GPIO13 ausgeführt, die Temperatur und Luftfeuchte wird ja über Json abgeholt somit ist der GPIO egal. Unter Settings wird einmal die IP Adresse des 8266 eingestellt und das wars. Der Sendebefehl wird beim Drücken des Garagentors gesetzt und beim Loslassen wieder zurückgesetzt (Tasterfunktion). Wer einen anderen GPIO braucht, muss das im Source ändern und neu kompilieren. Es ist aber ganz einfach auch noch ein Eingabefeld so wie bei Settings dazu zu bauen. Der Sensor muss auf der ersten Seite der Devices konfiguriert sein, sonst muss die "setpage=1" auf 2 geändert werden damit der Parser die Messwerte findet. Bei jedem Aufruf der App werden die Messdaten automatisch abgeholt, kann aber auch durch Druck auf das Symbol "Thermometer" spontan geholt werden.

Im Anhang die fertige App für Android und die Sourcen für den Projektimport (ai2). Ich selbst betreibe auch eine solche modifizierte App, aber mit 3 Toröffnern.

Wenn es wer brauchen kann, viel Spaß damit, passt genau zum Thema ESPEasy! Funktioniert sowohl mit R48 als auch mit der neuesten R78!

LG
Reinhart

FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

noxx

Zitat von: Tom71 am 10 Februar 2016, 15:55:33
Ja, ich hab den gleichen ESP. Musst nur GPIO 0 mit GRN vor dem flaschen verbinden.
Siehe hier: http://www.14core.com/build-your-own-esp8266-web-server-tutorial/


Gesendet mobil

danke..... flashen scheint geklappt zu haben. LED auf dem ESP leuchtet blau.
Sollte ich nun nicht eine WLAN-AP finden?

Reinhart

FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

noxx

Hmm, hab's mit dem Smartphone probiert, sehe aber nur meinen Router.

Gesendet von meinem GT-I9195 mit Tapatalk


noxx

#55
sidn die einstellungen so richtig?

noxx

#56
ok, scheint nun geklappt zu haben mit den Einstellungen

Sehe jetzt ESP_0BB9Bx im Netzwerk. DHCP scheint aber nicht zu gehen

EDIT:

Hmm, will nicht. Sehe denn AP ein paar Sekunden, Verbindung klappt weder
per DHCP noch statisch. Dann ist der AP weg, Blaue LED leuchtet nicht mehr.
Muss ich dann einmal stromlos machen, damit ich kurz wieder den AP sehe.

Nehme ich die flash.cmd aus dem R78 Paket, wird geflasht, aber die blaue LED
leuchtet dauernt, WLAN ist keins da

Comport (example 3, 4, ..)           :10
Flash Size (example 512, 1024, 4096) :1024
Build (example 71, 72, ..)           :78
Using com port: 10
Using bin file: ESPEasy_R78_1024.bin
esptool v0.4.6 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
        setting board to nodemcu
        setting baudrate from 115200 to 115200
        setting port from COM1 to COM10
        setting address from 0x00000000 to 0x00000000
        espcomm_upload_file
        stat ESPEasy_R78_1024.bin success
        setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        read 0, requested 1
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_open
Uploading 375904 bytes from ESPEasy_R78_1024.bin to flash at 0x00000000
        erasing flash
        size: 05bc60 address: 000000
        first_sector_index: 0
        total_sector_count: 92
        head_sector_count: 16
        adjusted_sector_count: 76
        adjusted_size: 04c000
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        setting serial port timeouts to 10000 ms
        setting serial port timeouts to 1000 ms
        espcomm_send_command: receiving 2 bytes of data
        writing flash
...
starting app without reboot
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        espcomm_send_command: receiving 2 bytes of data
closing bootloader
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
Drücken Sie eine beliebige Taste . . .

Reinhart

#57
wenn EASYEsp noch nie auf diesem Device war, dann arbeitet dieser 8266 als AP, der hat keinen DHCP Server integriert.

Du musst dich nun mit einem WlanDevice (Laptop) in diesem Netz einloggen. Dann vergib dem Laptop händisch irgend eine IP im Netz 192.168.4.0.
Dann öffne den Browser und und gehe auf 192.168.4.1 und kommst aufs Webinterface. Nun mach deine Einstellungen des Netzwerkes und reboote den 8266. Jetzt arbeitet er als Client und ist in deinem  Netzwerk angemeldet.

#define DEFAULT_NAME        "newdevice"         // Enter your device friendly name
#define DEFAULT_SSID        "ssid"              // Enter your network SSID
#define DEFAULT_KEY         "wpakey"            // Enter your network WPA key
#define DEFAULT_SERVER      "192.168.0.8"       // Enter your Domoticz Server IP address
#define DEFAULT_PORT        8080                // Enter your Domoticz Server port value
#define DEFAULT_DELAY       60                  // Enter your Send delay in seconds
#define DEFAULT_AP_KEY      "configesp"         // Enter network WPA key for AP (config) mode
#define DEFAULT_PROTOCOL    1                   // Protocol used for controller communications

hier richtig ausfüllen (1-4), wenn du den 2 Weg gehen willst.

Du kannst das ganze aber umgehen, indem du in der EASYESP R048 gleich die richtigen Netzwerkdaten eingibst und dann erst mit der Arduino IDE flasht! Dann startet er sofort als Client.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

Zitat von: noxx am 10 Februar 2016, 20:47:24
Hmm, will nicht. Sehe denn AP ein paar Sekunden, Verbindung klappt weder
per DHCP noch statisch. Dann ist der AP weg, Blaue LED leuchtet nicht mehr.
Muss ich dann einmal stromlos machen, damit ich kurz wieder den AP sehe.

wenn du dir nicht sicher bist was der 8266 nun macht, dann hänge dich an die serielle Konsole (am Besten über die Arduino IDE und schaue was er beim Booten so schreibt.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

AxelSchweiss

Du kannst die Basis-Konfiguration auch über die serielle Console vornehmen.
siehe hierzu : http://www.esp8266.nu/index.php/ESPEasy
(Ganz unten auf der Seite)