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.
Super, bin schon gespannt :)
Aber im Anfängerforum ???? Hätte da eher Bastelecke oder Sonstige Systeme erwartet ...
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
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
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.
(//)
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.
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.
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
Hi Leute,
gehts hier irgendwie weiter oder ist das ganze "gestorben"?
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.
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
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.
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.
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.
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.
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.
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
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.
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. ;)