Skip to content

Commit

Permalink
7.0.0 (#204)
Browse files Browse the repository at this point in the history
* UI Refresh Foundations

* Update client.js

* More buttons/Layout

* Update package.json

* Update client.js

* Update client.js

* Initial Breaks

* Update CHANGELOG.md

* More simplification

* Update CHANGELOG.md

* UI Changes

* Serialport fixes.

* Update zwave-js.js

* Map updates

* Map Updates

* Update client.js

* Update client.js

* Update client.js

* Update client.js

* Remove Optional Chaining

* Correct node name prop

* URI fixes and map

* Move Files

* Multi Network Support

* Remove Fatal Retry

* get ValueBD

* Value DB

* Almost There

* Update Help

* Update README.md

* Filter updates

* Map Rendering

* Update maprender.js

* Status Function, SmartStart Fix, Styling, Local Data Switch

* Map

* Final Edits

* Update Gif

* LGTM Alerts

* UI Optimisations

* More UI Optimisations

* More UI Optimisations

* More UI Optimisations

* we like More UI Optimisations

* Nits

* Update CHANGELOG.md

* Update package.json

* Initial Reported Nits

* Improvements

* Nits

* Final 1

* Update README.md
  • Loading branch information
marcus-j-davies authored May 6, 2022
1 parent ea6aab9 commit 5e19fa5
Show file tree
Hide file tree
Showing 34 changed files with 5,496 additions and 2,104 deletions.
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# node-red-contrib-zwave-js Change Log

- 7.0.0

**Breaking Changes**
- The **GET_VALUE_RESPONSE** object is no longer partitioned with **response** and **valueId** properties.
Instead, the returned object now represents a shape simular to **VALUE_UPDATED** events.
The value will now be attached to the **currentValue** property, along with the Value ID on the same level.
- The **VALUE_DB** objects are no longer partitioned with **currentValue** and **valueId** properties.
Instead, the returned objects now include the Value ID on the same level as **currentValue**
- Much like above, **GET_VALUE_METADATA_RESPONSE** has also been simplified, where the result is attached to **metadata**, with the Value ID on the same level.

**New Features**
- **VALUE_UPDATED**, **VALUE_NOTIFICATION**, **GET_VALUE_RESPONSE** and **VALUE_DB** now contain a **normalizedObject** property.
This property aims to make it easy to utilise the value change, in that it summarises the event with easy to understand property names.
- An entierly new side panel UI. This redesign aims to better align with the Node RED style guide.
- An entierly new Network Mesh Map, that is now based on routing header information instead of Node Neighbours.
- Network statistics now include route information that is obtained during communication, and is used
as the basis of the new map.
- Multiple ZWave sticks/Networks are now supported (finally)
- All message will contain a property of **networkId** to indentify the source network.
**WARNING**: Before adding another network - please ensure you open up the currently configured Controller
and save it again (Remembering to deploy) - this will allign the current network to ID 1
- Improved Recovery when the USB/ZWave transceiver has been removed/re-introduced.
- This is possible with a custom Watchdog implmentation, this introduces a new event type of **WATCHDOG**
Which will describe what is happening.

**Fixes**
- Nodes that are not marked as ready can now be removed correctly.
- Fix potential issue when **httpAdminRoot** has a custom value.
- Various performance, stability and optimisations to the UI.
- UI Interaction is no longer picked up by Device Nodes.

**Changes**
- Bump serialport to V10
- Bump ZWJS to V9
- New mapping algorithm - The new algorithm results in a much needed accuracy improvement, and is far superior to previous methods.
- Nodes have now been named more clearly
- Live Camera QR Code Scanning has been removed



- 6.5.5

**Fixes**
Expand Down
Binary file modified GHImages/ControllerNode.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified GHImages/DeviceNode.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified GHImages/Factory.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified GHImages/FilterNode.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified GHImages/GUIscreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified GHImages/ZWUI.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
![npms.io (maintenance)](https://img.shields.io/npms-io/maintenance-score/node-red-contrib-zwave-js)
![Libraries.io dependency status for latest release](https://img.shields.io/librariesio/release/npm/node-red-contrib-zwave-js)

The most powerful/fully integrated Z-Wave node for Node-RED based on Z-Wave JS. If you want a fully featured Z-Wave framework in your Node-RED instance, look no further.
The most powerful, high performing and highly polished Z-Wave node for Node-RED based on Z-Wave JS. If you want a fully featured Z-Wave framework in your Node-RED instance, you have found it.

> ### ...node-red-contrib-zwave-js is _hands down the best Z-Wave to Node-RED option on the planet._
> [@CRXPorter](https://github.com/crxporter), July 2021.
Expand All @@ -22,6 +22,7 @@ The most powerful/fully integrated Z-Wave node for Node-RED based on Z-Wave JS.
- The Ability to capture commands for later use.
- A deep integrated UI within in node red
- Full Z-Wave control inside Node-RED including:
- Multi Stick/Network support
- Device inclusion/exclusion wizard
- S0 and S2 security support
- Supports Security S2 Smart Start (Mobile companion web application)
Expand All @@ -46,10 +47,10 @@ Included with the contrib is a [user interface](https://github.com/zwave-js/node
![Image](./GHImages/Demo.png)

There are 4 node types included with this contrib ([click here](https://github.com/zwave-js/node-red-contrib-zwave-js/wiki/node-types) for full details about these nodes)
- `zwave-js`: this node is used to set up a connection to your USB Z-Wave controller, set security keys, and manage various advanced controller options
- `zwave-device`: this node is used to send and receive messages to one or more of the Z-Wave devices on your network
- `event-filter`: this node is used to filter and sort messages from your Z-Wave devices
- `cmd-factory`: this node simplifies creation of messages being sent to your Z-Wave devices
- `ZWave Controller`: this node is used to set up a connection to your USB Z-Wave controller, set security keys, and manage various advanced controller options
- `ZWave Device`: this node is used to send and receive messages to one or more of the Z-Wave devices on your network
- `Event Filter`: this node is used to filter and sort messages from your Z-Wave devices
- `CMD Factory`: this node simplifies creation of messages being sent to your Z-Wave devices

### Getting Started Links
- [Installing](https://github.com/zwave-js/node-red-contrib-zwave-js/wiki/getting-started): system requirements and install instructions
Expand Down
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
{
"name": "node-red-contrib-zwave-js",
"version": "6.5.5",
"version": "7.0.0",
"license": "MIT",
"description": "An extremely powerful, easy to use, and feature rich Z-Wave node for Node Red, based on Z-Wave JS.",
"dependencies": {
"limiter": "^2.1.0",
"lodash": "^4.17.21",
"serialport": "9.2.8",
"winston": "^3.5.1",
"winston-transport": "^4.4.2",
"zwave-js": "^8.11.3"
"serialport": "^10.4.0",
"winston": "^3.7.2",
"winston-transport": "^4.5.0",
"zwave-js": "^9.2.1"
},
"devDependencies": {
"eslint": "^8.8.0",
"prettier": "^2.5.1"
"eslint": "^8.14.0",
"prettier": "^2.6.2"
},
"scripts": {
"validate": "node-red-dev validate -o validation_result.json"
Expand Down
Binary file added resources/MeshMap/Battery.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/MeshMap/Mains.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
49 changes: 49 additions & 0 deletions resources/MeshMap/Map.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html style="height: 100vh">
<head>
<title>Node RED Z-Wave JS Network Mesh</title>
<script type="text/javascript" src="{BASE}/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="{BASE}/cytoscape.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/weaver.min.js"></script>
<script type="text/javascript" src="{BASE}/cytoscape-spread.js"></script>
<script type="text/javascript" src="{BASE}/maprender.js"></script>

<style>
#Details {
width: 400px;
height: 400px;
background-color: rgb(241, 241, 241);
font-size: 14px;
font-family: 'Helvetica Neue Light', 'Calibiri Light', Roboto;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
border-style: solid;
border-width: 1px;
-webkit-box-shadow: 10px 10px 5px -7px rgba(0, 0, 0, 0.75);
-moz-box-shadow: 10px 10px 5px -7px rgba(0, 0, 0, 0.75);
box-shadow: 10px 10px 5px -7px rgba(0, 0, 0, 0.75);
padding: 10px;
box-sizing: content-box;
}
</style>
</head>
<body style="height: 100%">
<div style="display: flex; width: 100%; height: 100%">
<div id="Details">
<span
>Select A node to view information.<br /><br />NOTE: Disconnected
Nodes will have their routes determined, after they first
communicate.</span
>
</div>
<div
id="NetworkMesh"
style="width: calc(100% - 400px); height: 100%"
></div>
</div>
<script>
Render('{BASE}');
</script>
</body>
</html>
Binary file added resources/MeshMap/Stick.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 5e19fa5

Please sign in to comment.