NEWS
Absturz in fhem Adapter
-
jo beides kombiniert ist echt ein Burner
Mh, gerade bei mir probiert…readings unter Wert bei fhem.0.info.Configurations.ignoreReadings werden ignoriert
Alternativ:
event-on-change-reading = state
-
Bei mir leider nicht.
Beim Starten des Adapters wird zwar angezeigt, dass diese Readings ignoriert werden. Ich seh sie aber trotzdem und der Adapter schmiert ab.
Jou: Mit event-on-change-reading auf state gesetzt schmiert natürlich nix mehr ab.
Besagte Readings sollte ich auch nicht brauchen.
Das war ein spannender Abend. Vielen Dank für's gemeinsame Debuggen.
Aber jetzt hau ich mich auf's Ohr!
-
Schau ich mir die Tage mal noch in Ruhe an….
Jo war spannende Geschichte...man lerrnt nie aus
Mach ich jetzt auch....bis die Tage
Da fällt mir noch was ein:
Unter fhem.0.info.Debug.meta bei Wert Wecker eintragen.
Im ioBroker Log kommen Einträge wie das Device verarbeitet wird
-
Ok. Hab ich mal gemacht.
Ich habe übrigens für den Moment jetzt alles fhem Logging ausgeschaltet.
Muss ich dazu wieder was bestimmtes einschalten?
-
Das hier ist der debug Output:
fhem.0 2018-12-30 13:33:35.813 info [debug] check finished!!! fhem.0 2018-12-30 13:33:35.813 info [debug] >> state = off -> fhem.0.Wecker.state = off | type: string | read: true | role: state | Funktion: switch fhem.0 2018-12-30 13:33:35.813 info [debug] >> state = off -> fhem.0.Wecker.state_switch = false | type: boolean | read: true | write: true | role: switch | Funktion: switch fhem.0 2018-12-30 13:33:35.812 info [debug] >> sonosSZenabled = 0 -> fhem.0.Wecker.sonosSZenabled = 0 | type: number | read: true | role: value | Funktion: no fhem.0 2018-12-30 13:33:35.812 warn | included in fhem.x.info.Config.ignorePossibleSets fhem.0 2018-12-30 13:33:35.812 warn } fhem.0 2018-12-30 13:33:35.812 warn } fhem.0 2018-12-30 13:33:35.812 warn 'localtime' => 'W124/T05:50:00' fhem.0 2018-12-30 13:33:35.812 warn 'description' => 'L_04_A9Aeu_start wake up', fhem.0 2018-12-30 13:33:35.812 warn 'time' => 'W124/T04:50:00', fhem.0 2018-12-30 13:33:35.812 warn 'created' => '2018-11-05T05:49:50', fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'address' => '/api/<xyz>/sensors/4/state' fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'flag' => $VAR1->{'1'}{'recycle'} fhem.0 2018-12-30 13:33:35.812 warn 'body' => { fhem.0 2018-12-30 13:33:35.812 warn 'method' => 'PUT', fhem.0 2018-12-30 13:33:35.812 warn 'command' => { fhem.0 2018-12-30 13:33:35.812 warn 'name' => "Nat\x{fc}rlich Aufwachen Elke", fhem.0 2018-12-30 13:33:35.812 warn 'recycle' => $VAR1->{'1'}{'recycle'}, fhem.0 2018-12-30 13:33:35.812 warn 'status' => 'disabled', fhem.0 2018-12-30 13:33:35.812 warn '2' => { fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'created' => '2018-11-07T23:03:18' fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn } fhem.0 2018-12-30 13:33:35.812 warn 'flag' => $VAR1->{'1'}{'recycle'} fhem.0 2018-12-30 13:33:35.812 warn 'body' => { fhem.0 2018-12-30 13:33:35.812 warn 'address' => '/api/<xyz>/sensors/5/state', fhem.0 2018-12-30 13:33:35.812 warn 'method' => 'PUT', fhem.0 2018-12-30 13:33:35.812 warn 'command' => { fhem.0 2018-12-30 13:33:35.812 warn 'time' => 'W124/T05:29:00', fhem.0 2018-12-30 13:33:35.812 warn 'name' => "Nat\x{fc}rlich Aufwachen Alex", fhem.0 2018-12-30 13:33:35.812 warn 'status' => 'disabled', fhem.0 2018-12-30 13:33:35.812 warn 'recycle' => $VAR1->{'1'}{'recycle'}, fhem.0 2018-12-30 13:33:35.812 warn 'localtime' => 'W124/T06:29:00', fhem.0 2018-12-30 13:33:35.812 warn 'description' => 'L_04_njqbA_start wake up', fhem.0 2018-12-30 13:33:35.812 warn '4' => { fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'created' => '2018-11-05T05:49:50' fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn } fhem.0 2018-12-30 13:33:35.812 warn 'scene' => 'V080xDoezs6QZjg' fhem.0 2018-12-30 13:33:35.812 warn 'body' => { fhem.0 2018-12-30 13:33:35.812 warn 'address' => '/api/<xyz>/groups/0/action', fhem.0 2018-12-30 13:33:35.812 warn 'method' => 'PUT', fhem.0 2018-12-30 13:33:35.812 warn 'command' => { fhem.0 2018-12-30 13:33:35.812 warn 'time' => 'PT00:01:00', fhem.0 2018-12-30 13:33:35.812 warn 'status' => 'disabled', fhem.0 2018-12-30 13:33:35.812 warn 'recycle' => $VAR1->{'1'}{'recycle'}, fhem.0 2018-12-30 13:33:35.812 warn 'starttime' => '2018-12-27T04:50:00', fhem.0 2018-12-30 13:33:35.812 warn 'name' => 'L_04_A9Aeu', fhem.0 2018-12-30 13:33:35.812 warn 'localtime' => 'PT00:01:00', fhem.0 2018-12-30 13:33:35.812 warn 'autodelete' => $VAR1->{'1'}{'autodelete'}, fhem.0 2018-12-30 13:33:35.812 warn 'description' => 'L_04_A9Aeu_trigger end scene', fhem.0 2018-12-30 13:33:35.812 warn '3' => { fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'name' => 'L_04_njqbA' fhem.0 2018-12-30 13:33:35.812 warn 'starttime' => '2018-12-27T05:29:00', fhem.0 2018-12-30 13:33:35.812 warn 'recycle' => $VAR1->{'1'}{'recycle'}, fhem.0 2018-12-30 13:33:35.812 warn 'status' => 'disabled', fhem.0 2018-12-30 13:33:35.812 warn 'time' => 'PT00:01:00', fhem.0 2018-12-30 13:33:35.812 warn 'created' => '2018-11-07T23:03:18', fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'method' => 'PUT' fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'scene' => 'rG7qkF-1HZ8nT9W' fhem.0 2018-12-30 13:33:35.812 warn 'body' => { fhem.0 2018-12-30 13:33:35.812 warn 'address' => '/api/<xyz>/groups/0/action', fhem.0 2018-12-30 13:33:35.812 warn 'command' => { fhem.0 2018-12-30 13:33:35.812 warn 'description' => 'L_04_njqbA_trigger end scene', fhem.0 2018-12-30 13:33:35.812 warn 'autodelete' => $VAR1->{'1'}{'autodelete'}, fhem.0 2018-12-30 13:33:35.812 warn 'localtime' => 'PT00:01:00', fhem.0 2018-12-30 13:33:35.812 warn '5' => { fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn } fhem.0 2018-12-30 13:33:35.812 warn 'method' => 'PUT' fhem.0 2018-12-30 13:33:35.812 warn }, fhem.0 2018-12-30 13:33:35.812 warn 'status' => 0 fhem.0 2018-12-30 13:33:35.812 warn 'body' => { fhem.0 2018-12-30 13:33:35.812 warn 'address' => '/api/<xyz>/sensors/3/state', fhem.0 2018-12-30 13:33:35.812 warn 'command' => { fhem.0 2018-12-30 13:33:35.812 warn 'created' => '2018-12-17T14:41:39', fhem.0 2018-12-30 13:33:35.812 warn 'time' => 'PT00:00:10', fhem.0 2018-12-30 13:33:35.812 warn 'starttime' => '2018-12-17T14:41:39', fhem.0 2018-12-30 13:33:35.812 warn 'name' => 'Dimmer Switch 2 Reset', fhem.0 2018-12-30 13:33:35.812 warn 'status' => 'disabled', fhem.0 2018-12-30 13:33:35.812 warn 'recycle' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ), fhem.0 2018-12-30 13:33:35.812 warn 'autodelete' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ), fhem.0 2018-12-30 13:33:35.812 warn 'localtime' => 'PT00:00:10', fhem.0 2018-12-30 13:33:35.812 warn 'description' => 'Resets dimmer switch scene cycler', fhem.0 2018-12-30 13:33:35.812 warn '1' => { fhem.0 2018-12-30 13:33:35.812 warn [debug] >> hueSchedulesList = { fhem.0 2018-12-30 13:33:35.811 warn | included in fhem.x.info.Config.ignorePossibleSets fhem.0 2018-12-30 13:33:35.811 warn ] fhem.0 2018-12-30 13:33:35.811 warn } fhem.0 2018-12-30 13:33:35.811 warn } fhem.0 2018-12-30 13:33:35.811 warn '/schedules/2/status' => 'disabled' fhem.0 2018-12-30 13:33:35.811 warn 'success' => { fhem.0 2018-12-30 13:33:35.811 warn { fhem.0 2018-12-30 13:33:35.811 warn [debug] >> hueElkeLichtWeckerReturn = [ fhem.0 2018-12-30 13:33:35.811 info [debug] >> hueElkeLichtWecker = disabled -> fhem.0.Wecker.hueElkeLichtWecker = disabled | type: string | read: true | role: text | Funktion: no fhem.0 2018-12-30 13:33:35.811 warn | included in fhem.x.info.Config.ignorePossibleSets fhem.0 2018-12-30 13:33:35.811 warn ] fhem.0 2018-12-30 13:33:35.811 warn } fhem.0 2018-12-30 13:33:35.811 warn } fhem.0 2018-12-30 13:33:35.811 warn '/schedules/4/status' => 'disabled' fhem.0 2018-12-30 13:33:35.811 warn 'success' => { fhem.0 2018-12-30 13:33:35.811 warn { fhem.0 2018-12-30 13:33:35.811 warn [debug] >> hueAlexLichtWeckerReturn = [ fhem.0 2018-12-30 13:33:35.810 info [debug] >> hueAlexLichtWecker = disabled -> fhem.0.Wecker.hueAlexLichtWecker = disabled | type: string | read: true | role: text | Funktion: no fhem.0 2018-12-30 13:33:35.803 info [debug] > check Readings fhem.0 2018-12-30 13:33:35.802 info [debug] >> mixed = noArg -> fhem.0.Wecker.mixed | type: boolean | write: true | role: button | min: undefined | max: undefined | unit: undefined | states: undefined fhem.0 2018-12-30 13:33:35.802 info [debug] >> off = noArg -> fhem.0.Wecker.off | type: boolean | write: true | role: button | min: undefined | max: undefined | unit: undefined | states: undefined fhem.0 2018-12-30 13:33:35.802 info [debug] >> on = noArg -> fhem.0.Wecker.on | type: boolean | write: true | role: button | min: undefined | max: undefined | unit: undefined | states: undefined fhem.0 2018-12-30 13:33:35.801 info [debug] > check PossibleSets fhem.0 2018-12-30 13:33:35.801 info [debug] >> TYPE = dummy -> fhem.0.Wecker.Internals.TYPE = dummy | type: string | read: true | role: text fhem.0 2018-12-30 13:33:35.801 warn [debug] >> STATE = off | not included in fhem.x.info.Config.allowedInternals fhem.0 2018-12-30 13:33:35.800 warn [debug] >> NR = 307 | not included in fhem.x.info.Config.allowedInternals fhem.0 2018-12-30 13:33:35.800 info [debug] >> NAME = Wecker -> fhem.0.Wecker.Internals.NAME = Wecker | type: string | read: true | role: text fhem.0 2018-12-30 13:33:35.800 warn [debug] >> CHANGED = null | not included in fhem.x.info.Config.allowedInternals fhem.0 2018-12-30 13:33:35.799 info [debug] > check Internals fhem.0 2018-12-30 13:33:35.799 warn [debug] >> setList = on:noArg off:noArg mixed:noArg | not included in fhem.x.info.Config.allowedAttributes fhem.0 2018-12-30 13:33:35.799 info [debug] >> room = Schlafzimmer -> fhem.0.Wecker.Attributes.room = Schlafzimmer | type: string | read: true | write: true | role: text fhem.0 2018-12-30 13:33:35.798 warn [debug] >> fp_Home3D = 137,937,5,Wecker, | not included in fhem.x.info.Config.allowedAttributes fhem.0 2018-12-30 13:33:35.798 warn [debug] >> event-on-change-reading = state | not included in fhem.x.info.Config.allowedAttributes fhem.0 2018-12-30 13:33:35.797 warn [debug] >> devStateIcon = on:ring@green off:ring@red mixed:ring@yellow | not included in fhem.x.info.Config.allowedAttributes fhem.0 2018-12-30 13:33:35.797 info [debug] >> alias = Wecker -> fhem.0.Wecker.Attributes.alias = Wecker | type: string | read: true | write: true | role: text fhem.0 2018-12-30 13:33:35.797 info [debug] > check Attributes fhem.0 2018-12-30 13:33:35.796 info [debug] check FHEM Device: Wecker</xyz></xyz></xyz></xyz></xyz>
-
Laut dem Log werden die Readings ignoriert…alles was bei debug warn=rot ist wird nicht synchronisiert.
Muss aber den Text von "included in fhem.x.info.Config.ignorePossibleSets" auf "included in fhem.x.info.Config.ignoreReadings" noch ändern
Danke
Wenn du Objekt Wecker komplett gelöscht hast kommen nach Neustart alle Readings wieder?
-
Im Moment kommen sie gar nicht, weil ich ja event-on-change-reading auf state gesetzt habe.
Müsste ich bei Gelegenheit nochmal ausprobieren, das Objekt Wecker zu löschen und neu anlegen zu lassen.
-
So. Eben nochmal ausprobiert:
event-on-change-reading Attribut gelöscht.
Objekt Wecker in iobroker gelöscht.
fhem Adapter in iobroker neu gestartet.
Effekt:
Wecker Objekt wird erzeugt, ohne die Readings aus ignoreReadings. -> Prima.
Bei Statuschange des Wecker-Objekts in fhem: Trotzdem Absturz des Adapters. -> Nicht prima.
-
Habe paar Sachen im Adapter geändert….
Mach mal nochmal update über github und teste erneut
-
Leider keine Änderung, wenn ich das event-on-change-reading rausnehme:
host.homie 2018-12-30 18:11:17.525 error instance system.adapter.fhem.0 terminated with code 0 (OK) Caught 2018-12-30 18:11:17.525 error by controller[0]: at Socket.Readable.push (_stream_readable.js:208:10) Caught 2018-12-30 18:11:17.525 error by controller[0]: at readableAddChunk (_stream_readable.js:250:11) Caught 2018-12-30 18:11:17.525 error by controller[0]: at addChunk (_stream_readable.js:263:12) Caught 2018-12-30 18:11:17.525 error by controller[0]: at Socket.emit (events.js:211:7) Caught 2018-12-30 18:11:17.525 error by controller[0]: at emitOne (events.js:116:13) Caught 2018-12-30 18:11:17.524 error by controller[0]: at Socket.telnetSocket.on.data (/opt/iobroker/node_modules/iobroker.fhem/lib/telnet.js:97:30) Caught 2018-12-30 18:11:17.524 error by controller[0]: at Telnet.emit (events.js:211:7) Caught 2018-12-30 18:11:17.524 error by controller[0]: at emitOne (events.js:116:13) Caught 2018-12-30 18:11:17.519 error by controller[0]: at Telnet.telnetIn.on.data (/opt/iobroker/node_modules/iobroker.fhem/main.js:2145:33) Caught 2018-12-30 18:11:17.519 error by controller[0]: at parseEvent (/opt/iobroker/node_modules/iobroker.fhem/main.js:212:25) Caught 2018-12-30 18:11:17.518 error by controller[0]: 2018-12-30 18:11:17.353 - error: fhem.0 TypeError: Cannot read property 'replace' of undefined Caught 2018-12-30 18:11:17.518 error by controller[0]: 2018-12-30 18:11:17.353 - fhem.0 uncaught exception: Cannot read property 'replace' of undefined Caught 2018-12-30 18:11:17.518 error by controller[0]: at Socket.Readable.push (_stream_readable.js:208:10) Caught 2018-12-30 18:11:17.518 error by controller[0]: at readableAddChunk (_stream_readable.js:250:11) Caught 2018-12-30 18:11:17.517 error by controller[0]: at addChunk (_stream_readable.js:263:12) Caught 2018-12-30 18:11:17.516 error by controller[0]: at Socket.emit (events.js:211:7) Caught 2018-12-30 18:11:17.516 error by controller[0]: at emitOne (events.js:116:13) Caught 2018-12-30 18:11:17.516 error by controller[0]: at Socket.telnetSocket.on.data (/opt/iobroker/node_modules/iobroker.fhem/lib/telnet.js:97:30) Caught 2018-12-30 18:11:17.516 error by controller[0]: at Telnet.emit (events.js:211:7) Caught 2018-12-30 18:11:17.516 error by controller[0]: at emitOne (events.js:116:13) Caught 2018-12-30 18:11:17.515 error by controller[0]: at Telnet.telnetIn.on.data (/opt/iobroker/node_modules/iobroker.fhem/main.js:2145:33) Caught 2018-12-30 18:11:17.515 error by controller[0]: at parseEvent (/opt/iobroker/node_modules/iobroker.fhem/main.js:212:25) Caught 2018-12-30 18:11:17.514 error by controller[0]: TypeError: Cannot read property 'replace' of undefined fhem.0 2018-12-30 18:11:17.353 error at Socket.Readable.push (_stream_readable.js:208:10) fhem.0 2018-12-30 18:11:17.353 error at readableAddChunk (_stream_readable.js:250:11) fhem.0 2018-12-30 18:11:17.353 error at addChunk (_stream_readable.js:263:12) fhem.0 2018-12-30 18:11:17.353 error at Socket.emit (events.js:211:7) fhem.0 2018-12-30 18:11:17.353 error at emitOne (events.js:116:13) fhem.0 2018-12-30 18:11:17.353 error at Socket.telnetSocket.on.data (/opt/iobroker/node_modules/iobroker.fhem/lib/telnet.js:97:30) fhem.0 2018-12-30 18:11:17.353 error at Telnet.emit (events.js:211:7) fhem.0 2018-12-30 18:11:17.353 error at emitOne (events.js:116:13) fhem.0 2018-12-30 18:11:17.353 error at Telnet.telnetIn.on.data (/opt/iobroker/node_modules/iobroker.fhem/main.js:2145:33) fhem.0 2018-12-30 18:11:17.353 error at parseEvent (/opt/iobroker/node_modules/iobroker.fhem/main.js:212:25) fhem.0 2018-12-30 18:11:17.353 error TypeError: Cannot read property 'replace' of undefined fhem.0 2018-12-30 18:11:17.353 error uncaught exception: Cannot read property 'replace' of undefined
-
Neuer Versuch
Update github und Test
Kannst du eigentlich aus den Readings "\n" in FHEM entfernen?
-
Jetzt stürzt er nicht mehr ab, sondern wirft jede Menge Meldungen aus, was er alles ignoriert.
Ich wüsste nicht, wie ich irgendwelche "\n" entferne.
Die kommen vermutlich durch den json Dumper rein. Den wiederum hab ich gebraucht, dass überhaupt was lesbares rauskommt. Sonst steht da nur ein Hash ohne Daten.
-
Ok Meldungen sind auf github wieder raus
-
Hallo Alex,
nach langer Suche ist dies die einzige Möglichkeit die "eigenen" Readings aus Script an ioBroker übertragen.
Mit zB "$niceHash1=~ s/\n//g;" wird \n=Zeilenumbruch entfernt.
\n in deinen Readings macht schon bei der Übertragung mit telnet jeweils eine einzelne Zeile, deshalb auch im Log ioBroker mehere Zeilen des Event state.
Gruß
LausiD
-
Hi LausiD,
danke für den Tipp. Das funktioniert auch.
Einzige Downside ist, dass es natürlich mit den \n in fhem für's Auge schöner lesbar war.
Das kann man aber verkraften.
In diesem Sinne: High five! War eine schöne produktive Zusammenarbeit.
Guten Rutsch und auf ein fantastisches 2019!
Gruß Alex