Hallo,
ich habe zu Hause noch ein HMS100TF. Da dachte ich, dass ich damit die Luftfeuchte im Wohnzimmer regulieren kann.
Also habe ich ein HM-LC-Sw1-Pl2 besorgt.
Die HMS100TF habe ich wie folgt ein gerichtet:
define HMS100TF_5feb HMS e86f
setuuid HMS100TF_5feb 5e00e9a4-f33f-a974-5de1-241ac25bb6486546
attr HMS100TF_5feb IODev FHZ_0
attr HMS100TF_5feb alias Temperatur Luftfeuchtigkeit FS20
attr HMS100TF_5feb event-on-change-reading 1
attr HMS100TF_5feb group Temperaturmessung
attr HMS100TF_5feb room Keller
define Temp_Feuchte readingsGroup HMS100TF_5feb:humidity
setuuid Temp_Feuchte 5e00e9a4-f33f-a974-ae43-facb30f47d50ed5a
attr Temp_Feuchte alias Temperatur Luftfeuchtigkeit FS20
attr Temp_Feuchte group Temperatur und Luftfeuchtigkeit
attr Temp_Feuchte mapping %ALIAS
attr Temp_Feuchte noheading 1
attr Temp_Feuchte notime 1
attr Temp_Feuchte room Allgemein,Wohnzimmer
attr Temp_Feuchte valueFormat {"humidity" => "%.0f %%"}
define HM_6C8844 CUL_HM 6C8844
setuuid HM_6C8844 5e04899d-f33f-a974-5eff-4d3e10be7d16ea05
attr HM_6C8844 .mId 00D8
attr HM_6C8844 IODev HMLAN1
attr HM_6C8844 IOgrp VCCU:HMLAN1
attr HM_6C8844 alias Steckdosenschalter
attr HM_6C8844 autoReadReg 4_reqStatus
attr HM_6C8844 eventMap on:an off:aus
attr HM_6C8844 expert 2_raw
attr HM_6C8844 firmware 2.6
attr HM_6C8844 group Schalter
attr HM_6C8844 model HM-LC-SW1-PL-DN-R1
attr HM_6C8844 peerIDs 00000000,
attr HM_6C8844 room Wohnzimmer
attr HM_6C8844 serialNr QEQ0010008
attr HM_6C8844 subType switch
attr HM_6C8844 webCmd an:aus
Die ReadingsGroup habe gemacht damit ich auf humidity zugreifen kann.
Die Steuerung erfoglt mit DOIF:
define Feuchtigkeit_Wohnzimmer DOIF ([Temp_Feuchte:humidity:d0] <= 41) (set HM_6C8844 on) DOELSEIF ([Temp_Feuchte:humidity:d0] >= 43) (set HM_6C8844 off)
setuuid Feuchtigkeit_Wohnzimmer 5e04894d-f33f-a974-c432-a3efafb951003706
attr Feuchtigkeit_Wohnzimmer room Wohnzimmer
Ich habe das DOIF mit und ohne do always getestet.
Mein Problem ist, dass die Steckdose nicht geschaltet wird.
Ich vermute das Problem in meiner DOIF-Konstuktion, finde aber den Fehler nicht.
Hier noch die Lists:
ZitatInternals:
CFGFN ./FHEM/Allgemein_271A.cfg
DEF HMS100TF_5feb:humidity
FUUID 5e00e9a4-f33f-a974-ae43-facb30f47d50ed5a
NAME Temp_Feuchte
NR 124
NTFY_ORDER 50-Temp_Feuchte
STATE Initialized
TYPE readingsGroup
changed 0
CONTENT:
HMS100TF_5feb 1
CONTENT2:
DEVICES:
ARRAY(0x280af98)
fhem:
lastDefChange 973
last_update 1577645193.40188
helper:
DEF
mapping %ALIAS
valueFormat:
humidity %.0f %%
Attributes:
alias Temperatur Luftfeuchtigkeit FS20
group Temperatur und Luftfeuchtigkeit
mapping %ALIAS
noheading 1
notime 1
room Allgemein,Wohnzimmer
valueFormat {"humidity" => "%.0f %%"}
und
ZitatInternals:
CFGFN ./FHEM/Allgemein_271A.cfg
DEF ([Temp_Feuchte:humidity:d0] <= 41) (set HM_6C8844 on) DOELSEIF ([Temp_Feuchte:humidity:d0] >= 43) (set HM_6C8844 off)
FUUID 5e04894d-f33f-a974-c432-a3efafb951003706
MODEL FHEM
NAME Feuchtigkeit_Wohnzimmer
NOTIFYDEV Temp_Feuchte,global
NR 186
NTFY_ORDER 50-Feuchtigkeit_Wohnzimmer
STATE initialized
TYPE DOIF
VERSION 20744 2019-12-14 10:26:26
READINGS:
2019-12-28 21:29:25 cmd 0
2019-12-28 21:29:25 mode enabled
2019-12-28 21:29:25 state initialized
Regex:
accu:
cond:
Temp_Feuchte:
0:
humidity ^Temp_Feuchte$:^humidity:
1:
humidity ^Temp_Feuchte$:^humidity:
condition:
0 ::ReadingValDoIf($hash,'Temp_Feuchte','humidity','','d0') <= 41
1 ::ReadingValDoIf($hash,'Temp_Feuchte','humidity','','d0') >= 43
do:
0:
0 set HM_6C8844 on
1:
0 set HM_6C8844 off
helper:
DEVFILTER ^global$|^Temp_Feuchte$
NOTIFYDEV global|Temp_Feuchte
globalinit 1
last_timer 0
sleeptimer -1
perlblock:
readings:
all Temp_Feuchte:humidity
Attributes:
room Wohnzimmer
Danke für die Hilfe
Wilhelm
Ich sehe kein Reading "humidity" beim Device "Temp_Feuchte"
Hallo Damian,
ich denke ich habe es.
define Temp_Feuchte readingsGroup HMS100TF_5feb:humidity
setuuid Temp_Feuchte 5e00e9a4-f33f-a974-ae43-facb30f47d50ed5a
attr Temp_Feuchte alias Temperatur Luftfeuchtigkeit FS20
attr Temp_Feuchte group Temperatur und Luftfeuchtigkeit
attr Temp_Feuchte mapping %ALIAS
attr Temp_Feuchte noheading 1
attr Temp_Feuchte notime 1
attr Temp_Feuchte room Allgemein,Wohnzimmer
attr Temp_Feuchte valueFormat {"humidity" => "%.0f %%"}
Oder ist da was falsch?
Gruß
Wilhelm
was hat ein readingsGroup mit der Auswertung der Feuchte eines Sensors und einer beabsichtigten Schaltaktion zu tun?
Nichts.
Das Doif bekommt offenbar keine Werte vom Sensor.
Bitte ein list (!) des Sensors in Codetags.
Hier noch einmal der Code für den Sensor:
define HMS100TF_5feb HMS e86f
setuuid HMS100TF_5feb 5e00e9a4-f33f-a974-5de1-241ac25bb6486546
attr HMS100TF_5feb IODev FHZ_0
attr HMS100TF_5feb alias Temperatur Luftfeuchtigkeit FS20
attr HMS100TF_5feb event-on-change-reading 1
attr HMS100TF_5feb group Temperaturmessung
attr HMS100TF_5feb room Keller
Und hier die Listausgabe:
Internals:
CFGFN ./FHEM/Allgemein_271A.cfg
CODE e86f
DEF e86f
FHZ_0_MSGCNT 216
FHZ_0_RAWMSG 810e04a90510a001e86f000000036237
FHZ_0_TIME 2019-12-30 15:10:52
FUUID 5e00e9a4-f33f-a974-5de1-241ac25bb6486546
IODev FHZ_0
LASTInputDev FHZ_0
MSGCNT 216
NAME HMS100TF_5feb
NR 110
STATE T: 20.3 H: 37.6 Bat: ok
TYPE HMS
READINGS:
2019-12-30 15:10:52 battery ok
2019-12-30 15:10:52 batteryState ok
2019-12-30 15:10:52 humidity 37.6
2019-12-30 15:10:52 state T: 20.3 H: 37.6 Bat: ok
2019-12-30 15:10:52 temperature 20.3
2019-12-30 15:10:52 type HMS100TF
Attributes:
IODev FHZ_0
alias Temperatur Luftfeuchtigkeit FS20
event-on-change-reading 1
group Temperaturmessung
room Keller
Wilhelm
mann... (palmface) aufm Laptop sieht man doch mehr.
attr HMS100TF_5feb event-on-change-reading 1
Hast Du ein Reading namens "1"? Nein...
So generiert der Sensor niemals Events. Entweder ".*" eintragen oder die Namen der Readings, etwa "temperature,humidity,state,baattery". ".*" ist aber in der Regel optimal... natürlich ohne ""...
Und dann solltest Du im DOIF natürlich noch das richtige Device angeben:
([HMS100TF_5feb:humidity:d0] <= 41) (set HM_6C8844 on) DOELSEIF ([HMS100TF_5feb:humidity:d0] >= 43) (set HM_6C8844 off)
Damian hat es im Prinzip schon gesagt :D
Also summa:
Dein readingsGroup "Temp_Feuchte" ist also hübscher zum Ansehen der Werte (das ginge aber auch beim Sensor mit stateFormat), ist aber für die Automatikfunktion völlig überflüssig. Der Sensor liefert das passende Reading "humidity" und DOIF wertet es aus, wenn die Änderung von "humidity" ein Event erzeugt, was Du mit der "1" bisher erfolgreich verhindert hattest...
Danke für den Hinweis.
Eingeschaltet hat er nun schon.
Ich weis nicht wo die 1 hergekommen ist.
Evtl. Cut and Paste Fehler.
Wilhelm
Nachtrag: Ich habe den Fehler in allen FHT-Heizungsregler, also ein Kopierfehler. Bisher nie aufgefallen.
Zitat von: rud0815 am 30 Dezember 2019, 19:47:15
Ich weis nicht wo die 1 hergekommen ist.
Das passiert eigentlich dann, wenn man das Attribut ändert und dabei das Eingabefeld löscht. Ein ganzes Attribut löscht man aber anders.
Ich habe hier irgendwo gelesen, dass es früher mit der 1 richtig war. Hat sich jetzte geändert.
Gruß
Wilhelm