[Tutorial][Pro] Basic MQTT setup & connect Itho Daalderop NRG.watch interface

Hi Martin,

From your screenshot I see values being 0, so Homey will show 0 as well:

this will mean they show 0 in the MQTT device as well.
You only can add this additional one to the JSON in the MQTT device, to see what value that one shows when your fan is running:

  "measure_number": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['fan-setpoint_rpm']",
    "outputTemplate": "",
    "displayName": "Setpoint rpm"
  },

But no clue what the difference might be between fan-setpoint_rpm and fan-speed_rpm.

Also *ventilation-setpoint_perc* shoes value “-1”

which is odd. This makes the MQTT device show no values or error.

For comparison: these are the current values my itho sends:

Hello,

I have the broker, client and MQTT-hub installed. I have two HeatMeisters from https://www.sdr-engineering.nl/webshop/ installed and connected with HomeyPro23 as a VD, which works in principle. Using the MQTT-explorer I see the different devices updating their data. The problem I see is that Homey it is not updating the devices regularly. Sometimes this is due to the MQTT-Hub crashed, and sometimes…? With a “opnieuw opstarten” I get a new value. This is one-time value or values for a longer period, and then it stops again.

I don’t have any of these issues, Harry.
In cases of MQTT Hub crashes, you’d best contact the app developer by posting into the app topic (mentioned at the app page @ homey.app store).

The VD should also produce Insights graphs; do they show the same “flat lines”?

Thx Peter,

The VD insight graphs show the same.

Just noticed @ the app github somebody with a similar problem. No solution..

Hey Peter. Thanks again for your reply, it helped me allot, see here:

:partying_face:

But the slider and the fan-mode doesn’t seem to work.

Cool. Can you post the complete JSON from the MQTT device, please?
And a screenshot of http://nrg.local, like this one?

Okay (I’m getting a little embarrassed now :grinning_face_with_smiling_eyes:). I hope this is what you mean:

{

"fan_speed": {

"capability": "fan_speed",

"stateTopic": "itho/state",

"setTopic": "itho/cmd",

"valueTemplate": "round((value / 255) \* 100)",

"outputTemplate": "round((value / 100) \* 255)",

"displayName": "Fan Speed"

},

“fan_mode.timer”: {

"capability": "fan_mode.timer", 

"stateTopic": "itho/ithostatus", 

"setTopic": "itho/cmd", 

"valueTemplate": "", 

"outputTemplate": "", 

"displayName": "Timer mode", 

"values": \[

{ “id”: “timer1”, “title”: “30m boost” },

{ “id”: “timer2”, “title”: “60m boost” },

{ “id”: “timer3”, “title”: “120m boost” }

]

},

“fan_mode”: {

"capability": "fan-info", 

"stateTopic": "itho/ithostatus", 

"setTopic": "itho/cmd", 

"valueTemplate": "", 

"outputTemplate": "", 

"displayName": "Fan mode", 

"values": \[

{ “id”: “low”, “title”: “Auto” },

{ “id”: “medium”, “title”: “Low” },

{ “id”: “high”, “title”: “High” }

]

},

“measure_number”: {

"capability": "measure_number",

"stateTopic": "itho/ithostatus",

"setTopic": "",

"valueTemplate": "$\['fan-speed_rpm'\]",

"outputTemplate": "",

"displayName": "Speed rpm"

},

“measure_number.2”: {

"capability": "measure_number.2",

"stateTopic": "itho/ithostatus",

"setTopic": "",

"valueTemplate": "$\['ventilation-setpoint_perc'\]",

"outputTemplate": "",

"displayName": "Speed %"

},

“measure_temperature”: {

"capability": "measure_temperature",

"stateTopic": "itho/ithostatus",

"setTopic": "",

"valueTemplate": "$\['temp'\]",

"outputTemplate": "",

"displayName": "Temperature"

},

“measure_humidity”: {

"capability": "measure_humidity",

"stateTopic": "itho/ithostatus",

"setTopic": "",

"valueTemplate": "$\['hum'\]",

"outputTemplate": "",

"displayName": "Humidity"

}

}

Please note that I’ve made some changes to try to make it work.

Edited: I was just reading my message and I think I see what is wrong: some valueTemplates are missing. I will check the Itho device to see if I can find it…

Screenshot:

Amazing! I think it all works now! :partying_face:

@Peter_Kawa Thank you very much! :+1:

1 Like

Yeah I meant that code.
Great you found the issues yourself :person_cartwheeling:
And you’re welcome!

Thanks for the tutorial! After a few tweaks, I got it working.
I expected to see the card “set timer mode to …” available in a flow, but it’s not showing up.
All I see are the cards “set the fan speed to number”, “set fan mode to …”, and “set value of capability to …”.
I would like to add a flow to set the timer for 30 minutes after a motion sensor is triggered.
Is there a way to get this working or am I missing something?

YW!

No idea, yet;
I assumed using this card

would work using this capability + 1 of the values, but it doesn’t:

This timer label i found doesn’t work either.

Itho doesn’t seem to receive commands with this card.

It would be nice to have acces to the timer command via flow.

Hey Henk,

Yeah I also tried that but these can’t be used.

I got it working
The capability for the auto-generated flowcard can’t be a subcapability, you’ll need to use fan_mode (not fan_mode.timer for example).
Then change the capability for the fan mode from fan_mode to the subcapability fan_mode.fan for example.

When you add a new flow card, you’ll notice a new flow card like this (app restart might be required):

This flow card below unfortunately doesn’t work (yet) with the mode selector:


.

For now, the JSON should look like this:

tap here
{
    "fan_speed": {
    "capability": "fan_speed",
    "stateTopic": "itho/state",
    "setTopic": "itho/cmd",
    "valueTemplate": "round((value / 255) * 100)",
    "outputTemplate": "round((value / 100) * 255)",
    "displayName": "Fan Speed"
  },
  "fan_mode": { 
    "capability": "fan_mode", 
    "stateTopic": "itho/ithostatus", 
    "setTopic": "itho/cmd", 
    "valueTemplate": "", 
    "outputTemplate": "", 
    "displayName": "Timer mode", 
    "values": [
  { "id": "timer1", "title": "30m boost" }, 
  { "id": "timer2", "title": "60m boost" }, 
  { "id": "timer3", "title": "120m boost" } 
    ]
  },
  "fan_mode.fan": { 
    "capability": "fan_mode.fan", 
    "stateTopic": "itho/ithostatus", 
    "setTopic": "itho/cmd", 
    "valueTemplate": "", 
    "outputTemplate": "", 
    "displayName": "Fan mode", 
    "values": [
  { "id": "low", "title": "Low" }, 
  { "id": "medium", "title": "Medium" }, 
  { "id": "high", "title": "High" } 
    ]
  },
  
...... here,the other stuff, without the fan mode (high/medium/low) part ......

}

Hey Peter,

Thanks for the explanation!
Thanks to this I got it working. I can now set timers in flows without any issues.

Appreciate the help!

Cheers,
Henk

1 Like

Hey Peter,

I just had an idea, why not combine the two modes into one?
Instead of having a fan mode with 3 modes and a timer mode with 3 timers, you’d get one fan mode with 6 options.

"fan_mode": { 
    "capability": "fan_mode",
    "stateTopic": "itho/ithostatus",
    "setTopic": "itho/cmd",
    "outputTemplate": "{\"command\":\"{{value}}\"}",
    "displayName": "Fan mode",
    "values": [
      { "id": "timer1", "title": "10m boost" },
      { "id": "timer2", "title": "20m boost" },
      { "id": "timer3", "title": "30m boost" },
	  { "id": "low", "title": "Low" },
      { "id": "medium", "title": "Medium" },
      { "id": "high", "title": "High" }
    ]
  },

What do you think?

Cheers,

1 Like

Brilliant, didn’t occur to me to combine those. It works like a charm.

Beste Henk, je instellingen zien er heel intersant uit ga je die ook beschikbaar stellen voor andere Homey gebruikers?

vriendelijke groet

Co Noordhoek

Hi Co,

I already updated the 1st post with these new settings shown by Henk. Hope it works for you as well.

Hello,

Has anyone a working setup for a ITHO HRU 300?

John

This is the current json config.
It reads all the value’s correct. But i can’t control the itho unit with the itho/cmd.

It works with the api commands like : http://nrg-itho-A1B2.local/api.html?rfremotecmd=high
But i don’t know to add this to json.

 {
  "fan_mode": {
    "capability": "fan_mode",
    "stateTopic": "itho/ithostatus",
    "setTopic": "itho/cmd",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "Fan presets",
    "values": [
      { "id": "auto", "title": "auto" },
      { "id": "autonight", "title": "autonight" },
      { "id": "low", "title": "low" },
      { "id": "medium", "title": "medium" },
      { "id": "high", "title": "high" },
      { "id": "timer1", "title": "timer1" },
      { "id": "timer2", "title": "timer2" },
      { "id": "timer3", "title": "timer3" }
    ]
  },
  "measure_number.speedrpm": {
    "capability": "measure_number.speedrpm",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['RPM of the motor (rpm)']",
    "outputTemplate": "",
    "displayName": "Speed (rpm)"
  },
  "measure_number.speed%": {
    "capability": "measure_number.speed%",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Relative fanspeed (%)']",
    "outputTemplate": "",
    "displayName": "Relative fan speed (%)"
  },
  "measure_temperature.outside": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Measured outside temperature (°C)']",
    "outputTemplate": "",
    "displayName": "Outside Temperature (°C)"
  },
  "measure_temperature.mixed_outside": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Measured temperature of mixed outside air (°C)']",
    "outputTemplate": "",
    "displayName": "Mixed Outside Air Temperature (°C)"
  },
  "measure_temperature.inlet": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Inlet temperature (°C)']",
    "outputTemplate": "",
    "displayName": "Inlet Temperature (°C)"
  },
  "measure_temperature.extracted": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Temperature of the extracted air (°C)']",
    "outputTemplate": "",
    "displayName": "Extracted Air Temperature (°C)"
  },
  "measure_temperature.blown_out": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Temperature of the blown out air of the house (°C)']",
    "outputTemplate": "",
    "displayName": "Blown out Air Temperature (°C)"
  },
  "measure_number.flow_inflated": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['The flow of the inflated air (M3/h)']",
    "outputTemplate": "",
    "displayName": "Flow of Inflated Air (m³/h)"
  },
  "measure_number.flow_blown": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['The flow of the blown air (m3/h)']",
    "outputTemplate": "",
    "displayName": "Flow of Blown Air (m³/h)"
  },
  "measure_number.absolute_fan_speed": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Absolute speed of the fan (%)']",
    "outputTemplate": "",
    "displayName": "Absolute Fan Speed (%)"
  },
  "measure_number.hysteresis_control_mode": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Hysteresis use in control mode (K)']",
    "outputTemplate": "",
    "displayName": "Hysteresis Control Mode (K)"
  },
  "measure_number.timer_cooled": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Timer for how long the house is cooled (hour)']",
    "outputTemplate": "",
    "displayName": "Timer House Cooled (hour)"
  },
  "measure_number.timer_heated": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Timer for how long the house is heated (hour)']",
    "outputTemplate": "",
    "displayName": "Timer House Heated (hour)"
  },
  "measure_number.mass_flow_in": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['The mass flow of the air entering the house (kg/h)']",
    "outputTemplate": "",
    "displayName": "Mass Flow Air Entering (kg/h)"
  },
  "measure_number.mass_flow_out": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['The mass flow of the air leaving the house (kg/h)']",
    "outputTemplate": "",
    "displayName": "Mass Flow Air Leaving (kg/h)"
  },
  "measure_number.bypass_valve": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Percentage that the bypass valve is open (%)']",
    "outputTemplate": "",
    "displayName": "Bypass Valve Open (%)"
  },
  "measure_temperature.desired_inlet": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Desired inlet temperature (°C)']",
    "outputTemplate": "",
    "displayName": "Desired Inlet Temperature (°C)"
  },
  "measure_number.hysteresis_frost": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Hysteresis of the frost (K)']",
    "outputTemplate": "",
    "displayName": "Frost Hysteresis (K)"
  },
  "measure_number.frost_valve_steps": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Number of steps the frost valve is open (steps)']",
    "outputTemplate": "",
    "displayName": "Frost Valve Steps Open"
  },
  "measure_number.hours_too_cold": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Number of hours of too cold air (hour)']",
    "outputTemplate": "",
    "displayName": "Hours Too Cold Air"
  },
  "measure_number.temp_speed_reduction": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Temporary speed reduction (rpm)']",
    "outputTemplate": "",
    "displayName": "Temporary Speed Reduction (rpm)"
  },
  "measure_number.sample_timer_frost": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Sample timer in frost mode (min)']",
    "outputTemplate": "",
    "displayName": "Sample Timer Frost Mode (min)"
  },
  "measure_temperature.waste_heated_ntc": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Measured waste temperature heated NTC (°C)']",
    "outputTemplate": "",
    "displayName": "Waste Temp Heated NTC (°C)"
  },
  "measure_temperature.blend_heated_ntc": {
    "capability": "measure_temperature",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Measured blend temperature heated NTC (°C)']",
    "outputTemplate": "",
    "displayName": "Blend Temp Heated NTC (°C)"
  },
  "measure_number.desired_capacity": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Desired capacity (m3/h)']",
    "outputTemplate": "",
    "displayName": "Desired Capacity (m³/h)"
  },
  "measure_number.busy_adjustments": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Busy doing adjustments (–)']",
    "outputTemplate": "",
    "displayName": "Busy Doing Adjustments"
  },
  "measure_number.current_consumption_fan": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Current consumption of fan (mA)']",
    "outputTemplate": "",
    "displayName": "Current Consumption of Fan (mA)"
  },
  "measure_number.desired_current_consumption_fan": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Desired current consumption of fan (mA)']",
    "outputTemplate": "",
    "displayName": "Desired Current Consumption of Fan (mA)"
  },
  "measure_number.highest_measured_rh": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Highest measured RH (%)']",
    "outputTemplate": "",
    "displayName": "Highest Measured RH (%)"
  },
  "measure_number.highest_measured_co2": {
    "capability": "measure_number",
    "stateTopic": "itho/ithostatus",
    "setTopic": "",
    "valueTemplate": "$['Highest measured CO2 (ppm)']",
    "outputTemplate": "",
    "displayName": "Highest Measured CO₂ (ppm)"
  },
  "measure_string.lastcmd": {
    "capability": "measure_string.lastcmd",
    "stateTopic": "itho/lastcmd",
    "setTopic": "",
    "valueTemplate": "$['command']",
    "outputTemplate": "",
    "displayName": "Last Command"
  },
  "measure_co2": {
    "capability": "measure_co2",
    "stateTopic": "itho/remotesinfo",
    "setTopic": "",
    "valueTemplate": "$.woonkamer.co2",
    "outputTemplate": "",
    "displayName": "CO2"
  }
}
```
1 Like

Hi, Can you please edit your post and format the code as code? Now its 3 miles long :grimacing:
Howto: Just add three backticks above and below like

This should work:
http://nrg-itho-A1B2.local/api.html?command=high
If not, you’d have to look up the manual by Arjan (in post 1)

I also like to point out the new NRG Itho Daalderop app created by Stèphan.
This should be capable of using the presets and speed for now: