Kann es sein, dass fhem nicht zwei Firmata Devices haben kann?
Ich habe seit langer Zeit einen arduino nano als Firmata Device ohne Probleme laufen. Heute wollte ich einen zweiten dazu integrieren,aber es funktioniert nicht. Sie sind beide über USB angeschlossen und ich habe sie in der def über /dev/serial/by-id unterschieden.
Der Zweite geht in eine Endlosschleife CONNECT DISCONNECT und wiederholt das alle 3 Sekunden. Es kommt nie in den Status Initialized.
Hi.
Also ich habe mehrere Firmata Devices im Einsatz. Deshalb würde ich meinen: sollte für Fhem kein Problem sein.
Allerdings ist bei mir nur eines davon ein Arduino. Den hab ich per /dev/serial/by-path/... eingebunden (da kein echter FTDI) und ich steck die USB nicht dauernd um ;)
Hast Du echte FTDI's? Wenn nein, vielleicht ist "by-path" für Dich einen Versuch wert.
Funktionieren denn beide problemlos wenn Du sie jeweils alleine einbindest? Nur um einzugrenzen, ob der neue ggf. zickt :)
Gruß
rob
Ich habe es jetzt mit dem neuen alleine getestet und es liegt an ihm. Das ist mein einziger mit FTDI,aber er zickt.
Bei by-id zeigt er sich als "usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0".
Verstehen kann ich das nicht, denn die Nanos sind mit dem gleichen Firmata geflasht und unter dem Programm firmata.test zeigen beide richtige Funktionen.
Da hast Du ja das Problem schon ein gutes Stück eingrenzen können. Jetzt gilt es imho herauszuknobeln, ob es "nur" am Zugriff im define liegt, oder doch woanders.
Wenn Du im cli dieses los lässt, wenn nur der Neue angeklemmt ist:
ls -lah /dev/serial/by-path/
Müsstest Du sehen, welchen Pfad Du nehmen musst, ob die Rechte ggf. passen und auf welches Device das Gerät verlinkt wird.
Schaut bei mir so aus (nicht irritieren lassen, hab einen Hub dazwischen):
drwxr-xr-x 2 root root 180 Sep 1 10:51 .
drwxr-xr-x 4 root root 80 Sep 1 10:51 ..
lrwxrwxrwx 1 root root 13 Sep 1 10:51 platform-3f980000.usb-usb-0:1.2.1:1.0-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Sep 1 10:51 platform-3f980000.usb-usb-0:1.2.2:1.0-port0 -> ../../ttyUSB5
lrwxrwxrwx 1 root root 13 Sep 1 10:51 platform-3f980000.usb-usb-0:1.2.3:1.0-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Sep 1 10:51 platform-3f980000.usb-usb-0:1.2.4:1.0-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Sep 1 10:51 platform-3f980000.usb-usb-0:1.2.5:1.0-port0 -> ../../ttyUSB3
lrwxrwxrwx 1 root root 13 Sep 1 10:51 platform-3f980000.usb-usb-0:1.2.6:1.0 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 Sep 1 10:51 platform-3f980000.usb-usb-0:1.4:1.0-port0 -> ../../ttyUSB4
eingebunden dann so, weil der letzte Eintrag mein Uno ist
define myArduinoUNO_01 FRM /dev/serial/by-path/platform-3f980000.usb-usb-0:1.4:1.0-port0@57600
Wenn Du den Querulanten dann so testweise einbindest (angepasst auf Deinen Pfad), was macht er dann?
Gruß
rob
Es ändert sich durch die Umstellung auf by-path nichts. Die ständige Umschaltung CONNECT - DISCONNECT schreibt nur das log voll, aber es kommt keine echte Verbindung zustande, die Werte aus dem arduino auslesen läßt.
Ich habe einen weiteren meiner arduinos umgeflasht. Es hat die gleichen Symptome. Es ist auch ein FTDI und unterscheidet sich bei by-id nur durch die 8-stellige individuelle Kennzeichnung.
Es sieht nach einem systematischen Fehler aus, aber wie gesagt, das Programm firmata.test auf Win10 zeigt einwandfreie Funktion.
Ein list des device. Vielleicht sagt Euch das was:
Internals:
DEF /dev/serial/by-path/pci-0000:00:14.0-usb-0:4:1.0-port0
DRIVER_VERSION 0.64
DeviceName /dev/serial/by-path/pci-0000:00:14.0-usb-0:4:1.0-port0
FD 66
FUUID 5d81e4c2-f33f-d4cb-d8f4-553bcfb2dfed046b
NAME Fir
NOTIFYDEV global
NR 564
NTFY_ORDER 50-Fir
PARTIAL
SETUP_STAGE 1
SETUP_START 1568793809.56144
SETUP_TRIES 3
STATE connected
TYPE FRM
READINGS:
2019-09-18 10:03:23 state connected
Attributes:
Wenn eine eindeutigig ID vorhanden ist und war, aber das Ding schon "zickt", wenn es "alleine" ist, ist irgendwas ganz anderes die Ursache. Die firmware hast du auch schon ausgeschlossen, also kommt es tendenziell aus dem Pi-Umfeld.
Würde als erstes mal die Spannungsversorgung verdächtigen (=> by-id einbinden und einen aktiven Hub dazwischenklemmen), auf einer anderen Plattform hatten wir bei Arduinos auch schon mal Schwierigkeiten mit dem USB-Mode (war auf 1.1 (?) einzubremsen).
Ich habe keinen aktiven Hub, möchte aber die Spannungsversorgung ausschliessen, da ich keinen Pi verwende sondern einen PC mit starker Spannungsvversorgung. Nachgemessen habe ich 4,98V am arduino. Auch wenn ich nur den einen arduino anschließe, kommt das Verhalten.
2019.09.18 12:19:13 3: Opening Fir device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0
2019.09.18 12:19:13 3: Fir device opened
2019.09.18 12:19:16 3: Fir querying Firmata versions
2019.09.18 12:19:19 3: Fir querying Firmata versions
2019.09.18 12:19:23 3: Fir no response from Firmata, closing DevIo
2019.09.18 12:19:23 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 disconnected, waiting to reappear (Fir)
2019.09.18 12:19:23 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 reappeared (Fir)
2019.09.18 12:19:27 3: Fir querying Firmata versions
2019.09.18 12:19:30 3: Fir querying Firmata versions
2019.09.18 12:19:33 3: Fir no response from Firmata, closing DevIo
2019.09.18 12:19:33 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 disconnected, waiting to reappear (Fir)
2019.09.18 12:19:35 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 reappeared (Fir)
2019.09.18 12:19:38 3: Fir querying Firmata versions
2019.09.18 12:19:41 3: Fir querying Firmata versions
2019.09.18 12:19:45 3: Fir no response from Firmata, closing DevIo
2019.09.18 12:19:45 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 disconnected, waiting to reappear (Fir)
2019.09.18 12:19:45 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 reappeared (Fir)
2019.09.18 12:19:48 3: Fir querying Firmata versions
2019.09.18 12:19:51 3: Fir querying Firmata versions
2019.09.18 12:19:54 3: Fir no response from Firmata, closing DevIo
2019.09.18 12:19:54 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 disconnected, waiting to reappear (Fir)
2019.09.18 12:19:55 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9EX1RZV-if00-port0 reappeared (Fir)
Zitat von: Beta-User am 18 September 2019, 10:36:28
auf einer anderen Plattform hatten wir bei Arduinos auch schon mal Schwierigkeiten mit dem USB-Mode (war auf 1.1 (?) einzubremsen).
Das hast du gesehen?
Ansonsten sieht mir das so aus, als hätten ggf. die Firmata-Version und das firmata-Modul Kommunikationsprobleme. Dazu gab es früher mal auch einen Thread.
Kannst du mal die Versionen listen, die du da jeweils hast?
Testweise ggf. mal die firmware downgraden auf einen "getesteten" Stand.
Ich habe die aktuellste Version 2.5.8 auf den neuen arduinos. Bei dem funktionierenden weiß ich nicht genau welche Version das war. firmata.test zeigt nur 2.5 an.
Welche Version wird denn als funktionierend und stabil angesehen?
Sorry, ich habe das nicht selbst im Einsatz.
Im Wiki ist 2.5.7 erwähnt, für configurable 5.10.0 (https://wiki.fhem.de/wiki/Arduino_Firmata).
Die FHEM-Module sind aktuell?
Schade. Scheint das Problem wohl doch tiefer zu liegen.
Ich hab konkret die Configurable Firmata im Einsatz (protocol_version 2.06; firmware_version 2.10). Meine Beispiel Config wird Dir daher wohl doch nicht unbedingt helfen.
Viele Grüße
rob
Ich bin im Moment total verwirrt.
Mein funktionierender arduino zeigt :protocol_version 2.05; firmware_version 2.05 firmware StandardFirmata.ino
In der arduino IDE (neueste Version 1.8.10) gibt es im Bibliotheksverwalter Versionen von 2.3.6 bis 2.5.8.
Auf der Website von firmata ist die neueste Version : Latest release (protocol v2.3.6) Von Firmware_version wird dort gar nichts gesagt.
Gibt es eine Möglichkeit einen arduino zu klonen? Mir würde die alte funktionierende Version genügen.
Aus einem sich mir nicht erschließendem Grund geht es plötzlich.
Ich habe die arduinos mit der neuesten IDE 1.8.10 und der Version 2.5.8 geflasht.
Der firmata.test zeigt Version 2.5 an.
Im fhem erscheint wie bei meinem alten arduino: protocol_version 2.05; firmware_version 2.05 firmware StandardFirmata.ino
Internals:
DEF /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A1062BZJ-if00-port0@57600
DRIVER_VERSION 0.64
DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A1062BZJ-if00-port0@57600
FD 68
FUUID 5d84be56-f33f-d4cb-6e16-c8eab032d851779e
NAME Fir
NOTIFYDEV global
NR 878
NTFY_ORDER 50-Fir
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_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
output_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
protocol_version V_2_05
pullup_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:
2019-09-20 13:56:09 state Initialized
SERIAL:
Attributes:
room Firmata