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

                                OK. Version 22008 of MQTTController is up on the downloads site (under extras).

                                New configuration key that you can put in the echo section: set entity_identifier to combined and the telemetry topics will include the entity name; it adds another level to the topic as you suggested. This has no effect on received messages for entity actions; those still require the ID (but it's a secret/undocumented feature--you can give it the name instead of an ID and it will work if the name is unique), and the structure of the topic is the same (i.e. same number of levels, not changed). Online docs are updated as well.

                                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
                                  #36

                                  This is working well - thank you for the prompt update.

                                  For me having the <entity-name> before <entity-id> in the topic hierarchy would have been more informative as you can then see a list of names rather than numbers in expanded topics with say MQTT explorer rather than having to drill down in each one, but I totally understand why it is so much easier in terms of your existing implementation to position it afterwards and this is very workable too.

                                  70bebe6f-d981-4b60-93da-dade10eed90c-image.png

                                  Thank you again.
                                  Kevin

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

                                    No worries. Version 22009 now. You can now set entity_identifier to id/name (as a synonym for combined) or name/id. I'll fix up the documentation later.

                                    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
                                      #38

                                      It's like having my own on site developer team 🙂 Many thanks for that

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

                                        I notice in the MQTT code you subscribe to the root level with a wildcard which means you receive every payload update. On my (untypical) broker this will produce 10’s of message per second. The good thing is Reactor seems to handle it but obviously it’s resource wasteful. Did you do this with a view to implementing discovery across the broker perhaps?

                                        Currently it might seem better to just pull the necessary topics from the MQTTController section of reactor.yaml even though this may result in lots of individual subscribes?

                                        Also just to mention I’ve got my first CBusController half written. It discovers and creates entities for all the 100+ lights I have on my Schneider C-Bus lighting but needs some refining. Learning as I go. Having the MQTT code as an example has been invaluable to me.

                                        Would you be up to releasing the Hubitat and HomeAssistant controller code as examples? I think that would help people in authoring new controllers, as might a minimal code template that does nothing really.

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

                                          When I started writing MQTTController I didn't quite know where it was going to end up or how it was going to get there. It moved a lot from its starting point. I can definitely "tune up" the subscriptions, but discovery is in the mix (it captures certain discovery messages to debug currently but doesn't do much else with them -- still under consideration).

                                          Did you find the probably dated but maybe marginally helpful docs here? https://reactor.toggledbits.com/docs/Building-Controllers/
                                          I've been really busy this week, and suffered a long Internet outage that just recovered a couple of hours ago, but when I'm caught up I'll quickly update some key points and concepts in there.

                                          HubitatController and HassController are very complex pieces of machinery that I don't think would make good examples. Now that I have a few done, one of my tasks is go back and boil out some of the work into common methods or helper classes. I have a lot of work to do on the server API side.

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


                                          Recent Topics

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

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

                                          • Difficulty defining repeating annual period
                                            G
                                            gwp1
                                            0
                                            5
                                            46

                                          • Need help with sequence
                                            therealdbT
                                            therealdb
                                            0
                                            3
                                            30

                                          • Possible feature request?
                                            therealdbT
                                            therealdb
                                            0
                                            5
                                            142

                                          • Copying a global reaction
                                            tunnusT
                                            tunnus
                                            0
                                            1
                                            38

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

                                          • Time series documentation
                                            tunnusT
                                            tunnus
                                            0
                                            11
                                            378

                                          • Tuya Wifi to Tasmota flashing
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            1
                                            84

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

                                          • Reset a delay
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            8
                                            204

                                          • Zigbee2mqtt installed! sytemctl not happy :(
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            4
                                            175
                                          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