FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Familienpapi am 05 November 2015, 14:57:13

Titel: ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 05 November 2015, 14:57:13
Hallo, Zusammen,

ich hoffe, ich bin hier im richtigen Teil des Forums.

Mein Ziel ist die Implementierung der Configurable Firmata V2.06 auf den ESP8266 mit Hilfe der Arduino Entwicklungsumgebung 1.6.5.

Vielleicht können wir das in GitHub gemeinsam erledigen. Ich werde das diese Woche noch reinstellen und hier den Link posten. Die Boards.h habe ich bereits angepasst.

Freue mich auf rege Teilnahme.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Wzut am 05 November 2015, 15:07:35
Super, bin schon gespannt :)
Aber im Anfängerforum ???? Hätte da eher Bastelecke oder Sonstige Systeme erwartet ...
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 05 November 2015, 23:49:38
das ganze gestaltet sich dann doch deutlich schwieriger als ich dachte.  :-[

Im Moment scheitert's bereits an den einfachsten Dingen wie z.B. Serial.begin(115200); Schon das funktioniert nicht, geschweige denn die WiFi Definitionen.
Die Firmata kommuniziert im Standard ja seriell entweder über den USB oder über andere Ports mit den aufgesteckten Boards. Das müsste man nun "umbiegen", dass das zukünftig per WiFi gesendet und empfangen wird, oder?

Meine Dateien sind im GitHub. Vielleicht kann da mal jemand mit drüber schauen. Evtl. bin ich jetzt aber auch nach den paar Stunden betriebsblind geworden.

https://github.com/Familienpapi/ESP8266ConfigurableFirmata
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Nepumuk4321 am 06 November 2015, 00:01:54
Hallo Familienpapi,

ja im Standard kommuniziert Firmata über die serielle Schnittstelle (USB und/oder RX/TX). Das mit dem RX-TX ist ja die Lösung aus dem anderen Thread, wo der Arduino über RX/TX den ESP ansteuert.
Im Firmata Sketch kann man aber leicht mittels Ethernet kommunizieren, wenn man
#include <SPI.h>
#include <Ethernet.h>                                     WIZ5100-based ethernet-shield
oder
//#include <UIPEthernet.h>                             ENC28J60 based ethernet-shield
nicht auskommentiert.
Dann kommuniziert er nicht mehr über die serielle Schnittstelle sondern nutzt die Ethernetshields.

Ich glaube der "einfachste" Weg ist wohl, eine dieser Ethernetlibraries anzupassen.
Mir fehlt leider die tiefere C Kenntnis um dich dort intensiv zu unterstützen. :'(

Gruß Frank
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Nepumuk4321 am 08 November 2015, 20:19:17
Hallo,

ich weiß ja nicht ob es hilft, aber ich bin gerade über folgende github Seite gestolpert:

https://github.com/esp8266/Arduino (https://github.com/esp8266/Arduino)

Wenn man der Anleitung folgt kann man in der Arduino IDE den ESP8266, den NodeMCU und noch ein paar ESP8266 Varianten direkt im Boardsmanager als Variante auswählen.

(//)
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 08 November 2015, 22:05:46
Genau. Damit kann man Lösungen ohne einen Arduino schaffen.
Da es off-topic ist nur kurz als Hinweis: Daten vom ESP per MQTT an FHEM übertragen und per HTTP von FHEM an ESP. Funktioniert wunderbar, ist aber individuelle Handarbeit.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Cihan am 16 November 2015, 03:35:14
Und schon irgendwie weitergekommen? Firmata auf dem ESP wäre der Ultimative Killer.

http://de.aliexpress.com/item/ESP8266-Serial-Port-WIFI-Wireless-Transceiver-Send-Receive-Module-IO-Lead-Out-ESP-201/32268281500.html?ws_ab_test=searchweb201556_1_79_78_77_91_80,searchweb201644_5,searchweb201560_9

Mein Plan in jeden Rollokasten ein so ein Teil rein. Temp, Fensterkontakt etc. alles sofort drin.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 16 November 2015, 08:28:42
Bin im Moment dank einiger Kundenaufträge etwas Land unter. Wird wohl im Januar etwas ruhiger werden. Ich bleibe dran.
2 Relais und Temp mit Humi und noch Lux könnte man aber auch mit der IDE schon sehr schnell und zuverlässig lösen.

gesendet mit Tapatalk via Samsung Note

Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: 2P4u am 09 August 2016, 15:57:40
Hi Leute,
gehts hier irgendwie weiter oder ist das ganze "gestorben"?
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 04 September 2016, 12:10:04
Von meiner Seite her besteht kein Bedarf der Weiterentwicklung mehr. Ich bin von Firmata inzwischen ganz abgekommen, da es mir zu unflexibel ist und meine Bedürfnisse nicht mehr deckt.  Habe mir daher mein eigenes Konstrukt geschaffen, das auf ESP und Arduino gleichermaßen für meine Häuser einsetzbar ist, egal ob über RS485 (USB), Ethernet oder WLAN. Der ESP hat auch zu wenig Anschlussmöglichkeiten für die CPU und den RAM, wobei ich hier immer mehr auf reine I2C Bausteine oder entsprechende Adapter übergehe.

Der von mir begonnene Code steht noch auf Github und darf gerne für weitere Entwicklungen übernommen werden.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: gadget am 01 November 2016, 09:34:00
Hallo,

mir ist nicht ganz klar ob das relevant ist, aber die "normale" Firmata läuft inwischen auch auf einen ESP8266. Ich habe mir mal einen Prototypen gebastelt mit einem "ESP8266 ESP-12E WIFI Development Board" (gibts z.B. bei amazon.de) und auch erfolgreich per Wifi an fhem angebunden und ich kann da dann auch Pins von fhem aus schalten.

Kurz zusammengefasst:ESP mit firmata ESP flashen wie in diesem instructable: http://www.instructables.com/id/ESP8266-Firmata-J5-NodeBot/?ALLSTEPS (http://www.instructables.com/id/ESP8266-Firmata-J5-NodeBot/?ALLSTEPS)  ( Johhny Five ignorieren), vorher in der WifiConfig.h die WLAN Zugangsdaten und die IP-Adresse des fhem Servers eintragen.

Auf fhem Seite dann eigentlich nur noch


define ESP_FRM FRM 3030 global
define FRM_D0 FRM_OUT 16
set FRM_D0 off
set FRM_D0 on


und schon kann man die LED an Pin D0 auf dem ESP schalten (allerdings genau anders herum -> off schaltet die LED an)
Digital PINs 12,13,14,15,16 scheinen zu funktionieren, den Rest habe ich nicht probiert.


Was ich eigentlich erreichen will: Anbindung von Sensoren (DS18B20 ("Dallas") und DHT22) - die entsprechende Protokollunterstützung ist aber wohl nur in der "configurable firmata" drin. Wie ich beides unter einen Hut bringe habe ich noch nicht kapiert. Würde mich hier über Ideen freuen.

Ich habe auch schon mit esp easy rumgespielt und auch das mit fhem zum Laufen bekommen. Auf ESP-Seite ist das auch die deutlich hübschere Lösung: Alles per WebGui einstellbar, OTA-Firmaware-Update usw, aber  die fhem Integration über mqtt ist aber für meinen Geschmack ein wenig sehr von hinten durch die Brust. Allerdings funktioniert 1-wire und DHT quasi "out-of-the-box".



Grüße, gadget



Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 01 November 2016, 19:55:50
Hallo, Gadget,
klingt gut.
Ich bin inzwischen von Firmata ganz weg gegangen und löse alles mit MQTT (Mosquitto). Da bin ich viel flexibler und funktioniert auch im Echtbetrieb ohne Probleme und Aussetzer. Ist halt Handarbeit und nix out-of-the-box, dafür aber jedes Gerät / jedes Zimmer ganz individuell angepasst. Einzige Ausnahme ist noch der direkt angeschlossene Mega2560 am RPi via USB, der bei mir die Heizung und die dazugehörigen Pumpen und Mischer steuert.
Bin aber trotzdem sehr gespannt, ob man die configurable Firmata dann auch noch auf den ESP bekommt.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 02 November 2016, 21:36:44
grad gesehen aber (noch) nicht getestet:

https://github.com/firmata/ConfigurableFirmata/blob/master/examples/ConfigurableFirmataWiFi/ConfigurableFirmataWiFi.ino

Sollte also nun gelöst sein. Aber sicherlich wird man auch hier die Versionsnummer manuell in src/ConfigurableFirmata.h Zeile 34 bis 36 zurück drehen müssen, da FHEM nur Firmata Versionen bis 2.60 akzeptiert.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: gadget am 04 November 2016, 16:26:50
Hallo,

interessant ....  :D

Habe die configurable firmata geflasht. Verbindung zu fhem wird aufgebaut.

Internals:
   CFGFN
   CONNECTS   4
   DEF        3030 global
   DeviceName 3030
   FD         94
   NAME       ESP_FRM
   NOTIFYDEV  global
   NR         1984
   NTFY_ORDER 50-ESP_FRM
   PORT       3030
   STATE      Initialized
   TYPE       FRM
   firmware   ConfigurableFirmataWiFi.ino
   firmware_version V_2_09
   Socketdevice:
     BUF
     DeviceName 3030
     FD         95
     NAME       ESP_FRM_192.168.178.65_7500
     NR         2036
     PEER       192.168.178.65
     PORT       7500
     SNAME      ESP_FRM
     SSL
     STATE      Connected
     TEMPORARY  1
     TYPE       FRM
Attributes:
   room       firmata
   verbose    4


Outputs schalten hab ich noch nicht hinbekommen. Wenn ich an einem FRM_OUT  herumschalte sehe ich auch keinerlei Kommunikation wenn ich auf dem fhem Server einen tcpdump host <ip-des-wifi-firmata> laufen lasse.

Das mir dem Ändern der firmware version hab ich auch mal probiert:
/*
* Version numbers for the Firmata library.
* ConfigurableFirmata 2.9.1 implements version 2.5.1 of the Firmata protocol.
* The firmware version will not always equal the protocol version going forward.
* Query using the REPORT_FIRMWARE message.
*/
# FAKING 2.60 https://forum.fhem.de/index.php/topic,43572.0/topicseen.html
#define FIRMATA_FIRMWARE_MAJOR_VERSION  2 // for non-compatible changes
#define FIRMATA_FIRMWARE_MINOR_VERSION  6 // for backwards compatible changes
#define FIRMATA_FIRMWARE_BUGFIX_VERSION 0 // for bugfix releases


... aber hat nichts geändert. Beim Verbindungsaufbau bekommt fhem so oder so V_2_09 -> siehe list oben.

Grüße, gadget.

Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 05 November 2016, 10:07:02
Zitat... aber hat nichts geändert. Beim Verbindungsaufbau bekommt fhem so oder so V_2_09 -> siehe list oben.

Meine Erfahrung ist, dass FHEM dann nicht mit der Firmata kommuniziert. Also die Versionsnummer sollte V_2_06 sein.
Mein Mega meldet sich mit einer 2.8 so:
DEF
/dev/ttyACM0@57600

DeviceName
/dev/ttyACM0@57600

FD
4

NAME
FRMA1

NOTIFYDEV
global

NR
152

NTFY_ORDER
50-FRMA1
PARTIAL

STATE
Initialized

TYPE
FRM

analog_pins
54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69

analog_resolutions
54:10,55:10,56:10,57:10,58:10,59:10,60:10,61:10,62:10,63:10,64:10,65:10,66:10,67:10,68:10,69:10

encoder_pins
2,3,18,19,20,21

encoder_resolutions
2:28,3:28,18:28,19:28,20:28,21:28

firmware
ConfigurableFirmata.ino

firmware_version
V_2_06

i2c_pins
20,21

input_pins
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69

onewire_pins
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69

output_pins
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69

pwm_pins
2,3,4,5,6,7,8,9,10,11,12,13,44,45,46

pwm_resolutions
2:8,3:8,4:8,5:8,6:8,7:8,8:8,9:8,10:8,11:8,12:8,13:8,44:8,45:8,46:8

servo_pins
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49

servo_resolutions
2:14,3:14,4:14,5:14,6:14,7:14,8:14,9:14,10:14,11:14,12:14,13:14,14:14,15:14,16:14,17:14,18:14,19:14,20:14,21:14,22:14,23:14,24:14,25:14,26:14,27:14,28:14,29:14,30:14,31:14,32:14,33:14,34:14,35:14,36:14,37:14,38:14,39:14,40:14,41:14,42:14,43:14,44:14,45:14,46:14,47:14,48:14,49:14

stepper_pins
2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69

stepper_resolutions
2:21,3:21,4:21,5:21,6:21,7:21,8:21,9:21,10:21,11:21,12:21,13:21,14:21,15:21,16:21,17:21,18:21,19:21,20:21,21:21,22:21,23:21,24:21,25:21,26:21,27:21,28:21,29:21,30:21,31:21,32:21,33:21,34:21,35:21,36:21,37:21,38:21,39:21,40:21,41:21,42:21,43:21,44:21,45:21,46:21,47:21,48:21,49:21,50:21,51:21,52:21,53:21,54:21,55:21,56:21,57:21,58:21,59:21,60:21,61:21,62:21,63:21,64:21,65:21,66:21,67:21,68:21,69:21


Wenn also die ganzen Pins nicht aufgelistet werden, dann kann auch nicht kommuniziert werden.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 05 November 2016, 14:08:14
Hab mal kurz in meiner Mittagspause das ganze ausprobiert.
Das kam dabei heraus:

CFGFN
CONNECTS
1

DEF
13030 192.168.237.50

DeviceName
13030

FD
92

NAME
FRMA2

NOTIFYDEV
global

NR
47784

NTFY_ORDER
50-FRMA2

PORT
13030

STATE
Initialized

TYPE
FRM

analog_pins
17

analog_resolutions
17:10

firmware
ConfigurableFirmataWiFi.ino

firmware_version
V_2_06

i2c_pins
4,5

input_pins
0,1,2,3,4,5,12,13,14,15,16

onewire_pins
0,1,2,3,4,5,12,13,14,15,16

output_pins
0,1,2,3,4,5,12,13,14,15,16

pwm_pins
0,1,2,3,4,5,12,13,14,15,16

pwm_resolutions
0:8,1:8,2:8,3:8,4:8,5:8,12:8,13:8,14:8,15:8,16:8

servo_pins
0,1,2,3,4,5,12,13,14,15,16

servo_resolutions
0:14,1:14,2:14,3:14,4:14,5:14,12:14,13:14,14:14,15:14,16:14

stepper_pins
0,1,2,3,4,5,12,13,14,15,16

stepper_resolutions
0:21,1:21,2:21,3:21,4:21,5:21,12:21,13:21,14:21,15:21,16:21


Sollte also funktionieren. Die PWM Auflösung wundert mich, da der ESP eigentlich 10 Bit hat.
Weitere Tests kann ich aus zeitlichen Gründen leider im Moment nicht durchführen.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: gadget am 06 November 2016, 19:59:21
Hallo,

Ich habe das jetzt erst mal wieder sein gelassen, die Variante ESP Easy direkt an fhem ohne extra mqtt Broker dazwischen gefällt mir erheblich besser ... https://forum.fhem.de/index.php/topic,55728.0.html (https://forum.fhem.de/index.php/topic,55728.0.html)

Grüße, gadget
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Jogi am 22 Februar 2017, 14:20:05
Zitat von: gadget am 01 November 2016, 09:34:00
die IP-Adresse des fhem Servers eintragen.


Wo genau muss ich in der wifiConfig denn die IP-Adresse eintragen?
Es gibt mehrere Stellen, wo das möglich wäre und ich weiß nicht, welche die richtige ist.
Titel: Antw:ESP8266 Configurable Firmata
Beitrag von: Familienpapi am 22 Februar 2017, 16:15:40
Ui. Lang ist's her.
Hab mal kurz rein geschaut und ich denke, dass folgende Änderungen in der Datei ConfigurableFirmataWifi.ino mit Stand August 2016 durchgeführt werden müssen:

Zeile 194: die IP meines FHEM Servers
Zeile 199: meine WLAN SSID
Zeile 206-208: wenn man eine statische IP für den ESP vergeben möchte
Zeile 213: welcher Port ist in FHEM für diesen Firmata Client definiert
Zeile 231: das Passwort meines WLANs

Ist jetzt aus Zeitmangel ungetestet. Sollte in der Theorie so funktionieren.
Freue mich über Rückmeldungen.  ;)