Hallo zusammen,
ich habe so eine Withings Smart Body Analyzer (was auch immer an dem Ding Smart ist). Ich habe den SMBA über das Withings-Modul eingebunden.
32_withings.pm 22993 2020-10-20 08:22:30Z moises
Soweit kommen Daten (zeitnah) an, aber ich bekomme den STATE nicht ordentlich formatiert:
Internals:
.https https
CFGFN
DEF 3757535
Device 3757535
DeviceType Body Scale
FUUID 60110c92-f33f-a67d-9fe8-a0fe02699a358824
IODev general.interfaces.withings
LAST_DATA 2021-01-30 18:00:12
LAST_POLL 2021-01-30 18:53:52
NAME house.firstfloor.bath.scale.withings
NR 30923
NTFY_ORDER 50-house.firstfloor.bath.scale.withings
STATE 25.6 °C, 573 ppm
SUBTYPE DEVICE
TYPE withings
created 1432046884
fw 1721
lastsessiondate 1612026816
lastweighindate 1610362647
location 51.9293,8.37784
model Smart Body Analyzer
modelID 4
sn SN-00:24:e4:32:53:4a
status 0
typeID 1
.attraggr:
.attrminint:
Helper:
DBLOG:
batteryPercent:
general.system.log.db:
TIME 1612029232.90169
VALUE 67
batteryState:
general.system.log.db:
TIME 1612029232.90169
VALUE ok
co2:
general.system.log.db:
TIME 1612027433.35991
VALUE 573
lastSessionDate:
general.system.log.db:
TIME 1612029232.90169
VALUE 2021-01-30 18:13:36
lastWeighinDate:
general.system.log.db:
TIME 1612029232.90169
VALUE 2021-01-21 11:57:27
state:
general.system.log.db:
TIME 1611733962.16528
VALUE 528
temperature:
general.system.log.db:
TIME 1612027433.34348
VALUE 25.6
OLDREADINGS:
READINGS:
2021-01-30 18:53:53 .lastData 1612026013
2021-01-30 18:53:52 .pollData 1612029232
2021-01-30 18:53:52 .pollProperties 1612029232
2021-01-30 18:53:52 batteryPercent 67
2021-01-30 18:53:52 batteryState ok
2021-01-30 18:00:12 co2 573
2021-01-30 18:53:52 lastSessionDate 2021-01-30 18:13:36
2021-01-30 18:53:52 lastWeighinDate 2021-01-21 11:57:27
2021-01-30 18:00:12 temperature 25.6
Attributes:
IODev general.interfaces.withings
alias Withings Body Smart Analyzer
group Luftqualität
icon withings.scale@black
room OG->Bad
stateFormat temperature °C, co2 ppm
erzeugt als STATE wie erwartet
STATE 25.6 °C, 573 ppm
angezeigt wird mir das Device aber wie im Anhang. Warum?
Bei mir schaut es wie im Anhang aus, wenn ich die gezeigten Attribute / Definition uebernehme.
Da ich kein withings.scale Icon habe, habe ich eine Andere genommen.
=> Ich kann das Problem nicht nachstellen.
Das statt STATE angezeigte Icon kommt mir nicht bekannt vor, jedenfalls finde ich es nicht im FHEM/www/images.
Ich wuerde mit Rechte-Maustaste => Inspect anfangen, um rauszufinden wo es herkommt.
Zitat von: rudolfkoenig am 31 Januar 2021, 11:47:35
Bei mir schaut es wie im Anhang aus, wenn ich die gezeigten Attribute / Definition uebernehme.
Da ich kein withings.scale Icon habe, habe ich eine Andere genommen.
=> Ich kann das Problem nicht nachstellen.
Sobald ich das Icon
withings.svg lösche oder auch nur umbenenne, bekomme ich auch den
STATE korrekt angezeigt. Ist das Icon vorhanden, benutzt jedes Device vom Type
withings automatisch das dSI
withings.svg. Das ist jetzt auch erstmal mein würgaround.
Zitat von: rudolfkoenig am 31 Januar 2021, 11:47:35
Das statt STATE angezeigte Icon kommt mir nicht bekannt vor, jedenfalls finde ich es nicht im FHEM/www/images.
Ich wuerde mit Rechte-Maustaste => Inspect anfangen, um rauszufinden wo es herkommt.
Das Icon kommt aus einem withings-Iconpack, der im Icons-Thread mal verlinkt wurde. Ich habe aber mal testweise das Icon
fhemSVG/markinse_in.svg (zufallswahl) nach fhemSVGwithings.svg kopiert und schon wird das als dSI angezeigt, obwohl sich der
STATE nicht verändert hat.
Das kannst du ja mal ausprobieren.
Um noch einen weiteren Fall auszuprobieren, habe ich mal folgendes Attribut für meinen SMBA gesetzt (wieder Zufallswahl):
attr house.firstfloor.bath.scale.withings devStateIcon .+:rc_VOLDOWN
Das überschreibt nun das Default-dSI.
Kurzum: Irgendwas sorgt dafür, dass withings-Devices automatisch withings.svg als festen dSI zugewiesen bekommen, wenn kein explizites dSI gesetzt ist.
Das Verhalten scheint nicht aus 32_withings, sondern vom devStateIcon-Handling zu kommen:
Testdefinition:
defmod general.test.dummy dummy
Dazu habe ich mal dummy.svg angelegt:
$ ll *dummy.svg*
lrwxrwxrwx 1 fhem dialout 14 Jan 31 15:25 dummy.svg -> logo_apple.svg
Ergebnis siehe Anhang.
Stimmt: STATE wird durch ein Icon ersetzt, falls was passendes gefunden wurde.
Es wird gesucht nach NAME.STATE, NAME, TYPE.STATE, TYPE.
Wobei STATE jeweils erst mit eventMap-Uebersetzung, und dann ohne Uebersetzung geprueft wird.
Zitat von: rudolfkoenig am 01 Februar 2021, 09:43:55
Stimmt: STATE wird durch ein Icon ersetzt, falls was passendes gefunden wurde.
Es wird gesucht nach NAME.STATE, NAME, TYPE.STATE, TYPE.
Wobei STATE jeweils erst mit eventMap-Uebersetzung, und dann ohne Uebersetzung geprueft wird.
Naja, aber das sollte doch nicht das explizit gesetzte devStateIcon überschreiben, oder?
Was passiert denn mit folgendem:
attr general.test.dummy devStateIcon .+:this_icon_does_not_exist
Also wenn explizit ein nicht existierendes Icon gesetzt wird? Das sollte den unveränderten STATE liefern.