TRVZ thermostats

Hi!
Im using TRVZ thermostats, Im able to get lots of parameters except the state of thermostats. It is ON or it is OFF.
Any idea to solve?

BR
Peter

What are these valves exactly? make? model? link to docs? How do you currently get parameters?

Also, what do you mean by "ON or OFF"?
TRVs typically have a target setting and a current value. Not sure they even report absolute values like ON or OFF (not even certain what that would mean!?)

Its a radiator valve. I believe it’s well known.
I can reach in node red with eWeLink palette.
On and Off I mean it is opening the valve or not. I believe it is difficult to check the measured temperature and compare with the settings. Much easier to check the status. Of course I can go and check it directly on it, but I don’t want.
In eWeLink app I can see the status.
Any more question?

Not to me. I know of many makes (from Hive, Aquara, TP Link, Danfos, etc) but you have given a fairly generic name without a link to anything.

Which one? There are a few! Library - Node-RED

"Opening", by definition means it is "moving from closed to open state". That doesn't exactly mean it is "ON" or "OFF".

So can you clarify: what is your definition of "ON"?

  • Valve is open fully?
  • Valve is not fully closed (i.e. water can pass through)?
  • Value motor is running? (in the open direction?)
  • Temperature has reached the target? (or within a percentage?)
  • Something else?

Of course not - thats what Node-RED is for :wink:

Just want to say:
I am not trying to be pedantic. Just want clear and concise info to save all this asking of questions! TBH, what you have said so far is quite unclear and not really as obvious as you might think.

Hi Steve!

Stop this conversation! It is clear that you can’t and don’t want to help!

Bye

Peter

If you check my stats Peter, i am have over 1500 solutions. I will help anyone and everyone. I meant no disrespect.

Think about it this way, you asked a question, i didnt understand so I asked for clarification. Thats how help works. We are not psychic and we dont know everything, however with details, clues emerge.

for example, if you had told me which node you use (I provided a filtered link for you), I would actually go to the trouble of looking through its issues and code to see if I can figure it out for you. Thats what i do. I am not paid to do this. Like everyone here, we do it to help because this is a good community.

If you dont want help, thats fine.

If you do want help, please provide clear info so I can help.


To play devils advocate for a second, if I were to ask on the forum "how do I set a value in my PLC?" - I would rightly be asked "which kind of PLC", "do you have a link to it", "what protocol does it use?", "which value do you want to set?", "what do you mean by set? set true? set false? set a number? set a string?, "which node are you using?". Thats pretty much how it goes TBH.

2 Likes

Hi Steve,

You had a lots of irrelevant questions while I clearly stated that I can get lots of information from the equipment, only the status I can’t.

I never said that it’s not working. And yes it is On and Off. Getting energy or not getting energy. It has only this two states. Mechanically moving like the contact moving in the switch.

If you don’t want to understand, I can’t help you.

So please don’t reply.

Bye

Peter

FeladĂł: Stephen McLaughlin via Node-RED Forum notifications@nodered.discoursemail.com
KĂĽldve: Monday, 14 October 2024 20:41
CĂ­mzett: peter.marton0@gmail.com
Tárgy: [Node-RED Forum] [Hardware] TRVZ thermostats



A képet a feladó eltávolította.

|

Steve-Mcl
14 October

|

  • | - |

If you check my stats Peter, i am have over 1500 solutions. I will help anyone and everyone. I meant no disrespect.

Think about it this way, you asked a question, i didnt understand so I asked for clarification. Thats how help works. We are not psychic and we dont know everything, however with details, clues emerge.

for example, if you had told me which node you use (I provided a filtered link for you), I would actually go to the trouble of looking through its issues and code to see if I can figure it out for you. Thats what i do. I am not paid to do this. Like everyone here, we do it to help because this is a good community.

If you dont want help, thats fine.

If you do want help, please provide clear info so I can help.

Steve's first question was to ask for details of which valve it is. Manufacturer, model number and so on. How can anyone be expected to help if you do not even provide that information?

Next was exactly which node-red node type from the palette are you using to access it. Again, that is required information.

Those are not irrelevant questions.

What about this:

So can you clarify: what is your definition of "ON"?

· Valve is open fully?

· Valve is not fully closed (i.e. water can pass through)?

· Value motor is running? (in the open direction?)

· Temperature has reached the target? (or within a percentage?)

· Something else?

BR

FeladĂł: Colin via Node-RED Forum notifications@nodered.discoursemail.com
KĂĽldve: Monday, 14 October 2024 22:09
CĂ­mzett: peter.marton0@gmail.com
Tárgy: [Node-RED Forum] [Hardware] TRVZ thermostats



A képet a feladó eltávolította.

|

Colin
14 October

|

  • | - |

A képet a feladó eltávolította.martonpeter1:

You had a lots of irrelevant questions while I clearly stated that I can get lots of information from the equipment, only the status I can’t.

Steve's first question was to ask for details of which valve it is. Manufacturer, model number and so on. How can anyone be expected to help if you do not even provide that information?

Next was exactly which node-red node type from the palette are you using to access it. Again, that is required information.

Those are not irrelevant questions.

If these are zigbee devices, usually you can not request the status of those devices, because when they are battery powered, it is all about efficiency, they will provide certain data only when they changed or when they need to. Like its battery status are usually only reported once per day for example.

You can often find many details about zigbee devices on the zigbee2mqtt device page, which have been reverse engineered from the devices. 9 times out of 10 you are not able to request a state/status. You will have to store it yourself locally. Many people use home assistant which is quite good of keeping track of states.

You are right and not. My SONOFF Zigbee devices are reporting within every 15 minutes, or when any change, not just daily.

In case no data from one of them than Node Red sends a request to change the mode from Auto to Manual and back. It helps 99%. But its only story, because I just want to measure how often and how long the radiator valves are opening, and turning on the gas boiler, because I just want to see and to see if any problem in the system. Of course I can compare the room temperature with the target temperature, but its not showing exactly the status of the Thermostat.

I have 15 thermostats, and all working well and since I made this node to “wake-up” no problem with them. Its very important, because in iHost scene this valves are controlling directly the gas boiler. Earlier when they started to “sleep”, just opened the own valve and forget to start the boiler. This case I had to change something manually on the device to bring back to the Zigbee network. Just after I realized.

Bye

FeladĂł: Bakman2 via Node-RED Forum notifications@nodered.discoursemail.com
KĂĽldve: Tuesday, 15 October 2024 06:58
CĂ­mzett: peter.marton0@gmail.com
Tárgy: [Node-RED Forum] [Hardware] TRVZ thermostats



A képet a feladó eltávolította.

|

bakman2
15 October

|

  • | - |

A képet a feladó eltávolította.martonpeter1:

You had a lots of irrelevant questions while I clearly stated that I can get lots of information from the equipment, only the status I can’t.

If these are zigbee devices, usually you can not request the status of those devices, because when they are battery powered, it is all about efficiency, they will provide certain data only when they changed or when they need to. Like its battery status are usually only reported once per day for example.

You can often find many details about zigbee devices on the zigbee2mqtt device page, which have been reverse engineered from the devices. 9 times out of 10 you are not able to request a state/status. You will have to store it yourself locally. Many people use home assistant which is quite good of keeping track of states.

And using the eWelink Cube palette node can you not see this capability?

Yes, of course I’m using the “node-red-control-eWeLink-cube” even I don’t know other palette to handle eWeLink devices. If you ask I can copy the list of data I can get.

Ok. Does that include 'status'?


If not, as the capability exists on the firmware for it to show in the app, you will have to ask the eWelink Cube developers, on the eWelink forum, to add to their node.
Alternatively as suggested above you could try Zigbee2MQTT.


Yes! in eWelink Cube Im able to see it. Unfortunatelly its not going into Node Red.
Keeping means OFF. When ON its says HEATING.

1 Like


In "Event State node" you are not getting specific information. Im using it just to trigger the "Get devices node". Its going to give all available datas for the device. Specially for switches i can get the "toggle state". Its clearly says "ON" or "OFF". Of course its giving tons of other informations too.

Ok. As I don't quite understand everything in your last post, connect a Debug node to Event State node, selecting "complete msg object ". Stick a JSON node in between, selecting "Always convert to Javascript object", toggle your valve and post the result (exploded view)

Hi! I hope its good enough.


{
    "payload": [
        {
            "serial_number": "50baf366-14c9-4439-9d4e-3a87f3ae1968",
            "third_serial_number": "a48009f509",
            "name": "01 Garage",
            "manufacturer": "SONOFF",
            "model": "TRVZB",
            "firmware_version": "1.1.5",
            "display_category": "thermostat",
            "capabilities": [
                {
                    "capability": "voltage",
                    "permission": "0100"
                },
                {
                    "capability": "thermostat-target-setpoint",
                    "permission": "1100",
                    "name": "manual-mode",
                    "settings": {
                        "temperatureUnit": {
                            "type": "enum",
                            "permission": "01",
                            "value": "c",
                            "values": [
                                "c",
                                "f"
                            ]
                        },
                        "temperatureRange": {
                            "type": "numeric",
                            "permission": "01",
                            "min": 4,
                            "max": 35,
                            "step": 0.5
                        }
                    }
                },
                {
                    "capability": "thermostat-target-setpoint",
                    "permission": "1100",
                    "name": "eco-mode",
                    "settings": {
                        "temperatureUnit": {
                            "type": "enum",
                            "permission": "01",
                            "value": "c",
                            "values": [
                                "c",
                                "f"
                            ]
                        },
                        "temperatureRange": {
                            "type": "numeric",
                            "permission": "01",
                            "min": 4,
                            "max": 35,
                            "step": 0.5
                        }
                    }
                },
                {
                    "capability": "thermostat-target-setpoint",
                    "permission": "0110",
                    "name": "auto-mode",
                    "settings": {
                        "temperatureUnit": {
                            "type": "enum",
                            "permission": "01",
                            "value": "c",
                            "values": [
                                "c",
                                "f"
                            ]
                        },
                        "temperatureRange": {
                            "type": "numeric",
                            "permission": "01",
                            "min": 4,
                            "max": 35,
                            "step": 0.5
                        }
                    }
                },
                {
                    "capability": "thermostat",
                    "permission": "0100",
                    "name": "adaptive-recovery-status"
                },
                {
                    "capability": "thermostat",
                    "permission": "1100",
                    "name": "thermostat-mode",
                    "settings": {
                        "supportedModes": {
                            "type": "enum",
                            "permission": "01",
                            "values": [
                                "MANUAL",
                                "AUTO",
                                "ECO"
                            ]
                        }
                    }
                },
                {
                    "capability": "temperature",
                    "permission": "0110",
                    "settings": {
                        "temperatureRange": {
                            "type": "numeric",
                            "permission": "01",
                            "min": -40,
                            "max": 80
                        },
                        "temperatureUnit": {
                            "type": "enum",
                            "permission": "11",
                            "value": "c",
                            "values": [
                                "c",
                                "f"
                            ]
                        },
                        "temperatureCalibration": {
                            "type": "numeric",
                            "permission": "11",
                            "min": -7,
                            "max": 7,
                            "step": 0.2,
                            "value": 0
                        }
                    }
                },
                {
                    "capability": "rssi",
                    "permission": "0100"
                },
                {
                    "capability": "battery",
                    "permission": "0100"
                }
            ],
            "app_name": "ewelink-smart-home",
            "state": {
                "thermostat": {
                    "thermostat-mode": {
                        "thermostatMode": "MANUAL",
                        "updated_at": 1730283634759
                    },
                    "adaptive-recovery-status": {
                        "adaptiveRecoveryStatus": "INACTIVE",
                        "updated_at": 1730281441729
                    }
                },
                "thermostat-target-setpoint": {
                    "manual-mode": {
                        "targetSetpoint": 14.5,
                        "updated_at": 1730281441730
                    },
                    "eco-mode": {
                        "targetSetpoint": 7,
                        "updated_at": 1730281441731
                    },
                    "auto-mode": {
                        "targetSetpoint": 9,
                        "updated_at": 1730281441732
                    }
                },
                "temperature": {
                    "temperature": 19.8,
                    "updated_at": 1730283634639
                },
                "battery": {
                    "battery": 96,
                    "updated_at": 1730281441734
                }
            },
            "tags": {
                "deviceInfo": "eyJkZXZpY2VJZCI6ImE0ODAwOWY1MDkiLCJkZXZpY2VrZXkiOiJiNDY2OWYwMS01Y2E5LTQwZWItYmQxNC1mODk4MDI0NzRkZjAiLCJzZWxmQXBpa2V5IjoiNmI2OTczZjktMTYxZi00ZWM0LTk4MzMtNWUzOWI2NDA1OTNiIiwidWlpZCI6NzAxNywiYWNjb3VudCI6InBldGVyLm1hcnRvbjBAZ21haWwuY29tIiwic2VydmljZV9hZGRyZXNzIjoiaHR0cDovL2lob3N0OjgzMjEvYXBpL3YxL2RldmljZS9hNDgwMDlmNTA5In0=",
                "version": "2.4.0",
                "_smartHomeConfig": {}
            },
            "online": true
        }
    ],
    "topic": 1730283803030,
    "_msgid": "14908947c0b61259"
}

10/30/2024, 11:23:22 AMnode: debug 2261730283803030 : msg : Object

object

payload: array[1]

0: object

serial_number: "50baf366-14c9-4439-9d4e-3a87f3ae1968"

third_serial_number: "a48009f509"

name: "01 Garage"

manufacturer: "SONOFF"

model: "TRVZB"

firmware_version: "1.1.5"

display_category: "thermostat"

capabilities: array[9]

0: object

capability: "voltage"

permission: "0100"

1: object

capability: "thermostat-target-setpoint"

permission: "1100"

name: "manual-mode"

settings: object

temperatureUnit: object

type: "enum"

permission: "01"

value: "c"

values: array[2]

0: "c"

1: "f"

temperatureRange: object

type: "numeric"

permission: "01"

min: 4

max: 35

step: 0.5

2: object

capability: "thermostat-target-setpoint"

permission: "1100"

name: "eco-mode"

settings: object

temperatureUnit: object

type: "enum"

permission: "01"

value: "c"

values: array[2]

0: "c"

1: "f"

temperatureRange: object

type: "numeric"

permission: "01"

min: 4

max: 35

step: 0.5

3: object

capability: "thermostat-target-setpoint"

permission: "0110"

name: "auto-mode"

settings: object

temperatureUnit: object

type: "enum"

permission: "01"

value: "c"

values: array[2]

0: "c"

1: "f"

temperatureRange: object

type: "numeric"

permission: "01"

min: 4

max: 35

step: 0.5

4: object

capability: "thermostat"

permission: "0100"

name: "adaptive-recovery-status"

5: object

capability: "thermostat"

permission: "1100"

name: "thermostat-mode"

settings: object

supportedModes: object

type: "enum"

permission: "01"

values: array[3]

0: "MANUAL"

1: "AUTO"

2: "ECO"

6: object

capability: "temperature"

permission: "0110"

settings: object

temperatureRange: object

type: "numeric"

permission: "01"

min: -40

max: 80

temperatureUnit: object

type: "enum"

permission: "11"

value: "c"

values: array[2]

0: "c"

1: "f"

temperatureCalibration: object

type: "numeric"

permission: "11"

min: -7

max: 7

step: 0.2

value: 0

7: object

capability: "rssi"

permission: "0100"

8: object

capability: "battery"

permission: "0100"

app_name: "ewelink-smart-home"

state: object

thermostat: object

thermostat-mode: object

thermostatMode: "MANUAL"

updated_at: 1730283634759

adaptive-recovery-status: object

adaptiveRecoveryStatus: "INACTIVE"

updated_at: 1730281441729

thermostat-target-setpoint: object

manual-mode: object

targetSetpoint: 14.5

updated_at: 1730281441730

eco-mode: object

targetSetpoint: 7

updated_at: 1730281441731

auto-mode: object

targetSetpoint: 9

updated_at: 1730281441732

temperature: object

temperature: 19.8

updated_at: 1730283634639

battery: object

battery: 96

updated_at: 1730281441734

tags: object

deviceInfo: "eyJkZXZpY2VJZCI6ImE0ODAwOWY1MDkiLCJkZXZpY2VrZXkiOiJiNDY2OWYwMS01Y2E5LTQwZWItYmQxNC1mODk4MDI0NzRkZjAiLCJzZWxmQXBpa2V5IjoiNmI2OTczZjktMTYxZi00ZWM0LTk4MzMtNWUzOWI2NDA1OTNiIiwidWlpZCI6NzAxNywiYWNjb3VudCI6InBldGVyLm1hcnRvbjBAZ21haWwuY29tIiwic2VydmljZV9hZGRyZXNzIjoiaHR0cDovL2lob3N0OjgzMjEvYXBpL3YxL2RldmljZS9hNDgwMDlmNTA5In0="

version: "2.4.0"

_smartHomeConfig: object

empty

online: true

topic: 1730283803030

_msgid: "14908947c0b61259"

[Moderator edit to show how to present a JSON using ``` and a formated JSON string]

For the full story:
I have 15 SONOFF TRVZB radiator thermostats, all on Sonoff mobile app. Whenever any of them are turning to "Heating" mode in Sonof Scene triggering a Zigbee switch connected to the gas boiler thermostat input. If all thermostats are turning to "Keeping" mode the scene turning off this Zigbee switch. I have seen that frequently some devices are lost connection when changing status, so the gas boiler is not going to turn on or even not going to turn off due to lack of command. it happened that the boiler was running 5 hours without any open radiator valve.
(Probably the problem with the cheap system.)
So I started to use Node Red to check the status of the thermostats. What I see that they are online or not. In my experience if nothing change with the termostat than every 15 minutes sending status report automaticaly. If any change than immediately sending. If no status report after 20 minutes Node Red sending message, and changing mode of the thermostat to other mode and back. Usually it is enough to bring back the device to online.
Its working properly until now, but if all connected to node red than I want to see that how long the radiators valves are open. For this I want to se this status too. On/Off or Heating/Keeping or Open/Close. Call it as you wish.

If I look at your JSON feed I can see various states,

one of which is adaptiveRecoveryStatus, here INACTIVE, but with a time stamp. Looking at the eWelink API documentacion this is shown as

{
    "adaptiveRecoveryStatus": "HEATING" // Thermostat adaptive recovery status. **Type:** String. Optional values: "HEATING", "INACTIVE".
  }

I would try, on the debug messages panel, to pick out that line and on the 3 icons on the RH side "Copy Path" . Should be something like

msg.payload[0].state.thermostat[“adaptive-recovery-status”].adaptiveRecoveryStatus

Paste that into your debug node to see clearly when it changes, comparing that to the information on your app. Might not, but I suspect it could be.

1 Like