[Gelöst]Feuchtigkeitssensor soll fritzbox steckdose schalten

Begonnen von Sebastian84, 10 Februar 2022, 16:18:15

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: Sebastian84 am 18 Februar 2022, 17:38:28
Wie kann ich raw definition speichern

Wenn du links oben das "grüne Plus" hast, dann darüber...
...ansonsten: einfach irgendein Device wählen (Detailansicht) ganz unten dann "Raw definition" klicken, den Inhalt löschen (keine Angst du löschst damit NICHT das Device das du ausgewählt hast) und dann die RawDef einfügen uns "execute"...

https://wiki.fhem.de/wiki/Import_von_Code_Snippets

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Dann kommt das und er speichert es nicht
         defmod di_humidity_GZ DOIF ([23:00-08:00] or ([Multisensor4:humidity]<([$SELF:desired]-[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "off")) \
(set Kellersteckdose off) \
DOELSEIF ([Multisensor4:humidity]>([$SELF:desired]+[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "on") \
(set Kellersteckdose on)
attr di_humidity_GZ cmdState off|on
attr di_humidity_GZ readingList desired,hysterese
attr di_humidity_GZ setList desired:56,58,60,62,64,66,68,70 hysterese:2,5,10
attr di_humidity_GZ webCmd desired:hysterese
            v

Das habe ich eingefügt

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Es wird ja auch nichts gespeichert...

Oben links sollte aber das rote Fragezeichen sein.

Die Maske ist ja nur für die Eingabe.
Die Dialogbox zeigt dir, dass alles i.O. war und in der Konfiguration drin ist (sein sollte)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Ja hat geklappt
Aber ich bekomme ne Warnmeldung
   
Save config
anyViews
0_System
1_UG
2_EG
3_1.OG
4_2.OG
Wecker.Aus 5_Klingel
6_Heizung
7_Muelltonne
8_Zuhause
 

     9_Batterie
FBDECT
Garten
HUEDevice
ge_wht_steckdose Keller
Plots
Unsorted
icoEverything Everything
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   CFGFN     
   DEF        ([23:00-08:00] or ([Multisensor4:humidity]<([$SELF:desired]-[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "off"))
(set Kellersteckdose off)
DOELSEIF ([Multisensor4:humidity]>([$SELF:desired]+[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "on")
(set Kellersteckdose on)
   FUUID      620fd583-f33f-cdd4-d638-f8aabcf0541fb691
   MODEL      FHEM
   NAME       di_humidity_GZ
   NOTIFYDEV  global,Multisensor4,di_humidity_GZ
   NR         168812
   NTFY_ORDER 50-di_humidity_GZ
   STATE      on
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   READINGS:
     2022-02-18 18:28:31   Device          Multisensor4
     2022-02-18 18:28:08   cmd             2
     2022-02-18 18:28:08   cmd_event       di_humidity_GZ
     2022-02-18 18:28:08   cmd_nr          2
     2022-02-18 18:28:08   desired         64
     2022-02-18 18:28:31   e_Multisensor4_humidity 65.55
     2022-02-18 18:28:08   e_di_humidity_GZ_desired 64
     2022-02-18 18:21:07   mode            enabled
     2022-02-18 18:28:08   state           on
     2022-02-18 18:21:07   timer_01_c01    18.02.2022 23:00:00
     2022-02-18 18:21:07   timer_02_c01    19.02.2022 08:00:00
     2022-02-18 18:28:31   warning         condition c02: Argument "" isn't numeric in division (/)

   Regex:
     accu:
     collect:
     cond:
       Multisensor4:
         0:
           humidity   ^Multisensor4$:^humidity:
         1:
           humidity   ^Multisensor4$:^humidity:
       di_humidity_GZ:
         0:
           desired    ^di_humidity_GZ$:^desired:
           hysterese  ^di_humidity_GZ$:^hysterese:
         1:
           desired    ^di_humidity_GZ$:^desired:
           hysterese  ^di_humidity_GZ$:^hysterese:
   attr:
     cmdState:
       0:
         off
       1:
         on
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) or (::ReadingValDoIf($hash,'Multisensor4','humidity')<(::ReadingValDoIf($hash,'di_humidity_GZ','desired')-::ReadingValDoIf($hash,'di_humidity_GZ','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose','state') ne "off")
     1          ::ReadingValDoIf($hash,'Multisensor4','humidity')>(::ReadingValDoIf($hash,'di_humidity_GZ','desired')+::ReadingValDoIf($hash,'di_humidity_GZ','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose','state') ne "on"
   days:
   do:
     0:
       0          set Kellersteckdose off
     1:
       0          set Kellersteckdose on
     2:
   helper:
     DEVFILTER  ^global$|^di_humidity_GZ$|^Multisensor4$
     NOTIFYDEV  global|di_humidity_GZ|Multisensor4
     event      humidity: 65.55
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   di_humidity_GZ
     timerevent desired: 64
     triggerDev Multisensor4
     timerevents:
       desired: 64
       e_di_humidity_GZ_desired: 64
       warning: condition c01: Argument "" isn't numeric in division (/)

       warning: condition c02: Argument "" isn't numeric in division (/)

       cmd_nr: 2
       cmd: 2
       cmd_event: di_humidity_GZ
       on
     timereventsState:
       desired: 64
       e_di_humidity_GZ_desired: 64
       warning: condition c01: Argument "" isn't numeric in division (/)

       warning: condition c02: Argument "" isn't numeric in division (/)

       cmd_nr: 2
       cmd: 2
       cmd_event: di_humidity_GZ
       on
     triggerEvents:
       humidity: 65.55
     triggerEventsState:
       humidity: 65.55
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1645221600
     1          1645254000
   readings:
     all         Multisensor4:humidity di_humidity_GZ:desired di_humidity_GZ:hysterese
   realtime:
     0          23:00:00
     1          08:00:00
   time:
     0          23:00:00
     1          08:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1645221600:
       localtime  1645221600
       hash:
     1645254000:
       localtime  1645254000
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   off|on
   readingList desired,hysterese
   room       Keller
   setList    desired:56,58,60,62,64,66,68,70 hysterese:2,5,10
   webCmd     desired:hysterese

 

warning: condition c01: Argument "" isn't numeric in division (/)
Und meine Zweite Frage ist die Schaltzeit mit Uhrzeiten zu
Hinterlegen. Die sind zwar drin aber er schaltet obwohl er zu der Zeit nicht darf.

Otto123

#35
Du hast die Hysterese nicht gesetzt
derzeit ist zwischen 23:00 und 8:00 ausgeschaltet - sonst schaltet der Regler
Du kannst die Zeiten ja anpassen oder weitere einfügen
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Sebastian84

#36
Das erste habe ich gemacht.
Heißt das jetzt das zwischen 23 und 8 Uhr egal ob zu feucht ist der Lüfter (die Steckdose nicht an geht?) Oder geht die zu der Zeit an?

Otto123

das DOIF hat doch nur zwei Zweige:
Der Erste schaltet aus wenn die Bedingung wahr ist: die Zeitspanne ist mit oder verknüpft, in der Zeitspanne ist die Bedingung wahr.
Der Zweite schaltet ein: Wenn der eingestellte Wert überschritten und die Steckdose nicht schon an ist.

Der zweite Zweig wird nur evaluiert wenn der Erste nicht schon wahr ist.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

Ich persönlich würde es in zwei Module unterteilen, dann ist die Logik einfacher nachvollziehbar.

Das eine Modul DOIF oder THRESHOLD hält die Temperatur, das andere Modul z. B. DOIF gibt zeitabhängig die Temperatur vor.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bracew

Ich wollt nur mal erwähnen, dass bei meinem Lösungsansatz mit DOIF zu vor:

  • in der Zeit zwischen 08:30-20:30 (Tags) der Entfeuchter bei mehr als 56.0% rel. Luftfeuchte angeht.
  • in der restlichen Zeit 20:31-08:29 (Nachts) der Entfeuchter nur bei mehr als 70% rel. Luftfeuchte angeht.

so läuft der Entfeuchter am Tag im Regelbetrieb je 30 Minuten lang. Falls es danach immer noch zu feucht ist, geht er wieder an. In der Nacht ist der Entfeuchter in der Regel aus und damit lautlos.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Sebastian84

Ja das klappt super.
Wie bekomme ich da eine Pause rein. Nachdem der Entfeuchter gelaufen ist. Soll sich die Feuchtigkeit erstmal wieder sammeln und nach 30 Min wieder schalten.?

Bracew

Die Pause kommt von allein.

Sollte nach 30 Minuten die Feuchtigkeit im "Grünen" Bereich (in meinem Beispiel kleiner 56.0% rel. Luftfeuchte) sein, bleibt der Entfeuchter aus (Pause).
Ist die Feuchtigkeit im "Roten" Bereich, geht der Entfeuchter wieder für 1800 Sekunden=30 Minuten (in meinem Beispiel) an.

Dieses Spiel geht den ganzen Tag über. Nachts liegt die Feuchtigkeits-Schwelle höher für mehr Ruhe.
Bei mir ging die Luftfeuchte bisher nie über 70%. Der Entfeuchter hat es tagsüber geschaft.

Im Winter läuft der Entfeuchter bei mir fast nie, meist nur während der wärmeren Jahreszeit.
Deshalb würde eine Be- oder Entlüftung meiner Meinung nach keinen Sinn machen, sondern nur eine Entfeuchtung. Eine Be- oder Entlüftung würde nur warme und feuchte Luft ins Haus holen.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Sebastian84

Ich hab das ausprobiert. Es kommen aber Fehler
   
Save config
anyViews
0_System
1_UG
2_EG
3_1.OG
4_2.OG
Wecker.Aus 5_Klingel
6_Heizung
7_Muelltonne
8_Zuhause
 

     9_Batterie
FBDECT
Garten
HUEDevice
ge_wht_steckdose Keller
Plots
Unsorted
icoEverything Everything
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   CFGFN     
   DEF        (([08:30-20:30] and [Multisensor4 humidity] > 62.0) or ([20:31-08:29] and [Multisensor4 humidity] > 70.0)) (set Kellersteckdose on-for-timer 1800)
   FUUID      621147e9-f33f-cdd4-2671-d472386eb9566452
   MODEL      FHEM
   NAME       Entfeuchter_Automatik
   NOTIFYDEV  global
   NR         27556
   NTFY_ORDER 50-Entfeuchter_Automatik
   STATE      initialized
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   READINGS:
     2022-02-19 20:41:29   cmd             0
     2022-02-19 20:41:29   mode            enabled
     2022-02-19 20:41:29   state           initialized
     2022-02-19 20:41:29   timer_01_c01    20.02.2022 08:30:00
     2022-02-19 20:41:29   timer_02_c01    20.02.2022 20:30:00
     2022-02-19 20:41:29   timer_03_c01    error: Wrong timespec Multisensor4humidity: either HH:MM:SS or {perlcode}
     2022-02-19 20:41:29   timer_04_c01    20.02.2022 20:31:00
     2022-02-19 20:41:29   timer_05_c01    20.02.2022 08:29:00
     2022-02-19 20:41:29   timer_06_c01    error: Wrong timespec Multisensor4humidity: either HH:MM:SS or {perlcode}
   Regex:
     accu:
     collect:
   attr:
     cmdpause:
       1000
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms) and ::DOIF_time_once($hash,2,$wday) > 62.0) or (::DOIF_time($hash,3,4,$wday,$hms) and ::DOIF_time_once($hash,5,$wday) > 70.0)
   days:
   do:
     0:
       0          set Kellersteckdose on-for-timer 1800
     1:
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     globalinit 1
     last_timer 6
     sleeptimer -1
   interval:
     0          -1
     1          0
     3          -1
     4          3
   intervalfunc:
   localtime:
     0          1645342200
     1          1645385400
     3          1645385460
     4          1645342140
   realtime:
     0          08:30:00
     1          20:30:00
     3          20:31:00
     4          08:29:00
   time:
     0          08:30:00
     1          20:30:00
     2          Multisensor4humidity
     3          20:31:00
     4          08:29:00
     5          Multisensor4humidity
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
   timers:
     0           0  1  2  3  4  5
   triggertime:
     1645342140:
       localtime  1645342140
       hash:
     1645342200:
       localtime  1645342200
       hash:
     1645385400:
       localtime  1645385400
       hash:
     1645385460:
       localtime  1645385460
       hash:
   uiState:
   uiTable:
Attributes:
   cmdpause   1000
   do         always
   group      Entfeuchter
   room       Keller

   




Sebastian84

Oder kann man über cmdpause:1000 im Betrieb eine Pausen länge erzwingen

Sany

ZitatEs kommen aber Fehler

bisschen besser auf die Grammatik achten:
Zitat[Multisensor4 humidity]
sollte
Zitat[Multisensor4:humidity]
sein.

Gruß
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....