FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Dr. Boris Neubert am 16 Januar 2017, 21:27:46

Titel: Fehlermeldung in readingsBulkUpdate()
Beitrag von: Dr. Boris Neubert am 16 Januar 2017, 21:27:46
Hallo,

in readingsBulkUpdate() wird eine Fehlermeldung geloggt, wenn der Programmierer vergessen hat, readingsBeginUpdate() vor readingsBulkUpdate() aufzurufen, oder ein readingsEndUpdate() dazwischen hat. Die Meldung muss lauten:

    Log 1, "readingsBulkUpdate($name,$reading,$value) missed to call ".
                "readingsBeginUpdate first.";


Viele Grüße
Boris
Titel: Antw:Fehlermeldung in readingsBulkUpdate()
Beitrag von: Dr. Boris Neubert am 16 Januar 2017, 21:43:35
Sehr hilfreich für den Eintwickler ist danach noch ein

stacktrace()

einzuschieben.
Titel: Antw:Fehlermeldung in readingsBulkUpdate()
Beitrag von: rudolfkoenig am 17 Januar 2017, 10:38:21
Bin etwas verschlafen, vlt, sehe ich was nicht, aber:
- was genau ist das Problem mit der aktuellen Meldung? Dass "Bulk" fehlt? Korrekterweise muesste es readingsSingleUpdate or readingsBulkUpdate heissen, ich finde aber die aktuelle Loesung auch akzeptabel. Betrifft ja nur Entwickler, und die duerfen ein bisschen Denken.
- habe stacktrace() eingebaut/eingecheckt. Es wird wohl seltene Faelle geben, wo es hilfreich ist.
Titel: Antw:Fehlermeldung in readingsBulkUpdate()
Beitrag von: Markus Bloch am 17 Januar 2017, 10:54:53
Naja, da ja ein readingsBeginUpdate() bei readingsSingleUpdate() implizit mit aufgerufen wird, kann diese Logmeldung ja nur bei einem Aufruf von readingsBulkUpdate() erscheinen.
Titel: Antw:Fehlermeldung in readingsBulkUpdate()
Beitrag von: Dr. Boris Neubert am 17 Januar 2017, 11:07:22
Danke.

Ich bin ein Freund davon, Fehlermeldungen erzählen zu lassen, aus welcher Routine sie kommen. Markus hat allerdings recht So weit hatte ich gestern nicht mehr gedacht.

Ohne stacktrace wäre der Bug in DBPlan kaum zu finden gewesen. Gut, dass das drin ist.

Grüße
Boris