[gelöst] Probleme mit HM-LC-Sw1-Pl2, HMS100TF und DOIF

Begonnen von rud0815, 29 Dezember 2019, 19:50:50

Vorheriges Thema - Nächstes Thema

rud0815

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
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM

Damian

Ich sehe kein Reading "humidity" beim Device "Temp_Feuchte"
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rud0815

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
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM

Pfriemler

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.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

rud0815

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
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM

Pfriemler

#5
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...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

rud0815

#6
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.
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM

Pfriemler

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.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

rud0815

Ich habe hier irgendwo gelesen, dass es früher mit der 1 richtig war. Hat sich jetzte geändert.

Gruß
Wilhelm
Eine FS20/HomeMatic Anlage (gemischt) und eine HomeMatic Anlage, beide mit Raspberry Pi und FHEM