Aus dem Log 2018-12-27 23:21:25 CUL_HM HM_5C413B battery: ok
2018-12-27 23:21:25 CUL_HM HM_5C413B humidity: 59
2018-12-27 23:21:25 CUL_HM HM_5C413B T: 19.1 H: 59
2018-12-27 23:21:25 CUL_HM HM_5C413B temperature: 19.1
2018-12-27 23:21:25 CUL_HM HM_5C413B 1: 9.6
2018-12-27 23:21:25 CUL_HM HM_5C413B dewpoint: 10.9
Ich denke in der Funktion readingsBulkUpdate() muss der Name, nicht die Variable $ah_rname gesetzt werden.
my $ah_rname = AttrVal($hashName, "absoluteHumidity", undef);
if (defined($ah_rname)) {
readingsBulkUpdate($dev, $ah_rname, $abs_hunidity);
Log3($hashName, 5, "dewpoint $ah_rname= $abs_hunidity");
$aFeuchte = "A: " . $abs_hunidity if !defined($aFeuchte);
}
poste bitte mal ein komplettes list vom HM_5C413B
defmod HM_5C413B CUL_HM 5C413B
attr HM_5C413B IODev hmUART
attr HM_5C413B actCycle 000:10
attr HM_5C413B actStatus alive
attr HM_5C413B alias Küche_HM_5C413B
attr HM_5C413B autoReadReg 4_reqStatus
attr HM_5C413B expert 2_raw
attr HM_5C413B firmware 1.3
attr HM_5C413B group alle Sensoren
attr HM_5C413B model HM-WDS40-TH-I-2
attr HM_5C413B room 99_Geräte
attr HM_5C413B serialNr OEQ0670749
attr HM_5C413B subType THSensor
setstate HM_5C413B T: 20.5 H: 55
setstate HM_5C413B 2018-12-29 18:23:40 .protLastRcv 2018-12-29 18:23:40
setstate HM_5C413B 2018-12-29 00:35:19 Activity alive
setstate HM_5C413B 2018-12-28 23:33:02 D-firmware 1.3
setstate HM_5C413B 2018-12-28 23:33:02 D-serialNr OEQ0670749
setstate HM_5C413B 2018-12-29 18:23:40 1 9.8
setstate HM_5C413B 2018-12-29 18:23:40 battery ok
setstate HM_5C413B 2018-12-29 18:23:40 dewpoint 11.1
setstate HM_5C413B 2018-12-29 18:23:40 humidity 55
setstate HM_5C413B 2018-12-29 18:23:40 state T: 20.5 H: 55
setstate HM_5C413B 2018-12-29 18:23:40 temperature 20.5
so geht es richtig
my $ah_rname = AttrVal($hashName, "absoluteHumidity", undef);
if (defined($ah_rname)) {
$rname = "absoluteHumidity";
readingsBulkUpdate($dev, $rname, $abs_hunidity);
Log3($hashName, 5, "dewpoint $ah_rname= $abs_hunidity");
$aFeuchte = "A: " . $abs_hunidity if !defined($aFeuchte);
}
Poste bitte nach einmal ein list vom dem device with das Attribut gesetzt ist
Internals:
DEF 5C413B
IODev hmUART
LASTInputDev hmUART
MSGCNT 470
NAME HM_5C413B
NOTIFYDEV global
NR 33
NTFY_ORDER 50-HM_5C413B
STATE T: 19.8 H: 55
TYPE CUL_HM
hmUART_MSGCNT 470
hmUART_RAWMSG 050000353A86705C413B00000000C637
hmUART_RSSI -53
hmUART_TIME 2018-12-29 20:24:49
lastMsg No:3A - t:70 s:5C413B d:000000 00C637
protLastRcv 2018-12-29 20:24:49
protRcv 470 last_at:2018-12-29 20:24:49
rssi_at_hmUART cnt:470 min:-64 max:-48 avg:-52.13 lst:-53
READINGS:
2018-12-29 00:35:19 Activity alive
2018-12-28 23:33:02 D-firmware 1.3
2018-12-28 23:33:02 D-serialNr OEQ0670749
2018-12-29 20:24:49 1 9.4
2018-12-29 20:24:49 battery ok
2018-12-29 20:24:49 dewpoint 10.5
2018-12-29 20:24:49 humidity 55
2018-12-29 20:24:49 state T: 19.8 H: 55
2018-12-29 20:24:49 temperature 19.8
helper:
HM_CMDNR 58
mId 00BC
regLst ,0
rxType 132
supp_Pair_Rep 0
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +5C413B,00,00,00
nextSend 1546111489.11927
prefIO
rxt 0
vccu
p:
5C413B
00
00
00
mRssi:
mNo 3A
io:
hmUART:
-47
-47
prt:
bErr 0
sProc 0
q:
qReqConf 00
qReqStat
role:
chn 1
dev 1
rssi:
at_hmUART:
avg -52.136170212766
cnt 470
lst -53
max -48
min -64
Attributes:
IODev hmUART
actCycle 000:10
actStatus alive
alias Küche_HM_5C413B
autoReadReg 4_reqStatus
expert 2_raw
firmware 1.3
group alle Sensoren
model HM-WDS40-TH-I-2
room 99_Geräte
serialNr OEQ0670749
subType THSensor
Ne, ich meine das device wo das Attribut absoluteHumidity von dir gesetzt wurde. Ich vermute dass da der Wert 1 steht. Stimmt das ?
Ja genau so ist es
//edit
Mit meiner Änderung steht da natürlich absoluteHumidity
list TYPE=dewpoint
Gesendet von meinem Doogee S60 mit Tapatalk
Aye aye
Internals:
CMD_TYPE dewpoint
DEF dewpoint .* temperature humidity dewpoint
DEV_REGEXP .*
HUM_NAME humidity
NAME dewpointToAllDeviceReadings
NEW_NAME dewpoint
NR 156
NTFY_ORDER 10-dewpointToAllDeviceReadings
STATE active
TEMP_NAME temperature
TYPE dewpoint
Attributes:
absoluteHumidity 1
room 99_System
Bei vapourPressure (Zeile 322) ist im Code das gleiche Problem
//ups jetzt ist es richtig
also mit dem Attribut ,,absFeuchte" klappt es, wird nur eben die Warnung ausgegeben.
Du musst bei dem Attribut keine 1 sondern den Namen reinschreiben der erzeugt werden soll.
ne das ist falsch
Wie aktuell ist fhem im gesamten?
Gesendet von meinem Doogee S60 mit Tapatalk
obwohl es funktionieren würde
attr dewpointToAllDeviceReadings absFeuchte 1
wäre okay, für absoluteHumidity dann
attr dewpointToAllDeviceReadings absoluteHumidity absoluteHumidity
das ist doch doof
Stand ist von gestern
Ich habe bei mir auch noch absFeuchte als Attribut und Readings. Geht problemlos.
Werde morgen die neue Version testen.
Gesendet von meinem Doogee S60 mit Tapatalk
super, zum Test musst du das Attribut absFeuchte aber löschen.
Zitat von: FlatTV am 29 Dezember 2018, 21:38:54
ne das ist falsch
die cmdref sagt
absoluteHumidity <reading_name>
In addition the absolute humidity in g/m³ will be computed as reading <reading_name>.
und Dein reading heist '1'.
Wenn Du jetzt bei dem Attribut zb "absFeuchte" reinschreibst werden Deine Readings so genannt. Für mich sieht das sinnvoll aus.
oh, das die cmdref absFeuchte überhaupt nicht mehr beschreibt beschreibt habe ich übersehen :-[
Dann ist attr dewpointToAllDeviceReadings absoluteHumidity absoluteHumidity
zwar doof aber richtig.
tschuldigung
no prob, your welcome.
Es macht auch durchaus Sinn den Namen konfigurierbar zu halten weil man ja nie weiß ob in einem x-beliebigen device etwas ähnliches existiert. Bei einem hart kodierten Namen gibt es dann Kollisionen.
Schreibst noch ein gelöst vor den Titel ? Danke.
Das bedeutet das neue Attribut funktioniert kpl anderst als das alte.
Vorteil ist, man kann das neue Attribut mit dem alten Reading-Namen füttern und alles läuft wie zuvor.
Gesendet von meinem Doogee S60 mit Tapatalk