[gelöst] setreading mit Value 0 im Dummy geht nicht

Begonnen von blofield, 15 April 2021, 17:43:51

Vorheriges Thema - Nächstes Thema

blofield

Moin,

ich habe ein kleines Problem.
Ich möchte in einem Dummy ein reading mit setreading setzen. Das Value für das reading wird mit dbrep aus einer Datenbank geholt und zyklisch mit einem at geschrieben.
Das funktioniert auch prima, allerdings kann das Value auch mal "0" [null] sein. Immer wenn es "0" ist, bekomme ich allerdings den folgenden Fehler im Log:

Usage: setreading <name> [YYYY-MM-DD HH:MM:SS] <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.

Warum kann denn das Value in einem Dummy reading nicht 0 sein? Das halte ich für ziemlich legitim.
Was mache ich falsch?

Mein at:

+*01:00 {
{ fhem "setreading Tarif tarif ".DbReadingsVal("dbrep","Tarif:tarif",FmtDateTime(time),"") }}
}


Danke,
blofield

KernSani

Generell ist es kein Problem ein Reading mit mit setreading auf 0 zu setzen. Bist du denn sicher, dass eine "0" kommt und nicht einfach nichts (das würde auch die Fehlermeldung erklären) Dein Default-Wert ist zumindest "" (blank)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

jhohmann

Du kannst ja mal in dem Aufruf hinten den Default ändern, z.B. Blubb (oder auch 0  ;)):
DbReadingsVal("dbrep","Tarif:tarif",FmtDateTime(time),"Blubb")
Raspberry Pi 4 - bookworm / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna

blofield

Interessant,
ich bin davon ausgegangen, dass die 0 auch geliefert wird, weil die ja so in der Datenbank steht. Das hatte ich direkt in der Datenbank geprüft und alle anderen Werte kommen auch.
Wenn ich allerdings dbreadingsval direkt in FHEM aufrufe, dann kommt tatsächlich nichts! und solange kein Defaultwert definiert ist, gibt es einen Fehler.
Ich setze jetzt eine "0" als default und schaue mal ob das bei dbrep ein Feature oder Fehler ist ;)

Danke!