mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-04 05:16:45 +00:00
MAX: 001_add_SetTemperature_from_WT_MAX.patch by gero
Fügt das Empfangen eines SetTemperature Befehls vom Wandthermostat hinzu. Der Befehl wird vom Wandthermostat z.B. bei Betätigung der Boost-Taste gesendet. Der Payload von SetTemperature enthält den mode (auto, eco, boost) und die desiredTemperature. git-svn-id: https://svn.fhem.de/fhem/trunk@5281 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
5b62ee3dca
commit
c3257aece7
@ -603,7 +603,7 @@ MAX_Parse($$)
|
|||||||
my $devicetype = undef;
|
my $devicetype = undef;
|
||||||
$devicetype = $args[0] if($msgtype eq "define" and $args[0] ne "Cube");
|
$devicetype = $args[0] if($msgtype eq "define" and $args[0] ne "Cube");
|
||||||
$devicetype = "ShutterContact" if($msgtype eq "ShutterContactState");
|
$devicetype = "ShutterContact" if($msgtype eq "ShutterContactState");
|
||||||
$devicetype = "WallMountedThermostat" if(grep /^$msgtype$/, ("WallThermostatConfig","WallThermostatState","WallThermostatControl"));
|
$devicetype = "WallMountedThermostat" if(grep /^$msgtype$/, ("WallThermostatConfig","WallThermostatState","WallThermostatControl","SetTemperature"));
|
||||||
$devicetype = "HeatingThermostat" if(grep /^$msgtype$/, ("HeatingThermostatConfig", "ThermostatState"));
|
$devicetype = "HeatingThermostat" if(grep /^$msgtype$/, ("HeatingThermostatConfig", "ThermostatState"));
|
||||||
if($devicetype) {
|
if($devicetype) {
|
||||||
return "UNDEFINED MAX_$addr MAX $devicetype $addr";
|
return "UNDEFINED MAX_$addr MAX $devicetype $addr";
|
||||||
@ -832,7 +832,14 @@ MAX_Parse($$)
|
|||||||
} else {
|
} else {
|
||||||
Log 2, "MAX_Parse: Don't know how to interpret Ack payload for $shash->{type}";
|
Log 2, "MAX_Parse: Don't know how to interpret Ack payload for $shash->{type}";
|
||||||
}
|
}
|
||||||
|
} elsif(grep /^$msgtype$/, ("SetTemperature")) { # SetTemperature is send by WallThermostat e.g. when pressing the boost button
|
||||||
|
my $bits = unpack("C",pack("H*",$args[0]));
|
||||||
|
my $mode = $bits >> 6;
|
||||||
|
my $desiredTemperature = ($bits & 0x3F) /2.0; #convert to degree celcius
|
||||||
|
readingsBulkUpdate($shash, "mode", $ctrl_modes[$mode] );
|
||||||
|
#This formatting must match with in MAX_Set:$templist
|
||||||
|
readingsBulkUpdate($shash, "desiredTemperature", MAX_SerializeTemperature($desiredTemperature));
|
||||||
|
Log GetLogLevel($shash->{NAME}, 5), "SetTemperature mode $ctrl_modes[$mode], desiredTemperature $desiredTemperature";
|
||||||
} else {
|
} else {
|
||||||
Log 1, "MAX_Parse: Unknown message $msgtype";
|
Log 1, "MAX_Parse: Unknown message $msgtype";
|
||||||
}
|
}
|
||||||
|
@ -346,7 +346,7 @@ CUL_MAX_Parse($$)
|
|||||||
Dispatch($shash, "MAX,$isToMe,WallThermostatConfig,$src,17,21,30.5,4.5,$defaultWeekProfile,80,5,0,12", {});
|
Dispatch($shash, "MAX,$isToMe,WallThermostatConfig,$src,17,21,30.5,4.5,$defaultWeekProfile,80,5,0,12", {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elsif(grep /^$msgType$/, ("ShutterContactState", "WallThermostatState", "WallThermostatControl", "ThermostatState", "PushButtonState")) {
|
} elsif(grep /^$msgType$/, ("ShutterContactState", "WallThermostatState", "WallThermostatControl", "ThermostatState", "PushButtonState", "SetTemperature")) {
|
||||||
Dispatch($shash, "MAX,$isToMe,$msgType,$src,$payload", {});
|
Dispatch($shash, "MAX,$isToMe,$msgType,$src,$payload", {});
|
||||||
} else {
|
} else {
|
||||||
Log $ll5, "Unhandled message $msgType";
|
Log $ll5, "Unhandled message $msgType";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user