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
Sehr hilfreich für den Eintwickler ist danach noch ein
stacktrace()
einzuschieben.
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.
Naja, da ja ein readingsBeginUpdate() bei readingsSingleUpdate() implizit mit aufgerufen wird, kann diese Logmeldung ja nur bei einem Aufruf von readingsBulkUpdate() erscheinen.
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