# Using openHASP with Node-Red

**URL:** <https://discourse.nodered.org/t/using-openhasp-with-node-red/81457>\
**Category:** General\
**Created:** [20 September 2023 15:06 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457 "2023-09-20T15:06:47Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![thatkide](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thatkide/32/83455_2.png) [@thatkide](https://discourse.nodered.org/u/thatkide)\
**Post date:** [9 February 2024 01:13 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/41 "2024-02-09T01:13:51Z")

</div>

My screens are 320X480 and 800X400, I really like the idea of a dynamic screen. I've been playing around with different layouts and while they work I would like for them to be able to control a great deal without looking too overbearing.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [9 February 2024 01:48 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/42 "2024-02-09T01:48:46Z")

</div>

That was my design philosophy "look" like a light switch but with a lot of hidden functionality.

I settled on a page per room, for basic functions, but then any number of tabs on each page for extra functions. Also I use the first tab name as a label for the page, as it saves some more screen space 😉

The visible tab is highlighted in bright white. Clicking the scene tab name then slides in another set of controls.  
As you can see from earlier posts, any extra requirements are being done via popups. These are triggered without the need of extra buttons where possible, by using e.g. a long press.  
For example, a long press on a colour capable light shows the colour slider popup.

I plan to have a detail weather page triggered by pressing the weather icon, maybe even the clock etc...  
I added 4 buttons at the bottom as place holders right at the start, but have only used 2 so far 😉  
And I might even get rid of them altogether, which would recover some valuable screen space

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/6/76e3e262b8cb1d18a28145d304f0ca0d56201fee.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/0/b08da1e8df275904ba6ce3858935ea9e953e1cea.png)

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/6/26b0538fca081c0d4b50b304db5ca6ce130b514a.png)

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [10 February 2024 02:32 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/43 "2024-02-10T02:32:40Z")

</div>

_Poll ([view on site](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/43))_

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/8/d8a40f694e405f6538e11c5d7998da3d6af1914b.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/e/9e9a093731a2968bf1c014dc69a53e6d314ae856.png)

The menu can be selected by pressing the clock, if no footer is shown, so it doesn't really impact usability, extra advantage is other buttons can be bigger.

Downside / Upside - people who do not know this can only operate the basic controls 😉

Feedback welcome

---

<div class="post-metadata">

**Author:** ![thatkide](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thatkide/32/83455_2.png) [@thatkide](https://discourse.nodered.org/u/thatkide)\
**Post date:** [14 February 2024 15:48 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/44 "2024-02-14T15:48:19Z")

</div>

I do like the idea of people not knowing about the extra stuff and just using the basic items shown. I have my paging setup that way. I added a slider object to the top boarder and that allows me to get to pages where I don't have a navigation button for.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [14 February 2024 23:07 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/45 "2024-02-14T23:07:30Z")

</div>

So you prefer the navigation buttons over a "hidden" drop down menu then ?  
Did you ever try the earlier demo with your larger screens ?

I don't expect it to work 100% correctly yet, but it would be useful to see how it turns out, so I can see what still needs to be fixed up.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [16 February 2024 02:31 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/46 "2024-02-16T02:31:33Z")

</div>

My latest widget is an "alarm" panel.

It provides a basic framework to display messages from an existing alarm flow, and handles mode selection and pin entry via my pinpad widget.

This information is passed back to the alarm flow, so it can be armed disarmed etc. The new state any instructions and countdown timers etc can then be passed back to the widget as required.

With and without the footer menu 😉

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/3/d38d30b0f2b801e9550d44192a9cf47369563884.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/9/a9d40245acb8f3e04a35d2014fc4057682b615ec.png)

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [20 February 2024 19:20 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/47 "2024-02-20T19:20:47Z")

</div>

In tandem with the changes I made to the "page layout" file,

> [@Hasp\["1"\].page\[0\].tab\[0\].btn\[0\].value\_str - too complex or run of the mill?](https://discourse.nodered.org/t/hasp-1-page-0-tab-0-btn-0-value-str-too-complex-or-run-of-the-mill/85091/16):
>
> I have decided to stick with this layout format as it seems to work well. In efforts to further reduce the need for data entry, I have added functionality to read a "props" property in each level of the hierarchy. This means that something like "btnStyle" can be added at the top level and will be applied to every button on that particular screen, without needing to enter it anywhere else. But it can also be set at different levels, then it applies to items below that level. If set on page the…

I have added the ability to override aspects of the auto formatting code. These can be set in the props values and modify the way that the buttons are arranged.

By default based on a given container size, X number of buttons are arranged to fit into a grid of x columns by y rows. If this is not symmetrical then by default it creates more columns than rows.

This behaviour can now be switched around so there are more rows than columns.

While I was doing this I thought I might as well add the ability to specify a fixed number of rows or columns and just calculate the unspecified value. This simple change actually makes a big difference to how the screens look and allows more personalisation, than the original fixed layout routine.

Some examples of the same button screen but in different arrangements.

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/f/0f866cb992afddead58f9d9ed5b03112d4ca4182.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/5/8/58373bc669a22ff00c350e7252186849d11f5423.png)

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/3/b3550975e0e275cdedfa0166be4e793ec1f5ca75.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/6/867b6327c027e0f4dedd99406627764e54d77bdf.png)

Some not overly practical, but then there is also container size, spacing and margins to play with 😉

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/5/151c6e85d696b51d7005422ee241b14d9491728f.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/9/c9b5f37c26e61e71d063281136b53e0e0dde71db.png)

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [23 February 2024 03:20 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/48 "2024-02-23T03:20:17Z")

</div>

> [@thatkide](#):
>
> I really like the idea of a dynamic screen

I have done a lot of work on the layout, so it now scales all of the content to different screen sizes.

It not easy to test as I only have 480x480 screens, so if you want to be a guinea pig let me know 😉

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [2 March 2024 01:57 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/49 "2024-03-02T01:57:54Z")

</div>

Just experimenting with extending the "button" styles. This layout is using 3 new styles based on openHASP widgets - Label, Button-Matrix and Slider.

While the layout code was designed for buttons, in theory any single object can be used, to create the extra width I forced the layout to use 1 column.

This allows for control of e.g. some blinds, with the matrix allowing quick control for open close and some pre-set values and the slider allowing fine control and current position feed back.

It's not even released yet and even I'm already abusing the code 😉

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/8/28403d829b55b6024a62f2ea3a5bcbed32d5ccc6.png)

However more in keeping with my popup strategy, I'm also looking at creating a dedicated popup for cover controls -

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/3/f3f6c443e5d3b90ccb0e2f0f65d5d66e5f36d74b.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/a/9acb4d8f0e91ae7c424833e9269aa07c4da294d2.png)

Just for fun, the rolling hills of Teletubbyland 😂 😂  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/f/4f233f5f89ba5121671172e6aeb21e0c66c5a055.png) ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/9/a9c26469005a494174c32c57a0a6762e8041ba8b.png)

---

<div class="post-metadata">

**Author:** ![yogy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/yogy/32/32191_2.png) [@yogy](https://discourse.nodered.org/u/yogy)\
**Post date:** [2 March 2024 18:20 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/51 "2024-03-02T18:20:51Z")

</div>

Short first test, short reply, imported in node red in a docker container  
Changed to 800x480  
I've got the page with time etc.  
6 buttons page filled.

Beside some errors about gear that i do not have (degrees/ tasmota I got errors in the debug

3/2/2024, 6:00:01 PM[node: Create Button Pages](http://192.168.1.252:1880/#)function : (warn)  
"haspOptions plate missing"

3/2/2024, 6:00:01 PM[node: Create Button Pages](http://192.168.1.252:1880/#)function : (error)  
"TypeError: Cannot read properties of undefined (reading 'page')"

3/2/2024, 6:35:55 PM[node: Add Page zero and widgets](http://192.168.1.252:1880/#)function : (warn)  
"Scale x:1.6666666666666667 y:1"

3/2/2024, 6:49:53 PM[node: Update Hasp](http://192.168.1.252:1880/#)function : (warn)  
"no matching button espresso/POWER"

3/2/2024, 6:29:49 PM[node: jsonl](http://192.168.1.252:1880/#)msg : string[110]  
"failed to write to file: Error: ENOENT: no such file or directory, open '/home/pi/.node-red/my-data/jsonl.txt'"

I created the file (my-data/jsonl.txt) in the docker nodered data dir but i'm not sure of the home/pi part is correct.  
The error stayed afrer restart.

Short in time now, return later.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [2 March 2024 23:10 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/52 "2024-03-02T23:10:45Z")

</div>

Sounds like you didn't change the topic on the "plate" to "1", which is what is setup in the flow.

So you are seeing some warnings related to the fact that there is no setup for "plate".

If you got some default screen contents that's good.

Also from **"no matching button espresso/POWER"** I assume you are using Tasmota firmware on some devices - that's handy as they can be setup easily in the page layout by adding the topics 😉

Can you post a screen shot so I can see how it rendered please ?

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [2 March 2024 23:21 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/53 "2024-03-02T23:21:59Z")

</div>

> [@yogy](#):
>
> 3/2/2024, 6:29:49 PM[node: jsonl](http://192.168.1.252:1880/#)msg : string[110]  
> "failed to write to file: Error: ENOENT: no such file or directory, open '/home/pi/.node-red/my-data/jsonl.txt'"

You can either disable this node or set the file path to somewhere appropriate for your setup. It's only really there for debugging, at the moment

> [@yogy](#):
>
> 3/2/2024, 6:00:01 PM[node: Create Button Pages](http://192.168.1.252:1880/#)function : (error)  
> "TypeError: Cannot read properties of undefined (reading 'page')"

Looks like I forgot to deal with that particular error if there is missing data, but nothing to worry about.

---

<div class="post-metadata">

**Author:** ![yogy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/yogy/32/32191_2.png) [@yogy](https://discourse.nodered.org/u/yogy)\
**Post date:** [3 March 2024 08:26 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/54 "2024-03-03T08:26:34Z")

</div>

> [@Sean-McG](#):
>
> Sounds like you didn't change the topic on the "plate" to "1", which is what is setup in the flow.

No sir, i had change the "host" name to 1

The scrolling popup window when pressing the time is not always responsive, or too responsive  
I had the device hanging completely and has to be restarted by pulling the plug.  
No restart possible from node red or the webpage from the device.

> Can you post a screen shot so I can see how it rendered please ?

here you go:

![IMG_1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/4/642dc59bd820fa25b525d151af142a53a8fbd2ed.jpeg)  
 ![IMG_2](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/3/13ea03b5f488796e09f09ae2694c871534439e97.jpeg)  
 ![IMG_3](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/9/495c880490768e85cf8e5582f3591fd2e418ae23.jpeg)  
 ![IMG_4](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/a/3ae62cbe8405b8f55df68aee443b3bc600311ade.jpeg)  
 ![IMG_5](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/5/0/505fffca9a611b4db36dafc5650a1ab2cd5aa0c4.jpeg)  
 ![IMG_6](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/d/dd54ddd99396c2921a396acabb1a67dab0a0d395.jpeg)

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [3 March 2024 13:19 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/55 "2024-03-03T13:19:14Z")

</div>

@yogy EDIT I have the same screen as you now, so will test with that.

Thanks a lot that's really helpful, the only issue I can see with the layout is the scaling on the blind screen and the alarm button text which is an easy fix.

> [@yogy](#):
>
> "haspOptions plate missing"

Since the warning gives the topic **"plate"** it must have come from the device, perhaps you didn't restart the screen after changing it ?

> [@yogy](#):
>
> "TypeError: Cannot read properties of undefined (reading 'page')"

I can't seem to replicate this error - Can you detail any changes that you made to the theme or layout functions in the "green" group. - Perhaps post you modified versions so I can test with them ?

> [@yogy](#):
>
> The scrolling popup window when pressing the time is not always responsive, or too responsive

Could you perhaps explain what happens in a bit more detail, not sure if this is a touch screen issue with your screen or something else ?

> [@yogy](#):
>
> I had the device hanging completely and has to be restarted by pulling the plug.  
> No restart possible from node red or the webpage from the device.

Again if you could explain in a bit more detail please, also can you confirm the hasp firmware version you are using.

Not restarting from node-red could be a topic issue, since the restart inject is set to "1" and it seems at some point at least, your device was still using plate.

Again thanks for your feedback 😀

PS there is a screen shot button on the openHasp web page, which makes sharing the images easier.

---

<div class="post-metadata">

**Author:** ![bwims](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bwims/32/64907_2.png) [@bwims](https://discourse.nodered.org/u/bwims)\
**Post date:** [9 March 2024 17:02 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/56 "2024-03-09T17:02:12Z")

</div>

This is brilliant! I hope to get it working.

I've only just got into OpenHasp, so I'm starting small.

I have tried deleting a page from pages.jsonl and adding it via NR, but have failed so far.  
I used your early example as a model as follows:

```auto
msg.topic = "hasp/plate01/command"

msg.payload = [
    {
    	"page": 4,
    	"id": 1,
    	"obj": "btn",
    	"text": "Timer",
    	"x": 80,
    	"y": 160,
    	"w": 80,
    	"h": 30
    }
]

return msg;

```

Then after a reboot, the page is not there.

I think I must have missed something critical!  
[Edit]  
This is what I see on the Telnet log

`#[17:05:55.747][90100/106400 15][53948/54128 1] MQTT RCV: = [{"page":4,"id":1,"obj":"btn","text":"Timer","x":80,"y":160,"w":80,"h":30}]`

Thanks!

B.

---

<div class="post-metadata">

**Author:** ![bwims](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bwims/32/64907_2.png) [@bwims](https://discourse.nodered.org/u/bwims)\
**Post date:** [9 March 2024 17:37 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/57 "2024-03-09T17:37:09Z")

</div>

Looks like V7 needs a trailing "/" after the msg.topic "command".

Solved!

B.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [9 March 2024 17:54 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/58 "2024-03-09T17:54:19Z")

</div>

I haven't needed a "/" on the end, with any version including the latest release firmware ?

Perhaps something else was wrong.

Which post are you referring to, as this project has moved on a lot 😉

---

<div class="post-metadata">

**Author:** ![bwims](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bwims/32/64907_2.png) [@bwims](https://discourse.nodered.org/u/bwims)\
**Post date:** [9 March 2024 19:37 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/59 "2024-03-09T19:37:04Z")

</div>

Hi!

Thanks for replying.  
Huh! It seems you are right! I don't know what I did but all seems to work now!

I used your post [here](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/12) as a guide.

I was misled by a change in the documentation:

For [V7](https://openhasp.haswitchplate.com/0.7.0/commands/) under MQTT Commands it says

> MQTT Topics~  
> hasp/plate01/command/ is for sending commands to the screen hasp/plate01/state/ is for receiving updates from the screen

(Note trailing slash)

Whereas for [V6](https://openhasp.haswitchplate.com/0.6.3/commands/) it says

> For MQTT, you can use either:
> 
> hasp//command topic with payload =\<parameter(s)\>  
> ...

(Note lack of trailing slash)

Oh well. Progress is progress!

While I am here, could I ask if you have any NR expamples for producing popups?

Thanks!

B.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [9 March 2024 20:20 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/60 "2024-03-09T20:20:07Z")

</div>

Sure take a look at this post -

> [@Using openHASP with Node-Red](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/50):
>
> This is the flow so far if anyone would like to give it a try and provide some feed back. [haspflow.zip.txt](https://discourse.nodered.org/uploads/short-url/pvES6F7JnYeiZ5bj0zKuPoHdPoP.txt) (35.7 KB) Remove the .txt extension and then unzip. Copy the text and import into NR. Set all MQTT nodes to your own server. On the hasp device go to HASP Design and choose Material Dark theme, then in MQTT settings set the hostname (topic) to "1". Reboot hasp and hopefully you should see some content wink In NR there a a green coloured group, the Setup Pages Layout contains a large …

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [9 March 2024 20:21 UTC](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457/61 "2024-03-09T20:21:00Z")

</div>

> [@bwims](#):
>
> For [V7](https://openhasp.haswitchplate.com/0.7.0/commands/) under MQTT Commands it says
> 
> > MQTT Topics~  
> > hasp/plate01/command/ is for sending commands to the screen hasp/plate01/state/ is for receiving updates from the screen
> 
> (Note trailing slash)

I agree it is misleading but in full context, i beleive it means you should _add to the end_:

> `hasp/plate01/command/` is for sending commands to the screen `hasp/plate01/state/` is for receiving updates from the screen
> 
> So the topic depends on the direction of the data flow.
> 
> Sending a message to topic `hasp/plate01/command/p1b2.val` with payload `25` would be a valid command. You can send a test MQTT message with a standalone program like MQTT Explorer or mosuito\_pub.

... e.g. 👆 `hasp/plate01/command/p1b2.val` 👆

EDIT:  
Re-reading - it seems they may actually _do mean_ add a trailing slash to differenciate screen from button/object topics 🤷‍♂️

EDIT2:  
Re-reading again - I am confused! 😛

[Previous page](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457.md?page=2)

[Next page](https://discourse.nodered.org/t/using-openhasp-with-node-red/81457.md?page=4)
