Fehlermeldung in readingsBulkUpdate()

Begonnen von Dr. Boris Neubert, 16 Januar 2017, 21:27:46

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Sehr hilfreich für den Eintwickler ist danach noch ein

stacktrace()

einzuschieben.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

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.

Markus Bloch

Naja, da ja ein readingsBeginUpdate() bei readingsSingleUpdate() implizit mit aufgerufen wird, kann diese Logmeldung ja nur bei einem Aufruf von readingsBulkUpdate() erscheinen.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Dr. Boris Neubert

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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!