Hello I recently bought an MC8-FC and connected to my zawve network through Home Assistant.
I can control Cool/Heat/Fan mode, Fan Speed and set target temprature for cooling mode.
But i cannot set target temprature for Heating mode.
Has anyone else tried this product?
Hi Kostas,
I am thinking to buy the same MC8-FC. Did you find a solution to set the temperature for the heating mode? And what is your experience with the thermostat?
Thanks,
Aldert
Hello,
Yes i find a solution
Check my node on xml
<Node id="16" name="" location="" basic="4" generic="8" specific="6" roletype="5" devicetype="4608" nodetype="0" type="General Thermostat V2" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="CacheLoad">
<Manufacturer id="15f" name="Mcohome">
<Product type="803" id="5102" name="MH8-FC" />
</Manufacturer>
<CommandClasses>
<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" innif="true" mapping="64">
<Instance index="1" />
</CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
<Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="21.9" />
</CommandClass>
<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
<Item label="Off" value="0" />
<Item label="Heat" value="1" />
<Item label="Cool" value="2" />
<Item label="Fan Only" value="6" />
</Value>
<SupportedModes>
<Mode index="0" label="Off" />
<Mode index="1" label="Heat" />
<Mode index="2" label="Cool" />
<Mode index="6" label="Fan Only" />
</SupportedModes>
</CommandClass>
<CommandClass id="66" name="COMMAND_CLASS_THERMOSTAT_OPERATING_STATE" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="string" genre="user" instance="1" index="0" label="Operating State" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Cooling" />
</CommandClass>
<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" innif="true" base="1">
<Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="21.5" />
<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="22.0" />
</CommandClass>
<CommandClass id="68" name="COMMAND_CLASS_THERMOSTAT_FAN_MODE" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="user" instance="1" index="0" label="Fan Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
<Item label="Auto" value="0" />
<Item label="On Low" value="1" />
<Item label="On High" value="3" />
<Item label="On Medium" value="5" />
</Value>
<SupportedModes>
<Mode index="0" label="Auto" />
<Mode index="1" label="On Low" />
<Mode index="3" label="On High" />
<Mode index="5" label="On Medium" />
</SupportedModes>
</CommandClass>
<CommandClass id="69" name="COMMAND_CLASS_THERMOSTAT_FAN_STATE" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="string" genre="user" instance="1" index="0" label="Fan State" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Idle" />
</CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
<Instance index="1" />
</CommandClass>
<CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
<Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
<Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
</CommandClass>
<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="config" instance="1" index="1" label="Temp. Unit" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Help>This parameter defines Temp. Unit.</Help>
<Item label="Celsius" value="0" />
<Item label="Fahrenheit" value="1" />
</Value>
</CommandClass>
<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
<Instance index="1" />
</CommandClass>
<CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Item label="Normal" value="0" />
<Item label="-1dB" value="1" />
<Item label="-2dB" value="2" />
<Item label="-3dB" value="3" />
<Item label="-4dB" value="4" />
<Item label="-5dB" value="5" />
<Item label="-6dB" value="6" />
<Item label="-7dB" value="7" />
<Item label="-8dB" value="8" />
<Item label="-9dB" value="9" />
</Value>
<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Item label="Normal" value="0" />
<Item label="-1dB" value="1" />
<Item label="-2dB" value="2" />
<Item label="-3dB" value="3" />
<Item label="-4dB" value="4" />
<Item label="-5dB" value="5" />
<Item label="-6dB" value="6" />
<Item label="-7dB" value="7" />
<Item label="-8dB" value="8" />
<Item label="-9dB" value="9" />
</Value>
<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Item label="Failed" value="0" />
<Item label="Success" value="1" />
<Item label="In Progress" value="2" />
</Value>
<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
</CommandClass>
<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Associations num_groups="1">
<Group index="1" max_associations="1" label="Lifeline" auto="true">
<Node id="1" />
</Group>
</Associations>
</CommandClass>
<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="4.33" />
<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3.02" />
</CommandClass>
</CommandClasses>
</Node>```
Hello,
Thanks a lot for your reply and sorry for my late reply. In the meantime I have also added some setting items to it, so you can set how much the device will report temp changes, etc. I used my floor heating MCO thermostat to add this.
Do you know where the original XML of a Z wave device is stored? Is that in the device itself and will it be loaded to home assistant when it is included? I am surprised that for this MH8 thermostat it has so many mistakes.
<Node id="19" name="" location="" basic="4" generic="8" specific="6" roletype="5" devicetype="4608" nodetype="0" type="General Thermostat V2" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
<Manufacturer id="15f" name="Mcohome">
<Product type="803" id="5102" name="MH8-FC" />
</Manufacturer>
<CommandClasses>
<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" innif="true" mapping="64">
<Instance index="1" />
</CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
<Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="21.7" />
</CommandClass>
<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="2" innif="true">
<Instance index="1" />
<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
<Item label="Off" value="0" />
<Item label="Heat" value="1" />
<Item label="Cool" value="2" />
<Item label="Fan Only" value="6" />
</Value>
<SupportedModes>
<Mode index="0" label="Off" />
<Mode index="1" label="Heat" />
<Mode index="2" label="Cool" />
<Mode index="6" label="Fan Only" />
</SupportedModes>
</CommandClass>
<CommandClass id="66" name="COMMAND_CLASS_THERMOSTAT_OPERATING_STATE" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="string" genre="user" instance="1" index="0" label="Operating State" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Idle" />
</CommandClass>
<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="2" request_flags="2" innif="true" base="1" typeInterpretation="B">
<Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="19.5" />
<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="27.5" />
</CommandClass>
<CommandClass id="68" name="COMMAND_CLASS_THERMOSTAT_FAN_MODE" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="user" instance="1" index="0" label="Fan Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Item label="Auto" value="0" />
<Item label="On Low" value="1" />
<Item label="On High" value="3" />
<Item label="On Medium" value="5" />
</Value>
<SupportedModes>
<Mode index="0" label="Auto Low" />
<Mode index="1" label="On Low" />
<Mode index="3" label="On High" />
<Mode index="5" label="Unknown 5" />
</SupportedModes>
</CommandClass>
<CommandClass id="69" name="COMMAND_CLASS_THERMOSTAT_FAN_STATE" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="string" genre="user" instance="1" index="0" label="Fan State" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="Idle" />
</CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
<Instance index="1" />
</CommandClass>
<CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
<Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
<Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
</CommandClass>
<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="config" instance="1" index="1" label="Temp. Unit" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Help>This parameter defines Temp. Unit.</Help>
<Item label="Celsius" value="0" />
<Item label="Fahrenheit" value="1" />
</Value>
<Value type="list" genre="config" instance="1" index="2" label="Upload temperature automatically" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="3" vindex="3" size="1">
<Help>Upload temperature automatically</Help>
<Item label="OFF" value="0" />
<Item label="Upload the difference value only" value="1" />
<Item label="Timing upload mode only" value="2" />
<Item label="Upload the difference+timing upload mode" value="3" />
</Value>
<Value type="short" genre="config" instance="1" index="3" label="Upload temperature difference" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="3" max="1000" value="5">
<Help>Base on 0.1C unit, 5 by default, 5*0.1C=0.5C</Help>
</Value>
<Value type="short" genre="config" instance="1" index="4" label="Upload time interval regularly" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="19" max="65535" value="180">
<Help>Base on 1s unit, it suggest to be set above 30s</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="255" label="Factory setting" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
<Help>Restore the factory setting - write only, set to 85 to reset</Help>
</Value>
</CommandClass>
<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
<Instance index="1" />
</CommandClass>
<CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Item label="Normal" value="0" />
<Item label="-1dB" value="1" />
<Item label="-2dB" value="2" />
<Item label="-3dB" value="3" />
<Item label="-4dB" value="4" />
<Item label="-5dB" value="5" />
<Item label="-6dB" value="6" />
<Item label="-7dB" value="7" />
<Item label="-8dB" value="8" />
<Item label="-9dB" value="9" />
</Value>
<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Item label="Normal" value="0" />
<Item label="-1dB" value="1" />
<Item label="-2dB" value="2" />
<Item label="-3dB" value="3" />
<Item label="-4dB" value="4" />
<Item label="-5dB" value="5" />
<Item label="-6dB" value="6" />
<Item label="-7dB" value="7" />
<Item label="-8dB" value="8" />
<Item label="-9dB" value="9" />
</Value>
<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
<Item label="Failed" value="0" />
<Item label="Success" value="1" />
<Item label="In Progress" value="2" />
</Value>
<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
</CommandClass>
<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Associations num_groups="1">
<Group index="1" max_associations="1" label="Lifeline" auto="true">
<Node id="1" />
</Group>
</Associations>
</CommandClass>
<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="4" innif="true">
<Instance index="1" />
<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="4.33" />
<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3.02" />
</CommandClass>
</CommandClasses>
</Node>
Hi,
I think it’s downloaded from openzwave library.
hi,
i’m looking for a fan coil thermostat. one option was the heltun one, but the news about cancelling the “working with HA” doesn’t sound good. that leads me to the mco home thermostat. does it “work ot of the box” or is there still manual hacks to do to make it useable?
thanks.