Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved
Collapse
Discussion Forum to share and further the development of home control and automation, independent of platforms.
  1. Home
  2. Software
  3. Multi-System Reactor
  4. MQTT interface... time for some testing. Where are my experts?
Set Reaction > Script Action
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Errors after updating to MQTTController build 25139
tunnusT
I'm running MSR build 25139 on Docker, using MQTT controller 24293, and everything working as expected. But if I try to upgrade to MQTTController build 25139, I'm getting the following errors on MSR UI: An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.god Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.green Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.red Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto run" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.pump Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa watchdog" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.status Last 11:20:37 My MQTT configuration (local_mqtt_devices.yaml) for the related entity is: layzspa_message: type: ValueSensor capabilities: ["temperature_sensor", "value_sensor", "power_sensor"] primary_attribute: power_sensor.value events: "layzspa/message": "power_sensor.value": json_payload: true if_expr: '! isnull( payload?.PWR )' expr: "float(payload.PWR)" "value_sensor.air": json_payload: true if_expr: '! isnull( payload?.AIR )' expr: "float(payload.AIR)" "value_sensor.pump": json_payload: true if_expr: '! isnull( payload?.FLT )' expr: "float(payload.FLT)" "value_sensor.god": json_payload: true if_expr: '! isnull( payload?.GOD )' expr: "float(payload.GOD)" "value_sensor.lock": json_payload: true if_expr: '! isnull( payload?.LCK )' expr: "float(payload.LCK)" "value_sensor.unit": json_payload: true if_expr: '! isnull( payload?.UNT )' expr: "float(payload.UNT)" "value_sensor.error": json_payload: true if_expr: '! isnull( payload?.ERR )' expr: "float(payload.ERR)" "temperature_sensor.green": json_payload: true if_expr: '! isnull( payload?.GRN )' expr: "float(payload.GRN)" "temperature_sensor.red": json_payload: true if_expr: '! isnull( payload?.RED )' expr: "float(payload.RED)" "temperature_sensor.target": json_payload: true if_expr: '! isnull( payload?.TGT )' expr: "float(payload.TGT)" "temperature_sensor.value": json_payload: true if_expr: '! isnull( payload?.TMP )' expr: "float(payload.TMP)" "temperature_sensor.virtual": json_payload: true if_expr: '! isnull( payload?.VTM )' expr: "round(float(payload.VTM), 1)" "temperature_sensor.ambient": json_payload: true if_expr: '! isnull( payload?.AMB )' expr: "float(payload.AMB)" "layzspa/Status": "value_sensor.status": if_expr: '! isnull( payload )' expr: "payload" "layzspa/button": "value_sensor.button": if_expr: '! isnull( payload )' expr: "payload" and in reactor.yaml I have: "layzspa_states": name: "Lay-Z-Spa States" friendly_name: 'Lay-Z-Spa States' include: layzspa_message I realize my MQTT configuration might be a bit unorthodox, but could there still be something unintentional in the latest MQTTController build? If needed, I can provide detailed logs.
Multi-System Reactor
🎉 My very first MSR controller: OpenSprinkler
therealdbT
Since today is my birthday - and I still pretend to be unconventional - I'm giving away a present to this wonderful community and I'm releasing my first OpenSprinkler controller for MSR. It was real fun to code it - and while it's still WIP, it seems to work OK for me. It's polling-based at the moment, but I'll add support for updates via MQTT very soon (it's already partially coded). Get it at (install is similar to MQTTController and such): https://github.com/dbochicchio/reactor-opensprinkler Feel free to try it. It's beta software, but it's stable. I'll update it weekly until all the tasks from my todo list are empty. Since I've learnt a lot from this controller, I'll explore new controllers soon.
Multi-System Reactor
Advice reqeusted to migrate MSR from Bare Metal to Container
T
Good day all, I'm in the process of trying to shut down my 10 year old Linux home server that served many purposes, but primarily it's what I used for my NAS/Plex Media server. I migrated the NAS aspect of the server in November of last year to a true NAS solution (Ubiquti UNAS Pro), which is rack mount and much more efficient than my old tower, which it's only side benefit was heating my home office during the winter. Unfortunately it also means heating my home office during the summer, which were about to be in full swing. I have two things running on this 10 year old server at this point. MSR and pi-hole. I'm running Plex Media Server on Fedora Workstation in Podman on mini PC, which is much more energy efficient than my old tower. My next step is to migrate MSR. I know there are images of MSR out there, and creating it is well documented. I'm going to be using Podman instead of Docker for various reasons, but they work very similar. What I don't know, is what I need to do to migrate my existing Bare Metal installation over to a container. Has anyone done this? Any advice?
Multi-System Reactor
Reactor (Multi-System/Multi-Hub) Announcements
toggledbitsT
Build 21228 has been released. Docker images available from DockerHub as usual, and bare-metal packages here. Home Assistant up to version 2021.8.6 supported; the online version of the manual will now state the current supported versions; Fix an error in OWMWeatherController that could cause it to stop updating; Unify the approach to entity filtering on all hub interface classes (controllers); this works for device entities only; it may be extended to other entities later; Improve error detail in messages for EzloController during auth phase; Add isRuleSet() and isRuleEnabled() functions to expressions extensions; Implement set action for lock and passage capabilities (makes them more easily scriptable in some cases); Fix a place in the UI where 24-hour time was not being displayed.
Multi-System Reactor
Can´t restart or upgrade/deploy MSR
F
Topic thumbnail image
Multi-System Reactor
[Solved] Limit HA Entity in MSR
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Organizing/ structuring rule sets and rules
R
Hi guys, Just wondering how you guys organize your rule sets and rules. I wish I had an extra layer to have some more granularity, but my feature request was not popular. Maybe there are better ways to organize my rule sets. I use the rule sets now primarily for rooms. So a rule set per room. But maybe grouping by functionality works better. Any examples/ suggestions would be appreciated.
Multi-System Reactor
Moving MSR from a QNAP container to RP 5 - some issues
Tom_DT
Topic thumbnail image
Multi-System Reactor
Widget deletion does not work and landing page (status) is empy
M
Topic thumbnail image
Multi-System Reactor
Need help reducing false positive notifications
T
Topic thumbnail image
Multi-System Reactor
Deleting widgets
tunnusT
Hopefully a trivial question, but how do you delete widgets in a status page? Using build 22266
Multi-System Reactor
MQTT configuration question
tunnusT
I have the following yaml configuration in local_mqtt_devices file x_mqtt_device: set_speed: arguments: speed: type: str topic: "command/%friendly_name%" payload: type: json expr: '{ "fan": parameters.speed }' While this works fine, I'm wondering how this could be changed to "fixed" parameters, as in this case "fan" only accepts "A", "Q" or a numeric value of 1-5?
Multi-System Reactor
System Configuration Check - time is offset
F
Hi! I get this message when I'm on the status tab: System Configuration Check The time on this system and on the Reactor host are significantly different. This may be due to incorrect system configuration on either or both. Please check the configuration of both systems. The host reports 2025-04-01T15:29:29.252Z; browser reports 2025-04-01T15:29:40.528Z; difference 11.276 seconds. I have MSR installed as a docker on my Home Assistant Blue / Hardkernel ODROID-N2/N2+. MSR version is latest-25082-3c348de6. HA versions are: Core 2025.3.4 Supervisor 2025.03.4 Operating System 15.1 I have restarted HA as well as MSR multiple times. This message didn´t show two weeks ago. Don´t know if it have anything to do with the latest MSR version. Do anyone know what I can try? Thanks in advance! Let's Be Careful Out There (Hill Street reference...) /Fanan
Multi-System Reactor
Programmatically capture HTTP Request action status code or error
therealdbT
I have a very strange situation, where if InfluxDB restarts, other containers may fail when restarting at the same time (under not easy to understand circumstances), and InfluxDB remains unreachable (and these containers crashes). I need to reboot these containers in an exact order, after rebooting InfluxDB. While I understand what's going on, I need a way to reliable determine that InfluxDB is not reachable and these containers are not reachable, in order to identify this situation and manually check what's going on - and, maybe, in the future, automatically restart them if needed. So, I was looking at HTTP Request action, but I need to capture the HTTP response code, instead of the response (becase if ping is OK, InfluxDB will reply with a 204), and, potentially, a way to programmatically detect that it's failing to get the response. While I could write a custom HTTP controller for this or a custom HTTP virtual device, I was wondering if this is somewhat on you roadmap @toggledbits Thanks!
Multi-System Reactor
ZwaveJSUI - RGBWW BULB - Warm/Cold White interfered with RGB settings - Bulb doesn't change color if in WarmWhite state.
N
Hi , I'm on -Reactor (Multi-hub) latest-25067-62e21a2d -Docker on Synology NAS -ZWaveJSUI 9.31.0.6c80945 Problem with ZwaveJSUI: When I try to change color to a bulb RGBWW, it doesn't change to the RGB color and the bulb remains warm or cold white. I tryed with Zipato RGBW Bulb V2 RGBWE2, Hank Bulb HKZW-RGB01, Aentec 6 A-ZWA002, so seems that it happens with all RGBWW bulb with reactor/zwavejsui. I'm using from reator the entity action: "rgb_color.set" and "rgb_color.set_rgb". After I send the reactor command, It changes in zwavejsui the rgb settings but doesn't put the white channel to "0", so the prevalent channel remains warm/cold White and the bulb doesn't change into the rgb color. This is the status of the bulb in zwavejsui after "rgb_color.set" (235,33,33,) and the bulb is still warmWhite. x_zwave_values.Color_Switch_currentColor={"warmWhite":204,"coldWhite":0,"red":235,"green":33,"blue":33} The "cold white" and "warm white" settings interfer with the rgb color settings. Reactor can change bulb colors with rgb_color set — (value, ui8, 0x000000 to 0xffffff) or rgb_color set_rgb — (red, green, blue, all ui1, 0 to 255) but if warm or cold white are not to "0", zwavejsui doesn't change them and I can't find a way to change into rgb or from rgb back to warm white. So if I use from reactor: rgb_color set_rgb — (235,33,33) in zwavejsui I have x_zwave_values.Color_Switch_targetColor={"red":235,"green":33,"blue":33} 14/03/2025, 16:43:57 - value updated Arg 0: └─commandClassName: Color Switch └─commandClass: 51 └─property: targetColor └─endpoint: 0 └─newValue └──red: 235 └──green: 33 └──blue: 33 └─prevValue └──red: 235 └──green: 33 └──blue: 33 └─propertyName: targetColor 14/03/2025, 16:43:57 - value updated Arg 0: └─commandClassName: Color Switch └─commandClass: 51 └─property: currentColor └─endpoint: 0 └─newValue └──warmWhite: 204 └──coldWhite: 0 └──red: 235 └──green: 33 └──blue: 33 └─prevValue └──warmWhite: 204 └──coldWhite: 0 └──red: 235 └──green: 33 └──blue: 33 └─propertyName: currentColor In zwavejsui, the bulb changes rgb set but warm White remains to "204" and the bulb remais on warm White channel bacause is prevalent on rgb set. x_zwave_values.Color_Switch_currentColor_0=204 x_zwave_values.Color_Switch_currentColor_1=0 x_zwave_values.Color_Switch_currentColor_2=235 x_zwave_values.Color_Switch_currentColor_3=33 x_zwave_values.Color_Switch_currentColor_4=33 Is it possible to targetColor also for "warmWhite" and "coldWhite" and have something similar to this? x_zwave_values.Color_Switch_targetColor={"warmWhite":0,"coldWhite":0,"red":235,"green":33,"blue":33} Thanks in advance.
Multi-System Reactor
Problem with simultaneous notifications.
T
Topic thumbnail image
Multi-System Reactor
Problem after upgrading to 25067
R
MSR had been running fine, but I decided to follow the message to upgrade to 25067. Since the upgrade, I have received the message "Controller "<name>" (HubitatController hubitat2) could not be loaded at startup. Its ID is not unique." MSR throws the message on every restart. Has anyone else encountered this problem? I am running MSR on a Raspberry Pi4 connecting to two Hubitat units over an OpenVPN tunnel. One C8 and a C8 Pro. Both are up-to-date. It appears that despite the error message that MSR may be operating properly.
Multi-System Reactor
Global expressions not always evaluated
tunnusT
Topic thumbnail image
Multi-System Reactor
[Solved] Local expression evaluation
V
Topic thumbnail image
Multi-System Reactor

MQTT interface... time for some testing. Where are my experts?

Scheduled Pinned Locked Moved Multi-System Reactor
55 Posts 6 Posters 4.5k Views 6 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CrilleC Offline
    CrilleC Offline
    Crille
    wrote on last edited by
    #12

    Sweet, it's up and running!

    1 Reply Last reply
    1
    • CrilleC Offline
      CrilleC Offline
      Crille
      wrote on last edited by
      #13

      May I suggest that the init is an optional parameter set in reactor.yaml like unit in the templates for Tasmota devices, as openLuup ignores the retain flag so every device has to be polled at Reactor startup to not show null values.

      1 Reply Last reply
      0
      • toggledbitsT Offline
        toggledbitsT Offline
        toggledbits
        wrote on last edited by
        #14

        It's done. It's that. I didn't announce the release, but init is in 21326 of MQTTController, here: https://reactor.toggledbits.com/download/extras/MQTTController/

        Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

        1 Reply Last reply
        1
        • CrilleC Offline
          CrilleC Offline
          Crille
          wrote on last edited by
          #15

          I have this in my custom template for temperature:

          my_tasmota_sensor_temperature:
              type: ValueSensor
              capabilities: [temperature_sensor]
              primary_attribute: temperature_sensor.value
              init:
                - topic: "cmnd/%topic%/STATUS"
                  payload: 10
                  type: raw
              events:
                "tele/%topic%/SENSOR":
                  "temperature_sensor.value":
                    expr: 'payload[ source ?? "Global" ]?.Temperature'
                  "temperature_sensor.units":
                    expr: payload.TempUnit
                "stat/%topic%/STATUS10":
                  "temperature_sensor.value":
                    expr: 'payload.StatusSNS[ source ?? "Global" ]?.Temperature'
                  "temperature_sensor.units":
                    expr: payload.StatusSNS.TempUnit
          

          I can't figure out how to use init to acheive this using the stock template.
          I actually updated to 21326 before posting, following the docs for installation/upgrade but the version number in the template file says 21321 and has no notes of init

          1 Reply Last reply
          0
          • toggledbitsT Offline
            toggledbitsT Offline
            toggledbits
            wrote on last edited by toggledbits
            #16

            The template file is not relevant for version number, look at MQTTController.js.

            Can you show me the rest of your config for this entity/Tasmota node?

            Also you don't need to make a custom template just to add init. You can use the stock template and put init in the configuration (e.g. next to uses_template).

            Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

            1 Reply Last reply
            0
            • CrilleC Offline
              CrilleC Offline
              Crille
              wrote on last edited by
              #17

              Ah, of cource.
              For now it's

              "pooltemp":
                        name: "Pooltemp"
                        topic: "Pooltemp"
                        source: "DS18B20"
                        uses_template: my_tasmota_sensor_temperature
              

              Best guessing I've tried this

              "pooltemp":
                        name: "Pooltemp"
                        topic: "Pooltemp"
                        source: "DS18B20"
                        init:
                          - topic: "cmnd/%topic%/STATUS"
                            payload: 10
                            type: raw
                        uses_template: tasmota_sensor_temperature
              
              
              1 Reply Last reply
              0
              • toggledbitsT Offline
                toggledbitsT Offline
                toggledbits
                wrote on last edited by
                #18

                You need to make sure the response to that command actually includes the data you want. I've found that some Tasmota devices return incomplete state on this query. For example, I have a node set up with two relays, and this query does not provide the state of the two relays. The alternate choice, then, is to send cmnd/%topic%Power with no payload, and the node replies with a RESULT topic and the current state (which the template understands).

                My guess is this issue is moot, however, if you're using an MQTT broker that supports QoS and retain.

                Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                X 1 Reply Last reply
                0
                • toggledbitsT toggledbits

                  You need to make sure the response to that command actually includes the data you want. I've found that some Tasmota devices return incomplete state on this query. For example, I have a node set up with two relays, and this query does not provide the state of the two relays. The alternate choice, then, is to send cmnd/%topic%Power with no payload, and the node replies with a RESULT topic and the current state (which the template understands).

                  My guess is this issue is moot, however, if you're using an MQTT broker that supports QoS and retain.

                  X Offline
                  X Offline
                  xAPPO
                  wrote on last edited by xAPPO
                  #19

                  I'm really sorry but I'm failing getting this running - It seems to not be able to find the MQTT files on startup. Running in Docker and have created the correct directory structure with files. It can read my edited config yaml files from home/kevin/reactor/config OK. Permissions are OK.

                  Have a lot of MQTT experience but not so hot on Linux/Docker this was my run command

                  docker run --name reactor -d --restart on-failure -p 8111:8111 -v /home/kevin/reactor:/var/reactor  --mount type=bind,src=/etc/localtime,target=/etc/localtime toggledbits/reactor:latest-generic-amd64
                  

                  I have
                  bc828256-2824-416b-abb2-d4168e5c503b-image.png

                  [latest-22004]2022-01-07T02:08:16.554Z <Structure:INFO> Structure#1 loading controller interface mqtt (MQTTController)
                  [latest-22004]2022-01-07T02:08:16.560Z <MQTTController:null> Module MQTTController v21361
                  [latest-22004]2022-01-07T02:08:16.561Z <Controller:CRIT> Controller: failed to load mqtt implementation file:///var/reactor/ext/MQTTController/MQTTController.js: [Error]Error: Cannot find module 'mqtt'
                  Require stack:
                  - /var/reactor/ext/MQTTController/MQTTController.js
                  [latest-22004]2022-01-07T02:08:16.562Z <Controller:CRIT> Error: Cannot find module 'mqtt'
                  Require stack:
                  - /var/reactor/ext/MQTTController/MQTTController.js
                  Error: Cannot find module 'mqtt'
                  Require stack:
                  - /var/reactor/ext/MQTTController/MQTTController.js
                  ...
                  1 Reply Last reply
                  0
                  • toggledbitsT Offline
                    toggledbitsT Offline
                    toggledbits
                    wrote on last edited by
                    #20

                    Did you just drop it in the folder, or did you go through all the installation steps? The message logged suggests that step 5 wasn't completed.

                    MQTTController - Reactor - Multi-Hub Automation

                    Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                    1 Reply Last reply
                    0
                    • X Offline
                      X Offline
                      xAPPO
                      wrote on last edited by
                      #21

                      I followed the instructions. Including step 5. I have a feeling I saw an error at some stage in that install so I will revisit that step and report back.

                      X 1 Reply Last reply
                      0
                      • X xAPPO

                        I followed the instructions. Including step 5. I have a feeling I saw an error at some stage in that install so I will revisit that step and report back.

                        X Offline
                        X Offline
                        xAPPO
                        wrote on last edited by xAPPO
                        #22

                        This is what I see when running step5 ./install.sh

                        Installing dependencies...
                        make: Entering directory '/home/kevin/reactor/ext/MQTTController/node_modules/in                                                                                                                                          otify/build'
                          CXX(target) Release/obj.target/inotify/src/bindings.o
                        In file included from ../src/bindings.cc:2:0:
                        ../src/bindings.h:10:27: error: ‘Handle’ has not been declared
                            static void Initialize(Handle<Object> target);
                                                   ^~~~~~
                        ../src/bindings.h:10:33: error: expected ‘,’ or ‘...’ before ‘<’ token
                            static void Initialize(Handle<Object> target);
                                                         ^
                        ../src/bindings.cc:11:27: error: variable or field ‘Initialize’ declared void
                          void Inotify::Initialize(Handle<Object> exports) {
                                                   ^~~~~~
                        ../src/bindings.cc:11:27: error: ‘Handle’ was not declared in this scope
                        ../src/bindings.cc:11:27: note: suggested alternative: ‘rand_r’
                          void Inotify::Initialize(Handle<Object> exports) {
                                                   ^~~~~~
                                                   rand_r
                        ../src/bindings.cc:11:40: error: expected primary-expression before ‘>’ token
                          void Inotify::Initialize(Handle<Object> exports) {
                                                                ^
                        ../src/bindings.cc:11:42: error: ‘exports’ was not declared in this scope
                          void Inotify::Initialize(Handle<Object> exports) {
                                                                  ^~~~~~~
                        ../src/bindings.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYP                                                                                                                                          E NodeInotify::Inotify::AddWatch(Nan::NAN_METHOD_ARGS_TYPE)’:
                        ../src/bindings.cc:146:43: error: no matching function for call to ‘v8::Value::T                                                                                                                                          oObject()’
                           Local<Object> args_ = info[0]->ToObject();
                                                                   ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2672:44: note: candidate:                                                                                                                                           v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
                           V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                                                    ^~~~~~~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2672:44: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2686:31: note: candidate:                                                                                                                                           v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const
                                         Local<Object> ToObject(Isolate* isolate) const);
                                                       ^
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                           declarator __attribute__((deprecated(message)))
                           ^~~~~~~~~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2686:31: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                                         Local<Object> ToObject(Isolate* isolate) const);
                                                       ^
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                           declarator __attribute__((deprecated(message)))
                           ^~~~~~~~~~
                        ../src/bindings.cc:149:27: error: no matching function for call to ‘v8::Object::                                                                                                                                          Has(v8::Local<v8::String>&)’
                           if (!args_->Has(path_sym)) {
                                                   ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
                           V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                                             ^~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
                           V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index)                                                                                                                                          ;
                                                             ^~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                        ../src/bindings.cc:154:31: error: no matching function for call to ‘v8::Object::                                                                                                                                          Has(v8::Local<v8::String>&)’
                           if (!args_->Has(callback_sym) ||
                                                       ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
                           V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                                             ^~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
                           V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index)                                                                                                                                          ;
                                                             ^~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                        ../src/bindings.cc:155:28: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                            !args_->Get(callback_sym)->IsFunction()) {
                                                    ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                           V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                           ^
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                           declarator __attribute__((deprecated(message)))
                           ^~~~~~~~~~
                        ../src/bindings.cc:160:32: error: no matching function for call to ‘v8::Object::                                                                                                                                          Has(v8::Local<v8::String>&)’
                           if (!args_->Has(watch_for_sym)) {
                                                        ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
                           V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                                             ^~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
                           V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index)                                                                                                                                          ;
                                                             ^~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                        ../src/bindings.cc:163:33: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                            if (!args_->Get(watch_for_sym)->IsInt32()) {
                                                         ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                           V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                           ^
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                           declarator __attribute__((deprecated(message)))
                           ^~~~~~~~~~
                        ../src/bindings.cc:166:36: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                            mask |= args_->Get(watch_for_sym)->Int32Value();
                                                            ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                           V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                           ^
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                           declarator __attribute__((deprecated(message)))
                           ^~~~~~~~~~
                        ../src/bindings.cc:166:50: error: no matching function for call to ‘v8::Value::I                                                                                                                                          nt32Value()’
                            mask |= args_->Get(watch_for_sym)->Int32Value();
                                                                          ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2709:40: note: candidate:                                                                                                                                           v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const
                           V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const                                                                                                                                          ;
                                                                ^~~~~~~~~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2709:40: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                        ../src/bindings.cc:172:45: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                           String::Utf8Value path(args_->Get(path_sym));
                                                                     ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                         from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                           V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                           ^
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                           declarator __attribute__((deprecated(message)))
                           ^~~~~~~~~~
                        ../src/bindings.cc:172:46: error: no matching function for call to ‘v8::String::                                                                                                                                          Utf8Value::Utf8Value(v8::Local<v8::Value>)’
                           String::Utf8Value path(args_->Get(path_sym));
                                                                      ^
                        In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                         from ../src/node_inotify.h:5,
                                         from ../src/bindings.h:4,
                                         from ../src/bindings.cc:2:
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3135:5: note: candidate: v                                                                                                                                          8::String::Utf8Value::Utf8Value(v8::Isolate*, v8::Local<v8::Value>)
                             Utf8Value(Isolate* isolate, Local<v8::Value> obj);
                             ^~~~~~~~~
                        /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3135:5: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                        ../src/bindings.cc:182:61: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                           inotify->handle()->Set(descriptor, args_->Get(callback_sym));
                                                                                     ^
                        
                        X 1 Reply Last reply
                        0
                        • X xAPPO

                          This is what I see when running step5 ./install.sh

                          Installing dependencies...
                          make: Entering directory '/home/kevin/reactor/ext/MQTTController/node_modules/in                                                                                                                                          otify/build'
                            CXX(target) Release/obj.target/inotify/src/bindings.o
                          In file included from ../src/bindings.cc:2:0:
                          ../src/bindings.h:10:27: error: ‘Handle’ has not been declared
                              static void Initialize(Handle<Object> target);
                                                     ^~~~~~
                          ../src/bindings.h:10:33: error: expected ‘,’ or ‘...’ before ‘<’ token
                              static void Initialize(Handle<Object> target);
                                                           ^
                          ../src/bindings.cc:11:27: error: variable or field ‘Initialize’ declared void
                            void Inotify::Initialize(Handle<Object> exports) {
                                                     ^~~~~~
                          ../src/bindings.cc:11:27: error: ‘Handle’ was not declared in this scope
                          ../src/bindings.cc:11:27: note: suggested alternative: ‘rand_r’
                            void Inotify::Initialize(Handle<Object> exports) {
                                                     ^~~~~~
                                                     rand_r
                          ../src/bindings.cc:11:40: error: expected primary-expression before ‘>’ token
                            void Inotify::Initialize(Handle<Object> exports) {
                                                                  ^
                          ../src/bindings.cc:11:42: error: ‘exports’ was not declared in this scope
                            void Inotify::Initialize(Handle<Object> exports) {
                                                                    ^~~~~~~
                          ../src/bindings.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYP                                                                                                                                          E NodeInotify::Inotify::AddWatch(Nan::NAN_METHOD_ARGS_TYPE)’:
                          ../src/bindings.cc:146:43: error: no matching function for call to ‘v8::Value::T                                                                                                                                          oObject()’
                             Local<Object> args_ = info[0]->ToObject();
                                                                     ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2672:44: note: candidate:                                                                                                                                           v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
                             V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                                                      ^~~~~~~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2672:44: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2686:31: note: candidate:                                                                                                                                           v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const
                                           Local<Object> ToObject(Isolate* isolate) const);
                                                         ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2686:31: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                                           Local<Object> ToObject(Isolate* isolate) const);
                                                         ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:149:27: error: no matching function for call to ‘v8::Object::                                                                                                                                          Has(v8::Local<v8::String>&)’
                             if (!args_->Has(path_sym)) {
                                                     ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
                             V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                                               ^~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
                             V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index)                                                                                                                                          ;
                                                               ^~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                          ../src/bindings.cc:154:31: error: no matching function for call to ‘v8::Object::                                                                                                                                          Has(v8::Local<v8::String>&)’
                             if (!args_->Has(callback_sym) ||
                                                         ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
                             V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                                               ^~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
                             V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index)                                                                                                                                          ;
                                                               ^~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                          ../src/bindings.cc:155:28: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                              !args_->Get(callback_sym)->IsFunction()) {
                                                      ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                             V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                             ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:160:32: error: no matching function for call to ‘v8::Object::                                                                                                                                          Has(v8::Local<v8::String>&)’
                             if (!args_->Has(watch_for_sym)) {
                                                          ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
                             V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                                               ^~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3590:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note: candidate:                                                                                                                                           v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
                             V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index)                                                                                                                                          ;
                                                               ^~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3596:37: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                          ../src/bindings.cc:163:33: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                              if (!args_->Get(watch_for_sym)->IsInt32()) {
                                                           ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                             V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                             ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:166:36: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                              mask |= args_->Get(watch_for_sym)->Int32Value();
                                                              ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                             V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                             ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:166:50: error: no matching function for call to ‘v8::Value::I                                                                                                                                          nt32Value()’
                              mask |= args_->Get(watch_for_sym)->Int32Value();
                                                                            ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2709:40: note: candidate:                                                                                                                                           v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const
                             V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const                                                                                                                                          ;
                                                                  ^~~~~~~~~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2709:40: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                          ../src/bindings.cc:172:45: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                             String::Utf8Value path(args_->Get(path_sym));
                                                                       ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                             V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                             ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:172:46: error: no matching function for call to ‘v8::String::                                                                                                                                          Utf8Value::Utf8Value(v8::Local<v8::Value>)’
                             String::Utf8Value path(args_->Get(path_sym));
                                                                        ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3135:5: note: candidate: v                                                                                                                                          8::String::Utf8Value::Utf8Value(v8::Isolate*, v8::Local<v8::Value>)
                               Utf8Value(Isolate* isolate, Local<v8::Value> obj);
                               ^~~~~~~~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3135:5: note:   candidate                                                                                                                                           expects 2 arguments, 1 provided
                          ../src/bindings.cc:182:61: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                             inotify->handle()->Set(descriptor, args_->Get(callback_sym));
                                                                                       ^
                          
                          X Offline
                          X Offline
                          xAPPO
                          wrote on last edited by xAPPO
                          #23

                          IN two posts because was too long - sorry

                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                             V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                             ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:182:62: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>,                                                                                                                                           v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declaratio                                                                                                                                          ns]
                             inotify->handle()->Set(descriptor, args_->Get(callback_sym));
                                                                                        ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3499:22: note: declared he                                                                                                                                          re
                                           bool Set(Local<Value> key, Local<Value> value));
                                                ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYP                                                                                                                                          E NodeInotify::Inotify::RemoveWatch(Nan::NAN_METHOD_ARGS_TYPE)’:
                          ../src/bindings.cc:195:31: error: no matching function for call to ‘v8::Value::I                                                                                                                                          nt32Value()’
                             watch = info[0]->Int32Value();
                                                         ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2709:40: note: candidate:                                                                                                                                           v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const
                             V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const                                                                                                                                          ;
                                                                  ^~~~~~~~~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2709:40: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                          ../src/bindings.cc: In static member function ‘static void NodeInotify::Inotify:                                                                                                                                          :Callback(uv_poll_t*, int, int)’:
                          ../src/bindings.cc:262:86: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>,                                                                                                                                           v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declaratio                                                                                                                                          ns]
                           >Set(Nan::New<String>("watch").ToLocalChecked(), Nan::New<Integer>(event->wd));
                                                                                                        ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3499:22: note: declared he                                                                                                                                          re
                                           bool Set(Local<Value> key, Local<Value> value));
                                                ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:263:87: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>,                                                                                                                                           v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declaratio                                                                                                                                          ns]
                           Set(Nan::New<String>("mask").ToLocalChecked(), Nan::New<Integer>(event->mask));
                                                                                                        ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3499:22: note: declared he                                                                                                                                          re
                                           bool Set(Local<Value> key, Local<Value> value));
                                                ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:264:91: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>,                                                                                                                                           v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declaratio                                                                                                                                          ns]
                           Nan::New<String>("cookie").ToLocalChecked(), Nan::New<Integer>(event->cookie));
                                                                                                        ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3499:22: note: declared he                                                                                                                                          re
                                           bool Set(Local<Value> key, Local<Value> value));
                                                ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:267:104: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>,                                                                                                                                           v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarati                                                                                                                                          ons]
                           ing>("name").ToLocalChecked(), Nan::New<String>(event->name).ToLocalChecked());
                                                                                                        ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3499:22: note: declared he                                                                                                                                          re
                                           bool Set(Local<Value> key, Local<Value> value));
                                                ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:275:66: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Lo                                                                                                                                          cal<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                               Local<Value> value = handle->Get(Nan::New<Integer>(event->wd));
                                                                                            ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:3553:51: note: declared he                                                                                                                                          re
                             V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                                             ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          ../src/bindings.cc:279:34: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(v8                                                                                                                                          ::Local<v8::Object>, int, v8::Local<v8::Value>*) const’ is deprecated [-Wdepreca                                                                                                                                          ted-declarations]
                               callback.Call(handle, 1, argv);
                                                            ^
                          In file included from ../src/node_inotify.h:14:0,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          ../../nan/nan.h:1722:3: note: declared here
                             Call(v8::Local<v8::Object> target
                             ^~~~
                          ../src/bindings.cc:285:34: error: no matching function for call to ‘v8::Value::T                                                                                                                                          oString()’
                                handle->Delete(wd->ToString());
                                                            ^
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:67                                                                                                                                          :0,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2668:44: note: candidate:                                                                                                                                           v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const
                             V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                                                      ^~~~~~~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2668:44: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                          In file included from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8-intern                                                                                                                                          al.h:14:0,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:27,
                                           from /home/kevin/.cache/node-gyp/12.20.0/include/node/node.h:6                                                                                                                                           ,
                                           from ../src/node_inotify.h:5,
                                           from ../src/bindings.h:4,
                                           from ../src/bindings.cc:2:
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2684:31: note: candidate:                                                                                                                                           v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const
                                           Local<String> ToString(Isolate* isolate) const);
                                                         ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8.h:2684:31: note:   candidate                                                                                                                                           expects 1 argument, 0 provided
                                           Local<String> ToString(Isolate* isolate) const);
                                                         ^
                          /home/kevin/.cache/node-gyp/12.20.0/include/node/v8config.h:328:3: note: in defi                                                                                                                                          nition of macro ‘V8_DEPRECATED’
                             declarator __attribute__((deprecated(message)))
                             ^~~~~~~~~~
                          inotify.target.mk:112: recipe for target 'Release/obj.target/inotify/src/binding                                                                                                                                          s.o' failed
                          make: *** [Release/obj.target/inotify/src/bindings.o] Error 1
                          make: Leaving directory '/home/kevin/reactor/ext/MQTTController/node_modules/ino                                                                                                                                          tify/build'
                          kevin@NUC50:~/reactor/ext/MQTTController$
                          
                          1 Reply Last reply
                          0
                          • toggledbitsT Offline
                            toggledbitsT Offline
                            toggledbits
                            wrote on last edited by toggledbits
                            #24

                            Seems like something is broken or out of date in your nodejs installation. How did you install node? And what version is it (run node -v)

                            Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                            1 Reply Last reply
                            0
                            • X Offline
                              X Offline
                              xAPPO
                              wrote on last edited by
                              #25

                              Its a docker install so I thought that was part of the container .. on the host OS my version is v12.20.0 - should I update that ?

                              1 Reply Last reply
                              0
                              • toggledbitsT Offline
                                toggledbitsT Offline
                                toggledbits
                                wrote on last edited by
                                #26

                                Yeah, that's going to be a problem. Version 16.13 is the current, I believe, and would be a good choice.

                                Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                1 Reply Last reply
                                0
                                • X Offline
                                  X Offline
                                  xAPPO
                                  wrote on last edited by
                                  #27

                                  Thankyou - that's worked. I had assumed the appropriate version of node was part of the Docker container.

                                  So pleased to have found this as I use HA, MQTT, Hubitat extensively plus OpenHAB and Homey to a lesser extent so glad you are intending to support those two eventually.

                                  1 Reply Last reply
                                  0
                                  • toggledbitsT Offline
                                    toggledbitsT Offline
                                    toggledbits
                                    wrote on last edited by
                                    #28

                                    It is part of the container, but you are not running in the container. That is a possibility, though, and I tried it, it seems to work, so an alternative to installing (or upgrading) nodejs outside of the container seems to be:

                                    docker exec -it reactor /bin/sh
                                    cd /var/reactor/ext/MQTTController
                                    ./install.sh
                                    exit
                                    

                                    I'll add this to the installation docs for MQTTController.

                                    Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                    X 1 Reply Last reply
                                    0
                                    • toggledbitsT toggledbits

                                      It is part of the container, but you are not running in the container. That is a possibility, though, and I tried it, it seems to work, so an alternative to installing (or upgrading) nodejs outside of the container seems to be:

                                      docker exec -it reactor /bin/sh
                                      cd /var/reactor/ext/MQTTController
                                      ./install.sh
                                      exit
                                      

                                      I'll add this to the installation docs for MQTTController.

                                      X Offline
                                      X Offline
                                      xAPPO
                                      wrote on last edited by xAPPO
                                      #29

                                      All working well. However in the topic structure for echoed devices (from Hubitat anyway) the <entity-id> is used. Is it possible to instead or even better as well as, include the entity-name ?

                                      reactor/<mqtt-id>/<ctrl-id>/<entity-id>/state/<capability-name>
                                      

                                      perhaps

                                      reactor/<mqtt-id>/<ctrl-id>/<entity-name>/<entity-id>/state/<capability-name>
                                      
                                      1 Reply Last reply
                                      1
                                      • toggledbitsT Offline
                                        toggledbitsT Offline
                                        toggledbits
                                        wrote on last edited by
                                        #30

                                        The entity name can be changed or duplicated and is not an appropriate unique identifier for a device.

                                        Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                        1 Reply Last reply
                                        0
                                        • X Offline
                                          X Offline
                                          xAPPO
                                          wrote on last edited by
                                          #31

                                          Topic hierarchy segments don't have to be unique - in fact I would say most aren't. Keeping the <entity-id> then within the hierarchy would ensure the topic remains unique. Having no easily human identifiable topic is not helpful to other integrations.

                                          toggledbitsT 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Recent Topics

                                          • Set Reaction > Script Action
                                            therealdbT
                                            therealdb
                                            0
                                            6
                                            109

                                          • Wiring Samotech SM308-S into light fitting
                                            akbooerA
                                            akbooer
                                            0
                                            2
                                            54

                                          • Errors after updating to MQTTController build 25139
                                            toggledbitsT
                                            toggledbits
                                            0
                                            6
                                            99

                                          • 🎉 My very first MSR controller: OpenSprinkler
                                            therealdbT
                                            therealdb
                                            5
                                            13
                                            675

                                          • Advice reqeusted to migrate MSR from Bare Metal to Container
                                            T
                                            tamorgen
                                            0
                                            5
                                            120

                                          • Reactor (Multi-System/Multi-Hub) Announcements
                                            toggledbitsT
                                            toggledbits
                                            5
                                            122
                                            37.7k

                                          • Z-Wave Future....
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            5
                                            201

                                          • Can´t restart or upgrade/deploy MSR
                                            toggledbitsT
                                            toggledbits
                                            0
                                            4
                                            151

                                          • [Solved] Limit HA Entity in MSR
                                            wmarcolinW
                                            wmarcolin
                                            0
                                            7
                                            288

                                          • Disaster recovery and virtualisation
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            5
                                            725

                                          • Remote access of Zwave stick from Z-wave server
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            3
                                            443
                                          Powered by NodeBB | Contributors
                                          Hosted freely by 10RUPTiV - Solutions Technologiques | Contact us
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Unsolved