From 3a007399f6b95145a04523b467b941a5e61e06d0 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Tue, 26 Jan 2021 18:52:41 +0000 Subject: [PATCH 1/2] Add frequency select to pigpiod node --- hardware/pigpiod/package.json | 2 +- hardware/pigpiod/pi-gpiod.html | 46 ++++++++++++++++++++++++++-------- hardware/pigpiod/pi-gpiod.js | 2 ++ 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/hardware/pigpiod/package.json b/hardware/pigpiod/package.json index 9310b69e..ffa0a018 100644 --- a/hardware/pigpiod/package.json +++ b/hardware/pigpiod/package.json @@ -1,6 +1,6 @@ { "name": "node-red-node-pi-gpiod", - "version": "0.1.1", + "version": "0.2.0", "description": "A node-red node for PiGPIOd", "dependencies" : { "js-pigpio": "*" diff --git a/hardware/pigpiod/pi-gpiod.html b/hardware/pigpiod/pi-gpiod.html index 7f19ce79..86018771 100644 --- a/hardware/pigpiod/pi-gpiod.html +++ b/hardware/pigpiod/pi-gpiod.html @@ -399,6 +399,28 @@ +
+ + Frequency: Hz +
@@ -450,7 +472,8 @@ level: { value:"0" }, out: { value:"out" }, sermin: { value:"1000" }, - sermax: { value:"2000" } + sermax: { value:"2000" }, + freq: { value:"800" } }, inputs:1, outputs:0, @@ -478,29 +501,32 @@ var hidestate = function () { if ($("#node-input-out").val() === "pwm") { + $('#node-set-freq').show(); $('#node-set-tick').hide(); $('#node-set-state').hide(); $('#node-set-minimax').hide(); $('#node-input-set').prop('checked', false); - $("#dig-tip").hide(); - $("#pwm-tip").show(); - $("#ser-tip").hide(); + $('#dig-tip').hide(); + $('#pwm-tip').show(); + $('#ser-tip').hide(); } else if ($("#node-input-out").val() === "ser") { + $('#node-set-freq').hide(); $('#node-set-tick').hide(); $('#node-set-state').hide(); $('#node-set-minimax').show(); $('#node-input-set').prop('checked', false); - $("#dig-tip").hide(); - $("#pwm-tip").hide(); - $("#ser-tip").show(); + $('#dig-tip').hide(); + $('#pwm-tip').hide(); + $('#ser-tip').show(); } else { + $('#node-set-freq').hide(); $('#node-set-tick').show(); $('#node-set-minimax').hide(); - $("#dig-tip").show(); - $("#pwm-tip").hide(); - $("#ser-tip").hide(); + $('#dig-tip').show(); + $('#pwm-tip').hide(); + $('#ser-tip').hide(); } }; $("#node-input-out").change(function () { hidestate(); }); diff --git a/hardware/pigpiod/pi-gpiod.js b/hardware/pigpiod/pi-gpiod.js index 352d8c18..07b19d3c 100644 --- a/hardware/pigpiod/pi-gpiod.js +++ b/hardware/pigpiod/pi-gpiod.js @@ -86,6 +86,7 @@ module.exports = function(RED) { this.set = n.set || false; this.level = parseInt(n.level || 0); this.out = n.out || "out"; + this.freq = parseInt(n.freq) || 800; this.sermin = Number(n.sermin)/100; this.sermax = Number(n.sermax)/100; if (this.sermin > this.sermax) { @@ -120,6 +121,7 @@ module.exports = function(RED) { PiGPIO.write(node.pin, out); } if (node.out === "pwm") { + PiGPIO.set_PWM_frequency(node.pin, node.freq); PiGPIO.set_PWM_dutycycle(node.pin, parseInt(out * 2.55)); } if (node.out === "ser") { From 0d0c88d19e388bf6e03c640a21a3df287e0ba15a Mon Sep 17 00:00:00 2001 From: bartbutenaers Date: Fri, 29 Jan 2021 17:28:04 +0100 Subject: [PATCH 2/2] Wemo insight power parameters (#739) * Insight power parameters * Insight power parameters * Insight power parameters * Insight power parameters * Insight power parameters * Bump version 0.2.0 --- hardware/wemo/README.md | 27 +++++++- hardware/wemo/WeMoNG.html | 41 ++++++++++-- hardware/wemo/WeMoNG.js | 21 +++++-- hardware/wemo/lib/wemo.js | 125 +++++++++++++++++++++++++++++++++++-- hardware/wemo/package.json | 2 +- 5 files changed, 201 insertions(+), 15 deletions(-) diff --git a/hardware/wemo/README.md b/hardware/wemo/README.md index 7adf65ad..d5a6dbd7 100644 --- a/hardware/wemo/README.md +++ b/hardware/wemo/README.md @@ -73,16 +73,39 @@ And a lightbulb can look like this: } ``` -Insight +An Insight socket output can look like this: ``` { "raw": "\n\n8|1454271649|301|834|56717|1209600|8|1010|638602|12104165\n\n\n\n\r", "state": "8", - "power": 1.01, + "onSince": 1611179325, + "onFor": 2545, + "onToday": 17432, + "onTotal": 47939, + "averagePower": 13, + "power": 3.205, + "energyToday": 3596536, + "energyTotal": 9966151 "sid": "uuid:ea808ecc-1dd1-11b2-9579-8e5c117d479e", "type": "socket", "name": "WeMo Insight", "id": "221450K1200F5C" } ``` +Some information about those power parameters: ++ `state`: Whether the device is currently ON or OFF (1 or 0). ++ `onSince`: The date and time when the device was last turned on or off (as a Unix timestamp). ++ `onFor`: How long the device was last ON for (seconds). ++ `onToday`: How long the device has been ON today (seconds). ++ `onTotal`: How long the device has been ON total (seconds). ++ `timespan`: Timespan over which onTotal is relevant (seconds). Typically 2 weeks except when first started up. ++ `averagePower`: Average power consumption (Watts). ++ `power`: Current power consumption (Watts). ++ `energyToday`: Energy used today (Watt-hours, or Wh). ++ `energyTotal`: Energy used in total (Wh). ++ `standbyLimit`: Minimum energy usage to register the insight as switched on ( milliwats, default 8000mW, configurable via WeMo App). + +## Lookup Node + +This node queries the current state of a device, when an input message is injected. The output is very similar to that of the Input node. diff --git a/hardware/wemo/WeMoNG.html b/hardware/wemo/WeMoNG.html index b9cec3ab..96fb6d41 100644 --- a/hardware/wemo/WeMoNG.html +++ b/hardware/wemo/WeMoNG.html @@ -29,9 +29,26 @@
  • Light Groups
  • Motion Detector
  • -

    Sockets will generate msg.payload with values of 0/1/8 for off or on - (8 is on but at standby load for insight sockets), lightswill return an - object like this:

    +

    Sockets will generate msg.payload with values of 0 or 1 (for off or on).

    +

    Insight sockets will return an object like this (where state can also be 8 at standby):

    +
    +  {
    +    state: "1"
    +    onSince: 1611180205
    +    onFor: 853
    +    onToday: 18284
    +    onTotal: 48785
    +    averagePower: 12
    +    power: 0
    +    energyToday: 3772853
    +    energyTotal: 10142468
    +    sid: "uuid:adebe0c4-1dd1-11b2-8779-d6b6d5a8a932"
    +    type: "socket"
    +    name: "WeMo Insight"
    +    id: "221536K12000B4"
    +  }
    +  
    +

    Lights will return an object like this:

       {
         name: 'Bedroom light',
    @@ -164,7 +181,23 @@