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?
[Reactor] Bug when sending MQTT boolean payloads
therealdbT
Topic thumbnail image
Multi-System Reactor
Difficulty defining repeating annual period
R
I have tried numerous ways to define a recurring annual period, for example from December 15 to January 15. No matter which method I try - after and before, between, after and/not after, Reactor reports "waiting for invalid date, invalid date. Some constructs also seem to cause Reactor to hang, timeout and restart. For example "before January 15 is evaluated as true, but reports "waiting for invalid date, invalid date". Does anyone have a tried and true method to define a recurring annual period? I think the "between" that I used successfully in the past may have broken with one of the updates.
Multi-System Reactor
Need help with sequence
T
Good evening all, For about the past week or so, I've been having problems with a specific rule in my home automation that controls when my home goes from an Away mode to Home mode. One of the conditions it checked for was my alarm panel, when it changed from Armed Away to Disarmed. There seems to have been a firmware update on the panel that added an intermittent step of "pending", and I can't say for certain it happens 100% of the time. Is there a way to write a condition that so it changes from one condition, to the next, and then another condition? As in, Home alarm changes from armed_away to pending to disarmed. Thanks.
Multi-System Reactor
Possible feature request?
CatmanV2C
No idea how easy this would be. During my migration away from Z-wave I've been replacing the Z-wave devices with Sonoff which has broken some of my automations. Any chance of a 'Test Reaction' function to call out which ones are broken because an entity no longer exists? Without actually running the reaction? Or does this exist already and I'm just not aware of how to do it? Obviously I can see entities that are no longer available, but not quite what I'm looking for. I guess it's something of an edge case so no huge issue. TIA! C
Multi-System Reactor
Copying a global reaction
tunnusT
With build 25328, if you copy a global reaction, a new reaction does not appear in the UI unless you do a refresh. I recall this used to work without needing this page refresh? Anyway, only a minor nuisance.
Multi-System Reactor
Logic Assistance: Exterior Lights on when Illuminance Below Threshold
PablaP
Topic thumbnail image
Multi-System Reactor
Time series documentation
tunnusT
Is the current manual (incl. examples) up to date with how retention value is handled in time series configuration? Referring to this post
Multi-System Reactor
MQTT templates for ZIgbee scene controller, or a better way?
CatmanV2C
Topic thumbnail image
Multi-System Reactor
Reset a delay
CatmanV2C
I'm sure this has been asked, and answered, but damned if I can figure it out Use case: I have a rear garden with lights. A door from the kitchen into the garden and a door from the garage. Currently if I open the kitchen door the lights come on (yay) and a 3 minute delay starts. After 3 minutes, no matter what else happens, the lights go off (Boo! But also yay!) What I would like is for the 3 minute delay until the lights go off to start from the latest door open event. That is, if I'm going from kitchen to garage, and back again, the lights stay on until there's three minutes of no activity. I've tried 'hacking' with a virtual switch, but can't seem to stop the delay. Any pointers? TIA C
Multi-System Reactor
Reactor Loading Screen Safari
S
Topic thumbnail image
Multi-System Reactor
Constraints states visually do not match actual
S
Topic thumbnail image
Multi-System Reactor
[MSR] Feature request: For Each action on arrays/groups
therealdbT
Topic thumbnail image
Multi-System Reactor
[Solved] Error: Command timeout
G
at _ClientAPI._commandTimeout (http://192.168.1.100:8111/client/ClientAPI.js:807:179 Seeing this randomly when returning to open browser tab after being away awhile. Once, maybe twice a day. "What did you do to trigger it?" Literally nothing, just walked away and returned and there it was. Actions taken in reasonably close proximity to this particular instance of it popping up: I'd restarted the MSR container in Portainer. I'll try to grab some logs here shortly.
Multi-System Reactor
Issue with MSR UI becoming unresponsive
S
I'm having an issue with MSR's UI being very unresponsive. It started happening a couple days ago and I didn't make any changes that would have caused this except adding some meross lan devices in HA. When I go into an entity action and use the search functionality, it usually will start filtering and then get to a place after a few letters are entered where it will take 30 seconds or more (sometimes minutes) for the UI to show what I am typing. During this time MSR ui is completely unresponsive. I've tried multiple browsers and multiple computers. HA and MSR are both deployed in docker. I have run HTOP on the host and when the problem happens there are no CPU/Memory spikes at all. From a functionality standpoint MSR is working perfectly. This seems to be an UI issue only. Do i need to ditch Docker and run MSR on a Proxmox VM? I have both stand alone Docker and Proxmox environments. I dont mind doing that I just want to be able to use the UI again... Installation method Home Assistant Container Core 2025.7.3 Frontend 20250702.3 nothing crazy in the logs except some openweather map stuff that doesn't make any sense as it is working fine in MSR Any help would be greatly appreciated Reactor latest-25328-b2ed1365 app 25328 configuration from /var/reactor/config NODE_PATH /opt/reactor:/opt/reactor/node_modules [latest-25328]2025-11-30T20:01:53.843Z <app:null> Reactor build latest-25328-b2ed1365 starting on v24.11.1 /usr/local/bin/node [latest-25328]2025-11-30T20:01:53.844Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/x64 #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025; locale (undefined) [latest-25328]2025-11-30T20:01:53.844Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-25328]2025-11-30T20:01:53.844Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-25328]2025-11-30T20:01:53.865Z <app:null> Resolved timezone=America/New_York, environment TZ=America/New_York; offset minutes from UTC=-300 [latest-25328]2025-11-30T20:01:53.867Z <default:null> Module i18n v25141 [latest-25328]2025-11-30T20:01:53.867Z <app:null> Configured locale (undefined); selected locale(s) en-US.UTF-8 [latest-25328]2025-11-30T20:01:53.879Z <app:null> Loaded locale en-US for en-US [latest-25328]2025-11-30T20:01:53.879Z <app:null> Local date/time using configured timezone and locale formatting is "11/30/2025, 3:01:53 PM" [latest-25328]2025-11-30T20:01:53.889Z <Structure:null> Module Structure v25326 [latest-25328]2025-11-30T20:01:53.890Z <Capabilities:null> Module Capabilities v24312 [latest-25328]2025-11-30T20:01:53.904Z <Plugin:null> Module Plugin v25141 [latest-25328]2025-11-30T20:01:53.923Z <Timer:null> Module Timer v25279 [latest-25328]2025-11-30T20:01:53.924Z <TimerBroker:null> Module TimerBroker v25314 [latest-25328]2025-11-30T20:01:53.927Z <Entity:null> Module Entity v25251 [latest-25328]2025-11-30T20:01:53.929Z <Controller:null> Module Controller v25253 [latest-25328]2025-11-30T20:01:53.930Z <AlertManager:null> Module AlertManager v25318 [latest-25328]2025-11-30T20:01:53.937Z <default:null> Module Ruleset v25283 [latest-25328]2025-11-30T20:01:53.937Z <default:null> Module Rulesets v25141 [latest-25328]2025-11-30T20:01:53.942Z <GlobalExpression:null> Module GlobalExpression v25258 [latest-25328]2025-11-30T20:01:53.953Z <Predicate:null> Module Predicate v25328 [latest-25328]2025-11-30T20:01:53.956Z <Rule:null> Module Rule v25323 [latest-25328]2025-11-30T20:01:53.958Z <GlobalReaction:null> Module GlobalReaction v25292 [latest-25328]2025-11-30T20:01:53.959Z <Engine:null> Module Engine v25325 [latest-25328]2025-11-30T20:01:53.964Z <httpapi:null> Module httpapi v25328 [latest-25328]2025-11-30T20:01:53.972Z <wsapi:null> Module wsapi v25328 [latest-25328]2025-11-30T20:01:53.994Z <TaskQueue:null> Module TaskQueue 24138 [latest-25328]2025-11-30T20:01:53.994Z <VeraController:null> Module VeraController v25141 [latest-25328]2025-11-30T20:01:54.179Z <HassController:null> Module HassController v25325 [latest-25328]2025-11-30T20:02:13.797Z <OWMWeatherController:null> Module OWMWeatherController v25268 [latest-25328]2025-11-30T20:02:13.800Z <SystemController:null> Module SystemController v25323 [latest-25328]2025-11-30T20:02:13.807Z <MQTTController:null> Module MQTTController v22092 [latest-25328]2025-11-30T20:02:20.630Z <OWMWeatherController:CRIT> FetchError: request to https://api.openweathermap.org/data/2.5/weather?lat=xxxxxxxxxx&lon=-xxxxxxxxx&appid=xxxxxxxxxxxxxxxxxxxxxxxxxx&units=standard&_r=1xxxxxxxxxxxxxxfailed, reason: [-] FetchError: request to https://api.openweathermap.org/data/2.5/weather?lat=xxxxxxxxxxx&lon=-xxxxxxxxxxxxxxxxxx&appid=xxxxxxxxxxxxxxxxxxx&units=standard&_r=xxxxxxxxxxxxxxxfailed, reason: at ClientRequest.<anonymous> (/opt/reactor/node_modules/node-fetch/lib/index.js:1501:11) at ClientRequest.emit (node:events:508:28) at ClientRequest.emit (node:domain:489:12) at emitErrorEvent (node:_http_client:108:11) at TLSSocket.socketErrorListener (node:_http_client:575:5) at TLSSocket.emit (node:events:508:28) at TLSSocket.emit (node:domain:489:12) at emitErrorNT (node:internal/streams/destroy:170:8) at emitErrorCloseNT (node:internal/streams/destroy:129:3) at processTicksAndRejections (node:internal/process/task_queues:89:21
Multi-System Reactor
Date/time condition
tunnusT
Topic thumbnail image
Multi-System Reactor
Device log?
G
@toggledbits is there a log that will show me what rule is turning on a specific device? I've got a switch that has been kicking on at 2200 ET for several nights now and the reactor.log doesn't have a thing in it that I can see on a device level (it being more rules-based).
Multi-System Reactor
Midnight crossing not working in date/time condition (build 25325)
tunnusT
Topic thumbnail image
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
[Solved] Local expression in Rule does not evaluate as they used to do
CrilleC
Topic thumbnail image
Multi-System Reactor
Home Assistant 2025.11.2 and latest-25315
CrilleC
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 13.9k 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
    #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
                                    • X xAPPO

                                      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 Offline
                                      toggledbitsT Offline
                                      toggledbits
                                      wrote on last edited by
                                      #32

                                      @xappo OK. And what about receiving messages for inbound action requests? Same entity-name/entity-id construction? If you know the correct entity ID to form that message, what value is the name? If you don't know the ID and only use the name, how do you specify that, and what if the name isn't unique then? And what if the name and ID conflict, or an entity can be found for one but not the other (i.e. they don't match)? I'm not opposed to what you're proposing, but I want you to help me think through the consequences of it.

                                      @xappo said in MQTT interface... time for some testing. Where are my experts?:

                                      Having no easily human identifiable topic is not helpful to other integrations.

                                      I think that's a bit of a reach. The whole MQTT environment is so unstructured and freeform, with so many inconsistencies between players, that things like unique IDs (or MAC addresses or other cryptic and "hard to read" identifiers) are a regular occurrence, and anybody who uses MQTT a lot is used to it.

                                      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 xAPPO
                                        #33

                                        The incoming action request message to a topic must be complete with all segments as you can't wildcard a publish command. So the <entity-id> will always be unique and present there. You could should you wish subscribe to the topic from your code ignoring any <entity-name> segment with a + wildcard as you don't process it. So that should work fine.

                                        Human readability.. I agree it's a bit of a reach but my whole system is MQTT based with over 10K topics and 1K+ devices - remembering what they all are and linking to or from those topics from other controllers requires some hints as to what those devices are. Later examination of logic requires understanding what devices are related. Having to refer back to Reactor config each time to identify a device isn't practical (or user friendly).

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

                                          Good stuff. Let me see what I can cook up.

                                          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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Recent Topics

                                          • [HowTo] Using HABridge with Reactor
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            9
                                            345

                                          • [Reactor] Bug when sending MQTT boolean payloads
                                            toggledbitsT
                                            toggledbits
                                            0
                                            4
                                            106

                                          • Genuinely impressed with Zigbee and HA / Reactor
                                            therealdbT
                                            therealdb
                                            1
                                            8
                                            259

                                          • Difficulty defining repeating annual period
                                            G
                                            gwp1
                                            0
                                            5
                                            55

                                          • Need help with sequence
                                            therealdbT
                                            therealdb
                                            0
                                            3
                                            35

                                          • Possible feature request?
                                            therealdbT
                                            therealdb
                                            0
                                            5
                                            144

                                          • Copying a global reaction
                                            tunnusT
                                            tunnus
                                            0
                                            1
                                            40

                                          • Logic Assistance: Exterior Lights on when Illuminance Below Threshold
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            11
                                            310

                                          • Time series documentation
                                            tunnusT
                                            tunnus
                                            0
                                            11
                                            378

                                          • MQTT templates for ZIgbee scene controller, or a better way?
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            3
                                            146

                                          • Reset a delay
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            8
                                            205
                                          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