OWX-NG IODev-Problem an Firmata

Begonnen von JensS, 01 Dezember 2017, 16:58:18

Vorheriges Thema - Nächstes Thema

JensS

Hallo,

die Probleme der neuen Definition des neuen OWX-Moduls (define OWX-Device OWX Firmata-Device:PIN) im Zusammenspiel mit dem FRM-Modul haben mir keine Ruhe gelassen, so dass ich mich mal mit der Modifikation der 10_FRM.pm versucht habe. Dabei ist die angehängte Datei rausgekommen, welche bei mir bisher läuft. Bitte schaut mal drüber und gebt mir Rückmeldung, wo was nicht richtig ist. Ein Update ist dabei zwingend.
Mit der Datei kann ich nun auch FRM_IN, FRM_OUT etc. in der Definition das IODev zuweisen (define Schalter FRM_IN FRM-Device:5).
Die alte Schreibweise (define Schalter FRM_IN 5;; attr Schalter IODev FRM-Device) habe ich wegen der Rückwärtskompatibilität (schweres Wort ;)) optional drin gelassen.

Gruß Jens

Edit: jensb hat sich des FRM-Moduls angenommen. https://forum.fhem.de/index.php/topic,81815.msg740576.html#msg740576
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.

Prof. Dr. Peter Henning

Ah, OK, prima. Kann ich am Wochenende mal testen - aber, wie gesagt, ich habe nur ein "Not"-Firmata, nicht mehrere. Das war ja der Knackpunkt.

LG

pah

JensS

#2
 :) Danke! Bisher habe ich als einzige Einschränkung keine asynchrone Abfrage (z.B. DS18b20) hinbekommen. :)

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.

JensS

#3
Gibt es bereits Erfahrungswerte zur angehängten 10_FRM.pm?
Falls ja und diese positiv sind, bitte ich darum die Datei ins aktuelle SVN, aufzunehmen.

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.

abc2006

Hi,
kämpfe gerade noch, würde aber ein Statement abgeben, sobald irgendwas läuft  ;D

Könntest du mir solange mit einem list von a) deinem FRM-Device und b) deinem OWX-Device laut diesem Wiki-Artikel (https://wiki.fhem.de/wiki/Arduino_mit_OneWireFirmata) weiterhelfen?

Danke,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Prof. Dr. Peter Henning

Ich bin ja gerne bereit, bei der Anpassung des NG-Backends an Firmata zu helfen. Aber ich kann bei mir aus Zeitgründen nicht jede Firmata-Konfiguration nachbauen.

Ein einzelner Arduino mit Firmata läuft jedenfalls mit OWX-NG wunderbar stabil.

LG

pah

abc2006

ZitatEin einzelner Arduino mit Firmata läuft jedenfalls mit OWX-NG wunderbar stabil.

Okay, dann bin ich anscheinend zu blöd 8)

Habe einen Arduino Nano mit einem (1) angeschlossenen DS18B20. Wenn ich diesen an meinen Laptop stecke und den DS18x20_Temperature TestSketch laufen lasse, bekomme ich Temperatur und Adresse angezeigt (Pin 9).

Diesen Arduino hab ich jetzt mit der ConfigurableFirmata mit OneWire-Support bespielt (sowohl eine Version aus "firmatabuilder.com" als auch von hier https://github.com/firmata/ConfigurableFirmata/archive/master.zip

bei zweiterem habe ich Servo.h, ServoFirmata.h, I2CFirmata.h, StepperFirmata.h und AccelStepperFirmata.h auskommentiert, um Platz zu sparen.

Bei Version 1 bleibt das reading state auf "disconnected", während sich das Internal STATE auch schonmal zu "Initialized" hinreissen lässt.
Mit einem "get OWio3 devices" erhalte ich die Meldung "OWX_Discover: 1-Wire devices found on bus OWio3 " sowie folgendes Log:

2017.12.29 06:47:21.877 5: FRM:>
2017.12.29 06:47:21.878 5: SW:
2017.12.29 06:47:24.887 1: OWX_Discover: 1-Wire devices found on bus OWio3 ()
2017.12.29 06:47:24.890 1: Perfmon: possible freeze starting at 06:47:22, delay is 2.889


Mit Version 2 bekomme ich folgende Meldungen:


2017.12.29 06:47:21.877 5: FRM:>
2017.12.29 06:47:21.878 5: SW:
2017.12.29 06:47:24.887 1: OWX_Discover: 1-Wire devices found on bus OWio3 ()
2017.12.29 06:47:24.890 1: Perfmon: possible freeze starting at 06:47:22, delay is 2.889


list Arduino
Internals:
   DEF        /dev/ttyUSB0@57600
   DeviceName /dev/ttyUSB0@57600
   FD         16
   NAME       Arduino
   NEXT_OPEN  1514527000
   NOTIFYDEV  global
   NR         67
   NTFY_ORDER 50-Arduino
   PARTIAL   
   STATE      Initialized
   TYPE       FRM
   firmware   ConfigurableFirmata1Wire_v1.ino
   firmware_version V_2_10
   READINGS:
     2017-12-29 06:55:40   state           opened
Attributes:
   verbose    5


list OWio3
Internals:
   ALARMED    0
   ASYNCHRONOUS 1
   DEF        Arduino:9
   DeviceName Arduino:9
   FRM_OWX_CORRELATIONID 0
   HWDEVICE   Arduino
   INITDONE   1
   INTERFACE  firmata
   IODev      Arduino
   NAME       OWio3
   NR         68
   PARTIAL   
   PIN        9
   PRESENT    1
   ROM_ID     FF
   STATE      Initialized
   TYPE       OWX
   interval   300
   timeout    3
   version    7.05
   DEVHASH:
     OWio3      Busmaster
   DEVS:
   FRM_OWX_REPLIES:
   READINGS:
     2017-12-29 05:27:26   state           disconnected
Attributes:
   asynchronous 1
   timeout    3
   verbose    5


Hätte einer von euch nen Tipp, in welche Richtung ich weiter suchen sollte?

Danke,
Stephan


PS: ach ja, FHEM, Linux und rpi-update sind aktuell. Der Arduino ist ein Nano.
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

JensS

#7
Ok, hier die gewünschten Lists:
list Boden
Internals:
   DEF        /dev/serial/by-id/usb-Arduino__www.arduino.cc__0042_7543730373035140C0A1-if00@57600
   DeviceName /dev/serial/by-id/usb-Arduino__www.arduino.cc__0042_7543730373035140C0A1-if00@57600
   FD         4
   NAME       Boden
   NOTIFYDEV  global
   NR         24
   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   Mega206.ino
   firmware_version V_2_10
   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
   READINGS:
     2017-11-19 20:24:31   error           Unhandled sysex command
     2017-12-25 11:24:28   state           opened
Attributes:
   room       FIRMATA
   verbose    0

list Saeule
Internals:
   CONNECTS   1
   DEF        3030 global
   DeviceName 3030
   FD         45
   NAME       Saeule
   NOTIFYDEV  global
   NR         98
   NTFY_ORDER 50-Saeule
   PORT       3030
   STATE      Initialized
   TYPE       FRM
   firmware   ConfigurableFirmata-nano.ino.ino
   firmware_version V_2_06
   i2c_pins   18,19
   input_pins 2,3,4,5,6,7,8,9,14,15,16,17,18,19
   onewire_pins 2,3,4,5,6,7,8,9,14,15,16,17,18,19
   output_pins 2,3,4,5,6,7,8,9,14,15,16,17,18,19
   pwm_pins   3,5,6,9
   pwm_resolutions 3:8,5:8,6:8,9:8
   READINGS:
     2017-12-22 22:16:53   error           I2C: Too few bytes received
     2017-09-30 20:03:26   state           disconnected
   SocketDevice:
     BUF       
     DeviceName 3030
     FD         62
     NAME       Saeule_192.168.100.89_49231
     NR         526
     PEER       192.168.100.89
     PORT       49231
     SNAME      Saeule
     SSL       
     STATE      Connected
     TEMPORARY  1
     TYPE       FRM
Attributes:
   i2c-config 30000
   room       FIRMATA

list OWX
Internals:
   ALARMED    0
   ASYNCHRONOUS 0
   DEF        Boden:18
   DeviceName Boden:18
   FRM_OWX_CORRELATIONID 17648
   FRM_OWX_CURRDEV 29.94BA0E000000.A9
   HWDEVICE   Boden
   INITDONE   1
   INTERFACE  firmata
   IODev      Boden
   NAME       OWX
   NR         464
   PARTIAL   
   PIN        18
   PRESENT    1
   ROM_ID     FF
   STATE      Initialized
   TYPE       OWX
   interval   300
   timeout    2
   version    7.05
   DEVHASH:
     DS2408_Haustuer 29.94BA0E000000.A9
     OWX        Busmaster
     OWX_IO1    3A.57E619000000.D9
   DEVS:
     3A.57E619000000.D9
     29.94BA0E000000.A9
   FRM_OWX_REPLIES:
     29.94BA0E000000.A9 o�������
     3A.57E619000000.D9
   FRM_OWX_REQUESTS:
   READINGS:
     2017-12-25 11:24:09   queue           0
     2017-12-07 07:07:23   state           disconnected
Attributes:
   asynchronous 0
   room       FIRMATA

list OWX2
Internals:
   ALARMED    1
   ASYNCHRONOUS 0
   DEF        Saeule:7
   DeviceName Saeule:7
   FRM_OWX_CORRELATIONID 1136
   FRM_OWX_CURRDEV 28.6FF5DA050000.A2
   HWDEVICE   Saeule
   INITDONE   1
   INTERFACE  firmata
   IODev      Saeule
   NAME       OWX2
   NR         463
   PARTIAL   
   PIN        7
   PRESENT    1
   ROM_ID     FF
   STATE      Initialized
   TYPE       OWX
   dokick     0
   interval   300
   timeout    2
   version    7.05
   DEVHASH:
     OWX2       Busmaster
     OWXTemp_Saeule 28.6FF5DA050000.A2
   DEVS:
     28.6FF5DA050000.A2
   FRM_OWX_REPLIES:
     28.6FF5DA050000.A2 FKF�

   FRM_OWX_REQUESTS:
Attributes:
   dokick     0
   room       FIRMATA


Hab zwar noch mehr im Einsatz aber das sollte genügen. Die States werden nicht immer richtig angezeigt; auf jeden Fall bekomme ich von allen Devices die Daten.
Versuche an die ConfigurableFirmata 2.06 zu kommen. Mit der sollte es laufen.
Die 2.10er Version funktioniert dürftig mit einer Änderung. Bei mir half es, fhem die aktuelle Version vorzugaukeln, indem ich in /opt/fhem/FHEM/lib/Device/Firmata/Constants.pm den Abschnitt: V_2_06 => kopiert und darunter als V_2_10 => eingefügt habe.
Ich gehe mal davon aus, dass dein 1-wire richtig verdrahtet ist (4,7 kOhm zw. 1-wire und 5V).

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.

abc2006

Hi,

danke erstmal für die Mühe.
ja, Verdrahtung stimmt.
Die lists sehen schonmal ähnlich aus - bis auf den Unterschied, dass ich die Readings .*_pins und .*_resolution nicht habe.

ZitatVersuche an die ConfigurableFirmata 2.06 zu kommen. Mit der sollte es laufen.
Die 2.10er Version funktioniert dürftig mit einer Änderung

Jetzt wo dus sagst erinner ich mich ganz dunkel dran, dass damal was war.

ZitatBei mir half es, fhem die aktuelle Version vorzugaukeln,

Warum funktioniert die 2.10 nicht? Warum muss man FHEM die aktuelle Version vorgaukeln?

Werd ich aber auf jeden Fall mal checken...

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

So, habe in der Datei einen neuen Abschnitt 2_10 angelegt.
Tada: Ich bekomme den Temperatursensor angezeigt.
Dann kann ich jetzt mal mit dem Counter weiter testen.

Grüße,
Stephan



FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

Hi,

es funktioniert jetzt (manchmal).
Ich bekomme allerdings oft folgende Log-einträge:

2017.12.31 14:55:07.049 1 : OWXCOUNT_BinValues getpage: OWX_1D_23DC84000003: invalid CRC, 255 255 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2017.12.31 14:55:07.093 1 : OWX_FRM::Complex receiving inside loop no. 1 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0xa5 0xe0 0x01 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2017.12.31 14:55:07.097 1 : OWXCOUNT_BinValues getpage: OWX_1D_23DC84000003: invalid CRC, 255 255 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff


Liegt das an Firmata? Kann ich da was dran ändern?

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

JensS

CRC-Fehler sind meist schaltungsbedingt. Morgen will jensb ein offizielles Update des FRM-Moduls bereitstellen. Damit wird sicher meine modifizierte Variante der 10_FRM.pm überflüssig.

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.

abc2006

Danke für den Tipp!

Es lag daran, dass der Baustein mit 3,3V nicht richtig arbeitet, obwohl der Verkäufer sagte, es würde gehen.
Habe auf 5V umgestellt, CRC-Fehler sind verschwunden.

Allerdings bleiben folgende Meldungen (mit Stufe 1!) im Log:

2017.12.31 17:40:26.046 1 : OWX_FRM::Complex receiving inside loop no. 1 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0xa5 0xc0 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x99 0x01 0x00 0x00 0x00 0x00 0x00 0xda 0xc4
2017.12.31 17:40:26.092 1 : OWX_FRM::Complex receiving inside loop no. 1 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0xa5 0xe0 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x73 0x83


Sind die von dem angesprochenen Update betroffen? Dann warte ich einfach ab. Wenn nicht, kannst du mir sagen, woher die kommen und was ich dagegen tun kann/soll?

Grüße und guten Rutsch,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

JensS

Ich würde erst mal abwarten und Tee trinken.  :)

Dir auch einen guten Rutsch!
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.