Light schedule with additional condition

Hey guys
I've got the following in mind and I hope someone can point me in the right direction.
I want to have a scheduled lighting with starting time according to the sunset.
So nothing special so far, there are plenty of nodes that do this.
But for the end time I want another condition which is a msg.payload with a certain content.
This content is a power meter readout and this indicates that my tv is running.
So I want to end the light schedule at fixed times but only if my tv is not running (means: me being in bed already).
Anybody having an idea?

Regards

Enrico

Ok, first thought:

Have a small flow: Inject node sending message to enquire if the TV is on.
If the TV is on, set a context variable.

Better idea:
(Oh, bigtimer is the one you want for sunset. I know it is overkill for what you want, but it offers future compatibility when your flow expands.)

So your power meter can tell if you TV is on.

Poll the meter and get back the reading.
handle the reading to determine if the TV is on/off.

If TV is off, send the signal to turn off the lights.
If on: nothing to be done.

This flow starts when the sunset signal is received and stops once the off signal is sent.
(This reduces overheads when there is nothing to do regarding this part of the flow.)

If you want I could bash up a basic concept flow for you.

[{"id":"616e7051.337c58","type":"inject","z":"703c61ac.837e1","name":"Sunset signal","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"SUNSET","payloadType":"str","x":1860,"y":1250,"wires":[["24769e7.0d081e2"]]},{"id":"24769e7.0d081e2","type":"trigger","z":"703c61ac.837e1","name":"","op1":"","op2":"query","op1type":"nul","op2type":"str","duration":"-4","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":2040,"y":1250,"wires":[["24b19541.7db02a"]]},{"id":"4164e25f.cc8d84","type":"switch","z":"703c61ac.837e1","name":"OFF?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"OFF","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":2030,"y":1350,"wires":[["d7e123bd.f87cd","53a0f346.930ef4"]]},{"id":"220c8041.9501","type":"comment","z":"703c61ac.837e1","name":"Sends ON of OFF","info":"","x":2270,"y":1290,"wires":[]},{"id":"d7e123bd.f87cd","type":"link out","z":"703c61ac.837e1","name":"","links":["2db13d8e.9d6d6a"],"x":2045,"y":1400,"wires":[]},{"id":"2db13d8e.9d6d6a","type":"link in","z":"703c61ac.837e1","name":"","links":["d7e123bd.f87cd"],"x":1795,"y":1350,"wires":[["326d5bc3.7e0554"]]},{"id":"326d5bc3.7e0554","type":"change","z":"703c61ac.837e1","name":"STOP","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":1880,"y":1350,"wires":[["24769e7.0d081e2"]]},{"id":"53a0f346.930ef4","type":"function","z":"703c61ac.837e1","name":"Turn off lights. *","func":"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":2210,"y":1350,"wires":[[]],"info":"Again:  I can't help you with that part."},{"id":"8650eed2.b61fb","type":"comment","z":"703c61ac.837e1","name":"From flow detecting SunSet","info":"","x":1860,"y":1210,"wires":[]},{"id":"24b19541.7db02a","type":"change","z":"703c61ac.837e1","name":"Get context TV","rules":[{"t":"set","p":"payload","pt":"msg","to":"TV","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":2270,"y":1220,"wires":[["4164e25f.cc8d84"]]},{"id":"a433e727.a25d","type":"change","z":"703c61ac.837e1","name":"Set context of TV state","rules":[{"t":"set","p":"TV","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":2270,"y":1160,"wires":[[]]},{"id":"4c4956f6.db111","type":"inject","z":"703c61ac.837e1","name":"TV Off","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"OFF","payloadType":"str","x":1870,"y":1120,"wires":[["a433e727.a25d"]]},{"id":"22f01a1e.bc6a66","type":"inject","z":"703c61ac.837e1","name":"TV On","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"ON","payloadType":"str","x":1870,"y":1160,"wires":[["a433e727.a25d"]]},{"id":"4090f1af.2eec18","type":"comment","z":"703c61ac.837e1","name":"You are going to have to do this part of the flow.","info":"","x":1870,"y":1080,"wires":[]},{"id":"c621250c.02de3","type":"comment","z":"703c61ac.837e1","name":"These two nodes use flow.context for TV state","info":"","x":2280,"y":1190,"wires":[]}]

node-red-contrib-cron-plus is also a very popular user choice, which is very easy to use & offers a wide range of solar events and can easily be offset (for example switch on 10 minutes before/after sunset).

twilight

1 Like

Thx for your input and your work.
I looked at bigtimer and indeed it offers a lot and the possibility to send overrides seemed to be exactly what I was looking for. On a closer look the manual override disables the schedule function completely until the beginning of the next schedule. This could mean for example: I want to have the light switched off at 10 p.m. as long as I don't watch tv. But it wouldn't go off afterwards either. Only until the next schedule - so most likely sometime the next day.
In this scenario I would want it to go off when I switch off the tv (after 10 p.m.).
Could I make clear what the problem is?

In your own flow in turn there is the time-part missing. So it switches the light off as soon as the tv goes off.

Yes, it could, but from where I am: you are going about it in the wrong way.

You would use bigtimer (or other) only to turn ON the tv.
Turning it OFF would be done by other nodes/conditions.

The flow I posted can only turn the TV off.
(or is meant to .....)

Understood. but then there is another thing. Your flow would turn the light off (it's about the light; the tv is only the additional condition) regardless of the time. As longs as sunset has been and tv is not running it will send the OFF comand. But I want a minimum time according to a schedule. So 10 p.m. to stick to my last example. Scheduled lighting from 6 to 10 p.m..
10 p.m. light goes off if the tv is not running.
10 p.m. and tv is running -> light stays on until tv get's switched off.

CRON+ allows you to have a mixture of fixed (by date/time or solar events) and dynamic (by incoming msg) events. The dynamic events can be saved so that they work on restart of node-red/device and can be changed dynamically as well. No need for different scheduler nodes.

I've finally gotten round to replacing all my old mishmash of scheduling nodes with CRON+ this Christmas with the result that things are rather more stable than they used to be :grinning_face_with_smiling_eyes:

Part of my rather longer-than-expected effort to migrate from my v2 and v2.5 home automation flows (on 2 previous generation Pi's) to a shiny new v3 with better automation, standardisation, simplification and integration on my (now not-so) new home server (a repurposed Lenovo Thinkpad x240).

2 Likes

After a bit of trying around I found the bigtimer suits the best.
But I couldn't get it running without some function nodes:

[{"id":"b628e0d0.36176","type":"tab","label":"Flurlicht","disabled":false,"info":""},{"id":"da4683b1.3e11c","type":"bigtimer","z":"b628e0d0.36176","outtopic":"","outpayload1":"1","outpayload2":"0","name":"Big Timer","comment":"","lat":"53.85074","lon":"8.68369","starttime":"5004","endtime":"1230","starttime2":"270","endtime2":"5003","startoff":"0","endoff":"0","startoff2":0,"endoff2":0,"offs":0,"outtext1":"","outtext2":"","timeout":1440,"sun":true,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"jan":true,"feb":true,"mar":true,"apr":true,"may":true,"jun":true,"jul":true,"aug":true,"sep":true,"oct":true,"nov":true,"dec":true,"day1":0,"month1":0,"day2":0,"month2":0,"day3":0,"month3":0,"day4":0,"month4":0,"day5":0,"month5":0,"day6":0,"month6":0,"day7":0,"month7":0,"day8":0,"month8":0,"day9":0,"month9":0,"day10":0,"month10":0,"day11":0,"month11":0,"day12":0,"month12":0,"d1":0,"w1":0,"d2":0,"w2":0,"d3":0,"w3":0,"d4":0,"w4":0,"d5":0,"w5":0,"d6":0,"w6":0,"xday1":0,"xmonth1":0,"xday2":0,"xmonth2":0,"xday3":0,"xmonth3":0,"xday4":0,"xmonth4":0,"xday5":0,"xmonth5":0,"xday6":0,"xmonth6":0,"xd1":0,"xw1":0,"xd2":0,"xw2":0,"xd3":0,"xw3":0,"xd4":0,"xw4":0,"xd5":0,"xw5":0,"xd6":0,"xw6":0,"suspend":false,"random":false,"randon1":false,"randoff1":false,"randon2":false,"randoff2":false,"repeat":true,"atstart":true,"odd":false,"even":false,"x":460,"y":180,"wires":[[],["7eb68d29.fbe0d4"],[]]},{"id":"af4426a2.498a98","type":"wemo out","z":"b628e0d0.36176","name":"Flur","device":"b6b3dd43.ba103","label":"Wemp","x":1070,"y":260,"wires":[]},{"id":"41e4ea76.d79dd4","type":"kasa","z":"b628e0d0.36176","name":"Messdose TV - HS110(EU)","device":"192.168.188.60","interval":60000,"eventInterval":15000,"payload":"getMeterInfo","payloadType":"info","debug":true,"x":400,"y":100,"wires":[["d0354258.de774"]]},{"id":"d0354258.de774","type":"switch","z":"b628e0d0.36176","name":"TV an oder aus","property":"payload.power","propertyType":"msg","rules":[{"t":"gt","v":"30","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":640,"y":100,"wires":[["1185dde6.a92e92"],["a003bb1f.ab85e8"]]},{"id":"dc5865ed.3db3d8","type":"inject","z":"b628e0d0.36176","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"getMeterInfo","payloadType":"str","x":160,"y":100,"wires":[["41e4ea76.d79dd4","660434e.f8370cc"]]},{"id":"67a14dbf.d88634","type":"change","z":"b628e0d0.36176","name":"Definition VAR TV","rules":[{"t":"set","p":"TV","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1110,"y":100,"wires":[[]]},{"id":"1185dde6.a92e92","type":"change","z":"b628e0d0.36176","name":"An","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":80,"wires":[["67a14dbf.d88634"]]},{"id":"a003bb1f.ab85e8","type":"change","z":"b628e0d0.36176","name":"Aus","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":120,"wires":[["67a14dbf.d88634"]]},{"id":"660434e.f8370cc","type":"function","z":"b628e0d0.36176","name":"","func":"var A = flow.get(\"TV\");\nvar B = flow.get(\"LP\");\nif (A == 0 && B == 1) {\n    msg.payload = 1\n}\nelse if (A == 1 && B == 1) { \n    msg.payload = 1\n}\nelse {\n    msg.payload = 0\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":460,"y":260,"wires":[["af4426a2.498a98"]]},{"id":"7eb68d29.fbe0d4","type":"change","z":"b628e0d0.36176","name":"Definition VAR LP","rules":[{"t":"set","p":"LP","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1110,"y":180,"wires":[[]]},{"id":"b6b3dd43.ba103","type":"wemo-dev","device":"221609K110011B","name":"Wemp"}]

I almost had it done (well I thought) but then I encountered a logical problem.
In my two conditions there are two (or at least one of them) combinations not unique.
So I have two variables.
A is the tv status (1/0)
B is the status of the scheduler (bigtimer) (1/0)

The possible combinations are:
A1 B0 (tv on; scheduler off) -> 0 (without the scheduler command no light)
A0 B0 -> 0 (both off, no light)
A0 B1 -> 1 (scheduler says on, even if tv is off)
A1 B1 -> 1 (both on)
A1 B0 (tv on; scheduler changes from on to off) -> 1 (so here I want it to be on, unlike in combination 1)
A0 B0 (tv off after schedule has had a full cycle (on and off again)) -> 0 (but with a delay)

I hope you get what I am pointing at. I want a light to be switched according to solar conditions (bigtimer). But when I watch tv I want to prolong the schedule as long as I watch (plus some minutes delay). So that makes two combinations not being unique.
So now I figured that doubling the variables and adding a delay on one string might give the possibility
to differentiate and to tell if a variable had been differently recently.
Like if A=1 and B=0 but B was 1 recently that would give 1 as output instead of 0.
So I need to tell "where variables came from". Not only the current status but also its changing.
Hard to explain - I hope you could get it anyway.

Or maybe there is a much easier solution....

OK, as I said there might be an easier solution and with regard to my limited knowledge this seems to be the easiest solution I can find. Anyway it is at least a working solution.

[{"id":"da4683b1.3e11c","type":"bigtimer","z":"b628e0d0.36176","outtopic":"","outpayload1":"1","outpayload2":"0","name":"Big Timer","comment":"","lat":"53.85074","lon":"8.68369","starttime":"5004","endtime":"1230","starttime2":"270","endtime2":"5003","startoff":"0","endoff":"0","startoff2":0,"endoff2":0,"offs":0,"outtext1":"","outtext2":"","timeout":1440,"sun":true,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"jan":true,"feb":true,"mar":true,"apr":true,"may":true,"jun":true,"jul":true,"aug":true,"sep":true,"oct":true,"nov":true,"dec":true,"day1":0,"month1":0,"day2":0,"month2":0,"day3":0,"month3":0,"day4":0,"month4":0,"day5":0,"month5":0,"day6":0,"month6":0,"day7":0,"month7":0,"day8":0,"month8":0,"day9":0,"month9":0,"day10":0,"month10":0,"day11":0,"month11":0,"day12":0,"month12":0,"d1":0,"w1":0,"d2":0,"w2":0,"d3":0,"w3":0,"d4":0,"w4":0,"d5":0,"w5":0,"d6":0,"w6":0,"xday1":0,"xmonth1":0,"xday2":0,"xmonth2":0,"xday3":0,"xmonth3":0,"xday4":0,"xmonth4":0,"xday5":0,"xmonth5":0,"xday6":0,"xmonth6":0,"xd1":0,"xw1":0,"xd2":0,"xw2":0,"xd3":0,"xw3":0,"xd4":0,"xw4":0,"xd5":0,"xw5":0,"xd6":0,"xw6":0,"suspend":false,"random":false,"randon1":false,"randoff1":false,"randon2":false,"randoff2":false,"repeat":true,"atstart":true,"odd":false,"even":false,"x":860,"y":200,"wires":[["af4426a2.498a98","7eb68d29.fbe0d4"],[],[]]}]

There is one thing though. The change node between the switch node and the bigtimer is supposed to reset the bigtimer to "auto" after it was in override mode. I'd like to delay this string for 10 minutes or so. But since it is triggered every 5 seconds from from the inject node both outputs of the switch node interfere. So what I am missing now is a way to start the whole string past the function node only if changes (in the variables) apllied.

It is good to see you are trying,

Small thing: Please don't include foreign nodes. People don't have them and it confuses the issue. Better to add an empty function node with comments.

Ok, first off, this part of the code:

[{"id":"d0354258.de774","type":"switch","z":"b628e0d0.36176","name":"TV an oder aus","property":"payload.power","propertyType":"msg","rules":[{"t":"gt","v":"30","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":640,"y":100,"wires":[["1185dde6.a92e92"],["a003bb1f.ab85e8"]]},{"id":"1185dde6.a92e92","type":"change","z":"b628e0d0.36176","name":"An","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":80,"wires":[["67a14dbf.d88634"]]},{"id":"a003bb1f.ab85e8","type":"change","z":"b628e0d0.36176","name":"Aus","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":120,"wires":[["67a14dbf.d88634"]]},{"id":"67a14dbf.d88634","type":"change","z":"b628e0d0.36176","name":"Definition VAR TV","rules":[{"t":"set","p":"TV","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1110,"y":100,"wires":[[]]}]

No problems.

But you could do it this way - less nodes and probably just as clear:

[{"id":"d0354258.de774","type":"switch","z":"b628e0d0.36176","name":"TV an oder aus","property":"payload.power","propertyType":"msg","rules":[{"t":"gt","v":"30","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":640,"y":100,"wires":[["1185dde6.a92e92"],["a003bb1f.ab85e8"]]},{"id":"1185dde6.a92e92","type":"change","z":"b628e0d0.36176","name":"An","rules":[{"t":"set","p":"TV","pt":"flow","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":80,"wires":[[]]},{"id":"a003bb1f.ab85e8","type":"change","z":"b628e0d0.36176","name":"Aus","rules":[{"t":"set","p":"TV","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":120,"wires":[[]]}]

I can't believe that, as what you are making is a truth table which shows all possibilities and so there can't be any combinations which are vague.

Yes, that means there are 4 possibilities.
0 0
0 1
1 0
1 1

Here you have 6. So you need to check you have understood what is happening.

The first line says:

(tv on; scheduler off) -> 0 (without the scheduler command no light)

But further down you say:

(tv on; scheduler changes from on to off) -> 1 (so here I want it to be on, unlike in combination 1)

So you need to clarify what that really means. Do you mean 0,0?

I want a light to be switched according to solar conditions (bigtimer).

I don't think you have properly defined the conditionality of this, or you need to (now) forget about this part and concentrate of the TV's status.

I want a light to be switched according to solar conditions (bigtimer). But when I watch tv I want to prolong the schedule as long as I watch (plus some minutes delay).

the?
prolong?

You haven't really explained what the schedule is. Completely.

During the day, the light would be off - I guess. Seems silly having the light on during the day.
So when sunset happens, the light turns on.

bigtimer gives you that easily.

And you want them to turn off at a given time..... when ever.
Again, this is easy with bigtimer.

But if you are watching TV you want to keep the lights on.
When the TV is turned off, a few minutes later (academic) the lights are turned off - yes?

(Sorry for multiple posts/replies)

Ok, here is my effort at the truth table you need:
(Oh, it is not really accurate, but it will give you a better understanding of what you want to do)
(Actually it is wrong as a truth table.... but)

LIGHT: 0 or 1
TV: 0 or 1
SUNSET until 22:00 (nominal) 0 or 1 (I'll call it S below)
x - I don't care

(this is going to be difficult to do as I can't format tables in text here. But I'll try)

S: 1 T: 0 L: 0 - Lights off.
S: 1 T:0 L: 1 - Lights on. This is establishing a scenario
S: 0 T: 0 L:x - Lights off. This is going from the above to after 22:00
The lines above are a bit wrong, but show you what you want to happen.
This is based on L has direct control of the lights and can't be over-ridden.

So now we go to the next part:
S: 1 T: 1 L: 1 - you are watching TV and sunset has happened.
S: 0 T: 1 L: 1 - Because the TV is on, L is kept at 1.
S: 0 T: 0 L: 1 - for a nominal time.
Then:
S: 0 T: 0 L: 0 - all turned off.

Give that a try and see if you can work out how to do it.
I hope it helps you get a handle on what you want to do.

There is another problem I have just seen.

The bigtimer node is sending a 2 as its output, and I don't understand why or how.

Really? However I've noticed that the #2 output is unreliable which is why I have changed back to the #1 output again.
Anyway - I am a bit proud in saying: I DID IT! :grinning:
Found a setup now that meets all requirements. So if anyone is interested I can post this (but this would then include foreign nodes).
Thx for your help, especially @Trying_to_learn!

Case closed. :sunglasses:

1 Like

Good to hear!

I am kind of glad you worked it out and not someone else. Though that solves the problem here and now, you may not learn as much as if you work it out your self.

On the bigtimer thing:
There are 3 outputs. 1 - top, 2 - middle 3 - bottom.
There is no problem using output 2, but in the docs, it says it only puts out a 1 or 0.
I stuck a debug node on it and was seeing/getting a 2 which doesn't make sense, and may be why things weren't working as you expected in the flow.

(Who knows?)

No problems posting the flow with the foreign node. It is established that it is bigtimer.
In your original question, we didn't know which foreign nodes you were using when you posted the flow and this causes problems with other importing the flow.
Do you understand that?

But now: It is declared that the bigtimer node is used and most people would (may) have that.
The other nodes you used in the flow - though needed for what you were/are doing - are not crucial to get the scheduling part working.

So you could use/include inject nodes to simulate the required inputs, or just leave out that part and put a comment node explaining what inputs are expected/required.

Likewise on the output, put debug nodes which have a simple function of showing what messages are being sent.

Then: anyone wanting to use that part of the flow can see what signals are required to be sent in and what are sent out.

Every one wins that way.

And again: Good on you for working it out.
At this rate, you will be smarter than me in no time!
:wink:

The second output (the middle one if you want) is the one of which I was talking.

Though it is documented it sends a 0 or 1 for OFF and ON conditions, it also can send a 2 which means it is in AUTO mode. Something not really mentioned in the help.

So: probably, your code - and mine - was expecting a 0 or 1 to come out to indicate the state of the nation.
When it gets a 2: all bets are off and things go weird.

This is just to explain to you a bit more of possibly why the original flow wasn't working and the anomaly in what is written and what happens with that node.

Hi.

A bit more digging, and your flow you posted with bigtimer.

You need to inject a sync message at the start to get things working.
If you don't the output you used sends a 2 rather than the documented 0 or 1.

That may also be contributing to things not doing as you expect.

So basically this:

[{"id":"663f7d03.fafcec","type":"inject","z":"b628e0d0.36176","name":"","props":[{"p":"payload","v":"Sync","vt":"str"},{"p":"topic","v":"","vt":"string"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Sync","payloadType":"str","x":330,"y":180,"wires":[["da4683b1.3e11c"]]},{"id":"da4683b1.3e11c","type":"bigtimer","z":"b628e0d0.36176","outtopic":"","outpayload1":"1","outpayload2":"0","name":"Big Timer","comment":"","lat":"53.85074","lon":"8.68369","starttime":"5004","endtime":"1230","starttime2":"270","endtime2":"5003","startoff":"0","endoff":"0","startoff2":0,"endoff2":0,"offs":0,"outtext1":"","outtext2":"","timeout":1440,"sun":true,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"jan":true,"feb":true,"mar":true,"apr":true,"may":true,"jun":true,"jul":true,"aug":true,"sep":true,"oct":true,"nov":true,"dec":true,"day1":0,"month1":0,"day2":0,"month2":0,"day3":0,"month3":0,"day4":0,"month4":0,"day5":0,"month5":0,"day6":0,"month6":0,"day7":0,"month7":0,"day8":0,"month8":0,"day9":0,"month9":0,"day10":0,"month10":0,"day11":0,"month11":0,"day12":0,"month12":0,"d1":0,"w1":0,"d2":0,"w2":0,"d3":0,"w3":0,"d4":0,"w4":0,"d5":0,"w5":0,"d6":0,"w6":0,"xday1":0,"xmonth1":0,"xday2":0,"xmonth2":0,"xday3":0,"xmonth3":0,"xday4":0,"xmonth4":0,"xday5":0,"xmonth5":0,"xday6":0,"xmonth6":0,"xd1":0,"xw1":0,"xd2":0,"xw2":0,"xd3":0,"xw3":0,"xd4":0,"xw4":0,"xd5":0,"xw5":0,"xd6":0,"xw6":0,"suspend":false,"random":false,"randon1":false,"randoff1":false,"randon2":false,"randoff2":false,"repeat":true,"atstart":true,"odd":false,"even":false,"x":460,"y":180,"wires":[[],["7eb68d29.fbe0d4","b683a1d3.100da8"],[]]}]

And set the inject node to inject at start up.