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 (https://forum.fhem.de/index.php/topic,81815.msg740576.html#msg740576)
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
:) Danke! Bisher habe ich als einzige Einschränkung keine asynchrone Abfrage (z.B. DS18b20) hinbekommen. :)
Gruß Jens
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
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
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
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 (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.
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
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
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
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
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
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
Ich würde erst mal abwarten und Tee trinken. :)
Dir auch einen guten Rutsch!
Gruß Jens