2 Firmata Devices?

Begonnen von wk, 16 September 2019, 14:54:19

Vorheriges Thema - Nächstes Thema

wk

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.

rob

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

wk

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.

rob

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

wk

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:

Beta-User

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).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

wk

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)

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

wk

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?

Beta-User

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?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rob

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

wk

#11
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.

wk

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