@haydendonald/node-red-contrib-hass-stuff 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -122,7 +122,7 @@ module.exports = function LightControlConfigNode(RED) {
122
122
  groupEntities = data.data.attributes.entity_id;
123
123
  currentState = data.data;
124
124
  entitiesOffDuringNight = config.entitiesOffAtNight.split(",").filter((entity) => entity != "");
125
- entitiesOnDuringNight = groupEntities.filter((entity) => !entitiesOffDuringNight.includes(entity));
125
+ entitiesOnDuringNight = entitiesOffDuringNight.length > 0 ? groupEntities.filter((entity) => !entitiesOffDuringNight.includes(entity)) : [config.groupEntityId];
126
126
  });
127
127
  //Get the state of the night mode switch and store it
128
128
  if (config.nightModeEntityId && config.nightModeEntityId != "") {
@@ -292,13 +292,13 @@ module.exports = function LightControlConfigNode(RED) {
292
292
  shuffle: true,
293
293
  smart_shuffle: true,
294
294
  targets: {
295
- entity_id: entitiesOn ? entitiesOn : [config.groupEntityId]
295
+ entity_id: (entitiesOn || []).length > 0 ? entitiesOn : [config.groupEntityId]
296
296
  }
297
297
  };
298
298
  //Run via adaptive lights
299
299
  connectionsConfigNode.sendHASSAction("scene_presets.apply_preset", undefined, msg, undefined);
300
300
  //Run any lights off that need to be off
301
- if (entitiesOff && entitiesOff.length > 0) {
301
+ if ((entitiesOff || []).length > 0) {
302
302
  connectionsConfigNode.sendHASSAction("light.turn_off", {
303
303
  entity_id: entitiesOff
304
304
  }, {
@@ -9,8 +9,15 @@ module.exports = function PIRControlConfigNode(RED) {
9
9
  let enabledState;
10
10
  let detectedTimeout;
11
11
  let notDetectedTimeout;
12
+ let sentOnState = false;
12
13
  RED.nodes.createNode(this, config);
13
14
  (0, baseConfigNode_1.assignBaseConfigNode)(this);
15
+ //When NodeRED redeploys
16
+ self.on("close", function (done) {
17
+ clearTimeout(detectedTimeout);
18
+ clearTimeout(notDetectedTimeout);
19
+ done();
20
+ });
14
21
  const connectionsConfigNode = RED.nodes.getNode(config.connectionsConfigNode);
15
22
  let errored = false;
16
23
  if (!config.connectionsConfigNode || !connectionsConfigNode) {
@@ -73,11 +80,11 @@ module.exports = function PIRControlConfigNode(RED) {
73
80
  return;
74
81
  }
75
82
  //Don't do anything if the luminance is not enough
76
- if (config.minBrightnessLevel && parseInt(luminanceState.state) < parseInt(config.minBrightnessLevel)) {
83
+ if (sentOnState == false && config.minBrightnessLevel && parseInt(luminanceState.state) < parseInt(config.minBrightnessLevel)) {
77
84
  return;
78
85
  }
79
86
  //Don't do anything if the luminance is too much
80
- if (config.maxBrightnessLevel && parseInt(luminanceState.state) > parseInt(config.maxBrightnessLevel)) {
87
+ if (sentOnState == false && config.maxBrightnessLevel && parseInt(luminanceState.state) > parseInt(config.maxBrightnessLevel)) {
81
88
  return;
82
89
  }
83
90
  const msg = {
@@ -113,9 +120,11 @@ module.exports = function PIRControlConfigNode(RED) {
113
120
  }
114
121
  }
115
122
  function sendDetectedMsg(msg) {
123
+ sentOnState = true;
116
124
  self.sendMsg([msg]);
117
125
  }
118
126
  function sendNotDetectedMsg(msg) {
127
+ sentOnState = false;
119
128
  self.sendMsg([undefined, msg]);
120
129
  }
121
130
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haydendonald/node-red-contrib-hass-stuff",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "description": "A collection of stuff I use on my Node Red + Home Assistant server. This could be of use for others, i don't know..",
5
5
  "devDependencies": {
6
6
  "@types/node": "^18.14.0",