Ich hab ein Problem mit Configurable Firmata:
Ich hab Configurable Firmata 2.07 aus gitHub auf einem nano clone (aber auch auf einem mega2560 und Original Uno besteht das selbige Problem) geflasht und in FHEM wird der Arduino auch als Initialized angezeigt.
Allerdings nicht die verfügbaren Pins bzw Modi und schalten oder auslesen funktioniert ebenfalls nicht:
Internals:
CFGFN
DEF /dev/ttyUSB0@57600
DeviceName /dev/ttyUSB0@57600
FD 4
NAME FRM_0
NOTIFYDEV global
NR 44
NTFY_ORDER 50-FRM_0
PARTIAL
STATE Initialized
TYPE FRM
firmware ConfigurableFirmata.ino
firmware_version V_2_07
Readings:
2015-11-20 22:03:05 state opened
Attributes:
Mit StandardFirmata hingegen funktioniert alles einwandfrei:
Internals:
CFGFN
DEF /dev/ttyUSB0@57600
DeviceName /dev/ttyUSB0@57600
FD 4
NAME FRM_0
NOTIFYDEV global
NR 44
NTFY_ORDER 50-FRM_0
PARTIAL
STATE Initialized
TYPE FRM
analog_pins 14,15,16,17,18,19,20,21
analog_resolutions 14:10,15:10,16:10,17:10,18:10,19:10,20:10,21:10
firmware StandardFirmata.ino
firmware_version V_2_04
i2c_pins 18,19
input_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
output_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
pwm_pins 3,5,6,9,10,11
pwm_resolutions 3:8,5:8,6:8,9:8,10:8,11:8
servo_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
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
Readings:
2015-11-20 22:07:44 state opened
Attributes:
Da Ich allerdings Firmata als OneWire Schnittstelle verwenden möchte bringt mir das leider wenig.
Ich hab die aktuellste Arduino IDE (32bit) auf einem Win 10 x64 rechner installiert.
Hat jemand eine Idee, weshalb dies nicht funktioniert?
Beste Grüße
Fabian
Hallo Pythonf,
soweit ich das sehe, arbeitet der Firmata-Protokollhandler von FHEM mit der Versionsnummer, die das Firmata-Device sendet. Unterstützt wird aktuell bis 2.(0)6.
Damit hast du 2 Möglichkeiten: Ändere die Version deiner Firmata-Firmware auf 2.(0)6 oder älter oder dopple den Definitionsblock für V_2_06 in der Datei FHEM/lib/Device/Firmata/Constants.pm und nenne die neue Version V_2_07 (letzteres auf eigene Gefahr und mit der Garantie, dass das nächste FHEM-Update diese Änderung rückgängig macht).
Grüße,
Jens
Wie genau macht man das: "Ändere die Version deiner Firmata-Firmware auf 2.(0)6 oder älter..."??
Habe genau das gleiche Problem....Version V_2_08
Hallo kb958291,
ich finde es nicht wirklich gut, wenn ich hier detaillierte Anleitungen gebe, bestehende Softwaremodule so zu modden, dass sie vielleicht miteinander funktionieren. Ein solches Vorgehen hat fast immer Nebenwirkungen. Wollte lediglich einen Hinweis auf die Ursachen für das Problem geben. Richtig wäre es, eine entsprechende Lösung in FHEM zu implementieren.
Bitte verwende bis auf weiteres eine Firmata-Version bis einschließlich 2.6 statt die aktuelleste.
Grüße,
Jens
Ich finde immer nur die Version 2.08....
Hat jemand einen Link für Configurable Firmata 2.06 ?
Hallo kb958291,
verwende einen Git-Client und checke eine Version vor dem 22.11.2015 aus, also z.B. den Commit "55b4e352b5647072805adc5b82798b78788018af". Es gibt leider keine Tags vor 2.8.0.
Grüße,
Jens
Hallo,
ich scheitere bereits bei "verwende einen Git-Client und checke eine Version vor dem 22.11.2015 aus, also z.B. den Commit "55b4e352b5647072805adc5b82798b78788018af""
Ich habe es mit "smartgit" versucht, weis allerdings nicht, wie ich damit was suchen kann.....
Hallo kb958291,
tut mir leid, ich weiß dass Auschecken einer bestimmten Version nicht einfach ist, wenn man das nicht ab und zu macht.
Vielleicht hilft folgendes (nicht getestet!): öffne ConfigurableFirmata.h und ändere FIRMWARE_MINOR_VERSION auf den gewünschten Wert.
Viel Erfolg,
Jens
Hallo Jens,
das hatte ich schon vorab gemacht, ich wollte es aber "richtig" machen....
Bekomme allerdings auch eine Fehlermeldung:
Readings:
error Unhandled sysex command
Gruß,
kb
Hallo kb,
dann bleiben nur noch die "richtigen" Lösungen übrig:
- Versuchs noch mal mit einem Checkout. Hilfe gibts mit der Stichwortkombination "github checkout specific commit"
- Verwende StandardFirmata 2.5
- Warte bis die Anpassungen in FHEM erfolgt sind. FHEM orientiert sich derzeit an der Firmware-Versionsnummer und die hat sich bei ConfigurableFirmata in letzter Zeit deutlich geändert. ConfigurableFirmata 2.8 verwendet übrigens "nur" das Firmata-Protocol 2.5.
Grüße,
Jens
....."ConfigurableFirmata 2.8 verwendet übrigens "nur" das Firmata-Protocol 2.5."
Sollte ich dann die Version in der "ConfigurableFirmata.h" auf 2.5 ändern....? Mal testen....
Hallo,
ein kurzes Howto, wie man zu den älteren Versionen kommt: Du brauchst keinen Git Client.
Meine Vorgehensweise: Zu Anfang befindet man sich im Master Branch. Ich klicke dann eine Datei an, nehmen wir als Beispiel die readme.md. So getan, findet man rechts oberhalb des Dateiinhalts den Button "History". Diesen einmal gedrückt bekommt man eine Liste mit der Überschrift "History for ConfigurableFirmata/readme.md" Zu jeder Zeile gibt es rechts einen Button mit einem Teil eines Hex Codes, der jeweilige Commit. Ich klicke mal auf den vom 17.Mai und erhalte nun den Commit 837948bbf8b96bbb8ee297057c4352a56bc79b34 angezeigt. Unten angehängt die Differenzen der Dateien vom Vorgänger zur der ausgewählten Version. Oben rechts der Button "Browse files" -klick- bringt uns nun zum Button "Download Zip". Und hurra, die alte Configurable Firmata ist da (im Download Verzeichnis). :o :o :-X :'(
:)
Das ist ja erschreckend einfach!!!
Vielen Dank!!! ;D
Ich habe mir heute mal die Mühe gemacht und die Firmata Protokollversionen durchgeschaut. Demnach ist die aktuell letzte unterstützte Version 2.6.2 vom 19. bzw. 20.04.2015.
Gruß Axel
Irgendwie bin ich verwirrt: Die aktuell herunterzuladende ConfigurableFirmata.ino wird also nicht unterstützt? Jedenfalls funtioniert sie bei mir auch in der Version 2.08 nicht:
Internals:
DEF /dev/ttyUSB2@57600
DeviceName /dev/ttyUSB2@57600
FD 5
NAME Arduino
NOTIFYDEV global
NR 821
NTFY_ORDER 50-Arduino
PARTIAL
STATE Initialized
TYPE FRM
firmware ConfigurableFirmata.ino
firmware_version V_2_08
Readings:
2016-06-30 02:32:15 state opened
Attributes:
model nano
room Devices
sampling-interval 1000
Habe dann im GiTHub die Version 2.05 heruntergeladen, und mit Copy&Paste die ConfigurableFirmata.ino (V2.08) überschrieben, damit den Nano geflasht, es klappt:
Internals:
DEF /dev/ttyUSB2@57600
DeviceName /dev/ttyUSB2@57600
FD 5
NAME Arduino
NOTIFYDEV global
NR 821
NTFY_ORDER 50-Arduino
PARTIAL
STATE Initialized
TYPE FRM
analog_pins 14,15,16,17,18,19,20,21
analog_resolutions 14:10,15:10,16:10,17:10,18:10,19:10,20:10,21:10
firmware ConfigurableFirmata.ino
firmware_version V_2_05
i2c_pins 18,19
input_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
onewire_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
output_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
pwm_pins 3,5,6,9,10,11
pwm_resolutions 3:8,5:8,6:8,9:8,10:8,11:8
servo_pins 2,3,4,5,6,7,8,9,10,11,12,13
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
stepper_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
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
Readings:
2016-06-30 09:01:35 state opened
Attributes:
model nano
room Devices
sampling-interval 1000
Stellt sich die Frage, warum denn überhaupt eine in der Konfiguration nicht funktionierende neue Version zum herunterladen angeboten wird? Hätte mir zwei Stunden Fehlersuche gespart, bis ich in diesem Thread fündig wurde.
LG
Jorge
P.S. Falls jemand einen Arduino Nano V3.0 ATmega328P CH340G mit dem mitgeliefertem USB Kabel anschießen möchte: Das Kabel ist nur für die Stromversorgung geeignet, nicht für Datenübertragung...
Hallo,
finktioniert diese Version auch über Lan?
Mit den 2.8er Versionen werden die Pins auch nicht angezeigt.
Verwendet wird ein Nano mit Arduino Lan Modul.
Originale Firmata läuft über Lan wunderbar.
Besser wär halt die Configurable.
Just for Info: man kann auch aktuellere Firmata- und Configurable-Firmata-Versionen mit FHEM verwenden, wenn man ein bisschen experimentierfreudig ist. Wie das geht, ist u.a. hier (https://forum.fhem.de/index.php/topic,51514.msg432009.html#msg432009) beschrieben.
@hankyzoolander
Auch die "älteren" Firmata-Versionen funktionieren prinzipiell mit LAN. Bei den "kleinen" Arduinos erschwert aber der Speichermangel die Installation, insbesondere mit einem ENC28J60 LAN Modul (schlichter Chip, aufwendigeren Treiber). Die neueren Firmata-Versionen enthalten mehr Funktionen und benötigen meist etwas mehr Speicher als die älteren. Durch das "Configurable" kann man unnötige Komponenten abschalten. Das Ganze funktioniert aber auch mit Standard-Firmata, indem man alles auskommentiert, was man nicht braucht. In meiner Konfiguration bleibt dabei sogar deutlich mehr Speicher frei als mit Configurable-Firmata.
Grüße,
Jens
Arduino Nano mit originalem Lan Modul.
Habe bei der Configurable Firmata alles auskommentiert außer digital in,1-Wire und i2c.
Habe jetzt Testhalber maleinen Arduino Mega bestellt um zu sehen ob es mit dem besser geht.
Da das mit dem Nano wohl nicht funktioniert, habe ich das Problem mit einem Raspi gelöst.
Der kann 1-Wire,i2c und alles andere auch ;)
Greife die daten dann halt mit Fhem2Fhem ab.
Werde den Mega aber trotzdem testen.
I2C und 1-Wire benötigen beide einen extra Happen Code. Wenn man sie zusammen braucht, kann es mit dem Nano eng werden. Mit dem Mega habe ich es noch nicht probiert, auf jeden Fall hat der viel mehr Platz.
Mit dem originalen Arduino LAN Modul (W5100 Chip) machst du nichts falsch, alternativ kann man auch LAN Module mit dem gleichen Chip verwenden. Die einzigen Probleme, die ich da kenne, entstehen durch kontinuierliches Streaming, also wenn man z.B. eine serielle Schnittstelle über Firmata anbindet, die pausenlos empfängt. Dann wird der W5100 sehr heiß und stellt je nach Umgebungstemperatur auch mal den Dienst ein. Ein kleiner Kühlkörper hilft dann aber.
Ich hatte auch das Problem mit den nicht erscheinenden IO's usw.
Habe ConfigurableFirmata Version 2.0.10 und als Plattform einen ESP8266.
Habe mit Hilfe des Web Configurators einen Sketch erstellt, der war auch soweit ok, aber es funktionierte nicht.
Es kam zwar eine Verbindung zustande, mehr aber auch nicht.
Es half schliesslich, in der ConfigurableFirmata.h die Versionsnummern von 2.6.0 und 2.10.0 auf jeweils 2.5.0 zu ändern.
Siehe da, es läuft !!!
Vielleicht hilft es ja jemandem, hab auch eine ganze Weile gesucht, bis ich diese Lösung gefunden habe !
Bei mir half es auch, fhem die aktuelle Version vorzugaukeln, indem ich in /opt/fhem/FHEM/lib/Device/Firmata/Constants.pm den Abschnitt: V_2_05 => kopiert und darunter als V_2_10 => eingefügt habe. Somit denkt fhem nicht mehr, dass es mit der Version 2.10 nicht klarkommen kann.
Gruß Jens
Danke fuer eure Beitraege, Digital In/Out und onewire laeuft jetzt. Fehlt mir noch die LCD Anzeige.
Das Display sieht so aus als waere es nie initialsiert worden. Was mach ich hier noch falsch ?
Gruss
Joerg
@Joerg Wenn ich das richtig sehe, ging es es bisher nicht um LCDs und du schreibst leider nicht, was für Hardware du verwendest. Schau dir zunächst in der Commandref die Beschreibung des Moduls I2C_LCD an. Andere Display-Typen werden meiner Meinung nach nicht direkt unterstützt.
Es gibt hier (https://forum.fhem.de/index.php/topic,81815.0.html) eine Testversion für Firmata mit Firmware ab 2.7, die Änderungen an der Firmata-Firmware und der FHEM-Module überflüssig machen soll.
Grüße,
Jens
@jensb
das Display läuft jetzt bei mir, Keine Ahnung warum es zuerst nicht wollte.
Die Version 2.07 werde ich mir mal anschauen. Besonders interessant finde ich das Rücklesen des FRM_OUT.
Gruss
Joerg
Hallo Jörge,
danke für die Rückmeldung.
Wenn du dich für das Rücklesen von digitalen Ausgängen interessierst, dann lies die bitte die Anmerkungen in der Modul-Hilfe durch. Wenn das nicht reicht, bitte melden.
Grüße,
Jens