[Firmata] - Update - Device::Firmata wird aus FHEM entfernt

Begonnen von jensb, 26 September 2020, 21:39:45

Vorheriges Thema - Nächstes Thema

JensS

#15
läuft... :)
FRM_IN und OUT, AD
OWX_FRM und FRM_I2C


Gruß und Dank!
Von und an Jens sowie Herrn Prof.
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

wthiess

Hallo!
Leider habe ich mit Firmata ein Problem. Ich steuere mit einem Arduino mega und Ethernetshield eine 8Fach Relais Karte an. Leider immer wenn Fhem neu startet und/oder Firmata reinit macht, werden alle 8 Relais kurz gestartet. Das ist natürlich eine Katastrophe da ich mit einem Relais mein Eingangstor steuere. Vorher hatte ich das über einen Pi mit GPIO. Ohne Fhem gibt es kein Problem. Wie könnte man das lösen? Bitte um Hilfe.
lg
Wolfgang

Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

golem

Hallo Jens,

Neugestartet habe ich schon mehrfach.

Denis
Pi - Max-Lan - 8x max Ht -3x Max WT - Max Fk -modbus umg103- 2x Arduino mit Firmata Ethernet- ws300 - 433Mhz Sender Empfänger - 7x 1wire ds1820

jensb

Hallo Denis,

ich werde bis Ende dieser Woche eine Testversion erstellen und sie hier posten.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

jensb

Hallo Wolfgang!

ZitatLeider immer wenn Fhem neu startet und/oder Firmata reinit macht, werden alle 8 Relais kurz gestartet.
Das hat (leider) nichts mit dem Thema dieses Threads zu tun. Hier eine Kurzantwort. Wenn das nicht reicht bitte einen eigenen Thread aufmachen und hier den Verweis posten.

Es liegt vermutlich an einer Besonderheit von Firmata für den Arduino. Die Standardsketche setzen bei der Initialisierung analoge GPIOs auf Eingang (hochohmig) und rein digitale GPIOs auf Ausgang (niederohmig). Die AVR Microcontroller setzen beim Reset aber alle GPIOs auf Eingang. Und FHEM setzt die Pins nach dem Verbindungsaufbau so, wie du das willst. Wenn ich ein Relais wäre, würde ich unter diesen Bedingungen beim Reset auch klappern. Schau dir im Firmata-Sketch die Prozedur systemResetCallback() an, da kann man das Init-Verhalten von Firmata beeinflussen. Zum Testen solltest du in FHEM keine Pins konfigurieren. Anschließend sollte beim Reset nichts mehr klappern.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

jensb

Hallo Denis,

anbei die angekündigte Testversion für 10_FRM.pm. Bitte zuerst die vorhandene Version sichern, dann die Testversion einspielen und FHEM neu starten. Bitte einen Auszug des FHEM-Logs posten ab Neustart (beginnt z.B. mit "Including fhem.cfg") bis zur letzten Ausgabe mit "FRM_Get_Device_Firmata_Status= ...". Alles was du aus Datenschutzgründen nicht posten willst vorher unkenntlich machen oder löschen (Passwörter, IPs, etc.).

Außerdem hat das FRM-Device nun wieder das Internal DRIVER_VERSION, bitte auch dessen Wert posten.

Die Testversion enthält bereits funktionelle Änderungen, die aber aus meiner Sicht noch spekulativ sind, da ich nicht weiß, warum das Problem bei dir auftritt. Vielleicht lösen diese Änderungen aber bereits das Problem.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

golem

#21
Hallo Jens,

hier der Auszug  aus der Logdatei.


2020.11.29 14:12:01 1: Including fhem.cfg
2020.11.29 14:12:01 3: telnetPort: port 7072 opened
2020.11.29 14:12:01 3: WEB: port 8083 opened
2020.11.29 14:12:01 3: WEB2: port 8082 opened
2020.11.29 14:12:01 3: WEBphone: port 8084 opened
2020.11.29 14:12:01 3: WEBtablet: port 8085 opened
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Log redefined at ./FHEM/98_HourCounter.pm line 80, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_AddLog redefined at ./FHEM/98_HourCounter.pm line 91, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Exec redefined at ./FHEM/98_HourCounter.pm line 107, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_cmdQueueAdd redefined at ./FHEM/98_HourCounter.pm line 117, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_ExecQueue redefined at ./FHEM/98_HourCounter.pm line 124, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_RoundHour redefined at ./FHEM/98_HourCounter.pm line 166, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_RoundDay redefined at ./FHEM/98_HourCounter.pm line 173, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_RoundWeek redefined at ./FHEM/98_HourCounter.pm line 180, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_SecondsOfDay redefined at ./FHEM/98_HourCounter.pm line 191, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_RoundMonth redefined at ./FHEM/98_HourCounter.pm line 198, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_RoundYear redefined at ./FHEM/98_HourCounter.pm line 205, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Initialize redefined at ./FHEM/98_HourCounter.pm line 211, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Define redefined at ./FHEM/98_HourCounter.pm line 224, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Undef redefined at ./FHEM/98_HourCounter.pm line 270, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Get redefined at ./FHEM/98_HourCounter.pm line 277, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Set redefined at ./FHEM/98_HourCounter.pm line 290, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Notify redefined at ./FHEM/98_HourCounter.pm line 397, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Attr redefined at ./FHEM/98_HourCounter.pm line 430, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Seconds2HMS redefined at ./FHEM/98_HourCounter.pm line 447, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_weekBase redefined at ./FHEM/98_HourCounter.pm line 457, <$fh> line 425.
2020.11.29 14:12:02 1: PERL WARNING: Subroutine HourCounter_Run redefined at ./FHEM/98_HourCounter.pm line 472, <$fh> line 425.
2020.11.29 14:12:02 3: HourCounter HourCounter Initialize.220 Init Done with Version 1.0.1.2 - 24.12.2014
2020.11.29 14:12:02 0: HourCounter Gaszaehler Define.228 parameters: Gaszaehler HourCounter du_in_gaszaehler.on du_in_gaszaehler.off
2020.11.29 14:12:02 0: HourCounter Ladepumpe Define.228 parameters: Ladepumpe HourCounter in_ladepumpe:reading:.off in_ladepumpe:reading:.on
2020.11.29 14:12:02 2: eventTypes: loaded 3090 events from log/eventTypes.txt
2020.11.29 14:12:03 3: ModbusRT485: defined as /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0@38400
2020.11.29 14:12:03 1: PERL WARNING: Useless use of hash element in void context at ./FHEM/50_WS300.pm line 293, <$fh> line 896.
2020.11.29 14:12:03 1: PERL WARNING: Useless use of hash element in void context at ./FHEM/50_WS300.pm line 316, <$fh> line 896.
2020.11.29 14:12:03 1: PERL WARNING: Useless use of hash element in void context at ./FHEM/50_WS300.pm line 420, <$fh> line 896.
2020.11.29 14:12:04 1: WS300 Device /dev/serial/by-id/usb-ELV_AG_eQ3_WS_300_PC_II-if00-port0 opened
2020.11.29 14:12:04 1: [Alarm_Define] data hash restored from save file with date 2020-06-08 11:18:29
2020.11.29 14:12:04 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet:
2020.11.29 14:12:04 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui/ ...
2020.11.29 14:12:04 3: Opening sduino device /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
2020.11.29 14:12:04 3: Setting sduino serial parameters to 57600,8,N,1
2020.11.29 14:12:04 1: sduino: DoInit, /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
2020.11.29 14:12:04 3: sduino device opened
2020.11.29 14:12:04 3: sduino: Attr, setting Verbose to: 3
2020.11.29 14:12:05 3: FRM_Get_Device_Firmata_Status=1
2020.11.29 14:12:05 0: HourCounter Wasserzaehler Define.228 parameters: Wasserzaehler HourCounter du_in_Wasserzaehler.off du_in_Wasserzaehler.on
2020.11.29 14:12:05 0: HourCounter HC_Wohnzimmerlicht Define.228 parameters: HC_Wohnzimmerlicht HourCounter WohnzimmerLicht.on WohnzimmerLicht.off
2020.11.29 14:12:06 1: OWX_FRM::Define warning: version 7.11 not identical to OWX version 7.21
2020.11.29 14:12:06 3: OWTHERM:  Device T_TK defined.
2020.11.29 14:12:06 3: OWTHERM:  Device T_SO_1 defined.
2020.11.29 14:12:06 3: OWTHERM:  Device T_HK_vor defined.
2020.11.29 14:12:06 3: OWTHERM:  Device T_SO_2 defined.
2020.11.29 14:12:06 3: OWTHERM:  Device T_HK_rueck defined.
2020.11.29 14:12:06 3: OWTHERM:  Device T_SP_unten defined.
2020.11.29 14:12:06 3: OWTHERM:  Device T_SP_oben defined.
2020.11.29 14:12:06 3: OWTHERM:  Device T_ZI defined.
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_G2A0RF037456028P
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_G000MW0773440JCB
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_G070L81485050AF4
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_G0911M07931345N1
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_G090U61091621VAB
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_G0W0T8059352F2UG
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_G070VM1493820B2E
2020.11.29 14:12:06 0: [echodevice] load ECHO Device ECHO_a49b4626d258447cb1e254fb61567b03
2020.11.29 14:12:06 3: umg103: defined with id 1, interval 5, protocol default (RTU), mode master
2020.11.29 14:12:06 1: Including ./log/fhem.save
2020.11.29 14:12:07 3: umg103: bad reading name 'Spannungswandler_Primär' (allowed chars: A-Za-z/\d_\.-)
2020.11.29 14:12:07 3: umg103: bad reading name 'Spannungswandler_Sekundär' (allowed chars: A-Za-z/\d_\.-)
2020.11.29 14:12:07 3: umg103: bad reading name 'Stromwandler_Primär' (allowed chars: A-Za-z/\d_\.-)
2020.11.29 14:12:07 3: umg103: bad reading name 'Stromwandler_Sekundär' (allowed chars: A-Za-z/\d_\.-)
2020.11.29 14:12:07 1: Messages collected while initializing FHEM:SecurityCheck:
  telnetPort is not password protected
  WEB2 is not password protected
  WEBtablet is not password protected
  WEBphone is not password protected

Protect this FHEM installation by configuring the allowed device allowed_WEB
You can disable this message with attr global motd none

2020.11.29 14:12:07 2: MyAlexa: starting alexa-fhem: /usr/local/bin/alexa-fhem -c ./alexa-fhem.cfg -a xx:xx
2020.11.29 14:12:07 3: MyAlexa: starting
2020.11.29 14:12:07 3: MyAlexa: using logfile: /mnt/share/fhemlog/alexa-2020-11-29.log
2020.11.29 14:12:07 3: Opening firmata device /dev/serial/by-id/usb-Arduino__www.arduino.cc__Arduino_Uno_6493534313335141C261-if00
2020.11.29 14:12:07 3: Setting firmata serial parameters to 57600,8,N,1
2020.11.29 14:12:07 3: firmata device opened
2020.11.29 14:12:07 3: harmony: starting discovery
2020.11.29 14:12:07 3: harmony: sending discovery
2020.11.29 14:12:07 3: umg103: RegisterAtIODev called from SetIODev registers umg103 at ModbusRT485 with id 1, MODE master, PROTOCOL RTU
2020.11.29 14:12:07 3: umg103: Notify / Init: using ModbusRT485 for communication
2020.11.29 14:12:07 0: Featurelevel: 6
2020.11.29 14:12:07 0: Server started with 246 defined entities (fhem.pl:23205/2020-11-21 perl:5.024001 os:linux user:fhem pid:27091)
2020.11.29 14:12:07 3: Opening ml device 192.168.0.129:62910
2020.11.29 14:12:07 3: ml device opened
2020.11.29 14:12:08 2: AttrTemplates: got 211 entries
2020.11.29 14:12:08 3: [HC_WT_Wohnzimmer5] sensor <1> not found - check name.
2020.11.29 14:12:09 1: nrw: Can't open ./FHEM/holiday/nrw.holiday: No such file or directory
2020.11.29 14:12:09 3: sduino: getAttrDevelopment, IdList ### Attribute development is in this version ignored ###
2020.11.29 14:12:09 3: sduino: IdList, attr whitelist: 0,0.1,0.2,0.3,0.4,1,3,3.1,4,6,7,8,9,10,11,12,13,13.1,13.2,14,15,16,17,17.1,18,19,21,22,23,24,25,26,27,28,29,30,31,32,33,33.1,33.2,34,35,36,37,38,39,40,41,42,44,44.1,45,46,47,48,49,50,51,52,55,56,57,58,59,60,61,62,64,65,66,67,69,70,71,72,73,74,74.1,76,79,80,81,83,84,85,86,87,89,90,91,91.1,92,93,94,95,96
2020.11.29 14:12:09 3: sduino: IdList, MS 0 0.1 0.2 0.3 0.4 1 3 3.1 4 6 7 13 13.2 14 15 17 23 25 33 33.1 33.2 35 41 49 51 55 65 74.1 87 90 91.1 93
2020.11.29 14:12:09 3: sduino: IdList, MU 8 9 13.1 16 17.1 19 21 22 24 26 27 28 29 30 31 32 34 36 37 38 39 40 42 44 44.1 45 46 48 50 56 59 60 61 62 64 66 67 69 70 71 72 73 74 76 79 80 81 83 84 85 86 89 91 92 94 95
2020.11.29 14:12:09 3: sduino: IdList, MC 10 11 12 18 47 52 57 58 96
2020.11.29 14:12:09 3: sduino: SimpleWrite_XQ, disable receiver (XQ)
2020.11.29 14:12:09 3: sduino: StartInit, get version, retry = 0
2020.11.29 14:12:09 1: 127.0.0.1:1883 reappeared (mqtt2client)
2020.11.29 14:12:09 3: harmony:discovery: new discovery response from 192.168.0.38
2020.11.29 14:12:09 3: hub: connected
2020.11.29 14:12:09 3: [AAA V5.0] Added hidden room 'AlarmRoom' to WEB_127.0.0.1_50000
2020.11.29 14:12:09 2: sduino: CheckVersionResp, initialized v3.4.4
2020.11.29 14:12:09 3: sduino: CheckVersionResp, enable receiver (XE)
2020.11.29 14:12:10 3: firmata: Firmata Firmware Version ConfigurableFirmata.ino V_2_06 (using Protocol Version V_2_06)
2020.11.29 14:12:10 1: in4 ERROR: init failed, Perl module Device::Firmata not properly installed
2020.11.29 14:12:10 1: in_gaszaehler ERROR: init failed, Perl module Device::Firmata not properly installed
2020.11.29 14:12:10 1: in_ladepumpe ERROR: init failed, Perl module Device::Firmata not properly installed
2020.11.29 14:12:11 3: hub: new config
2020.11.29 14:12:14 3: [HC_WT_Wohnzimmer5] sensor <1> not found - check name.
2020.11.29 14:12:17 0: HourCounter Gaszaehler Run.598 first run done countsOverall:64949
2020.11.29 14:12:17 0: HourCounter Ladepumpe Run.598 first run done countsOverall:2
2020.11.29 14:12:20 0: HourCounter Wasserzaehler Run.598 first run done countsOverall:4837
2020.11.29 14:12:20 0: HourCounter HC_Wohnzimmerlicht Run.598 first run done countsOverall:291
2020.11.29 14:12:21 1: OWX_Discover: 1-Wire devices found on bus oneWire (T_SO_1,T_TK,T_HK_vor,T_SO_2,T_HK_rueck,T_SP_unten,T_SP_oben,T_ZI)
2020.11.29 14:13:06 1: OWX_Init called for bus oneWire with interface state Initialized, now going for detect
2020.11.29 14:13:06 1: OWX: 1-Wire bus oneWire: interface Firmata detected in firmata
2020.11.29 14:13:06 1: OWX_Discover: 1-Wire devices found on bus oneWire (T_SO_1,T_TK,T_HK_vor,T_SO_2,T_HK_rueck,T_SP_unten,T_SP_oben,T_ZI)


edit: Fehlt  natürlich   noch der  hinweis, das  die Eingänge  jetzt   funktionieren.   Einer nicht  auf  Anhieb, in_Gaszaehler habe ich in der Definition
auf9 und dann zurück auf  3 geändert, dann war auch  da die Fehlermeldung  weg.
Gruß Denis
Pi - Max-Lan - 8x max Ht -3x Max WT - Max Fk -modbus umg103- 2x Arduino mit Firmata Ethernet- ws300 - 433Mhz Sender Empfänger - 7x 1wire ds1820

jensb

Hallo Denis,

danke für den Test, das hilft mir weiter. Das verbleibende Problem steckt hier:

2020.11.29 14:12:05 3: FRM_Get_Device_Firmata_Status=1
...
2020.11.29 14:12:10 1: in4 ERROR: init failed, Perl module Device::Firmata not properly installed
2020.11.29 14:12:10 1: in_gaszaehler ERROR: init failed, Perl module Device::Firmata not properly installed
2020.11.29 14:12:10 1: in_ladepumpe ERROR: init failed, Perl module Device::Firmata not properly installed


Obwohl also Device::Firmata einwandfrei erkannt wurde, kommt es trotzdem zu Fehlermeldungen. Ich werde versuchen das Nachzustellen, um das zu korrigieren.

Es freut mich, dass du mit der Änderung der Pin-Zuordnung einen Workaround gefunden hast, der zumindest mit der Testversion funktioniert.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

jensb

Hallo Denis,

eine Ursache, warum das Problem bei dir aufgetreten ist, konnte ich trotz deines Logs nicht finden. Es könnte daran liegen, dass bei dir die Module in einer anderen Reihenfolge geladen werden als bei mir. Daher habe ich eine weitere Testversion erstellt, die noch mehr loggt.

Bitte wiederhole damit den Test, auch wenn du inzwischen kein Problem mehr hast. Also aktuelle Modulversion sichern, neue einspielen, FHEM neu starten, ggf. bei in_gaszaehler Pin vorübergehend ändern und Logausschnitt posten. Falls du eine Möglichkeit hast vor dem neuen Test das ursprüngliche Problem zu wiederholen (z.B. mit der alten Modulversion), so dass in_gaszaehler wieder die Fehlermeldung zeigt, wäre es noch besser.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

BlackFlag

Hallo,

ich habe das gleiche Problem wie Denis. Ich habe die letzte 10_FRM.pm mal runtergeladen, aber immer noch den Fehler, dass das IODev funktioniert, ein FRM_IN aber nicht:
2020.12.17 07:39:52 1: Alarmanlage.Scharf ERROR: init failed, Perl module Device::Firmata not properly installed
Mit dem Trick, die Pinanordnung zu ändern, habe ich es geschafft, dass das Device wieder geht. Da Denis länger nicht mehr geantwortet hat, biete ich mich zum testen an ;).

Hier noch meine Dev-Listings:


list FirmataWifi
Internals:
   CONNECTS   1
   DEF        3030 global
   DRIVER_VERSION 0.69
   DeviceName 3030
   FD         4
   FUUID      5fdb7a1c-f33f-c256-e7ce-ea043cffcf7413e3
   LAST_RECEIVED 2020-12-17 16:41:15
   NAME       FirmataWifi
   NOTIFYDEV  global
   NR         304
   NTFY_ORDER 50-FirmataWifi
   PORT       3030
   STATE      Initialized
   TYPE       FRM
   analog_pins 17
   analog_resolutions 17:10
   firmware   StandardFirmataWiFi.ino
   firmware_version V_2_05
   i2c_pins   4,5
   input_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
   protocol_version V_2_05
   pullup_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:10,1:10,2:10,3:10,4:10,5:10,12:10,13:10,14:10,15:10,16:10
   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
   READINGS:
     2020-12-17 16:41:18   state           Initialized
   SERIAL:
   SocketDevice:
     BUF       
     DeviceName 3030
     FD         82
     LAST_RECEIVED 2020-12-17 16:46:04
     NAME       FirmataWifi_1.1.1.1_63165
     NR         306
     PEER       1.1.1.1
     PORT       63165
     SNAME      FirmataWifi
     SSL       
     STATE      Connected
     TEMPORARY  1
     TYPE       FRM
     READINGS:
       2020-12-17 16:41:15   state           Connected
Attributes:
------------------------------
list Alarmanlage.Scharf
Internals:
   DEF        15
   FUUID      5d1f5d4e-f33f-c256-f7ba-cd3d799138d82574
   IODev      FirmataWifi
   NAME       Alarmanlage.Scharf
   NR         54
   PIN        15
   STATE      zuletzt: off 2020-12-17 16:46:04
   TYPE       FRM_IN
   READINGS:
     2020-12-17 16:46:04   reading         off
     2020-12-17 16:46:04   state           Initialized
Attributes:
   IODev      FirmataWifi
   activeLow  no
   count-mode none
   icon       secur_open
   internal-pullup on
   room       Security
   stateFormat {"zuletzt: ".ReadingsVal('Alarmanlage.Scharf','reading','')." ".ReadingsTimestamp('Alarmanlage.Scharf','reading','')}

jensb

Hallo BlackFlag,

schade dass du den "Trick" schon versucht hast. Ich brauche vorzugsweise die Logausgaben der Firmata-Module nach dem Start vom FHEM, bevor alles wieder gut ist. Vermutlich kannst du den Fehler aber jetzt nicht mehr reproduzieren. Poste bitte trotzdem einen Logauszug vom Start von FHEM bis kurz nachdem sich das Firmata-Device verbunden hat.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

JensS

Hier mal ein Device von meiner Installation. Läuft alles tadellos.Internals:
   DEF        3
   FUUID      5c7ac76e-f33f-9d8f-51ae-4b94e73b3d84b52d
   IODev      Boden
   NAME       Alarmkontakt_1
   NR         65
   PIN        3
   STATE      off
   TYPE       FRM_IN
   READINGS:
     2020-12-18 11:37:18   reading         off
     2020-12-17 14:39:02   state           Initialized
Attributes:
   IODev      Boden
   activeLow  yes
   alias      Terrassentür
   devStateIcon off:secur_locked@green on:secur_open@red
   group      Alarmkontakte
   internal-pullup on
   room       Alarm-Anlage,Wohnzimmer
   stateFormat reading

Das FRM-Device:Internals:
   DEF        /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@57600
   DeviceName /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@57600
   FD         5
   FUUID      5c7ac76d-f33f-9d8f-018c-14e19af6942b5771
   LAST_RECEIVED 2020-12-18 19:50:22
   NAME       Boden
   NOTIFYDEV  global
   NR         25
   NTFY_ORDER 50-Boden
   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
   firmware   MegaBoden.ino
   firmware_version V_2_10
   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
   protocol_version V_2_06
   pullup_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
   READINGS:
     2019-10-20 21:52:45   error           I2C: Too few byŹ⚊㊀㎀む℀㞀㈀㊀㜀ᜀ㒀㜀㞀
     2020-12-17 14:39:02   state           Initialized
   SERIAL:
Attributes:
   i2c-config 3000
   room       FIRMATA
Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

BlackFlag

#27
Ich kann den Fehler leider jederzeit reproduzieren  ;).
Nachfolgend das Log mit Device::Firmata 0.64, die mit FHEM immer noch mitkommt. Danach dann das Log mit der 0.69.
Ich habe alles was nicht mit Firmata zu tun hat, rausgenommen. Das ganze Log würde ich hier nicht posten wollen, kann es aber gern auf anderem Weg zur Verfügung stellen.


2020.12.18 19:15:51 1: Including fhem.cfg
2020.12.18 19:15:52 2: eventTypes: loaded 5982 events from ./log/eventTypes.txt
2020.12.18 19:15:55 3: FRM_Client_Define Alarmanlage.Alarm=-9
2020.12.18 19:15:55 3: FRM_Client_Define Alarmanlage.Scharf=-9
2020.12.18 19:15:59 3: FRM_Client_Define Alarmanlage.An=-9
2020.12.18 19:15:59 3: FRM_Client_Define Alarmanlage.Aus=-9
2020.12.18 19:15:59 1: [Alarm_Define] data hash restored from save file with date 2020-05-02 21:49:01
2020.12.18 19:15:59 3: FRM_Client_Define Alarmanlage.An.Intern=-9
2020.12.18 19:15:59 3: FRM_Client_Define Alarmanlage.Aus.Intern=-9
2020.12.18 19:16:10 3: FRM_Get_Device_Firmata_Status=-1
2020.12.18 19:16:10 2: FirmataWifi WARNING: Perl module Device::Firmata version 0.69 or higher required, see Commandref for details how to fix
2020.12.18 19:16:10 3: FRM_Define FirmataWifi=1
2020.12.18 19:16:10 1: Including ./log/fhem.save
2020.12.18 19:16:10 3: FirmataWifi: port 3030 opened
2020.12.18 19:16:10 0: Featurelevel: 6
2020.12.18 19:16:10 0: Server started with 257 defined entities (fhem.pl:23306/2020-12-07 perl:5.028001 os:linux ...)
2020.12.18 19:16:17 1: 192.168.0.100:1883 reappeared (MQTT_Broker)
2020.12.18 19:16:18 2: AttrTemplates: got 234 entries
2020.12.18 19:16:20 3: FirmataWifi: querying Firmata versions
2020.12.18 19:16:20 3: FirmataWifi: Firmata Firmware Version StandardFirmataWiFi.ino V_2_05 (using Protocol Version V_2_05)
2020.12.18 19:16:20 1: Alarmanlage.Alarm ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:16:20 1: Alarmanlage.An ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:16:20 1: Alarmanlage.An.Intern ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:16:20 1: Alarmanlage.Aus ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:16:20 1: Alarmanlage.Aus.Intern ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:16:20 1: Alarmanlage.Scharf ERROR: init failed, Perl module Device::Firmata not properly installed


Und jetzt das Log aber Firmata von FHEM gelöscht. von CPAN ist die 0.69 systemweit installiert (war sie beim vorherigen Versuch übrigens auch schon). Meine Vermutung ist, das FirmataWifi noch die 0.69 nimmt, FRM_IN dann aber die 0.64, da beides installiert ist. Vielleicht


2020.12.18 19:17:24 1: Including fhem.cfg
2020.12.18 19:17:24 2: eventTypes: loaded 5982 events from ./log/eventTypes.txt
2020.12.18 19:17:25 3: FRM_Client_Define Alarmanlage.Alarm=-9
2020.12.18 19:17:25 3: FRM_Client_Define Alarmanlage.Scharf=-9
2020.12.18 19:17:28 3: FRM_Client_Define Alarmanlage.An=-9
2020.12.18 19:17:28 3: FRM_Client_Define Alarmanlage.Aus=-9
2020.12.18 19:17:28 1: [Alarm_Define] data hash restored from save file with date 2020-05-02 21:49:01
2020.12.18 19:17:28 3: FRM_Client_Define Alarmanlage.An.Intern=-9
2020.12.18 19:17:28 3: FRM_Client_Define Alarmanlage.Aus.Intern=-9
2020.12.18 19:17:39 3: FRM_Get_Device_Firmata_Status=1
2020.12.18 19:17:39 3: FRM_Define FirmataWifi=1
2020.12.18 19:17:39 1: Including ./log/fhem.save
2020.12.18 19:17:39 3: FirmataWifi: port 3030 opened
2020.12.18 19:17:39 0: Featurelevel: 6
2020.12.18 19:17:39 0: Server started with 257 defined entities (fhem.pl:23306/2020-12-07 perl:5.028001 os:linux ...)
2020.12.18 19:17:46 1: 192.168.0.100:1883 reappeared (MQTT_Broker)
2020.12.18 19:17:46 2: AttrTemplates: got 234 entries
2020.12.18 19:17:49 3: FirmataWifi: querying Firmata versions
2020.12.18 19:17:49 3: FirmataWifi: Firmata Firmware Version StandardFirmataWiFi.ino V_2_05 (using Protocol Version V_2_05)
2020.12.18 19:17:49 1: Alarmanlage.Alarm ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:17:49 1: Alarmanlage.An ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:17:49 1: Alarmanlage.An.Intern ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:17:49 1: Alarmanlage.Aus ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:17:49 1: Alarmanlage.Aus.Intern ERROR: init failed, Perl module Device::Firmata not properly installed
2020.12.18 19:17:49 1: Alarmanlage.Scharf ERROR: init failed, Perl module Device::Firmata not properly installed


jensb

Hallo BlackFlag,

danke für die Logauszüge, damit ist mir endlich klar woher das Problem kommt. Bei dir wird der Define für die Firmata-Client-Devicess (FRM_Client_Define Alarmanlage.*) vor dem IODev (FRM_Define) ausgeführt. Ich bin aber davon ausgegangen, dass das IODev immer vor den Clients definiert wird und habe das zur Performance-Optimierung genutzt. Das ist aber offensichtlich nicht der Fall, sondern hängt scheinbar von der Alpha-Sortierung der FHEM-Devicenamen ab.

Werde das ändern und eine weitere Testversion posten.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

jensb

Hallo BlackFlag,

die beigefügte Version von 10_FRM.pm sollte das Problem der FRM-Clients "ERROR: init failed, Perl module Device::Firmata not properly installed" lösen, dass auftreten kann, wenn man von einer alten Version von Device::Firmata auf die aktuelle Version umstellt.

Es würde mir sehr helfen, wenn du den gleichen Test wiederholst, den du zuletzt gemacht hast. Diesmal müsste es bei der neuen Version sofort klappen, ohne dass du die Pinzuordnung ändern musst. Logauszüge brauche ich nur, falls es doch nicht klappen sollte.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb