Hi,
ich habe folgendes Thermostat bei mir eingerichtet:
Internals:
CHANGED
DEF MEQ1881948
IODev myHomeMatic
NAME ku_Thermostat
NR 69
STATE Temp: 20.8° | Gewünscht: 21.0° | Modus: Auto
TYPE HMCCUDEV
ccuaddr MEQ1881948
ccudevstate active
ccuif BidCos-RF
ccuname HM-RT-Kueche
ccutype HM-CC-RT-DN
channels 7
firmware 1.4
statevals devstate
READINGS:
2019-06-26 17:09:42 0.AES_KEY 0
2019-06-26 17:09:42 0.CONFIG_PENDING false
2019-06-26 17:09:42 0.DEVICE_IN_BOOTLOADER false
2019-06-26 17:09:42 0.INHIBIT false
2019-06-26 17:09:42 0.LOWBAT false
2019-06-26 17:09:42 0.RSSI_DEVICE 1
2019-06-26 17:09:42 0.RSSI_PEER 213
2019-06-26 17:09:42 0.STICKY_UNREACH false
2019-06-26 17:09:42 0.UNREACH false
2019-06-26 17:09:42 0.UPDATE_PENDING false
2019-07-05 11:23:46 4.ACTUAL_TEMPERATURE 20.8
2019-07-05 11:23:46 4.BOOST_STATE 0
2019-07-05 11:23:46 4.CONTROL_MODE Auto
2019-07-05 11:23:46 4.FAULT_REPORTING battery_low
2019-07-05 11:23:46 4.PARTY_START_DAY 1
2019-07-05 11:23:46 4.PARTY_START_MONTH 1
2019-07-05 11:23:46 4.PARTY_START_TIME 0
2019-07-05 11:23:46 4.PARTY_START_YEAR 0
2019-07-05 11:23:46 4.PARTY_STOP_DAY 1
2019-07-05 11:23:46 4.PARTY_STOP_MONTH 1
2019-07-05 11:23:46 4.PARTY_STOP_TIME 0
2019-07-05 11:23:46 4.PARTY_STOP_YEAR 0
2019-07-05 11:23:46 4.PARTY_TEMPERATURE 5.0
2019-07-05 11:23:46 4.SET_TEMPERATURE 21.0
2019-07-05 11:23:46 4.VALVE_STATE 91
2019-07-05 11:23:46 Battery 2.2
2019-07-05 11:23:46 Gesperrt BUTTON_LOCK=1
2019-07-05 11:23:46 control 21.0
2019-07-05 11:23:46 hmstate battery_low
2019-07-05 11:23:46 state 21.0
hmccu:
devspec MEQ1881948
dp:
0.AES_KEY:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.CONFIG_PENDING:
OSVAL false
OVAL false
SVAL false
VAL false
0.DEVICE_IN_BOOTLOADER:
OSVAL false
OVAL false
SVAL false
VAL false
0.INHIBIT:
OSVAL false
OVAL false
SVAL false
VAL false
0.LOWBAT:
OSVAL false
OVAL false
SVAL false
VAL false
0.RSSI_DEVICE:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
0.RSSI_PEER:
OSVAL 213
OVAL 213
SVAL 213
VAL 213
0.STICKY_UNREACH:
OSVAL false
OVAL false
SVAL false
VAL false
0.UNREACH:
OSVAL false
OVAL false
SVAL false
VAL false
0.UPDATE_PENDING:
OSVAL false
OVAL false
SVAL false
VAL false
4.ACTUAL_TEMPERATURE:
OSVAL 20.8
OVAL 20.800000
SVAL 20.8
VAL 20.800000
4.BATTERY_STATE:
OSVAL 2.2
OVAL 2.200000
SVAL 2.2
VAL 2.200000
4.BOOST_STATE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.CONTROL_MODE:
OSVAL Auto
OVAL 0
SVAL Auto
VAL 0
4.FAULT_REPORTING:
OSVAL battery_low
OVAL 6
SVAL battery_low
VAL 6
4.PARTY_START_DAY:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
4.PARTY_START_MONTH:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
4.PARTY_START_TIME:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.PARTY_START_YEAR:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.PARTY_STOP_DAY:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
4.PARTY_STOP_MONTH:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
4.PARTY_STOP_TIME:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.PARTY_STOP_YEAR:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.PARTY_TEMPERATURE:
OSVAL 5.0
OVAL 5.000000
SVAL 5.0
VAL 5.000000
4.SET_TEMPERATURE:
OSVAL 21.0
OVAL 21.000000
SVAL 21.0
VAL 21.000000
4.VALVE_STATE:
OSVAL 91
OVAL 91
SVAL 91
VAL 91
Attributes:
IODev myHomeMatic
alias Thermostat Küche
ccureadingfilter N:/PARTY/
ccureadingname 4.BATTERY_STATE:Battery
cmdIcon Auto:sani_heating_automatic Manual:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus sperren:secur_locked entsperren:secur_open
controldatapoint 4.SET_TEMPERATURE
event-on-change-reading .*
eventMap /datapoint 4.MANU_MODE 20.0:Manual/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/config BUTTON_LOCK=true:sperren/config BUTTON_LOCK=false:entsperren/
group Thermostat
hmstatevals FAULT_REPORTING!1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve_error_pos
icon hc_wht_regler
room HomeMatic,Küche
stateFormat Temp: 4.ACTUAL_TEMPERATURE° | Gewünscht: 4.SET_TEMPERATURE° | Modus: 4.CONTROL_MODE
statedatapoint 4.SET_TEMPERATURE
stripnumber 1
substexcl control
substitute CONTROL_MODE!0:Auto,1:Manual,2:PARTY,3:BOOST;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on;FAULT_REPORTING!0:no,1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve:error_pos;Gesperrt!BUTTON_LOCK=1:locked,BUTTON_LOCK=0:unlocked
userReadings Gesperrt {
my $val = fhem "get ku_Thermostat configlist BUTTON_LOCK";
$val=~ /(^BUTTON_LOCK.*)\s.*/;
return $1;
}
webCmd control:Auto:Manual:Boost:on:off:sperren:entsperren
widgetOverride control:slider,4.5,0.5,30.5,1
Es ist zu erkennen, dass ich ein UserReading habe, welches mir mitteilt, ob das Thermostat gesperrt ist oder nicht. Leider löst dieses UserReading fast alle zwei Minuten aus.
Das finde ich sehr häufig, zumal kein Eingriff von außen stattfindet.
Meine Anforderung wäre, sobald ein manueller Eingriff an meinem Thermostat stattfindet (am Thermostat oder über ein WebUI), soll das UserReading ausgeführt werden. Leider weiß ich nicht, welchen Trigger ich auf das UserReading setzen kann, da z.B. Sperren des Thermostat nicht als Reading existiert und somit selbst nicht getriggert werden kann.
Habt ihr Ideen, wie ich mein Problem lösen kann? Bzw. kann ich zwischenzeitlich den Lock-Status in einem "richtigen" Reading einbinden?
Gruß und Danke für eure Hilfe
Du könntest per at Befehl einfach regelmäßig den Befehl get config ausführen lassen. Das legt Dir ein Reading "R-BUTTONLOCK" an. Dann setzt du event-on-change-reading auf das Reading oder einen geeigneten regulären Ausdruck.