Autor Thema: Neues Modul: ESPEasy [war: ESPEasy ohne MQTT]  (Gelesen 144002 mal)

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3430
    • _.:|:._
Neues Modul: ESPEasy [war: ESPEasy ohne MQTT]
« am: 18 Juli 2016, 11:53:28 »
Das ESPEasy Modul ermöglicht Daten von einem ESP8266, mit ESPEasy R128+, zu empfangen und den ESP8266 zu steuern ohne einen zusätzlichen MQTT Broker.

Download FHEM Modul: Bestandteil von FHEM seit dem 24.02.2017
Download ESPEasy R128+: https://github.com/ESP8266nu/ESPEasy
Fertig compilierte ESPEasy Images für den ESP8266 gibt es hier: http://www.letscontrolit.com/wiki/index.php/ESPEasy#Loading_firmware (mindestens R140 RC3 benutzen)

Nach dem Flashen des ESP "FHEM HTTP" in der ESPEasy WebGui auswählen und Controler IP/Port einstellen.
Danach muss, auf FHEM Seite, als erstes das Bridge Device definiert werden:
define espBridge ESPEasy bridge 8383
Ist die Bridge einmal definiert, dann werden, beim Empfang der Daten, die entsprechenden FHEM Devices automatisch angelegt.

Das automatische Anlegen von FHEM Devices und das automatische Speichern der Konfiguration wird durch die globalen FHEM Einstellungen aktiviert. Diese Einstellunegn kann man mit den Attributen autocreate/autosave überschreiben.

Die automatisch angelegten FHEM Devices können beliebig umbenannt werden, da die Zuordnung zwischen ESP Daten und FHEM Devices nicht über den FHEM Device Namen, sondern über das Internal IDENT erfolgt. Hinweis: FHEM Devices vom Typ ESPEasy nicht durch Bearbeiten der fhem.cfg umbenennen sondern den Befehl "rename" benutzen. Glaubt mir.

Will man GPIO Ports des ESP schalten, so kann man das durch eine Kombination der Attribute eventMap, stateFormat und devStateIcon vereinfachen. Dieses Beispiel für GPIO15 zeigt einen Schalter in FHEMWEB, der auch die Zustände "absent" und "hat noch keine definierten Zustand" berücksichtigt:
attr <ESP> stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"GPIO15","")}
attr <ESP> devStateIcon on:ios-on-green:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
attr <ESP> eventMap /gpio 15 on:on/gpio 15 off:off/status gpio 15:check/
attr <ESP> webCmd :

Beispiel für den ESP internen on-for-timer. Damit kann man z.B. "set <ESP> on-for-timer 3" benutzen anstatt "set <ESP> longpulse 15 1 3" schreiben zu müssen.
attr <ESP> eventMap /longpulse 15 on:on-for-timer/longpulse 15 off:off-for-timer/

Getestete Entwicklungsumgebung:
- Arduino IDE 1.6.9
- Boardmanager -> http://arduino.esp8266.com/stable/package_esp8266com_index.json -> esp8266 by ESP8266 Community version 2.3.0
- Libraries aus dem neusten ESPEasy Paket (z.Z R120)
- ab ESPEasy R109 wird die pubsubclient library 2.6+ benötigt -> https://github.com/knolleary/pubsubclient
- ab ESPEasy R120 wird die ArduinoJson library 5.6.4+ benötigt -> https://github.com/bblanchon/ArduinoJson

Edit: (24.02.2017):
- Aktualisiertes Modul v1.0 ins FHEM svn eingecheckt.

** Dieser erste Beitrag wurde grundlegend überarbeitet, da es ursprünglich in diesem Thread nur um die Entwicklung des "FHEM HTTP" ESPEasy Plugins (_C009.ino) ging.
« Letzte Änderung: 24 Februar 2017, 16:41:42 von dev0 »
Gefällt mir Gefällt mir x 27 Zustimmung Zustimmung x 1 Informativ Informativ x 3 Liste anzeigen

Offline Chris_Worms

  • Jr. Member
  • **
  • Beiträge: 74
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #1 am: 18 Juli 2016, 11:59:11 »
Sehr cool! Werde ich die Tage mal testen.
Raspberry Pi 2/HM-CFG-LAN/HM-ES-PMSw1-PI/HM-LC-Sw1-PL/HM-Sec-MDIR-2/JeeLink V3/LaCrosse Temp/Humidity/Bluetooh USB Dongle/PebbleBee Bluetooth Tags

FHEM/MySQL/Apache/SmarVisu

Online Ranseyer

  • Hero Member
  • *****
  • Beiträge: 1176
    • Homepage
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #2 am: 19 Juli 2016, 11:08:33 »
Danke erst mal für die super Software.

Bis ich mal wieder Libs + IDE +ESP-Easy zusammen hatte das war leider übliche Fluchen.

Aber dann war es wirklich easy:
- dein "AddOn" einkopieren
- ein "define ESP01 dummy" #so heisst der Kerl
- und schon gibt es wie von Zauberhand neue Readings in FHEM:

Zitat
Humidity 52
Temperature 26.8


Also wirklich krass einfach. Danke !
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.

Offline fh168

  • Sr. Member
  • ****
  • Beiträge: 748
    • Robins-Blog
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #3 am: 19 Juli 2016, 11:27:51 »
Hallo,

kann man auch zum ESP Daten übertragen?

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.54 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-Bridge, ESA 2000 WZ, Blogbeiträge: http://bit.ly/16chI8u , http://bit.ly/12Q27Gw , http://bit.ly/14PhvXB  http://bit.ly/18sbgs5

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3430
    • _.:|:._
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #4 am: 19 Juli 2016, 11:35:45 »
Daten werden noch nicht zum ESP übertragen. Kann ich aber bei Gelegenheit versuchen einzubauen. Testen müsstest Du das dann, da ich keine Anwendung dafür habe, ok?

Offline fh168

  • Sr. Member
  • ****
  • Beiträge: 748
    • Robins-Blog
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #5 am: 19 Juli 2016, 11:39:33 »
klar, ich habe noch einige Witty Boards hier liegen. Da könnte ich bspw. eine RGB-Led zum leuchten bringen.
Hue, Lacrosse, PCA301, MySensors, V 1.54 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-Bridge, ESA 2000 WZ, Blogbeiträge: http://bit.ly/16chI8u , http://bit.ly/12Q27Gw , http://bit.ly/14PhvXB  http://bit.ly/18sbgs5

Offline spike08122

  • Jr. Member
  • **
  • Beiträge: 64
Antw:ESPEasy -&gt; FHEM (ohne MQTT)
« Antwort #6 am: 19 Juli 2016, 11:47:25 »
Jetzt habe ich es gerade mit MTQQ hinbekommen und jetzt gibt's wieder was neues. Echt verrückt
FHEM auf RPI B+, Steuerung von Baumarktsteckdosen (ELRO), Steuerung der Aquariumbeleuchtung mit LD382 in Planung, WLAN Temp-Sensor mit ESP8266 und EPSEasy

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3430
    • _.:|:._
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #7 am: 19 Juli 2016, 11:54:20 »
MQTT ist ja nichts schlechtes, ich fande es so nur einfacher... ;)
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline fh168

  • Sr. Member
  • ****
  • Beiträge: 748
    • Robins-Blog
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #8 am: 19 Juli 2016, 12:06:15 »
eben, man muss nicht wegen einem Sensor einen kompletten MQTT-Broker bauen. Wenn man mehrere Sensoren hat, sieht das ganze schon anders aus. Ich nutze Mosquitto auch.
Hue, Lacrosse, PCA301, MySensors, V 1.54 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-Bridge, ESA 2000 WZ, Blogbeiträge: http://bit.ly/16chI8u , http://bit.ly/12Q27Gw , http://bit.ly/14PhvXB  http://bit.ly/18sbgs5

Online sbiermann

  • Full Member
  • ***
  • Beiträge: 373
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #9 am: 19 Juli 2016, 21:00:22 »
Naja Mosquitto bauen muss man ja nicht unbedingt. Mit Raspbian Jessie kann man auch einen Mosquitto Broker per Docker Image nutzen. Mit Raspbian Wheezy muss man allerdings erst den Kernel neu bauen um die Docker notwendigen Optionen im Kernel zu bekommen. Aber dann geht es dort auch mit Docker.
Die Idee mit ESP Easy direkt an FHEM zu senden ist natürlich die einfachste Art.

Offline amithlon

  • Jr. Member
  • **
  • Beiträge: 92
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #10 am: 19 Juli 2016, 21:35:02 »
Hallo,

Mosquitto läßt sich auf dem RasPi unter Jessie recht einfach installieren:
http://blog.wenzlaff.de/?p=6487

Gruß aus Berlin
Michael

Offline eppi

  • Full Member
  • ***
  • Beiträge: 358
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #11 am: 20 Juli 2016, 19:48:05 »
Hallo dev0
Besten Dank für das coole Plugin! Ich habe es heute getestet und musste ein dediziertes FHEM-WEB einrichten ohne Benutzername und Passwort. Der Grund liegt darin, dass meine FHEM-WEB mit komplexen Benutzernamen und Passwörter mit einigen Sonderzeichen (basicAuth) gesichert sind und ESPeasy damit ein Problem hatte.

Besteht die Möglichkeit, dass du ein Plugin schreibst für FHEM-TELNET? Das würde mich sehr freuen.
Danke und viele Grüsse Eppi
HM, FS20, CUL, CUNO V1, CUNO V2, HMLAN, FHT, S555, SIS-PM, IT, OWFS,  DebianWheezy@ODROID-U3

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3430
    • _.:|:._
Antw:ESPEasy -&gt; FHEM (ohne MQTT)
« Antwort #12 am: 20 Juli 2016, 19:59:39 »
Funktioniert basic auth denn generell oder liegt es an den Sonderzeichen? ich habs noch nicht getestet.
Telnet: habe ich nicht vor, aber Du kannst gerne einen Patch schreiben ;)

Offline eppi

  • Full Member
  • ***
  • Beiträge: 358
Antw:ESPEasy -> FHEM (ohne MQTT)
« Antwort #13 am: 20 Juli 2016, 20:13:43 »
Funktioniert basic auth denn generell oder liegt es an den Sonderzeichen? ich habs noch nicht getestet.

wenn ich einen einfach user und pwd name eingebe ohne Sonderzeichen, dann scheint es zu funktionieren. Getestet habe ich es nicht, aber nach einem save im Bowser des Espeasy bleibt er korrekt stehen. Beim meinen Username und Passwort setzt er die beiden Wörter zusammen in beide Felder...

Trotzdem Danke für deine Mühe!
HM, FS20, CUL, CUNO V1, CUNO V2, HMLAN, FHT, S555, SIS-PM, IT, OWFS,  DebianWheezy@ODROID-U3

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3430
    • _.:|:._
Antw:ESPEasy -&gt; FHEM (ohne MQTT)
« Antwort #14 am: 20 Juli 2016, 21:18:58 »
Wenn es generell funktioniert, dann bin ich raus. Dann müsstest du dich an den ESPEasy Autor wenden: http://www.esp8266.nu/forum/