Tyeth Gundry
Published © CC BY-NC-SA

UACER:Upcycled/Unstoppable Alarm Clock for Economic Recovery

Behold, the rebirth of society using the ThunderBell Alarm Clock, attached to a philips Desktop SAD light and a Chromecast-Audio!

BeginnerWork in progress2 hours542

Things used in this project

Hardware components

Raspberry Pi Zero Wireless
Raspberry Pi Zero Wireless
Any microcontroller that can run NodeRed should be sufficient. We use I2C and 1xGPIO
×1
LiFePO4WERED Pi+
This is a Lithium battery UPS for the Raspberry Pi, with a service running on the pi allowing us to query the battery and shutdown on low power etc. We only use it to power the pi in emergencies, and it has a wide range of DC input support (we will pump 12V in).
×1
Adafruit 16-Channel 12-bit PWM/Servo Shield - I2C interface
Adafruit 16-Channel 12-bit PWM/Servo Shield - I2C interface
We are using a $3 clone of this reference design for the PCA9685. It's an I2C based PWM/Servo breakout board with 16 Channels, 5-12V. Follow https://cdn-learn.adafruit.com/downloads/pdf/adafruit-16-channel-servo-driver-with-raspberry-pi.pdf
×1
General Purpose Transistor NPN
General Purpose Transistor NPN
BC547 setup in darlington pair arrangement, used to trigger the buzzer/bell/motor
×2
Through Hole Resistor, 560 kohm
Through Hole Resistor, 560 kohm
Any old 500ohm resistor will do, but you can calculate the correct value if you are sensible! Lookup transistors here: https://electronicsclub.info/transistorcircuits.htm
×1
ThunderBell Alarm Clock (Bell mechanism)
This is a 3V motor with protection diode and capacitor, it has a striker attached to the motor, and a bell attached to the frame ready to be struck when the motor turns.
×1
Emergency Stop Switch, SPST-NC
Emergency Stop Switch, SPST-NC
Any Switch will do. We just need a way for a concerned person to silence the alarm if we are away and accidentally set it.
×1
SG90 Micro-servo motor
SG90 Micro-servo motor
Cheap 5v servo, anything will do, it has very little force required.
×1
AA Batteries
AA Batteries
2 x AA (rechargable) for the ThunderBell mechanism. (I reuse the case as a battery holder by inserting wires through the plastic case and adding an elastic band for retention.
×2
Lumie Desklamp Touch Dimmable SAD Light
Philips touch dimmable Seasonal Affective Disorder lamp
×1

Software apps and online services

Node-RED
Node-RED
Google - Calendar SDKs
ngrok
This makes exposing localhost to the internet through any number of firewalls like childsplay and we use this to make google client authentication easier.

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Hot glue gun (generic)
Hot glue gun (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Wire Stripper, Automatic
Wire Stripper, Automatic
Freshly tinned Electrical Wire (flux and solder applied)
I recycle wire from old devices (PCs etc) and any old wire will do. If you need a long length or large current then lookup voltage loss for your wire size otherwise just use a random piece.
two pence piece
A conductive coin, however aluminium foil etc can be used to trigger the capacitive touch button.

Story

Read more

Schematics

Hookup Guide / Schematic (Fritzing)

Breadboard + Schematic tabs. Ignore PCB tab as I've not done a pcb.

Breadboard

Schematic

Battery Holder

One piece of solid core wire to "join" the batteries at one end as springs, and then standard multicore wire at the other ends leading out the case to junction block.

Code

Alarm Clock routine, TTS, Dawn Call, Google Calendar Event, Bell and Servo(lamp) Flows

JSON
NodeRED Flows, containing each separate function along with debug messages.
[
    {
        "id": "a4faf615.1aab28",
        "type": "tab",
        "label": "Buzzer",
        "disabled": false,
        "info": ""
    },
    {
        "id": "cbbc59af.56dc58",
        "type": "tab",
        "label": "Servo",
        "disabled": false,
        "info": ""
    },
    {
        "id": "48236456.8d8ddc",
        "type": "tab",
        "label": "Calendar Alarm Trigger",
        "disabled": false,
        "info": ""
    },
    {
        "id": "13354089.d7999f",
        "type": "tab",
        "label": "Alarm Light Buzzer Routine",
        "disabled": false,
        "info": ""
    },
    {
        "id": "4e9b8a2b.cc6b64",
        "type": "tab",
        "label": "Chromecast TTS",
        "disabled": false,
        "info": ""
    },
    {
        "id": "2ce528e3.6ab3d8",
        "type": "tab",
        "label": "ChromeCast Music Routine",
        "disabled": false,
        "info": ""
    },
    {
        "id": "4b80affd.cb7dc",
        "type": "tab",
        "label": "Servo Test Flow",
        "disabled": false,
        "info": ""
    },
    {
        "id": "a2ccea50.9bd868",
        "type": "PCA9685",
        "z": "",
        "deviceNumber": "1",
        "address": "64",
        "frequency": "50"
    },
    {
        "id": "839016a5.48a5d8",
        "type": "google-credentials",
        "z": "",
        "displayName": ""
    },
    {
        "id": "27dafaca.41ba46",
        "type": "rpi-gpio out",
        "z": "a4faf615.1aab28",
        "name": "init_low_pin11_GPIO17",
        "pin": "33",
        "set": true,
        "level": "0",
        "freq": "",
        "out": "out",
        "x": 1030,
        "y": 200,
        "wires": []
    },
    {
        "id": "e64d3728.ca3258",
        "type": "inject",
        "z": "a4faf615.1aab28",
        "name": "1",
        "topic": "",
        "payload": "1",
        "payloadType": "num",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 150,
        "y": 160,
        "wires": [
            [
                "26d7c5c2.7a5bca"
            ]
        ]
    },
    {
        "id": "a8428367.51c4a",
        "type": "inject",
        "z": "a4faf615.1aab28",
        "name": "0",
        "topic": "",
        "payload": "0",
        "payloadType": "num",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 150,
        "y": 200,
        "wires": [
            [
                "26d7c5c2.7a5bca"
            ]
        ]
    },
    {
        "id": "26d7c5c2.7a5bca",
        "type": "trigger",
        "z": "a4faf615.1aab28",
        "op1": "1",
        "op2": "0",
        "op1type": "num",
        "op2type": "num",
        "duration": "0",
        "extend": false,
        "units": "s",
        "reset": "",
        "bytopic": "all",
        "name": "1 then wait for reset",
        "x": 610,
        "y": 160,
        "wires": [
            [
                "27dafaca.41ba46",
                "f4df2abc.226fe8",
                "2eafaf45.304d7"
            ]
        ]
    },
    {
        "id": "a8452a19.afd528",
        "type": "catch",
        "z": "a4faf615.1aab28",
        "name": "",
        "scope": null,
        "uncaught": false,
        "x": 680,
        "y": 40,
        "wires": [
            [
                "1819c35.41b7e3d"
            ]
        ]
    },
    {
        "id": "1819c35.41b7e3d",
        "type": "debug",
        "z": "a4faf615.1aab28",
        "name": "err",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "x": 830,
        "y": 40,
        "wires": []
    },
    {
        "id": "883a1fe4.6d9c9",
        "type": "inject",
        "z": "cbbc59af.56dc58",
        "name": "Trigger",
        "topic": "",
        "payload": "true",
        "payloadType": "bool",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 170,
        "y": 240,
        "wires": [
            [
                "470016d7.d01e48",
                "5b4d9fe4.28637"
            ]
        ]
    },
    {
        "id": "470016d7.d01e48",
        "type": "trigger",
        "z": "cbbc59af.56dc58",
        "op1": "2500",
        "op2": "900",
        "op1type": "num",
        "op2type": "num",
        "duration": "500",
        "extend": false,
        "units": "ms",
        "reset": "",
        "bytopic": "all",
        "name": "",
        "x": 440,
        "y": 180,
        "wires": [
            [
                "f6dbd5d6.6e53b8"
            ]
        ]
    },
    {
        "id": "1d0277b8.7aa078",
        "type": "catch",
        "z": "cbbc59af.56dc58",
        "name": "",
        "scope": null,
        "uncaught": false,
        "x": 560,
        "y": 120,
        "wires": [
            [
                "fe0e8b3d.e47558"
            ]
        ]
    },
    {
        "id": "fe0e8b3d.e47558",
        "type": "debug",
        "z": "cbbc59af.56dc58",
        "name": "err",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "x": 740,
        "y": 140,
        "wires": []
    },
    {
        "id": "acffa0ba.a8507",
        "type": "PCA9685 out",
        "z": "cbbc59af.56dc58",
        "name": "PWM Output 4 (Servo)",
        "pca9685": "a2ccea50.9bd868",
        "channel": "4",
        "payload": "",
        "unit": "microseconds",
        "onStep": "0",
        "x": 1140,
        "y": 340,
        "wires": []
    },
    {
        "id": "f6dbd5d6.6e53b8",
        "type": "switch",
        "z": "cbbc59af.56dc58",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "lte",
                "v": "900",
                "vt": "str"
            },
            {
                "t": "gt",
                "v": "900",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 670,
        "y": 280,
        "wires": [
            [
                "1b5b7ea4.3fd511"
            ],
            [
                "acffa0ba.a8507"
            ]
        ]
    },
    {
        "id": "1b5b7ea4.3fd511",
        "type": "trigger",
        "z": "cbbc59af.56dc58",
        "op1": "",
        "op2": "0",
        "op1type": "pay",
        "op2type": "str",
        "duration": "250",
        "extend": false,
        "units": "ms",
        "reset": "",
        "bytopic": "all",
        "name": "off if <=900",
        "x": 850,
        "y": 220,
        "wires": [
            [
                "acffa0ba.a8507",
                "ac89ea0f.f3ac28"
            ]
        ]
    },
    {
        "id": "7cd849b6.cba128",
        "type": "http in",
        "z": "cbbc59af.56dc58",
        "name": "",
        "url": "/lamp",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 180,
        "y": 120,
        "wires": [
            [
                "470016d7.d01e48",
                "5b4d9fe4.28637"
            ]
        ]
    },
    {
        "id": "fd57130f.06313",
        "type": "http response",
        "z": "cbbc59af.56dc58",
        "name": "",
        "statusCode": "200",
        "headers": {
            "LampSwitched": "1"
        },
        "x": 1160,
        "y": 180,
        "wires": []
    },
    {
        "id": "ac89ea0f.f3ac28",
        "type": "switch",
        "z": "cbbc59af.56dc58",
        "name": "if 0",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "0",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 1010,
        "y": 180,
        "wires": [
            [
                "fd57130f.06313"
            ]
        ]
    },
    {
        "id": "4a21e875.000c08",
        "type": "http in",
        "z": "a4faf615.1aab28",
        "name": "",
        "url": "/buzzer",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 140,
        "y": 80,
        "wires": [
            [
                "f2de7e96.3f837",
                "3dde747a.e1586c"
            ]
        ]
    },
    {
        "id": "c53849c8.320a98",
        "type": "http response",
        "z": "a4faf615.1aab28",
        "name": "",
        "statusCode": "200",
        "headers": {
            "BuzzerSounded": "1"
        },
        "x": 1080,
        "y": 300,
        "wires": []
    },
    {
        "id": "93e219ce.8f9c08",
        "type": "switch",
        "z": "a4faf615.1aab28",
        "name": "=0",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "0",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 930,
        "y": 300,
        "wires": [
            [
                "c53849c8.320a98"
            ]
        ]
    },
    {
        "id": "5ab952e3.a90a6c",
        "type": "inject",
        "z": "cbbc59af.56dc58",
        "name": "",
        "topic": "",
        "payload": "900",
        "payloadType": "num",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 250,
        "y": 380,
        "wires": [
            [
                "acffa0ba.a8507"
            ]
        ]
    },
    {
        "id": "ac2ee36c.a555b",
        "type": "inject",
        "z": "cbbc59af.56dc58",
        "name": "",
        "topic": "",
        "payload": "2500",
        "payloadType": "num",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 250,
        "y": 320,
        "wires": [
            [
                "acffa0ba.a8507"
            ]
        ]
    },
    {
        "id": "2dc83ad1.33be86",
        "type": "inject",
        "z": "cbbc59af.56dc58",
        "name": "",
        "topic": "",
        "payload": "0",
        "payloadType": "num",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 250,
        "y": 440,
        "wires": [
            []
        ]
    },
    {
        "id": "5b4d9fe4.28637",
        "type": "delay",
        "z": "cbbc59af.56dc58",
        "name": "",
        "pauseType": "delay",
        "timeout": "700",
        "timeoutUnits": "milliseconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 430,
        "y": 220,
        "wires": [
            [
                "551e3782.b0b158"
            ]
        ]
    },
    {
        "id": "551e3782.b0b158",
        "type": "trigger",
        "z": "cbbc59af.56dc58",
        "op1": "0",
        "op2": "0",
        "op1type": "str",
        "op2type": "str",
        "duration": "0",
        "extend": false,
        "units": "ms",
        "reset": "",
        "bytopic": "all",
        "name": "",
        "x": 440,
        "y": 280,
        "wires": [
            [
                "f6dbd5d6.6e53b8"
            ]
        ]
    },
    {
        "id": "d3d93158.aa674",
        "type": "debug",
        "z": "48236456.8d8ddc",
        "name": "calendar_MSG",
        "active": true,
        "tosidebar": true,
        "console": true,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "x": 470,
        "y": 60,
        "wires": []
    },
    {
        "id": "9d85fc3b.2190b",
        "type": "debug",
        "z": "48236456.8d8ddc",
        "name": "calendar_msg_payload",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 450,
        "y": 160,
        "wires": []
    },
    {
        "id": "71a8a480.76f37c",
        "type": "google calendar in",
        "z": "48236456.8d8ddc",
        "google": "839016a5.48a5d8",
        "name": "Active event trigger",
        "calendar": "o4c976jkf0ep0humf0s1jrfn10@group.calendar.google.com",
        "offsetType": "at",
        "offsetFrom": "start",
        "offset": "10",
        "offsetUnits": "minutes",
        "x": 150,
        "y": 60,
        "wires": [
            [
                "d3d93158.aa674",
                "9d85fc3b.2190b",
                "172716e3.5957f9"
            ]
        ]
    },
    {
        "id": "dfb36c67.5cd0e",
        "type": "google calendar",
        "z": "48236456.8d8ddc",
        "google": "839016a5.48a5d8",
        "name": "Next Event",
        "calendar": "o4c976jkf0ep0humf0s1jrfn10@group.calendar.google.com",
        "ongoing": true,
        "x": 170,
        "y": 160,
        "wires": [
            [
                "d3d93158.aa674",
                "9d85fc3b.2190b"
            ]
        ]
    },
    {
        "id": "b9ac762f.b62598",
        "type": "cronplus",
        "z": "48236456.8d8ddc",
        "name": "",
        "outputField": "test",
        "timeZone": "",
        "options": [
            {
                "topic": "1",
                "payload": "1",
                "type": "str",
                "expression": "0/15 * * * *"
            }
        ],
        "x": 160,
        "y": 240,
        "wires": [
            [
                "dfb36c67.5cd0e"
            ]
        ]
    },
    {
        "id": "172716e3.5957f9",
        "type": "link out",
        "z": "48236456.8d8ddc",
        "name": "",
        "links": [
            "c96087b7.2beac8"
        ],
        "x": 535,
        "y": 120,
        "wires": []
    },
    {
        "id": "ec9d2084.3f90f",
        "type": "cast-to-client",
        "z": "4e9b8a2b.cc6b64",
        "name": "",
        "url": "",
        "contentType": "",
        "message": "",
        "language": "en",
        "ip": "192.168.0.4",
        "port": "",
        "volume": "",
        "x": 570,
        "y": 140,
        "wires": [
            [
                "8467cee2.2f283"
            ]
        ]
    },
    {
        "id": "79526706.570698",
        "type": "inject",
        "z": "4e9b8a2b.cc6b64",
        "name": "",
        "topic": "",
        "payload": "triggered",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 100,
        "y": 260,
        "wires": [
            [
                "9a38e420.5599d8"
            ]
        ]
    },
    {
        "id": "9a38e420.5599d8",
        "type": "change",
        "z": "4e9b8a2b.cc6b64",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "ip",
                "pt": "msg",
                "to": "192.168.0.4",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "language",
                "pt": "msg",
                "to": "En-gb",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 340,
        "y": 200,
        "wires": [
            [
                "ec9d2084.3f90f",
                "bb650d0b.78803"
            ]
        ]
    },
    {
        "id": "2e49099b.19ad16",
        "type": "comment",
        "z": "4e9b8a2b.cc6b64",
        "name": "say a text",
        "info": "",
        "x": 80,
        "y": 180,
        "wires": []
    },
    {
        "id": "10b5e94a.780807",
        "type": "http in",
        "z": "4e9b8a2b.cc6b64",
        "name": "/tts/:msg",
        "url": "/tts/:msg",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 80,
        "y": 100,
        "wires": [
            [
                "47a072c4.6d0b0c"
            ]
        ]
    },
    {
        "id": "bb650d0b.78803",
        "type": "debug",
        "z": "4e9b8a2b.cc6b64",
        "name": "msg obj",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "x": 560,
        "y": 200,
        "wires": []
    },
    {
        "id": "10c65d77.1d1383",
        "type": "http response",
        "z": "4e9b8a2b.cc6b64",
        "name": "",
        "statusCode": "200",
        "headers": {},
        "x": 920,
        "y": 140,
        "wires": []
    },
    {
        "id": "95643a7d.f91b68",
        "type": "catch",
        "z": "4e9b8a2b.cc6b64",
        "name": "",
        "scope": null,
        "uncaught": false,
        "x": 560,
        "y": 80,
        "wires": [
            [
                "b31e0e6d.c5391",
                "222281c4.a895be"
            ]
        ]
    },
    {
        "id": "b31e0e6d.c5391",
        "type": "debug",
        "z": "4e9b8a2b.cc6b64",
        "name": "error",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "error",
        "targetType": "jsonata",
        "x": 730,
        "y": 40,
        "wires": []
    },
    {
        "id": "47a072c4.6d0b0c",
        "type": "change",
        "z": "4e9b8a2b.cc6b64",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "msg.req.params.msg",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 260,
        "y": 100,
        "wires": [
            [
                "9a38e420.5599d8"
            ]
        ]
    },
    {
        "id": "8467cee2.2f283",
        "type": "change",
        "z": "4e9b8a2b.cc6b64",
        "name": "Finished",
        "rules": [
            {
                "t": "set",
                "p": "payload.status",
                "pt": "msg",
                "to": "Finished",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 140,
        "wires": [
            [
                "10c65d77.1d1383"
            ]
        ]
    },
    {
        "id": "222281c4.a895be",
        "type": "http response",
        "z": "4e9b8a2b.cc6b64",
        "name": "",
        "statusCode": "400",
        "headers": {},
        "x": 920,
        "y": 80,
        "wires": []
    },
    {
        "id": "a0e09a0d.aa2b68",
        "type": "inject",
        "z": "2ce528e3.6ab3d8",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 160,
        "y": 240,
        "wires": [
            [
                "e3fa36e3.737878"
            ]
        ]
    },
    {
        "id": "8041b205.878f5",
        "type": "debug",
        "z": "2ce528e3.6ab3d8",
        "name": "dawn - post chromecast",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "x": 810,
        "y": 240,
        "wires": []
    },
    {
        "id": "67537e90.7d3a6",
        "type": "catch",
        "z": "2ce528e3.6ab3d8",
        "name": "",
        "scope": null,
        "uncaught": false,
        "x": 640,
        "y": 60,
        "wires": [
            [
                "f502b824.2b0bb8",
                "f2976c94.3f3b2"
            ]
        ]
    },
    {
        "id": "f502b824.2b0bb8",
        "type": "debug",
        "z": "2ce528e3.6ab3d8",
        "name": "error",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "error",
        "targetType": "jsonata",
        "x": 780,
        "y": 60,
        "wires": []
    },
    {
        "id": "e3fa36e3.737878",
        "type": "cast-to-client",
        "z": "2ce528e3.6ab3d8",
        "name": "",
        "url": "https://sounds.bl.uk/resources/language-of-birds/dawn-chorus-phil-riddett.mp3",
        "contentType": "audio/mpeg",
        "message": "",
        "language": "en",
        "ip": "192.168.0.4",
        "port": "",
        "volume": "",
        "x": 430,
        "y": 240,
        "wires": [
            [
                "8041b205.878f5",
                "5109f6fd.73a8d8"
            ]
        ]
    },
    {
        "id": "f1e01dce.3f507",
        "type": "comment",
        "z": "2ce528e3.6ab3d8",
        "name": "Dawn Chorus",
        "info": "https://sounds.bl.uk/resources/language-of-birds/dawn-chorus-phil-riddett.mp3",
        "x": 150,
        "y": 180,
        "wires": []
    },
    {
        "id": "c96087b7.2beac8",
        "type": "link in",
        "z": "13354089.d7999f",
        "name": "",
        "links": [
            "172716e3.5957f9"
        ],
        "x": 215,
        "y": 40,
        "wires": [
            [
                "704e95e.966796c"
            ]
        ]
    },
    {
        "id": "eeeba9ac.e77398",
        "type": "inject",
        "z": "13354089.d7999f",
        "name": "7s delay test",
        "topic": "",
        "payload": "{\"params\":{\"msg\":\"test triggered manually\"},\"req\":{\"params\":{\"delay\":7000}}}",
        "payloadType": "json",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 110,
        "y": 160,
        "wires": [
            [
                "6ed0f478.0db79c",
                "d22a70e3.974c8"
            ]
        ]
    },
    {
        "id": "c9ddfbdc.e3ae78",
        "type": "change",
        "z": "13354089.d7999f",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload.req.params.delay",
...

This file has been truncated, please download it to see its full contents.

Credits

Tyeth Gundry

Tyeth Gundry

7 projects • 8 followers
Love solving problems

Comments