[ANNOUNCE] node-red-contrib-zwave-js 6.2.0

Hi @juntiedt,

The above is just the ValueID (and associated information about it).
its not the command that is used to make changes on the UI.

Multilevel Sensor reports (in fact most updates) will be delivered to you via, VALUE_UPDATED events, whenever the device sends out an update.

just attach a debug node to the controller (or device node) to capture it.
you can then react accordingly, when an update has been sent out from your device.

See here, for all the event types that one can expect.

And wouldn't you believe it, I have just received a temperature update.
it will look similar to the below.

image

You can employ the event-filter to split the different types of value updates, out to different pins.
Just activate a filter (it will expand), and in the UI double click a value title - this will allow you to add the entry to the filter.

each filter you add, it will become an output pin.

Receiving temp reports works ok.

But my Thermostat can receive temprature from an external room sensor. This is interesting, if you have more than one Thermostat in a room.

The documentaion says the thermostat can receive Multi Level Sensor reports:

Report incomming:
Sensortype: "Air Temperature"
Scale: Celsius and Fahrenheit
Position after decimal point: 0,1 and 2

just changing get to set seems not to work for me.

Right I get it! :grinning_face_with_smiling_eyes:

Ok, this will need the CCAPI (which is a lot more "raw")

According to this.
https://zwave-js.github.io/node-zwave-js/#/api/CCs/MultilevelSensor?id=sendreport

We do this

const  Message = {
    payload: {
        mode: "CCAPI",
        cc: 0x31,
        node: 2, /* receving thermo */
        method: "sendReport",
        params: [0x01,0x00,22] /* 0x01 -> Temperature type value, 0x00 -> Celsius, 22 -> Value */
    }
}
return Message

Your thermo may evan need to absorb the external reading via an association, but see if this works first.

it works!

It does not react immediately but this is normal. It checks Temp about every minute.

Now I have everything I need to optimize my heating system! :slight_smile:

Many thank's
Hannes

Very slick indeed! :+1:

If your 'external temp' can send out its update using an association,
you don't have to construct the message your self.

in other words, device A sends directly to device B.

you will need to understand the association groups for the external temp (and what they send out) before you know if it will work.

The UI for Associations is in the device options in the UI (bottom section).
But then, if you also want to process the value for the dash - no harm in constructing the message your self.

Anyway Enjoy!

association won't work for me as I have floor heating and some radiators. I am measuring my room temperature with enocean sensors and node-red manages the different valves of the floor heating.
Therefore setpoint and temp has to come via node-red.

Got it (I think) - The external is not z-wave.

Hi Marcus, I have a problem with this binary switch;

https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/2057/Home_Control_Schalt_Messsteckdose_2.0_2016_11_02_eng.pdf

when I switch it on or off, which works ok, it should send a status report (on and off) but it does not come.
If I switch it with the ui I get the response but not when I use comand factory.
What is the problem?

Hi @juntiedt

Are you using CCAPI?
if so, set this for your Force Update value (or at least make it the result of the JSONata query)

{"property": "currentValue"}

See here for the explanation.
https://github.com/zwave-js/node-red-contrib-zwave-js/wiki/CC-API#forcing-updates

The ValueAPI will fetch the value after (this is why you get the response), where as the CCAPI does not, so we force it to do so.

This is not always needed - its dependant on the characteristics of the device

Assuming you're sending the command it produces to the controller?

if not - then this maybe my fault for not making it clear in the Wiki - its a relatively new tool to the collection :see_no_evil:

thanks for having so much patience with me.
I was not precise enough.
switching works and all meter stuff as well.
It is just the auto on/off report. This has something to do with association and I have never used association. Actually the device sends the on/off status to the node id of group 1; It is explained in the document under point 2 and 2-1. Link 3 posts above.
how can I subscribe to this group?

https://devices.zwave-js.io/?jumpTo=0x0175:0x0001:0x0012:0.0

Just looking at the doc now....

Ok,

If you open up the association UI for this node.
Select Endpoint 0 (Im guessing this only has 1)

and you should see some groups?
Could you detail the associations for each group?

only group is 1 - lifeline

my switch is node 9

Ok Group 1 is Lifeline (the controller (1) will always be attached to Lifeline)

According to the manual, the device should be reporting back when ever a Binary Switch command change was sent.

Do you mind creating a log for me?

  1. Turn Logging on to Debug (keep Pin2 Logging disabled)
  2. Do a CCAPI Binary Switch Change from NR

We need to see if the device really is sending a report back - the log will tell us.

The log does not contain any sensitive info, but feel free to move over to a PM discussion, if you prefer.

please keep the log intact.

Log file will be (example) /home/pi/.node-red/zwave-js.log

I have an idea, what this is, we just need a flag on the devices config file - but the log will confirm my suspicion

which logging? zwave-js (where) or node-red

when I use UI "set target value" (true or false) I get a proper switch report. What are you doing in the UI?

On the Controller Node config, there is an option for logging.

The UI uses the ValueAPI - which has a different approach, when it comes to confirming back to the user that the change was completed (it actually asks for the value after = your feed back)

The CCAPI does not "confirm" the change - it would happen on the device of course, but we don't ask for it.

Now, the manual states, when ever there is a change, the device should report it.
we need to check if that is happening OR if the ValueAPI on the UI is Optimistically confirming it.

The log will capture if the device is reporting back the update, if it is - my focus will be on making a small change on the device config file,

be sure to use the CCAPI Binary Change when logging is on.

now it works :+1: :slightly_smiling_face:
I have put force update for targetvalue in binary switch CCAPI and the on/off report shows up.
But if you switch on, not only the on/off report shows up, but also the meter report and the alarm report.
Due to this fact, you have to wait with switching off untill all reports (Switch_Binary_Report, Meter_Report, Alarm_Report) are send otherwise you get a retry error.
In normal use this should be ok.