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
Hallo,
ich glaube du solltest dazu evtl. THRESHOLD (https://forum.fhem.de/index.php/topic,10580.0.html) 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
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
Danke für die beiden Tips, werde ich morgen ausprobieren.