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

unfortunately no success :frowning:

did you use the command or via the UI?
The command I pasted up top - is detached from the UI, so the UI wont realise there is a change.

Any config changes I will use the UI, as that includes a poll after it has been set.

this parameter should switch from Fahrenheit to Celsius.
It still shows Fahrenheit.

ok,

Are you doing this in the UI or a command?
also are you waking up the device after?

if the device sends data eg. temp it should be awake?

You would think right?

but actually no,

a wake up interval is different to a device reporting values.

a wake up interval is to receive new config values (and to report batter levels)
usually there is a method (as per device manual) to wake up the device - usually like a press on a button of some sort

from the manual on your device.

To wakeup the device please perform the following action: There are two tamper keys in the device, one is in the back side, another is in the front side.Both of themcan add,remove, reset or association from Z-Wave network.Press any key once, the device will awake 10 seconds.

Commands are queued, until the device sends a wake interval - as that is when the device is asking for any config changes

Super, it works.
Thaks a lot

You are very welcome.

Also Note:
Our device configs have the ability to split bit mask type params into their seperate values,
just that this device config isn't set up to do so (yet)

we have a few devices that use bit masks - just that some need to be updated.

Hi Marcus,

I just want to tell you that I like your zwave-js very much! Great job and great improvment over openzwave!
I have now integrated 14 devices (switches, door window sensor, thermostats, sirene, Key Fobb, 3in1 sensor) without any problems.

Thank's for shareing!
Hannes

2 Likes

Great to know @juntiedt.
I have something in the works for this node (and maybe 1 or 2 minor fixes of course).

Keep an eye out! :grinning_face_with_smiling_eyes:

I played with the system and started refresh property list for one thermostat.
it now shows fechting properties ..... for all devices
and nothing happens.
How long will it take?
I don't get temp and other updates anymore

ZWaveError: Failed to initialize the driver: Error: Failed to lock DB file "/home/pi/.node-red/zwave-js-cache/f65e5828.values.jsonl"!
at JsonlDB.open (/home/pi/.node-red/node_modules/@alcalzone/jsonl-db/src/lib/db.ts:229:10)
at Driver.initValueDBs (/home/pi/.node-red/node_modules/zwave-js/src/lib/driver/Driver.ts:909:3)
at Driver.initializeControllerAndNodes (/home/pi/.node-red/node_modules/zwave-js/src/lib/driver/Driver.ts:948:4)
at Immediate. (/home/pi/.node-red/node_modules/zwave-js/src/lib/driver/Driver.ts:817:5) (ZW0100)

"Error: Node 12 does not exist."
"Error: Node 13 does not exist."
"Error: Node 14 does not exist."
all thermostats are gone

sorry for my last post!
stopping Node-red and starting again fixed the problem.

Another question:
I cannot set the setpoint of my thermostat. With the UI it works but not though a command
I have included the command of openzwave:

return {topic:"setValue", payload: {"nodeid":11,"cmdclass":67,"type":"decimal","genre":"user","instance":1,"cmdidx":1,"label":"Heat","units":"C","value":"22.0"}};

looks like valueAPI

Hi @juntiedt

This is not a payload that I know of - this looks like openzwave format.

{"nodeid":11,"cmdclass":67,"type":"decimal","genre":"user","instance":1,"cmdidx":1,"label":"Heat","units":"C","value":"22.0"}};

In this module:

Change the set point in the UI (but open up UI Monitor, before you do, to see the command.)
This will allow you to see (and use) the command later - changing the value as necessary :+1:
This will show you the ValueID version.

And the CCAPI Version.

let Message = {
    payload: {
        mode: "CCAPI",
        node: <Node ID>,
        cc: 0x43,
        endpoint: 2, /* if needed */
        method: "set",
        params: ["Heating",TargetValue, 0x00] /* 0x00->C, 0x01->F */
    }
}
return Message

Heating refers to set point type.

"Heating"
"Cooling"
"Furnace"
"Dry Air"
"Moist Air"
"Auto Changeover"
"Energy Save Heating"
"Energy Save Cooling"
"Away Heating"
"Away Cooling"
"Full Power"

Edit:
Just noticed that you are including an OZW command, not actually using that command :laughing:

zwave-js uses lock files to protect the value database, and the lock was not released gracefully.

Could have been cutting the power to the system without terminating node-red for instance.
the fact you seen this, means the lock file had done its job at stoping the database being corrupted.

I used the value API. It works.
I did not try the Ozwave command. This was just to give you an idea of my problem.

Thank's again

No worries,

I noticed after, you referenced it. :+1:

one last question to the Value API.
What has to go into the options?
Should this be the meta data that you get when you click in the UI?

Hi @juntiedt,

The ValueAPI works with a ValueID
However, despite its name, it's not an ID per se.

It's an object that instructs the ValueAPI to what CC, Endpoint and property a value belongs to

Full Example.

/* To get a ValueID: Double click the title of the value in the UI */
const MyValueID = {
    .....
}

/* Options is optional and only applies to setValue */
const Options = {
    transitionDuration:"1m10s", // Multilevel Switch
    volume: 30 // Sound Switch
}

const MyTargetValue = 50

const  Message = {
    payload: {
        mode: "ValueAPI",
        node: 2,
        method: "setValue",
        params: [MyValueID, MyTargetValue, Options]
    }
}
return Message

Here is the Wiki for ValueAPI (and the other APIs)

Hi Marcus,
how can I make a Multi Level Sensor Report incomming?
This is the case when theThermostat should use an external temp sensor.

This is the one that goes out:

{
valueId: {
commandClassName: "Multilevel Sensor",
commandClass: 49,
endpoint: 0,
property: "Air temperature",
propertyName: "Air temperature"
},
meta: {
type: "number",
readable: true,
writeable: false,
unit: "Ā°C",
label: "Air temperature",
ccSpecific: {
sensorType: 1,
scale: 0
}
},
propertyid: "0-49-Air temperature-",
endpoint: 0,
valueData: {
value: 18.84,
unit: "Ā°C"
}
}