2018.01.01 12:31:28 0: Server shutdown
2018.01.01 12:31:32 1: Including fhem.cfg
2018.01.01 12:31:32 3: telnetPort: port 7072 opened
2018.01.01 12:31:32 3: WEB: port 8083 opened
2018.01.01 12:31:32 3: WEBphone: port 8084 opened
2018.01.01 12:31:32 3: WEBtablet: port 8085 opened
2018.01.01 12:31:32 2: eventTypes: loaded 43 events from ./log/eventTypes.txt
2018.01.01 12:31:39 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2028, <$fh> line 56.
2018.01.01 12:31:39 3: OWTHERM: Device OWX_28_3EC1DA050000 defined.
2018.01.01 12:31:39 1: Including ./log/fhem.save
2018.01.01 12:31:39 1: Error: >FRMa:7< has no TYPE, but following keys: ><
2018.01.01 12:31:39 1: Error: >FRMb:6< has no TYPE, but following keys: ><
2018.01.01 12:31:39 3: Opening FRMa device /dev/ttyUSB0
2018.01.01 12:31:39 3: Setting FRMa serial parameters to 57600,8,N,1
2018.01.01 12:31:39 3: FRMa device opened
2018.01.01 12:31:39 3: FRMb: port 3034 opened
2018.01.01 12:31:39 0: Featurelevel: 5.8
2018.01.01 12:31:39 0: Server started with 21 defined entities (fhem.pl:15710/2017-12-27 perl:5.024001 os:linux user:root pid:18427)
2018.01.01 12:31:42 3: FRMa querying Firmata versions
@./FHEM/10_FRM.pm:main:530 : Unhandled attribute 'protocol_version_query' called
attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global autosave 0
attr global exclude_from_update 10_FRM.pm Constants.pm Firmata.pm Platform.pm Protocol.pm
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd .
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3
define telnetPort telnet 7072 global
define WEB FHEMWEB 8083 global
attr WEB editConfig 1
define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log
define eventTypes eventTypes ./log/eventTypes.txt
# Disable this to avoid looking for new USB devices on startup
#define initialUsbCheck notify global:INITIALIZED usb create
#attr initialUsbCheck disable 1
define FRMa FRM /dev/ttyUSB0@57600
define in1 FRM_IN 3
attr in1 IODev FRMa
attr in1 activeLow yes
attr in1 internal-pullup on
attr in1 stateFormat reading
define out1 FRM_OUT 6
attr out1 IODev FRMa
attr out1 stateFormat value
define OWXa OWX FRMa:7
attr OWXa interval 200
define OWX_28_3EC1DA050000 OWTHERM DS18B20 3EC1DA050000
attr OWX_28_3EC1DA050000 IODev OWXa
attr OWX_28_3EC1DA050000 interval 20
attr OWX_28_3EC1DA050000 model DS18B20
attr OWX_28_3EC1DA050000 room OWX
attr OWX_28_3EC1DA050000 tempHigh 75
attr OWX_28_3EC1DA050000 tempLow 70
define FRMb FRM 3034 global
define OWX2 OWX FRMb:6
define I2CBus RPII2C 0
define I2CExpander I2C_MCP23008 0x20
attr I2CExpander IODev I2CBus
attr I2CExpander InterruptOut separate_active-high
attr I2CExpander OutputPorts A0,A2,A3,A4,A5,A6,A7
attr I2CExpander Pullup A0,A1
define I2Cnotify notify I2CExpander:PortA1:.* set I2CExpander PortA0 [I2CExpander:PortA1]
define I2Cget at +*00:00:02 get I2CExpander
define OWWa OWX FRMa:7
ZitatKannst du ins FRM_IN ein Attribut debounce (ms) einbauen?Prinzipiell ja, aber das geht z.B. auch mit einem notify, oder du machst aus reading on/off ein neuesReading 1/0 und verwendest event-aggregator.
Zitat von: jensb am 01 Januar 2018, 22:52:37
hier das überarbeitete FRM-Modul für die IODev-Zuordnung von OWX. Dein Ansatz steckt in Zeile 794. In der ursprünglichen Version hat FHEM von FRM keinen Vorschlag für ein IODev erhalten und deshalb ein zufällig "passendes" ausgewählt. Da ich nur die Konfiguration testen kann, bitte ich dich, einen Test mit Hardware durchzuführen. Möglicherweise reicht meine Änderung noch nicht aus. Dann bitte noch einmal Logs mit verbose=5 posten.
/etc/init.d/fhem start
define Arduino FRM /dev/ttyUSB0@57600
define OWio3 OWX Arduino:10
define OWC OWCOUNT 1D.CE780F000000 60
get Arduino Firmware
liefert mir ein ConfigurableFirmata_210.ino
get Arduino version
liefert mir ein V_2_10
get OWio3 devices
liefert mir keine Antwort. Der Fehler war aber schnell gefunden, OW hängt am Pin 9, und nicht wie konfiguriert an PIN 10.OWX_Discover: 1-Wire devices found on bus OWio3
A3.AA55AA55AA55 unknown OWX_A3_AA55AA55AA55
2018.01.04 16:45:44 5: Arduino FRM:>f0734009f7
2018.01.04 16:45:44 5: SW: f0734009f7
2018.01.04 16:45:44 5: Arduino FRM:<f0734209
2018.01.04 16:45:44 5: Arduino FRM:<235556525a4a6a2a7a01f7
2018.01.04 16:45:44 2: OWX_Discover: Device with unknown family code 'A3' found on bus OWio3
2018.01.04 16:45:44 1: OWX_Discover: 1-Wire devices found on bus OWio3 (OWX_A3_AA55AA55AA55)
2018.01.04 16:45:57 5: Arduino FRM:>f0730109f7
2018.01.04 16:45:57 5: SW: f0730109f7
2018.01.04 16:45:57 5: Arduino FRM:>f0732c091d1c637b0000000006550030002029600100f7
2018.01.04 16:45:57 5: SW: f0732c091d1c637b0000000006550030002029600100f7
2018.01.04 16:45:57 5: Arduino FRM:<f073430906007c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
2018.01.04 16:45:57 5: Arduino FRM:<7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f03f7
2018.01.04 16:45:57 1: OWX_FRM::Complex receiving inside loop no. 1 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0xa5 0xc0 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
2018.01.04 16:45:57 5: Arduino FRM:>f0730109f7
2018.01.04 16:45:57 5: SW: f0730109f7
2018.01.04 16:45:57 1: OWXCOUNT_BinValues called for device OWC in context getpage.14 with data 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
2018.01.04 16:45:57 1: OWXCOUNT_BinValues getpage: OWC: 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
2018.01.04 16:45:57 5: Arduino FRM:>f0730109f7
2018.01.04 16:45:57 5: SW: f0730109f7
2018.01.04 16:45:57 5: Arduino FRM:>f0732c091d1c637b0000000006550038002029700100f7
2018.01.04 16:45:57 5: SW: f0732c091d1c637b0000000006550038002029700100f7
2018.01.04 16:45:57 5: Arduino FRM:<f073430907007c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
2018.01.04 16:45:57 5: Arduino FRM:<7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f03f7
2018.01.04 16:45:57 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
2018.01.04 16:45:57 5: Arduino FRM:>f0730109f7
2018.01.04 16:45:57 5: SW: f0730109f7
2018.01.04 16:45:57 1: OWXCOUNT_BinValues called for device OWC in context getpage.15.final with data 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
2018.01.04 16:45:57 1: OWXCOUNT_BinValues getpage: OWC: 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
2018.01.04 16:47:21 1: /dev/ttyUSB0 disconnected, waiting to reappear (Arduino)
2018.01.04 16:47:21 5: Starting notify loop for Arduino, 1 event(s), first is DISCONNECTED
2018.01.04 16:47:21 5: createNotifyHash
2018.01.04 16:47:21 5: End notify loop for Arduino
2018.01.04 16:47:26 3: Setting Arduino serial parameters to 57600,8,N,1
2018.01.04 16:47:26 5: Arduino FRM_DoInit
2018.01.04 16:47:26 5: Arduino FRM:>ff
2018.01.04 16:47:26 5: SW: ff
2018.01.04 16:47:26 5: Arduino setup stage 1
2018.01.04 16:47:26 1: /dev/ttyUSB0 reappeared (Arduino)
2018.01.04 16:47:26 5: Starting notify loop for Arduino, 1 event(s), first is CONNECTED
2018.01.04 16:47:27 5: End notify loop for Arduino
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:27 5: Arduino setup stage 1
2018.01.04 16:47:28 5: Arduino setup stage 1
2018.01.04 16:47:29 5: Arduino setup stage 1
2018.01.04 16:47:30 5: Arduino setup stage 1
2018.01.04 16:47:30 3: Arduino querying Firmata versions
2018.01.04 16:47:30 5: Arduino FRM:>f90000
2018.01.04 16:47:30 5: SW: f90000
2018.01.04 16:47:30 5: Arduino FRM:>f079f7
2018.01.04 16:47:30 5: SW: f079f7
2018.01.04 16:47:31 5: Arduino setup stage 1
2018.01.04 16:47:31 5: Arduino setup stage 1
2018.01.04 16:47:31 5: Arduino FRM:<f90206f079020a43006f006e0066006900670075007200610062006c00650046
2018.01.04 16:47:31 5: Arduino setup stage 1
2018.01.04 16:47:31 5: Arduino FRM:<00690072006d006100740061005f003200310030002e0069006e006f00f7e010
2018.01.04 16:47:31 5: Arduino setup stage 1
2018.01.04 16:47:31 3: Arduino Firmata Firmware Version: ConfigurableFirmata_210.ino V_2_10 (using Protocol Version: V_2_06)
2018.01.04 16:47:31 5: Arduino FRM:>f069f7
2018.01.04 16:47:31 5: SW: f069f7
2018.01.04 16:47:31 5: Arduino FRM:>f06bf7
2018.01.04 16:47:31 5: SW: f06bf7
2018.01.04 16:47:31 5: Arduino FRM:<04e15a03e22703e31c03e45f02e53f02e63002e72c02f90206f079020a43006f
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<006e0066006900670075007200610062006c0065004600690072006d00610074
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<0061005f003200310030002e0069006e006f00f7f06a7f7f7f7f7f7f7f7f7f7f
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<7f7f7f7f0001020304050607f7f06c7f7f00010b01010107017f00010b010101
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<030807017f00010b01010107017f00010b010101030807017f00010b01010103
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<0807017f00010b01010107017f00010b01010107017f00010b01010103080701
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<7f00010b010101030807017f00010b010101030807017f00010b01010107017f
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<00010b01010107017f00010b010101020a07017f00010b010101020a07017f00
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<010b010101020a07017f00010b010101020a07017f00010b010101020a07017f
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:<00010b010101020a07017f020a7f020a7ff7
2018.01.04 16:47:31 5: Arduino setup stage 2
2018.01.04 16:47:31 5: Arduino FRM:>f07a6807f7
2018.01.04 16:47:31 5: SW: f07a6807f7
2018.01.04 16:47:31 5: Arduino setup stage 3
2018.01.04 16:47:31 5: Starting notify loop for Arduino, 1 event(s), first is Initialized
2018.01.04 16:47:31 5: End notify loop for Arduino
2018.01.04 16:47:31 5: Arduino setup stage 4
2018.01.04 16:47:44 5: Cmd: >get OWio3 devices<
pin '9' is not configured for mode 'ONEWIRE' at FHEM/lib/Device/Firmata/Platform.pm line 770.
Internals:
DEF /dev/ttyUSB0@57600
DeviceName /dev/ttyUSB0@57600
FD 5
NAME Arduino
NOTIFYDEV global
NR 21
NTFY_ORDER 50-Arduino
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 ConfigurableFirmata_210.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
onewire_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_06
pwm_pins 3,5,6,9,10,11
pwm_resolutions 3:8,5:8,6:8,9:8,10:8,11:8
READINGS:
2018-01-04 16:49:58 state Initialized
SERIAL:
Attributes:
verbose 5
Internals:
ALARMED 0
ASYNCHRONOUS 0
DEF Arduino:9
DeviceName Arduino:9
FRM_OWX_CORRELATIONID 6
FRM_OWX_CURRDEV 1D.CE780F000000.86
HWDEVICE Arduino
INITDONE 1
INTERFACE firmata
IODev Arduino
NAME OWio3
NR 22
PARTIAL
PIN 9
PRESENT 1
ROM_ID FF
STATE Initialized
TYPE OWX
interval 300
timeout 2
version 7.05
DEVHASH:
OWX_1D_22DC84000003 1D.22DC84000003.51
OWX_1D_23DC84000003 1D.23DC84000003.66
OWio3 Busmaster
DEVS:
1D.22DC84000003.51
1D.23DC84000003.66
FRM_OWX_REPLIES:
1D.22DC84000003.51 s�
1D.23DC84000003.66 s�
1D.CE780F000000.86 ������������������������������������������
FRM_OWX_REQUESTS:
Attributes:
Zitat2018.01.04 18:45:55 4: Connection accepted from Ardu_Nano1_192.xx.xx.xx_1031
2018.01.04 18:45:55 3: Ardu_Nano1 Firmata device has reconnected
2018.01.04 18:45:55 3: Ardu_Nano1 querying Firmata versions
2018.01.04 18:45:55 3: Ardu_Nano1 Firmata Firmware Version: Eth6.ino V_2_06 (using Protocol Version: V_2_06)
2018.01.04 18:45:55 3: received String_data: Unhandled sysex command
2018.01.04 18:46:01 3: Ardu_Nano1 no response from Firmata, closing connection
2018.01.04 18:46:07 4: Connection accepted from Ardu_Nano1_192.xx.xx.xx_1032
2018.01.04 18:46:07 3: Ardu_Nano1 Firmata device has reconnected
2018.01.04 18:46:07 3: Ardu_Nano1 querying Firmata versions
2018.01.04 18:46:07 3: Ardu_Nano1 Firmata Firmware Version: Eth6.ino V_2_06 (using Protocol Version: V_2_06)
2018.01.04 18:46:07 3: received String_data: Unhandled sysex command
2018.01.04 18:46:12 3: Ardu_Nano1 no response from Firmata, closing connection
2018.01.04 18:46:17 4: Connection accepted from Ardu_Nano1_192.xx.xx.xx_1033
2018.01.04 18:46:18 3: Ardu_Nano1 Firmata device has reconnected
2018.01.04 18:46:18 3: Ardu_Nano1 querying Firmata versions
2018.01.04 18:46:18 3: Ardu_Nano1 Firmata Firmware Version: Eth6.ino V_2_06 (using Protocol Version: V_2_06)
2018.01.04 18:46:18 3: received String_data: Unhandled sysex command
2018.01.04 18:46:23 3: Ardu_Nano1 no response from Firmata, closing connection
Zitat10_FRM.pm
20_FRM_AD.pm
20_FRM_OUT.pm
20_FRM_PWM.pm
ZitatAnalogInputFirmata must always be enabled, even if not used. Otherwise the device setup will fail with the error <i>Unhandled sysex command</i> when connecting because the pin capability query cannot be completed.Trifft das bei dir zu, d.h. ist bei dir AnalogFirmata deaktiviert? Wenn ja, könntest du es aktivieren und prüfen, ob es einen Unterschied macht?
# $Id: Constants.pm 1 2018-01-03 18:59:05Z jensb $
ZitatArdu_Nano1 no response from Firmata, closing connection
ZitatVielleicht ist es hilfreich, den Dateien Firmata.pm, Constants.pm, etc. die Version mitzugebenDarüber habe ich auch schon nachgedacht, aber das möchte ich gern vermeiden. Der Firmata-Treiber "perl-firmata" ist ein von FHEM unabhängiges Perl-Projekt mit eigener Lizenz, das zur Vereinfachung direkt mit FHEM verteilt wird. Der Code sollte unabhängig vom Verteilungsweg immer der Gleiche bleiben. Ich habe z.B. den Lizenztext und die Änderungen mit eingecheckt, aber diese Dateien werden über das FHEM Update gar nicht verteilt. Vielleicht kann irgendjemand den Update-Prozess dafür besser einstellen.
Zitat2018.01.05 18:29:19 3: Ardu_Nano1 querying Firmata versionsDie Meldung "unhandled sysex" ist trotz abgeschaltetem Analoginput noch vorhanden.
2018.01.05 18:29:21 3: Ardu_Nano1 Firmata Firmware Version: Eth6.ino V_2_06 (using Protocol Version: V_2_06)
2018.01.05 18:29:28 3: received String_data: Unhandled sysex command
Zitatfirmware_version V_2_06
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
protocol_version V_2_06
2018.01.06 08:37:44 3: FRMa querying Firmata versions
2018.01.06 08:37:46 3: FRMa Firmata Firmware Version: Mega206.ino V_2_10 (using Protocol Version: V_2_06)
2018.01.06 08:38:41 1: OWX_Init called for bus OWXa with interface state Initialized, now going for detect
2018.01.06 08:38:41 1: OWX: 1-Wire bus OWXa: interface Firmata detected in FRMa
2018.01.06 08:38:46 3: OWTHERM: Device OWX_28_3EC1DA050000 defined.
2018.01.06 08:38:46 1: OWX_Discover: 1-Wire devices found on bus OWXa (OWX_28_3EC1DA050000)
2018.01.06 08:38:46 1: OWX_Discover: 1-Wire devices found on bus OWXa (OWX_28_3EC1DA050000)
2018.01.06 08:38:46 1: OWX_Discover: 1-Wire devices found on bus OWXa (OWX_28_3EC1DA050000)
2018.01.06 08:42:28 4: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa context=convert
2018.01.06 08:42:28 1: queue OWXa contains 1 entries after insertion
2018.01.06 08:42:28 1: => 283EC1DA05000020 context convert expecting 1 bytes, waiting
2018.01.06 08:42:28 1: ----------------------------------------------
2018.01.06 08:42:28 1: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa numread=19
2018.01.06 08:42:28 1: queue OWXa contains 2 entries after insertion
2018.01.06 08:42:28 1: => 283EC1DA05000020 context convert expecting 1 bytes, waiting
2018.01.06 08:42:28 1: => 283EC1DA05000020 context readsp expecting 19 bytes, waiting
2018.01.06 08:42:28 1: ----------------------------------------------
ZitatUndefined subroutine &main::ReadingsSingleUpdate called at ./FHEM/10_FRM.pm line 1055
2018.01.06 19:54:28 1: Including fhem.cfg
2018.01.06 19:54:29 3: telnetPort: port 7072 opened
2018.01.06 19:54:29 3: WEB: port 8083 opened
2018.01.06 19:54:29 3: WEBphone: port 8084 opened
2018.01.06 19:54:29 3: WEBtablet: port 8085 opened
2018.01.06 19:54:29 2: eventTypes: loaded 38 events from ./log/eventTypes.txt
2018.01.06 19:54:29 1: Including ./log/fhem.save
2018.01.06 19:54:29 1: Error: >FRMa:7< has no TYPE, but following keys: ><
2018.01.06 19:54:29 3: Opening FRMa device /dev/ttyUSB0
2018.01.06 19:54:29 3: Setting FRMa serial parameters to 57600,8,N,1
2018.01.06 19:54:29 5: FRMa FRM_DoInit
2018.01.06 19:54:29 5: FRMa FRM:>ff
2018.01.06 19:54:29 5: SW: ff
2018.01.06 19:54:29 5: FRMa setup stage 1
2018.01.06 19:54:29 3: FRMa device opened
2018.01.06 19:54:29 0: Featurelevel: 5.8
2018.01.06 19:54:29 0: Server started with 16 defined entities (fhem.pl:15766/2018-01-03 perl:5.024001 os:linux user:fhem pid:2077)
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:30 5: FRMa setup stage 1
2018.01.06 19:54:31 5: FRMa setup stage 1
2018.01.06 19:54:32 5: FRMa setup stage 1
2018.01.06 19:54:32 3: FRMa querying Firmata versions
2018.01.06 19:54:32 5: FRMa FRM:>f90000
2018.01.06 19:54:32 5: SW: f90000
2018.01.06 19:54:32 5: FRMa FRM:>f079f7
2018.01.06 19:54:32 5: SW: f079f7
2018.01.06 19:54:33 5: FRMa setup stage 1
2018.01.06 19:54:34 5: FRMa setup stage 1
2018.01.06 19:54:34 5: FRMa FRM:<f90206f079020a4d0065
2018.01.06 19:54:34 5: FRMa setup stage 1
2018.01.06 19:54:34 5: FRMa FRM:<00670061003200300036002e0069006e006f00f7e04d02e12402e27301e35b01e43101e50f01e61001e71c01f90206f079020a4d006500670061003200300036002e0069006e006f00f7
2018.01.06 19:54:34 5: FRMa setup stage 1
2018.01.06 19:54:34 3: FRMa Firmata Firmware Version: Mega206.ino V_2_10 (using Protocol Version: V_2_06)
2018.01.06 19:54:34 5: FRMa FRM:>f069f7
2018.01.06 19:54:34 5: SW: f069f7
2018.01.06 19:54:34 5: FRMa FRM:>f06bf7
2018.01.06 19:54:34 5: SW: f06bf7
2018.01.06 19:54:34 5: FRMa FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7f06c7f7f00010b01010107017f00010b010101030807017f00010b01010107
2018.01.06 19:54:34 5: FRMa setup stage 2
2018.01.06 19:54:34 5: FRMa FRM:<017f00010b010101030807017f00010b010101030807017f00010b01010107017f00010b01010107017f00010b010101030807017f00010b010101030807017f00010b010101030807017f00010b01010107017f00010b01010107017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f020a7f020a7ff7
2018.01.06 19:54:34 5: FRMa setup stage 2
2018.01.06 19:54:34 5: FRMa FRM:>f07a6807f7
2018.01.06 19:54:34 5: SW: f07a6807f7
2018.01.06 19:54:34 5: FRMa setup stage 3
2018.01.06 19:54:34 5: FRMa FRM:>f40300
2018.01.06 19:54:34 5: SW: f40300
2018.01.06 19:54:34 5: FRMa FRM:>d001
2018.01.06 19:54:34 5: SW: d001
2018.01.06 19:54:34 5: FRMa FRM:>d001
2018.01.06 19:54:34 5: SW: d001
2018.01.06 19:54:34 5: FRMa FRM:>f40601
2018.01.06 19:54:34 5: SW: f40601
2018.01.06 19:54:34 5: FRMa FRM:>d001
2018.01.06 19:54:34 5: SW: d001
2018.01.06 19:54:34 5: FRMa FRM:>900000
2018.01.06 19:54:34 5: SW: 900000
2018.01.06 19:54:34 5: FRMa setup stage 4
2018.01.06 19:54:34 5: FRMa FRM:<900000900000
2018.01.06 19:54:34 5: FRMa FRM:<900000
2018.01.06 19:55:24 5: OWXa FRM_Client_AssignIOPort before IODev FRMa -> FRMa
2018.01.06 19:55:24 5: OWXa FRM_Client_AssignIOPort after IODev FRMa
2018.01.06 19:55:24 5: FRMa FRM:>f40707
2018.01.06 19:55:24 5: SW: f40707
2018.01.06 19:55:29 1: OWX_Init called for bus OWXa with interface state Initialized, now going for detect
2018.01.06 19:55:29 1: OWX: 1-Wire bus OWXa: interface Firmata detected in FRMa
2018.01.06 19:55:29 5: FRMa FRM:>f0734007f7
2018.01.06 19:55:29 5: SW: f0734007f7
2018.01.06 19:55:29 5: FRMa FRM:<f0734207
2018.01.06 19:55:29 5: FRMa FRM:<287c04565d0000002000f7
2018.01.06 19:55:34 3: OWTHERM: Device OWX_28_3EC1DA050000 defined.
2018.01.06 19:55:34 1: OWX_Discover: 1-Wire devices found on bus OWXa (OWX_28_3EC1DA050000)
2018.01.06 19:55:34 5: FRMa FRM:>f0734007f7
2018.01.06 19:55:34 5: SW: f0734007f7
2018.01.06 19:55:34 5: FRMa FRM:<f0734207
2018.01.06 19:55:34 5: FRMa FRM:<287c04565d0000002000f7
2018.01.06 19:55:34 1: OWX_Discover: 1-Wire devices found on bus OWXa (OWX_28_3EC1DA050000)
2018.01.06 19:55:44 4: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa context=convert
2018.01.06 19:55:44 1: queue OWXa contains 1 entries after insertion
2018.01.06 19:55:44 1: => 283EC1DA05000020 context convert expecting 1 bytes, waiting
2018.01.06 19:55:44 1: ----------------------------------------------
2018.01.06 19:55:44 1: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa numread=19
2018.01.06 19:55:44 1: queue OWXa contains 2 entries after insertion
2018.01.06 19:55:44 1: => 283EC1DA05000020 context convert expecting 1 bytes, waiting
2018.01.06 19:55:44 1: => 283EC1DA05000020 context readsp expecting 19 bytes, waiting
2018.01.06 19:55:44 1: ----------------------------------------------
2018.01.06 19:55:50 4: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa context=convert
2018.01.06 19:55:50 1: queue OWXa contains 1 entries after insertion
2018.01.06 19:55:50 1: => 283EC1DA05000020 context convert expecting 1 bytes, waiting
2018.01.06 19:55:50 1: ----------------------------------------------
2018.01.06 19:55:50 1: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa numread=19
2018.01.06 19:55:50 1: queue OWXa contains 2 entries after insertion
2018.01.06 19:55:50 1: => 283EC1DA05000020 context convert expecting 1 bytes, waiting
2018.01.06 19:55:50 1: => 283EC1DA05000020 context readsp expecting 19 bytes, waiting
2018.01.06 19:55:50 1: ----------------------------------------------
pin '19' is not configured for mode 'ONEWIRE' at FHEM/lib/Device/Firmata/Platform.pm line 813.
2018.01.06 18:37:06 1: PERL WARNING: Constant subroutine main::SHIFT redefined at ./FHEM/10_FRM.pm line 51.
main::BEGIN() called at ./FHEM/10_FRM.pm line 51
eval {...} called at ./FHEM/10_FRM.pm line 51
require ./FHEM/10_FRM.pm called at fhem.pl line 2436
eval {...} called at fhem.pl line 2435
main::CommandReload(undef, "10_FRM", undef) called at fhem.pl line 1851
main::LoadModule("FRM", undef) called at fhem.pl line 1908
main::CommandDefine(undef, "OWArduino FRM fhem_hw:2004", "define") called at fhem.pl line 1168
main::AnalyzeCommand(undef, "define OWArduino FRM fhem_hw:2004", "ACC") called at fhem.pl line 1022
main::AnalyzeCommandChain(undef, "define OWArduino FRM fhem_hw:2004") called at configDB.pm line 782
main::_cfgDB_Execute(undef, "attr global userattr alexaName alexaRoom cmdIcon devStateIcon"..., "attr global autoload_undefined_devices 1", "attr global autosave 0", "attr global dnsHostsFile /etc/hosts", "attr global dnsServer 192.168.x.x", "attr global exclude_from_update 19_Revolt.pm 11_OWX_FRM.pm 10"..., "attr global group FHEM", "attr global holiday2we AT_Feiertage", ...) called at configDB.pm line 475
main::cfgDB_ReadAll(undef) called at fhem.pl line 543
ZitatUndefined subroutine &main::ReadingsSingleUpdate called at ./FHEM/10_FRM.pm line 1055stammt aus der Sub FRM_OWX_Init des FRM-Moduls. Diese Sub wird von einer alten Version des Moduls 00_OWX.pm aufgerufen, die aktuelle 00_OWX.pm macht das anders. In deiner Version von 00_OWX.pm wird scheinbar ein Zugriff auf den FHEM-Kern gemacht, bevor dieser richtig initialisiert ist. Oder verwendest du eigenen Code, der die Sub FRM_OWX_Init explizit aufruft?
Zitat2018.01.06 19:55:34 5: FRMa FRM:<f0734207hat das Firmata-Device auf die OneWire-Anfrage geantwortet. OWX scheint damit zunächst zufrieden zu sein, beschwert sich aber kurz darauf über fehlende Daten. Allerdings liefert Firmata keine Daten unaufgefordert. Was fehlt ist die nächste Anfrage von OWX. Woran das liegt kann ich nicht sagen, da OWX nicht meine Spielwiese ist.
2018.01.06 19:55:34 5: FRMa FRM:<287c04565d0000002000f7
2018.01.06 21:44:33 1: Including fhem.cfg
2018.01.06 21:44:33 3: telnetPort: port 7072 opened
2018.01.06 21:44:33 3: WEB: port 8083 opened
2018.01.06 21:44:33 3: WEBphone: port 8084 opened
2018.01.06 21:44:33 3: WEBtablet: port 8085 opened
2018.01.06 21:44:34 2: eventTypes: loaded 42 events from ./log/eventTypes.txt
2018.01.06 21:44:40 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2028, <$fh> line 64.
2018.01.06 21:44:40 3: OWTHERM: Device OWX_28_3EC1DA050000 defined.
2018.01.06 21:44:40 1: Including ./log/fhem.save
2018.01.06 21:44:40 1: Error: >FRMa:7< has no TYPE, but following keys: ><
2018.01.06 21:44:40 3: Opening FRMa device /dev/ttyUSB0
2018.01.06 21:44:40 3: Setting FRMa serial parameters to 57600,8,N,1
2018.01.06 21:44:40 5: FRMa FRM_DoInit
2018.01.06 21:44:40 5: FRMa FRM:>ff
2018.01.06 21:44:40 5: SW: ff
2018.01.06 21:44:40 5: FRMa setup stage 1
2018.01.06 21:44:40 3: FRMa device opened
2018.01.06 21:44:40 0: Featurelevel: 5.8
2018.01.06 21:44:40 0: Server started with 17 defined entities (fhem.pl:15766/2018-01-03 perl:5.024001 os:linux user:root pid:4427)
2018.01.06 21:44:40 5: FRMa setup stage 1
2018.01.06 21:44:40 5: FRMa setup stage 1
2018.01.06 21:44:40 5: FRMa setup stage 1
2018.01.06 21:44:41 5: FRMa setup stage 1
2018.01.06 21:44:41 5: FRMa setup stage 1
2018.01.06 21:44:41 5: FRMa setup stage 1
2018.01.06 21:44:41 5: FRMa setup stage 1
2018.01.06 21:44:41 5: FRMa setup stage 1
2018.01.06 21:44:41 5: FRMa setup stage 1
2018.01.06 21:44:42 5: FRMa setup stage 1
2018.01.06 21:44:43 5: FRMa setup stage 1
2018.01.06 21:44:43 3: FRMa querying Firmata versions
2018.01.06 21:44:43 5: FRMa FRM:>f90000
2018.01.06 21:44:43 5: SW: f90000
2018.01.06 21:44:43 5: FRMa FRM:>f079f7
2018.01.06 21:44:43 5: SW: f079f7
2018.01.06 21:44:44 5: FRMa setup stage 1
2018.01.06 21:44:44 5: FRMa setup stage 1
2018.01.06 21:44:45 5: FRMa FRM:<f90206f079020a4d00650067006100
2018.01.06 21:44:45 5: FRMa setup stage 1
2018.01.06 21:44:45 5: FRMa FRM:<3200300036002e0069006e006f00f7e02502e15d01e21e01e37900e46d00e56200e65c00e75700f90206f079020a4d006500670061003200300036002e0069006e006f00f7
2018.01.06 21:44:45 5: FRMa setup stage 1
2018.01.06 21:44:45 3: FRMa Firmata Firmware Version: Mega206.ino V_2_10 (using Protocol Version: V_2_06)
2018.01.06 21:44:45 5: FRMa FRM:>f069f7
2018.01.06 21:44:45 5: SW: f069f7
2018.01.06 21:44:45 5: FRMa FRM:>f06bf7
2018.01.06 21:44:45 5: SW: f06bf7
2018.01.06 21:44:45 5: FRMa FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7f06c7f7f00010b01010107017f00010b010101030807017f00010b010101
2018.01.06 21:44:45 5: FRMa setup stage 2
2018.01.06 21:44:45 5: FRMa FRM:<07017f00010b010101030807017f00010b010101030807017f00010b01010107017f00010b01010107017f00010b010101030807017f00010b010101030807017f00010b010101030807017f00010b01010107017f00010b01010107017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f00010b010101020a07017f020a7f020a7ff7
2018.01.06 21:44:45 5: FRMa setup stage 2
2018.01.06 21:44:45 5: FRMa FRM:>f07a6807f7
2018.01.06 21:44:45 5: SW: f07a6807f7
2018.01.06 21:44:45 5: FRMa setup stage 3
2018.01.06 21:44:45 5: FRMa FRM:>f40300
2018.01.06 21:44:45 5: SW: f40300
2018.01.06 21:44:45 5: FRMa FRM:>d001
2018.01.06 21:44:45 5: SW: d001
2018.01.06 21:44:45 5: FRMa FRM:>d001
2018.01.06 21:44:45 5: SW: d001
2018.01.06 21:44:45 5: FRMa FRM:>f40601
2018.01.06 21:44:45 5: SW: f40601
2018.01.06 21:44:45 5: FRMa FRM:>d001
2018.01.06 21:44:45 5: SW: d001
2018.01.06 21:44:45 5: FRMa FRM:>900000
2018.01.06 21:44:45 5: SW: 900000
2018.01.06 21:44:45 5: FRMa setup stage 4
2018.01.06 21:44:45 5: FRMa FRM:<900000900000
2018.01.06 21:44:45 5: FRMa FRM:<900000
2018.01.06 21:44:50 4: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa context=convert
2018.01.06 21:44:50 1: OWX_FRM::Write attempted to undefined device OWXa
2018.01.06 21:44:50 1: queue OWXa contains 1 entries after insertion
2018.01.06 21:44:50 1: => 283EC1DA05000020 context convert expecting 1 bytes, active
2018.01.06 21:44:50 1: ----------------------------------------------
2018.01.06 21:44:50 1: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa numread=19
2018.01.06 21:44:50 1: queue OWXa contains 2 entries after insertion
2018.01.06 21:44:50 1: => 283EC1DA05000020 context convert expecting 1 bytes, active
2018.01.06 21:44:50 1: => 283EC1DA05000020 context readsp expecting 19 bytes, waiting
2018.01.06 21:44:50 1: ----------------------------------------------
2018.01.06 21:44:51 1: OWX_FRM::Write attempted to undefined device OWXa
2018.01.06 21:45:29 5: OWXa FRM_Client_AssignIOPort before IODev FRMa -> FRMa
2018.01.06 21:45:29 5: OWXa FRM_Client_AssignIOPort after IODev FRMa
2018.01.06 21:45:29 5: FRMa FRM:>f40707
2018.01.06 21:45:29 5: SW: f40707
2018.01.06 21:45:34 1: OWX_Init called for bus OWXa with interface state Initialized, now going for detect
2018.01.06 21:45:34 1: OWX: 1-Wire bus OWXa: interface Firmata detected in FRMa
2018.01.06 21:45:34 5: FRMa FRM:>f0734007f7
2018.01.06 21:45:34 5: SW: f0734007f7
2018.01.06 21:45:34 5: FRMa FRM:<f0734207
2018.01.06 21:45:34 5: FRMa FRM:<287c04565d0000002000f7
2018.01.06 21:45:34 1: OWX_Discover: 1-Wire devices found on bus OWXa (OWX_28_3EC1DA050000)
2018.01.06 21:45:38 4: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa context=convert
2018.01.06 21:45:38 5: FRMa FRM:>f0730107f7
2018.01.06 21:45:38 5: SW: f0730107f7
2018.01.06 21:45:38 1: OWX_FRM::Write Sending out 0x55 0x28 0x3e 0xc1 0xda 0x05 0x00 0x00 0x20 0x44 0xff
2018.01.06 21:45:38 5: FRMa FRM:>f0732c07287c04565d00000020160000000011f7
2018.01.06 21:45:38 5: SW: f0732c07287c04565d00000020160000000011f7
2018.01.06 21:45:38 1: queue OWXa contains 1 entries after insertion
2018.01.06 21:45:38 1: => 283EC1DA05000020 context convert expecting 1 bytes, active
2018.01.06 21:45:38 1: ----------------------------------------------
2018.01.06 21:45:38 1: OWX_Qomplex: Added dev 283EC1DA05000020 to queue OWXa numread=19
2018.01.06 21:45:38 1: queue OWXa contains 2 entries after insertion
2018.01.06 21:45:38 1: => 283EC1DA05000020 context convert expecting 1 bytes, active
2018.01.06 21:45:38 1: => 283EC1DA05000020 context readsp expecting 19 bytes, waiting
2018.01.06 21:45:38 1: ----------------------------------------------
2018.01.06 21:45:38 5: FRMa FRM:<f0734307000000000000000000000000000000f7
2018.01.06 21:45:38 1: OWX_FRM::Read receiving in first read 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
2018.01.06 21:45:38 5: FRMa FRM:>f0730107f7
2018.01.06 21:45:38 5: SW: f0730107f7
2018.01.06 21:45:39 5: FRMa FRM:>f0734007f7
2018.01.06 21:45:39 5: SW: f0734007f7
2018.01.06 21:45:39 5: FRMa FRM:<f0734207
2018.01.06 21:45:39 5: FRMa FRM:<287c04565d0000002000f7
2018.01.06 21:45:39 1: OWX_Discover: 1-Wire devices found on bus OWXa (OWX_28_3EC1DA050000)
2018.01.06 21:45:39 5: FRMa FRM:>f0730107f7
2018.01.06 21:45:39 5: SW: f0730107f7
2018.01.06 21:45:39 1: OWX_FRM::Write Sending out 0x55 0x28 0x3e 0xc1 0xda 0x05 0x00 0x00 0x20 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2018.01.06 21:45:39 5: FRMa FRM:>f0732c07287c04565d000000203a000800402ff7
2018.01.06 21:45:39 5: SW: f0732c07287c04565d000000203a000800402ff7
2018.01.06 21:45:39 5: FRMa FRM:<f07343070100340c3049513f7f074018707f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
2018.01.06 21:45:39 5: FRMa FRM:<7f7f7f7f7f7f7f07f7
2018.01.06 21:45:39 1: OWX_FRM::Read receiving in first read 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0xbe 0x8d 0x01 0x4b 0x46 0x7f 0xff 0x03 0x10 0x03 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2018.01.06 21:45:39 5: FRMa FRM:>f0730107f7
2018.01.06 21:45:39 5: SW: f0730107f7
Zitatpin '19' is not configured for mode 'ONEWIRE' at FHEM/lib/Device/Firmata/Platform.pm line 813.deutet darauf hin, dass hier ein Ablauf nicht stimmt. 11_OWX_FRM muss zuerst den Pin in Firmata konfigurieren, bevor es darauf zugreifen darf. Außerdem sollte beim Zugriff eine Fehlerbehandlung erfolgen, damit FHEM nicht abstürzt.
Zitat2018.01.06 18:37:06 1: PERL WARNING: Constant subroutine main::SHIFT redefined at ./FHEM/10_FRM.pm line 51.Das sieht sehr ungewöhnlich aus, aber eine Erklärung habe ich spontan nicht.
Zitatmit deiner Testversion funktioniert beim mir ein Input, Pin 15, nicht mehrmeinst du vermutlich, dass Änderungen am Pin nicht mehr im FRM_IN-Device ankommen. Bitte mach ein Log mit verbose=5 für FRM und FRM_IN mit Neustart und mindestens einer Signaländerung.
ZitatOder verwendest du eigenen Code, der die Sub FRM_OWX_Init explizit aufruft?
#### definiere FRM als IO-Device
define FIRMATA FRM /dev/ttyACM0@57600
attr FIRMATA icon DIN_rail_firmata
attr FIRMATA room OWX,System
#### OW-Ports laden
#Port 2 fuer interne messungen
define OWio2 OWX 2
attr OWio2 IODev FIRMATA
attr OWio2 comment Sensor am Arduino-Mega
attr OWio2 room OWX,System
#Port 3 (ACHTUNG!! PORT4 geht nicht wenn LAN/SD-Card benutzt wird!)
define OWio3 OWX 3
attr OWio3 IODev FIRMATA
attr OWio3 comment Aussen Norden-Temperatur, Feuchte
attr OWio3 room OWX,System
#### definiere FRM als IO-Device
define FIRMATA FRM /dev/ttyACM0@57600
attr FIRMATA icon DIN_rail_firmata
attr FIRMATA room OWX,System
#### OW-Ports laden
#Port 2 fuer interne messungen
define OWio2 OWX FIRMATA:2
attr OWio2 comment Sensor am Arduino-Mega
attr OWio2 room OWX,System
#Port 3 (ACHTUNG!! PORT4 geht nicht wenn LAN/SD-Card benutzt wird!)
define OWio3 OWX FIRMATA:3
attr OWio3 comment Aussen Norden-Temperatur, Feuchte
attr OWio3 room OWX,System
OWTHERM: Could not get values from device TA_28_736020050000, return was OWTHERM: TA_28_736020050000 not accessible
2018.01.07 14:15:14 1 : OWX_FRM::Ready function called for bus OWio2. STATE=disconnected
2018.01.07 14:16:14 1 : OWX_FRM::Ready function called for bus OWio2. STATE=disconnected
2018.01.07 14:17:00 1 : ====> REOPENING DEVICE
2018.01.07 14:17:00 3 : OWX_Set OWio2 reopen => 0
2018-01-07 14:17:00 OWX OWio2 reopen
2018.01.07 14:17:11 5 : FIRMATA FRM:>f0734002f7
2018.01.07 14:17:11 5 : SW: f0734002f7
2018.01.07 14:17:11 5 : FIRMATA FRM:<f0734202
2018.01.07 14:17:11 5 : FIRMATA FRM:<2866010352
2018.01.07 14:17:11 5 : FIRMATA FRM:<0000000b01f7
2018.01.07 14:17:11 1 : OWX_Discover: 1-Wire devices found on bus OWio2 (TA_28_736020050000)
2018.01.07 14:17:16 1 : OWX_FRM::Ready function called for bus OWio2. STATE=disconnected
2018.01.07 14:17:20 5 : FIRMATA FRM:>f0730102f7
2018.01.07 14:17:20 5 : SW: f0730102f7
2018.01.07 14:17:20 1 : OWX_Complex called while interface OWio2 disconnected
ZitatIch würde gerne helfen, aber ich habe bei mir kein OneWire an Firmata und der OneWire-Code wird von @pahenning betreut. Das gepatchte Modul 11_OWX_FRM.pm ist ein Hotifx um FHEM-Abstürze zu vermeiden. Du kannst es auch noch mal mit der unveränderten 11_OWX_FRM.pm versuchen und prüfen, ob es einen Unterschied macht. Bitte ansonsten im 1-Wire-Bereich nachsehen und ggf. da einen eigenen Thread aufmachen.
Wenn ich "set OWio2 reopen" setze bleibt der Kanal "disconnected". Er zeigt mir den DS18B20 noch als Device an. Ansprechen klappt aber nicht mehr. Erst nach einem Shutdown ist das OWio2 wieder im Internals "STATE" als "Initialized" markiert.
Das Readings "state" bleibt aber weiter auf "disconnected"
Zitat... in wie weit ist die Version der Firmata im Arduino von belang?Die aktuellen FHEM-Updates für Firmata sind bzgl. der Firmata-Devices abwärtskompatibel - an den Arduinos muss nichts geändert werden.
Kann ich meine alte 2.06 vorerst laufen lassen?
Sub | Aufrufer | State |
DevIo_Expect | FRM (USB) | failed |
DevIo_Expect | FRM (USB) | opened |
DevIo_OpenDev | FRM (USB) | opened |
DevIo_OpenDev | FRM (USB) | disconnected |
DevIo_Disconnected | FRM (USB) | disconnected |
FRM_Start | FRM (TCP) | listening |
FRM_Tcp_Connection_Close | FRM (TCP) | listening |
FRM_SetupDevice | FRM-Client | Initialized |
FRM_Init_Pin_Client | FRM-Client | error initializing: pin X |
FRM_Client_Define | FRM-Client | defined |
FRM_Client_Unassign | FRM-Client | defined |
FRM_OWX_Init | FRM-Client OWX | Initialized |
FRM_i2c_update_device | I2C-Receive | active |
Zitat2018.01.08 13:03:35 5: Arduino setup stage 1
2018.01.08 13:03:35 5: Arduino setup stage 1
2018.01.08 13:03:36 5: Arduino setup stage 1
2018.01.08 13:03:37 5: Arduino setup stage 1
2018.01.08 13:03:37 5: Arduino setup stage 5
2018.01.08 13:03:37 3: Arduino no response from Firmata, closing DevIo
2018.01.08 13:03:37 5: Arduino setup stage 4
2018.01.08 13:03:38 5: Cmd: >save<
2018.01.08 13:03:38 5: Starting notify loop for global, 1 event(s), first is SAVE
2018.01.08 13:03:38 5: End notify loop for global
2018.01.08 13:03:39 1: OWX_Init called for bus OWio3 with interface state opened, now going for detect
2018.01.08 13:03:39 1: OWX_SER::Query OWio3: Sending out0xc1
2018.01.08 13:03:39 5: SW: c1
2018.01.08 13:03:39 4: OWX_SER::Query OWio3: 1 of 1 bytes in first attempt and state opened
2018.01.08 13:03:39 1: OWX_SER::Query OWio3: Sending out0x17 0x45 0x5b 0x0f 0x91
2018.01.08 13:03:39 5: SW: 17455b0f91
2018.01.08 13:03:39 4: OWX_SER::Query OWio3: 5 of 5 bytes in first attempt and state opened
2018.01.08 13:03:39 1: OWX_SER::Detect 1-Wire bus OWio3: interface not found, answer was 0x17 0x41 0xab 0x20 0xfc
2018.01.08 13:03:39 1: OWX_SER::Query OWio3: Sending out0x17 0x45 0x5b 0x0f 0x91
2018.01.08 13:03:39 5: SW: 17455b0f91
2018.01.08 13:03:39 4: OWX_SER::Query OWio3: 5 of 5 bytes in first attempt and state opened
2018.01.08 13:03:39 1: OWX_SER::Detect 1-Wire bus OWio3: interface not found, answer was 0x17 0x41 0xab 0x20 0xfc
2018.01.08 13:03:39 1: OWX_SER::Query OWio3: Sending out0x17 0x45 0x5b 0x0f 0x91
2018.01.08 13:03:39 5: SW: 17455b0f91
2018.01.08 13:03:39 4: OWX_SER::Query OWio3: 5 of 5 bytes in first attempt and state opened
2018.01.08 13:03:39 1: OWX_SER::Detect 1-Wire bus OWio3: interface not found, answer was 0x17 0x41 0xab 0x20 0xfc
2018.01.08 13:03:39 1: OWX_SER::Query OWio3: Sending out0x17 0x45 0x5b 0x0f 0x91
2018.01.08 13:03:39 5: SW: 17455b0f91
2018.01.08 13:03:39 4: OWX_SER::Query OWio3: 5 of 5 bytes in first attempt and state opened
2018.01.08 13:03:39 1: OWX_SER::Detect 1-Wire bus OWio3: interface not found, answer was 0x17 0x41 0xab 0x20 0xfc
2018.01.08 13:03:39 1: OWX_SER::Detect 1-Wire bus OWio3: interface not detected, answer was 0x17 0x41 0xab 0x20 0xfc
2018.01.08 13:03:39 4: OWX_Init: Detection failed
2018.01.08 13:03:39 1: Cannot init /dev/ttyUSB0, ignoring it (OWio3)
2018.01.08 13:03:42 5: Cmd: >{ReadingsVal("OWio3","reopen","")}<
2018.01.08 13:03:42 5: Cmd: >{AttrVal("OWio3","room","")}<
2018.01.08 13:03:46 5: Cmd: >get OWio3 devices<
2018.01.08 13:03:46 1: OWX_SER::Query OWio3: Sending out0xe3 0xc5
2018.01.08 13:03:46 5: SW: e3c5
OWio3, Arduino is not connected at ./FHEM/10_FRM.pm line 822.
Zitat... kannst du einen *richtigen* Status in einem Reading bereitstellen?Meinst du damit einen "reinen" Status der Verbindung zum Firmata-Device? Wäre wünschenswert, aber das ist nicht mal eben und es geht wahrscheinlich auch ohne Änderung:
ZitatAllerdings hab ich grade den Arduino abgezogen, und FRM liefert mir "opened"... sicher??Auf den ersten Blick nicht, aber wenn ich mir den Logauszug ansehe, müsste folgendes mit deinem State passiert sein: 1. opened (USB-connect), 2. disconnected (Arduino no response from Firmata, closing DevIo). Macht der Arduino einen Reset, dann kommt als nächstes wieder "opened". "opened" bedeutet nur, dass eine Verbindung zwischen FHEM und dem USB-Device exisitert und hat nichts mit der Verbindung zum Firmata-Device zu tun. Was fehlt ist State "Initialized" bzw. Setup Stage 3. Dein Arduino scheint sich gar nicht zu melden (keine Version empfangen, es fehlt Setup Stage 2) und Setup Stage 1 wird mehrere Sekunden lang wiederholt, bis zum Timeout. Wenn du ein Log für das State-Reading des FRM-Device anlegst, kannst du das wahrscheinlich besser nachvollziehen. Warum sich dein Firmata-Device nicht meldet, kann man so nicht feststellen. Häng es mit USB an die Arduino IDE und schau dir nach dem Reset an, was der Serielle Monitor ausgibt. Normal wäre 1. Protokoll-Version 2. Firmware-Version, beides wird vom Firmata-Device nach dem Reset unaufgefordert gesendet.
ZitatOWio3, Arduino is not connected at ./FHEM/10_FRM.pm line 822Ein Absturz an dieser Stelle ist für mich nicht nachvollziehbar. OWX ruft FRM nicht mehr direkt auf und die von mir gepatchte 11_OWX_FRM.pm sichert den Aufruf von FRM_Client_FirmataDevice ab, der in Zeile 822 steht und den Absturz verursacht hat. Verwendest du vielleicht das alte OWX? Wenn ja, dann sieh dir bitte diesen (https://forum.fhem.de/index.php/topic,81815.msg744073.html#msg744073) und diesen (https://forum.fhem.de/index.php/topic,81815.msg744192.html#msg744192) Post an.
Zitat@abc2006
Meinst du damit einen "reinen" Status der Verbindung zum Firmata-Device? Wäre wünschenswert, aber das ist nicht mal eben und es geht wahrscheinlich auch ohne Änderung:
ZitatNormal wäre 1. Protokoll-Version 2. Firmware-Version, beides wird vom Firmata-Device nach dem Reset unaufgefordert gesendet.
ZitatVerwendest du vielleicht das alte OWX? Wenn ja, dann sieh dir bitteMeinst du das 11_OWX_FRM?
define OWio2 OWX FIRMATA:2
00_OWX.pm 15392 2017-11-05 06:46:46Z phenning
11_OWX_FRM.pm 15392 2017-11-05 06:46:46Z phenning
10_FRM.pm 15794 2018-01-05 19:14:58Z jensb
-rw-r--r-- 1 root root 17721 Jan 9 00:29 /root/11_OWX_FRM.pm
-rw-r--r-- 1 fhem dialout 17721 Jan 7 12:36 /opt/fhem/FHEM/11_OWX_FRM.pm
root@hzfhem:~# diff /root/11_OWX_FRM.pm /opt/fhem/FHEM/11_OWX_FRM.pm
root@hzfhem:~#
ZitatDie aktuelle Arduino-IDE bringt zwar schon eine Version der StandardFirmata mit, diese enthält aber noch keine Unterstützung für OneWire. Diese findet man im eigenen Fork. Den kompletten Branch kann man sich auch bequem als zip-Archiv herunterladen
Zitatie in dem Verzeichnis befindlichen Dateien 'Firmata.h', 'Firmata.cpp' und 'Boards.h' müssen durch die im arduino-configurable.zip-file enthaltenen Versionen ersetzt werden. Am besten kopiert man einfach den gesamten Inhalt des Ordners 'arduino-configurable' in das 'libraries/Firmata'-Verzeichnis (mitsamt des Unterordners 'examples').
https://codeload.github.com/firmata/arduino/zip/configurable
/opt/fhem/FHEM/lib/Device/Firmata/Base.pm
/opt/fhem/FHEM/lib/Device/Firmata/Changes
/opt/fhem/FHEM/lib/Device/Firmata/Constants.pm
/opt/fhem/FHEM/lib/Device/Firmata/Error.pm
/opt/fhem/FHEM/lib/Device/Firmata/Language.pm
/opt/fhem/FHEM/lib/Device/Firmata/license.txt
/opt/fhem/FHEM/lib/Device/Firmata/Platform.pm
/opt/fhem/FHEM/lib/Device/Firmata/Protocol.pm
/opt/fhem/FHEM/lib/Device/Firmata/README
Internals:
ALARMED 0
ASYNCHRONOUS 0
DEF Arduino:9
DeviceName Arduino:9
FRM_OWX_CORRELATIONID 0
HWDEVICE Arduino
INITDONE 0
INTERFACE firmata
IODev Arduino
NAME OWio3
NEXT_OPEN 1515454515
NR 22
PARTIAL
PIN 9
PRESENT 1
ROM_ID FF
STATE disconnected
TYPE OWX
interval 300
timeout 2
version 7.05
DEVHASH:
OWX_1D_22DC84000003 1D.22DC84000003.51
OWX_1D_23DC84000003 1D.23DC84000003.66
OWio3 Busmaster
DEVS:
1D.22DC84000003.51
1D.23DC84000003.66
FRM_OWX_REPLIES:
READINGS:
2018-01-09 00:34:15 state disconnected
Attributes:
verbose 5
OWX_Discover: 1-Wire devices found on bus OWio3
1D.22DC84000003 DS2423 OWX_1D_22DC84000003
1D.23DC84000003 DS2423 OWX_1D_23DC84000003
Internals:
ASYNC 0
DEF DS2423 22DC84000003
ERRCOUNT 0
INTERVAL 15
IODev OWio3
NAME OWX_1D_22DC84000003
NOTIFYDEV global
NR 23
NTFY_ORDER 50-OWX_1D_22DC84000003
OW_FAMILY 1D
OW_ID 22DC84000003
PRESENT 0
ROM_ID 1D.22DC84000003.51
STATE initialized 2018-01-09 00:33:48
TYPE OWCOUNT
DATA:
memory
READINGS:
2018-01-09 00:33:02 A 978501
2018-01-09 00:33:02 A_rate 0
2018-01-09 00:33:02 B 0
2018-01-09 00:33:02 B_rate 0
2018-01-09 00:33:02 memory
2018-01-09 00:33:48 state initialized
owg_midnight:
owg_str:
owg_val:
Attributes:
IODev OWio3
interval 15
model DS2423
room OWX
stateFormat {sprintf("%s %s",ReadingsVal($name,"state",0),ReadingsTimestamp($name,"state",0))}
OWTHERM: Could not get values from device OWX_28_16C19F050000, return was OWTHERM: OWX_28_16C19F050000 not accessible
2018.01.09 10:45:44 5: Arduino FRM:<e01902
2018.01.09 10:45:45 5: Arduino FRM:<e01902
2018.01.09 10:45:46 5: Arduino FRM:<e01902
2018.01.09 10:45:47 5: Arduino FRM:<e01a02
2018.01.09 10:45:48 1: OWX_Complex called while interface OWio3 disconnected
2018.01.09 10:45:48 1: OWX_Complex called while interface OWio3 disconnected
2018.01.09 10:45:48 1: OWX_Complex called while interface OWio3 disconnected
2018.01.09 10:45:48 1: OWX_Complex called while interface OWio3 disconnected
2018.01.09 10:45:48 5: Arduino FRM:<e01a02
2018.01.09 10:45:49 5: Arduino FRM:<e01a02
2018.01.09 10:45:50 5: Arduino FRM:<e01a02
2018.01.09 10:45:51 5: Arduino FRM:<e01a02
2018.01.09 10:45:52 5: Arduino FRM:<e01b02
2018.01.09 10:45:53 5: Arduino FRM:<e01b02
2018.01.09 10:45:54 5: Arduino FRM:<e01a02
2018.01.09 10:45:55 5: Arduino FRM:<e01a02
2018.01.09 10:45:56 5: Arduino FRM:<e01b02
2018.01.09 10:45:57 5: Arduino FRM:<e01b02
2018.01.09 10:45:58 5: Arduino FRM:<e01b02
2018.01.09 10:45:59 5: Arduino FRM:<e01b02
2018.01.09 10:46:00 5: Arduino FRM:<e01b02
2018.01.09 10:46:01 5: Arduino FRM:<e01b02
2018.01.09 10:46:02 5: Arduino FRM:<e01b02
2018.01.09 10:46:03 1: OWX_Complex called while interface OWio3 disconnected
2018.01.09 10:46:03 1: OWX_Complex called while interface OWio3 disconnected
2018.01.09 10:46:03 5: Arduino FRM:<e01a02
2018.01.09 10:46:04 5: Arduino FRM:<e01a02
2018.01.09 10:46:05 5: Arduino FRM:<e01a02
2018.01.09 10:46:06 5: Arduino FRM:<e01a02
2018.01.09 10:46:07 5: Arduino FRM:<e01902
2018.01.09 10:46:08 5: Arduino FRM:<e01902
2018.01.09 10:46:09 5: Arduino FRM:<e01a02
2018.01.09 10:46:10 5: Arduino FRM:<e01a02
2018.01.09 10:46:11 5: Arduino FRM:<e01902
2018.01.09 10:46:12 5: Arduino FRM:<e01a02
2018.01.09 10:46:13 5: Arduino FRM:<e01a02
2018.01.09 10:46:14 5: Arduino FRM:<e01a02
2018.01.09 10:46:15 1: OWX_FRM::Ready function called for bus OWio3. STATE=disconnected
2018.01.09 10:46:15 5: Arduino FRM:<e01a02
2018.01.09 10:46:16 5: Arduino FRM:<e01a02
2018.01.09 10:46:17 5: Arduino FRM:<e01a02
2018.01.09 10:46:18 1: OWX_Complex called while interface OWio3 disconnected
2018.01.09 10:46:18 1: OWX_Complex called while interface OWio3 disconnected
ZitatKannst du mir mal Hilfe zur Selbsthilfe geben?Würde ich gerne, aber das kann ich nicht in dem Umfang den du brauchst - ich kenne mich mit OneWire aktuell nicht gut genug aus, um Ratschläge geben zu können. Ein Teil deiner Fragen gehört klar in den OneWire-Bereich. Bezüglich Firmata (ohne OneWire) ist folgendes relevant: Mit der aktuellen Firmata-Version kannst du (fast) beliebige Firmata und ConfigurableFirmata Versionen verwenden, also auch solche mit Versionsnummern, die größer sind als 2.6 (das war bisher die Obergrenze, wenn man keine Anpassungen an FHEM oder Firmata machen wollte). Daher empfiehlt es sich nun, die aktuellste verfügbare Firmata-Version zu verwenden. Ein Teil der Wiki-Hinweise sind deshalb seit Jahrewechsel überarbeitungsbedürftig . Wenn du also OneWire einsetzten willst, dann greife momentan zu ConfigurableFirmata 2.10. Für einen schnellen Verbindungstest empfehle ich trotzdem zuerst den Sketch StandardFirmataEthernet. Die Netzwerkparameter einstellen und nach ein paar Minuten solltest du zumindest eine Verbindung mit FHEM haben (State=Initialized).
ZitatWie kann ich herausfinden, was das "e01a02" bedeutet?Siehe hier (https://github.com/firmata/protocol/blob/master/protocol.md) und hier (https://github.com/firmata/protocol/blob/master/onewire.md). Du empfängst (FRM:<) jede Sekunde einen analogen Messwert von Pin 0 (E0). Dein Firmata-Device reagiert also und scheinbar ist ein FRM_AD-Device für Pin 0 konfiguriert, was merkwürdig ist, da du ja OneWire machen willst. Ohne das Logging vor dem 1. "e01a02" kann man aber nicht herausfinden, woran das liegen könnte.
ZitatBei Gelegenheit versuche ich Async.Das soll auch gehen, aber klemmt scheinbar auf dem OWX-Seite manchmal. Weiter vorn im Thread war eine Info dazu von @dirigent.
ZitatDu empfängst (FRM:<) jede Sekunde einen analogen Messwert von Pin 0 (E0). Dein Firmata-Device reagiert also und scheinbar ist ein FRM_AD-Device für Pin 0 konfiguriert, was merkwürdig ist, da du ja OneWire machen willst. Ohne das Logging vor dem 1. "e01a02" kann man aber nicht herausfinden, woran das liegen könnte.Ja. Ich hoffe, ich hatte oben schon erwähnt, dass ich (zusätzlich) einen AnalogIn definiert hatte, um feststellen zu können, ob ich Firmata-Verbindung habe.
ZitatSiehe hier und hierKlasse,
Zitat2018.01.11 15:12:34 5: Arduino FRM:>f90000
2018.01.11 15:12:34 5: SW: f90000
2018.01.11 15:12:34 5: Arduino FRM:>f079f7
2018.01.11 15:12:34 5: SW: f079f7
2018.01.11 15:12:35 5: Arduino setup stage 1
2018.01.11 15:12:35 5: Arduino setup stage 1
2018.01.11 15:12:36 5: Arduino FRM:<f90206f079020a4f0057004600690072006d006100740061006200750069006c
2018.01.11 15:12:36 5: Arduino setup stage 1
2018.01.11 15:12:36 5: Arduino FRM:<00640065007200320030003100380030003100310031002e0069006e006f00f7
2018.01.11 15:12:36 5: Arduino setup stage 1
2018.01.11 15:12:36 3: Arduino Firmata Firmware Version: OWFirmatabuilder20180111.ino V_2_10 (using Protocol Version: V_2_06)
2018.01.11 15:12:36 5: Arduino FRM:>f069f7
2018.01.11 15:12:36 5: SW: f069f7
2018.01.11 15:12:36 5: Arduino FRM:>f06bf7
2018.01.11 15:12:36 5: SW: f06bf7
2018.01.11 15:12:36 5: Arduino FRM:<f90206f079020a4f0057004600690072006d006100740061006200750069006c
2018.01.11 15:12:36 5: Arduino setup stage 2
2018.01.11 15:12:36 5: Arduino FRM:<00640065007200320030003100380030003100310031002e0069006e006f00f7
2018.01.11 15:12:36 5: Arduino setup stage 2
2018.01.11 15:12:36 5: Arduino FRM:<f07155006e00680061006e0064006c0065006400200073007900730065007800
2018.01.11 15:12:36 5: Arduino setup stage 2
2018.01.11 15:12:36 5: Arduino FRM:<200063006f006d006d0061006e006400f7f06c7f7f07017f07017f07017f0701
2018.01.11 15:12:36 3: received String_data: Unhandled sysex command
2018.01.11 15:12:36 5: Arduino FRM:>f069f7
f0 - Start SYSEX
69 - ANALOG_MAPPING_QUERY # warum fragt der hier nach analogen..
f7 - End SYSEX
2018.01.11 15:12:36 5: Arduino FRM:<f07155006e00680061006e0064006c0065006400200073007900730065007800
f06c7f7f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f07017f7f7ff7
Arduino FRM:>f07a6807f7
f0
7a setze analoge polling zeit
68 auf .. 1896 ms
07
f7
ZitatMeine Haupt-Frage: Warum fragt FRM nach Analog-Werten, wenns doch anscheinend erkannt hat, dass der Arduino gar kein Analog unterstützt ( kein Internal "analog-pins"Die bisherigen FRM-Versionen wollten auch dann die Verbindung zum Firmata-Device herstellen, wenn irgendetwas bei den Capability-Abfragen schief geht und haben es der Anwender-Konfiguration überlassen, ob es plausibel war oder nicht. Es gab bis zum Update Anwender von FRM, die keine "xxx_pins/resolution" Internals angezeigt bekommen haben (siehe z.B. hier (https://forum.fhem.de/index.php/topic,81815.msg743075.html#msg743075)). Natürlich könnte man das bei der neuen Version verriegeln. Auch beim Setzen des Sampling-Intervals könnte automatisch eine 0 senden, wenn weder analoge Eingangspins bzw. I2C-Pins gemeldet werden. Das ist aber alles Kategorie "nice to have" und könnte einige experimentierfreudige Anwender stören. Das nächste geplante Update von FRM_IN wird übrigens tatsächlich von den Capabilities Gebrauch machen, um den Pin-Mode PULLUP abwärtskompatibel unterstützen zu können.
Zitat... und warum zeigt Firmata keine Digital-Pins an, wenn doch der Arduino (fälschlicherweise?!?) behauptet, er könne es?Woraus schließt du "behauptet"? Aus "f06c7f7f07017f07017f07017f0701..."? Ja, diese Antwort ist auf den 1. Blick merkwürdig, bedeutet aber Pin 0: -, Pin 1: -, Pin 2: OneWire, Pin 3: OneWire, ... - da ist nichts mit INPUT oder OUTPUT dabei. "0701" bedeutet nicht OneWire + INPUT sondern OneWire mit resolution=1.
ZitatNach einem reboot des Raspberry läufts. ab-, und anstecken des Arduino, als auch ein "shutdown restart" sind NICHT ausreichend!Schön dass es läuft, aber trotzdem ein bisschen merkwürdig. FHEM selbst kennt keinen Unterschied zwischem Neustart (/etc/init.d/fhem stop/start bzw. "shutdown restart") und Booten. Wenn man wirklich booten muss, um ein Problem zu lösen, dann liegt die Ursache im Bereich Betriebssystem (z.B. I/O-Recourcen) oder Hardware (z.B. Netzteil Spannungsstabilität).
Zitat"0701" bedeutet nicht OneWire + INPUT sondern OneWire mit resolution=1.Zitat
Ahhh... das war mein Fehler. Dann hat der Arduino ja alles richtig gemacht.
Hab ich im Protokoll tatsächlich übersehen.Zitatdie Verbindung zum Firmata-Device herstellen[...]Anwender-KonfigurationWenn ich das richtig verstehe, glaubte Firmata, dass ich noch einen Analogen PIN abfragen wollte?
Meine Anwender-Konfiguration sagt aber nichts (mehr) von analog. Spätestens nachdem ich FHEM neu gestartet habe, müssten alle Überreste des Analogen Inputs weg sein (dachte ich zumindest).
Gut, legen wir das solange zu den Akten, bis mir einfällt, wie ich das reproduzieren könnte.ZitatWenn man wirklich booten muss, um ein Problem zu lösen, dann liegt die Ursache im Bereich Betriebssystem (z.B. I/O-Recourcen) oder Hardware (z.B. Netzteil Spannungsstabilität).Stimme ich dir zu, und ich vermute auch eher das Betriebssystem (/dev/ttyUSBx) als Ursache.
Allerdings weiss das Betriebssystem nix von FRM und AnalogPins...
Und ich erwarte von meinem Raspian, dass beim entfernen des USB-Steckers von einem Gerät sämtliche Kernelmodule entladen werden, bis es das nächste mal verbunden wird...
Grüße,
Stephan
ZitatWenn man dann get OWX devices aufruft, werden diese angezeigt - seltsam...Zum Glück nachvollziehbar, denn diese Funktion ist in OWX einerseits schnittstellenspezifisch umgesetzt und prüft andererseits nicht den State.
2018.01.21 10:28:12 5: Cmd: >define in1 FRM_IN 3<
2018.01.21 10:28:12 5: Loading ./FHEM/20_FRM_IN.pm
2018.01.21 10:28:12 1: reload: Error:Modul 20_FRM_IN deactivated:
Bareword "PIN_PULLUP" not allowed while "strict subs" in use at ./FHEM/20_FRM_IN.pm line 97, <$fh> line 39.
2018.01.21 10:28:12 0: Bareword "PIN_PULLUP" not allowed while "strict subs" in use at ./FHEM/20_FRM_IN.pm line 97, <$fh> line 39.
{qx(wget -O /opt/fhem/FHEM/11_OWX_FRM.pm https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/11_OWX_FRM.pm)}
shutdown restart
installiert. Alle Module laufen gut. Bisher keine Fehler.ZitatOder ist das pah's Gebiet?Gute Frage. Habe mich bisher noch nicht mit den Regeln für die Wiki auseinander gesetzt, das steht noch auf der ToDo-Liste.
error
I2C: Too few bytes received
2018-02-16 04:13:42
Internals:
I2C_Address 64
IODev Saeule
NAME Saeule_SHT21
NR 117
STATE 1.6*C - 119.0 %
Saeule_SENDSTAT Too few bytes received
TYPE I2C_SHT21
READINGS:
2018-02-16 04:08:40 humidity 119.0
2018-02-16 04:08:40 state T: 1.6 H: 119.0
2018-02-16 04:13:41 temperature 1.6
Attributes:
IODev Saeule
event-on-change-reading temperature:0.3,humidity:0.7
poll_interval 5
room FIRMATA,Garten,Sensoren
stateFormat temperature*C - humidity %
verbose 0
Internals:
CONNECTS 1
DEF 3030 global
DRIVER_VERSION 0.63
DeviceName 3030
FD 39
NAME Saeule
NOTIFYDEV global
NR 26
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
protocol_version V_2_06
pwm_pins 3,5,6,9
pwm_resolutions 3:8,5:8,6:8,9:8
READINGS:
2018-02-16 04:13:42 error I2C: Too few bytes received
2018-02-15 12:17:10 state Initialized
SERIAL:
SocketDevice:
BUF
DeviceName 3030
FD 38
NAME Saeule_192.168.xxx.xxx_49153
NR 368
PEER 192.168.xxx.xxx
PORT 49153
SNAME Saeule
SSL
STATE Connected
TEMPORARY 1
TYPE FRM
Attributes:
i2c-config 30000
room FIRMATA
verbose 0
#if defined(ARDUINO_ARCH_AVR)
// Watchdog, only for AVR-based boards
// Note: Some board (e.g. Pro Mini ATmega328 5V 16MHz) do not have a bootlader with WDT support
// causing the board to get stuck until power cycled after the WDT has been triggered. You
// can update the default bootloader, e.g. using optiboot.
#include <avr/wdt.h>
#endif
...
void setup()
{
...
#ifdef _AVR_WDT_H_
// enable watchdog
// Note: Some board do not support a WDT timeout of 8 seconds. You should choose
// the maximum supported timeout of your board from the header file avr/wdt.h.
wdt_enable(WDTO_8S);
#endif
}
...
void loop()
{
#ifdef _AVR_WDT_H_
/* reset watchdog */
wdt_reset();
#endif
...
void systemResetCallback()
{
isResetting = true;
#ifdef _AVR_WDT_H_
// shorten watchdog timeout
wdt_enable(WDTO_500MS);
#ifdef W5100_H_INCLUDED
// try to reset Ethernet chip (takes about 350 ms)
W5100.init();
#endif
// perform hardware reset by triggering watchdog
delay(1000);
#else
// software reset
initDefaultState();
#endif
isResetting = false;
}
Zitat von: jensb am 03 Februar 2018, 21:43:56Ich habe mehr als 1 Jahr lang versucht, über PM, GitHub und über Rudi Kontakt mit Norbert aufzunehmen, aber leider ohne Erfolg. Es ist wirklich nicht mein Ding, die Projekte anderer Entwickler ohne explizites Einverständnis auch nur vorübergehend zu übernehmen.
2018.03.14 20:51:31.786 1: OWX_FRM::Define warning: version 7.10 not identical to OWX version 7.08
2018.03.14 20:51:36.254 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 674.
2018.03.14 20:51:36.258 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 681.
2018.03.14 20:51:36.262 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 688.
2018.03.14 20:51:36.266 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 695.
2018.03.14 20:51:36.270 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 702.
2018.03.14 20:51:36.278 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 710.
2018.03.14 20:51:36.656 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 875.
2018.03.14 20:51:36.805 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055, <$fh> line 971.
2018.03.14 20:51:36.829 1: Including ./log/fhem.save
2018.03.14 20:51:37.054 1: Error: >OWX:6< has no TYPE, but following keys: ><
2018.03.14 20:51:37.619 1: usb create starting
2018.03.14 20:51:38.152 1: usb create end
2018.03.14 20:51:38.153 0: Featurelevel: 5.8
2018.03.14 20:51:38.154 0: Server started with 133 defined entities (fhem.pl:16403/2018-03-13 perl:5.024001 os:linux user:fhem pid:13275)
2018.03.14 20:51:39.275 1: HMLAN_Parse: LAN new condition ok
2018.03.14 20:51:42.484 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_FRM.pm line 1051.
2018.03.14 20:51:52.991 1: OWX_Discover: 1-Wire devices found on bus DS18B20 (WWAuslauf,Ruecklauf,WWVorl,WWZP,Vorlauf)
2018.03.14 20:52:31.788 1: OWX_Init called for bus DS18B20 with interface state Initialized, now going for detect
2018.03.14 20:52:31.788 1: OWX: 1-Wire bus DS18B20: interface Firmata detected in Firm
2018.03.14 20:52:31.871 1: OWX_Discover: 1-Wire devices found on bus DS18B20 (WWAuslauf,Ruecklauf,WWVorl,WWZP,Vorlauf)
PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 2055
Error: >OWX:6< has no TYPE, but following keys: ><
if (client.connected() && (currentMillis - pingSent) >= PING_PERIOD)
{
// send some data to detect loss of connection indirectly
Firmata.sendString("ping");
pingSent = currentMillis;
}
// KEEPALIVE START
#define KEEPALIVE_PERIOD 300000 // [ms] =5min
#define PIN_KEEPALIVE_LISTEN 6
#define PIN_SET_IN_EMERGENCY_1 7
#define PIN_SET_IN_EMERGENCY_2 8
// KEEPALIVE END
// KEEPALIVE START
unsigned long previousKeepaliveMillis = 0; // store the current value from millis()
int missingKeepaliveMsgs = 0;
int lastKeepalivePinState = 0;
byte keepaliveEmergencyMode = 0;
int pinState1;
int pinState2;
// KEEPALIVE END
// KEEPALIVE START
if (lastKeepalivePinState != digitalRead(PIN_KEEPALIVE_LISTEN)) {
previousKeepaliveMillis = currentMillis;
lastKeepalivePinState = digitalRead(PIN_KEEPALIVE_LISTEN);
if (keepaliveEmergencyMode > 0) {
// leaving emergency mode
// restore pin states
//digitalWrite(PIN_SET_IN_EMERGENCY_1, pinState1);
//digitalWrite(PIN_SET_IN_EMERGENCY_2, pinState2);
// inform fhem about emergency mode
keepaliveEmergencyMode = 0;
Firmata.sendString("Keepalive: Leaving emegency mode!");
}
}
if (((currentMillis - previousKeepaliveMillis) > (KEEPALIVE_PERIOD + 60000)) && (keepaliveEmergencyMode == 0)) {
missingKeepaliveMsgs++;
Firmata.sendString("Keepalive: Keepalive message missing.");
}
if (((currentMillis - previousKeepaliveMillis) > (3*KEEPALIVE_PERIOD + 60000)) && (keepaliveEmergencyMode == 0)) {
// starting emergency mode
// store pinstates
pinState1 = digitalRead(PIN_SET_IN_EMERGENCY_1);
pinState2 = digitalRead(PIN_SET_IN_EMERGENCY_2);
keepaliveEmergencyMode = 1;
digitalWrite(PIN_SET_IN_EMERGENCY_1, LOW);
digitalWrite(PIN_SET_IN_EMERGENCY_2, LOW);
Firmata.sendString("Keepalive: Starting emegency mode!");
}
// KEEPALIVE END
defmod Arduino_Heizung_Keepalive FRM_OUT 6
defmod at_Arduino_Heizung_Keepalive at +*00:05:00 set Arduino_Heizung_Keepalive toggle
void setPinModeCallback(byte pin, int mode)
{
if (Firmata.getPinMode(pin) == PIN_MODE_IGNORE)
return;
// fixed digital inputs
if (pin == MY_PULLUP_PIN && mode != PIN_MODE_PULLUP)
return;
// fixed digital outputs
if (pin == MY_OUTPUT_PIN && mode != OUTPUT)
return;
...
}
void setup()
{
...
initFirmata();
// fixed digital inputs
pinMode(PIN_TO_DIGITAL(MY_PULLUP_PIN), INPUT_PULLUP);
// fixed digital outputs
pinMode(PIN_TO_DIGITAL(MY_OUTPUT_PIN ), OUTPUT);
digitalWrite(PIN_TO_DIGITAL(MY_OUTPUT_PIN ), LOW); // initial state after boot/reset
}
Zitat von: FhemPiUser am 25 März 2018, 19:39:56
...falls es jemand anders benötigt anbei der Code für die keep alive Erweiterung der Arduino StandardFirmataEthernet inkl. Notfallmodus und -recovery:
Definitionen:Code Auswählen// KEEPALIVE START
#define KEEPALIVE_PERIOD 300000 // [ms] =5min
#define PIN_KEEPALIVE_LISTEN 6
#define PIN_SET_IN_EMERGENCY_1 7
#define PIN_SET_IN_EMERGENCY_2 8
// KEEPALIVE END
Globale Variablen:Code Auswählen// KEEPALIVE START
unsigned long previousKeepaliveMillis = 0; // store the current value from millis()
int missingKeepaliveMsgs = 0;
int lastKeepalivePinState = 0;
byte keepaliveEmergencyMode = 0;
int pinState1;
int pinState2;
// KEEPALIVE END
Code hinzugefügt am Ende von loop():Code Auswählen
// KEEPALIVE START
if (lastKeepalivePinState != digitalRead(PIN_KEEPALIVE_LISTEN)) {
previousKeepaliveMillis = currentMillis;
lastKeepalivePinState = digitalRead(PIN_KEEPALIVE_LISTEN);
if (keepaliveEmergencyMode > 0) {
// leaving emergency mode
// restore pin states
//digitalWrite(PIN_SET_IN_EMERGENCY_1, pinState1);
//digitalWrite(PIN_SET_IN_EMERGENCY_2, pinState2);
// inform fhem about emergency mode
keepaliveEmergencyMode = 0;
Firmata.sendString("Keepalive: Leaving emegency mode!");
}
}
if (((currentMillis - previousKeepaliveMillis) > (KEEPALIVE_PERIOD + 60000)) && (keepaliveEmergencyMode == 0)) {
missingKeepaliveMsgs++;
Firmata.sendString("Keepalive: Keepalive message missing.");
}
if (((currentMillis - previousKeepaliveMillis) > (3*KEEPALIVE_PERIOD + 60000)) && (keepaliveEmergencyMode == 0)) {
// starting emergency mode
// store pinstates
pinState1 = digitalRead(PIN_SET_IN_EMERGENCY_1);
pinState2 = digitalRead(PIN_SET_IN_EMERGENCY_2);
keepaliveEmergencyMode = 1;
digitalWrite(PIN_SET_IN_EMERGENCY_1, LOW);
digitalWrite(PIN_SET_IN_EMERGENCY_2, LOW);
Firmata.sendString("Keepalive: Starting emegency mode!");
}
// KEEPALIVE END
...und in fhem das periodische Setzen eines Keepalive FRM_OUT devices:Code Auswählen
defmod Arduino_Heizung_Keepalive FRM_OUT 6
defmod at_Arduino_Heizung_Keepalive at +*00:05:00 set Arduino_Heizung_Keepalive toggle
Zitat
FRM_IN mit korrekten Zeitstempeln pro PIN bei keiner Änderung
ZitatWenn sich ein Eingangspin ändert, wird mittels FIRMATA ein Telegramm mit allen Pinzuständen gesendet und alle FHEM-FRM_IN-Geräte werden aktualisiert.Firmata ist relativ sparsam und sendet den Zusand von Digitaleingängen nur bei Änderungen, allerdings Portweise, also immer für 8 Eingänge. Daraus resultiert das von dir beobachtete Verhalten.
Leider ändert sich dann auch der Readings-Zeitstempel der Pins, die sich nicht geändert haben.
ZitatEine Aktualisierung des Zeitstempes nur bei den geänderten Pins wäre recht hilfreich bei Szenarien wie: der Zustand von mehreren Türen und Fenstern wird übertragen und man will den Zeitpunkt des betroffenen Gerätes feststellen.Die Anforderung nur bei tatsächlicher Änderung ein Ereignis zu generieren bzw. den Zeitstempel zu aktualisieren wird immer wieder benötigt. Die von dir gewünschte Funktion ist aber bereits weitgehend implementiert (siehe 20_FRM_IN.pm Zeile 135ff: "my $changed = ..."). Sie unterdrückt aktuell bereits die Event-Generierung.
Ist so eine Änderung prinzipiell möglich, oder sprechen von mir nicht bedachte Effekte dagegen?
ZitatIm Modul 20_FRM_IN.pm muss in Zeile 158 lediglich der Funktionsaufruf main::readingsBulkUpdate in main::readingsBulkUpdateIfChanged geändert werden.Das ist auch ein Lösungsansatz. Effektiver wäre es aber die Zeile 158 um 1 Zeile nach oben zu verschieben, denn dann muss FHEM nicht noch einmal herausfinden, was das Modul schon weiß. Ich werde mir das aber noch genauer ansehen.
ZitatEine Alternative zu dem obigen Vorschlag wäre die Nutzung des neuen Attributes timestamp-on-change-reading in Verbindung mit dem Attribut event-on-change-reading.Die readingFnAttributes sind im FHEM-Kern verankert und sollten daher unabhängig vom Modul funktionieren.
Leider funktioniert diese Variante aus ungeklärten Gründen nicht.
ZitatIst das dann so, dass man dann I2C-Geräte direkt (ohne spez. FRM-Modul) ansprechen kann (z.B. SSD1306)?Ja, aber ob das praktikabel ist, hängt davon ab, wie komplex der erforderliche Ablauf ist.
sub GP_Catch($) {
my $exception = shift;
if ($exception) {
$exception =~ /^(.*)( at.*FHEM.*)$/;
return $1;
}
return undef;
}