Verständnisproblem: DOIF mit Hysterese?

Begonnen von tho-mas, 17 Juli 2022, 17:20:23

Vorheriges Thema - Nächstes Thema

tho-mas

Moin!

Entweder habe ich die Commandref (bzw. Wiki) nicht verstanden oder meine Aufgabenstellung ist zu exotisch für eine Anleitung:

Ich möchte das das Gerät "Klima" bei eine Raumtemperatur von über 25 Grad C eingeschaltet wird, aber solange läuft, bis 24 Grad C UNTERschritten wird (Hysterese). Nachdem ich die Anleitung für DOIF gelesen habe scheint mit dieser Befehl dazu geeignet, aber ohne Berücksichtigung der Hysterese würde die Klimaanlage ständig an- und ausgeschaltet werden (die Klimanalage pustet den kalten Luftstrom direkt auf den Sensor für die Raumtemperatur, war nicht beabsichtigt, hat sich aber als gute Fern-Kontrolle herausgestellt).

Kann ich also als Einschaltbedingung "25 Grad" angeben und als Ausschaltbedingung in einen ELSEIF-Zweig §24 Grad"? Oder funktioniert das nicht? Oder gibt es eine bessere Lösung? Im Idealfall wäre noch eine Mindestlaufzeit von 30 Minuten mit drin...

Und muß ich mit dummys arbeiten (wie im BEispiel der Commandref) oder kann ich das zu schaltende Gerät direkt ansteuern? Die Klimaanlage wird über ein Relais "ferngeschaltet" (eigentlich vom Hersteller als Raumsteuerung vorgesehen). (Relevant ist Kanal 2)

Sensor: Internals:
   DEF        28.6A1234560000 60
   FUUID      61e34966-f33f-1cdf-b518-5215f692570ff164
   IODev      1wire
   LAST_READ_FAILED 0
   NAME       DS18B20
   NR         21
   STATE      2022-07-17 17:17:32  T: 24.3 °C
   TYPE       OWDevice
   READINGS:
     2022-07-13 16:38:45   IODev           1wire
     2022-07-13 13:37:47   T:              24.8 °C
     2022-07-17 17:17:32   alarm           1
     2022-07-17 17:17:32   state           temperature: 24.3125  alarm: 1
     2022-07-17 17:17:32   temperature     24.3125
   fhem:
     address    28.6A1234560000
     alerting   1
     bus        bus.1
     interfaces temperature
     interval   60
     getters:
       address
       crc8
       family
       fasttemp
       id
       locator
       r_address
       r_id
       r_locator
       temperature
       temperature10
       temperature11
       temperature12
       temperature9
       temphigh
       templow
       type
     polls:
       temperature
     setters:
       temphigh
       templow
     state:
       temperature
Attributes:
   alias      Temp Wohnzimmer
   event-min-interval .*:900
   event-on-change-reading temperature:.5
   model      DS18B20
   room       Heizung,Luftdaten innen,OWDevice,Raumtemp,Web-Anzeige
   stateFormat {sprintf(ReadingsTimestamp($name, "temperature", 0)."  "."T: %.1f °C", ReadingsVal("DS18B20","temperature",0))}



Relais:
Internals:
   DEF        f44c0737 19
   FUUID      61f076da-f33f-1cdf-77df-a64ecc1396578e33
   IODev      ZWDongle_0
   NAME       ZWave_SWITCH_BINARY_19
   NR         206
   STATE      on
   TYPE       ZWave
   ZWaveSubDevice no
   cmdsPending 0
   endpointChildren ZWave_SWITCH_BINARY_19.01,ZWave_SWITCH_BINARY_19.02
   homeId     f44c0737
   isWakeUp   
   lastMsgSent 1658068853.49587
   nodeIdHex  13
   READINGS:
     2022-01-25 23:17:24   CMD             ZW_APPLICATION_UPDATE
     2022-07-13 16:38:45   IODev           ZWDongle_0
     2022-07-13 16:38:54   associatedWith  ZWave_SWITCH_BINARY_19.01,ZWave_SWITCH_BINARY_19.02
     2022-01-25 23:17:06   mcCapability_01 ZWAVEPLUS_INFO VERSION SWITCH_BINARY ASSOCIATION ASSOCIATION_GRP_INFO MULTI_CHANNEL_ASSOCIATION METER MARK SWITCH_MULTILEVEL
     2022-01-25 23:17:06   mcCapability_02 ZWAVEPLUS_INFO VERSION SWITCH_BINARY ASSOCIATION ASSOCIATION_GRP_INFO MULTI_CHANNEL_ASSOCIATION METER MARK SWITCH_MULTILEVEL
     2022-01-25 23:17:05   mcEndpoints     total 2, identical
     2022-01-25 23:17:05   model           FIBARO System FGS223 Double Relay
     2022-01-25 23:17:05   modelConfig     fibaro/fgs223.xml
     2022-01-25 23:17:05   modelId         010f-0203-1000
     2022-05-08 19:04:29   state           on
     2022-07-17 16:40:53   timeToAck       0.032
     2022-07-17 16:40:53   transmit        OK
     2022-01-25 23:17:05   zwavePlusInfo   version:01 role:AlwaysOnSlave node:Z-Wave+Node installerIcon:0700 userIcon:0700
Attributes:
   alias      Schalter 2f für Klima
   classes    ZWAVEPLUS_INFO VERSION MANUFACTURER_SPECIFIC SWITCH_BINARY DEVICE_RESET_LOCALLY ASSOCIATION_GRP_INFO ASSOCIATION POWERLEVEL CRC_16_ENCAP CONFIGURATION METER MULTI_CHANNEL_ASSOCIATION MULTI_CHANNEL APPLICATION_STATUS PROTECTION ALARM SECURITY FIRMWARE_UPDATE_MD CENTRAL_SCENE MARK SWITCH_MULTILEVEL
   room       ZWave
   vclasses   ALARM:5 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 CENTRAL_SCENE:2 CONFIGURATION:1 CRC_16_ENCAP:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:2 METER:3 MULTI_CHANNEL:4 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 PROTECTION:2 SECURITY:1 SWITCH_BINARY:1 SWITCH_MULTILEVEL:3 VERSION:2 ZWAVEPLUS_INFO:2


matze1999

#1
Hallo,

ich glaube du solltest dazu evtl.  THRESHOLD nutzen.

ZitatBespiel für Klimatisierung:
   
   define Thermostat THRESHOLD S1:temperature:1 aircon:on:off
   
   Beschreibung:

   Beim Überschreiten der Solltemperatur um 1 Grad ausgelesen über den Sensor S1 wird der Aktor "aircon" eingeschaltet
   und wieder ausgeschaltet beim Unterschreiben der Temperatur um 1 Grad.

matze1999

Otto123

#2
ich hätte auch ein DOIF als Beispiel. Ich habe die Solltemperatur einstellbar gemacht und die Hysterese ist symmetrisch:
defmod di_temperatur_WG DOIF ([SensorWG:temperature]>([$SELF:desired]+[$SELF:hysterese]/2) and [?SD1:state] ne "off") \
(set SD1 off) \
DOELSEIF ([SensorWG:temperature]<([$SELF:desired]-[$SELF:hysterese]/2) and [?SD1:state] ne "on") \
(set SD1 on)
attr di_temperatur_WG cmdState off|on
attr di_temperatur_WG readingList desired,hysterese
attr di_temperatur_WG room Wintergarten
attr di_temperatur_WG setList desired:selectnumbers,8,2,18,0,lin hysterese:1,2,5
attr di_temperatur_WG webCmd desired:hysterese


Mindestlaufzeit 30 min wäre dann noch ein:
attr di_temperatur_WG wait 1800:1800

Gruß Otto
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

tho-mas

Danke für die beiden Tips, werde ich morgen ausprobieren.