4230 lines
72 KiB
Text
4230 lines
72 KiB
Text
exports[`Block Snapshots > Blockly JSON > action_email 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "action_email",
|
||
"colour": "0",
|
||
"tooltip": "Sends an email with given subject and body templates",
|
||
"nextStatement": "expression",
|
||
"previousStatement": "expression",
|
||
"message0": "📧 Email %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message1": "Subject: %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "SUBJECT",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "Body: %1",
|
||
"args2": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "BODY",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/notifications/email"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > action_log 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "action_log",
|
||
"colour": "0",
|
||
"tooltip": "Executes the block you plug in and reveals its final value or error message.",
|
||
"nextStatement": "expression",
|
||
"previousStatement": "expression",
|
||
"message0": "Log: %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "EXPRESSION",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/utility/log"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > action_root 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "action_root",
|
||
"colour": "0",
|
||
"tooltip": "The foundation of every Adafruit IO Action. Connect Triggers (like 'when temperature > 80°F' or 'every morning at 8 AM') to define when your Action runs, then attach Action blocks (like 'send email', 'publish to feed', or 'if/then logic') to define what happens when triggered.",
|
||
"message0": "Triggers: %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "LEFT"
|
||
}
|
||
],
|
||
"message1": "%1",
|
||
"args1": [
|
||
{
|
||
"type": "input_statement",
|
||
"name": "TRIGGERS",
|
||
"check": "trigger",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "Actions: %1",
|
||
"args2": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "LEFT"
|
||
}
|
||
],
|
||
"message3": "%1",
|
||
"args3": [
|
||
{
|
||
"type": "input_statement",
|
||
"name": "EXPRESSIONS",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message4": "ㅤ %1",
|
||
"args4": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "action_root",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/root"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > action_sms 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "action_sms",
|
||
"colour": "0",
|
||
"tooltip": "Sends a text message with a given body template.",
|
||
"nextStatement": "expression",
|
||
"previousStatement": "expression",
|
||
"message0": "📲 SMS %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message1": "Message: %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "BODY",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/notifications/sms"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > action_webhook 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "action_webhook",
|
||
"colour": "0",
|
||
"tooltip": "Sends an HTTP POST request to a given URL, with a BODY template using FEED data.",
|
||
"nextStatement": "expression",
|
||
"previousStatement": "expression",
|
||
"message0": "🔗 Webhook %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message1": "URL: %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "URL",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "Form Encode? %1 %2",
|
||
"args2": [
|
||
{
|
||
"name": "FORM_ENCODE",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message3": "POST Body: %1",
|
||
"args3": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "BODY",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/notifications/webhook"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > all_days 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "all_days",
|
||
"colour": 30,
|
||
"tooltip": "Runs during every day of the month.",
|
||
"output": "cron_day",
|
||
"message0": "Every day %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "all_days",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/all_days"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > all_hours 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "all_hours",
|
||
"colour": 30,
|
||
"tooltip": "Runs during all hours of the day.",
|
||
"output": "cron_hour",
|
||
"message0": "Every hour %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "all_hours",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/all_hours"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > all_minutes 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "all_minutes",
|
||
"colour": 30,
|
||
"tooltip": "Runs every minute of the hour.",
|
||
"output": "cron_minute",
|
||
"message0": "Every minute %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "all_minutes",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/all_minutes"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > all_months 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "all_months",
|
||
"colour": 30,
|
||
"tooltip": "Runs during all months.",
|
||
"output": "cron_month",
|
||
"message0": "Every month %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "all_months",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/all_months"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > day_settings 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "day_settings",
|
||
"colour": 30,
|
||
"tooltip": "How would you like to specify days of the month for your schedule?",
|
||
"message0": "Day: %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "DAY_BLOCK",
|
||
"check": "cron_day",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/day_settings"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > days_of_week 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "days_of_week",
|
||
"colour": 30,
|
||
"tooltip": "Runs during certain days of the week.",
|
||
"output": "cron_day",
|
||
"message0": "Sun: %1 Mon: %2 Tue: %3 Wed: %4 %5",
|
||
"args0": [
|
||
{
|
||
"name": "SUN",
|
||
"type": "field_checkbox",
|
||
"checked": true
|
||
},
|
||
{
|
||
"name": "MON",
|
||
"type": "field_checkbox",
|
||
"checked": true
|
||
},
|
||
{
|
||
"name": "TUE",
|
||
"type": "field_checkbox",
|
||
"checked": true
|
||
},
|
||
{
|
||
"name": "WED",
|
||
"type": "field_checkbox",
|
||
"checked": true
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": "Thu: %1 Fri: %2 Sat: %3 %4",
|
||
"args1": [
|
||
{
|
||
"name": "THU",
|
||
"type": "field_checkbox",
|
||
"checked": true
|
||
},
|
||
{
|
||
"name": "FRI",
|
||
"type": "field_checkbox",
|
||
"checked": true
|
||
},
|
||
{
|
||
"name": "SAT",
|
||
"type": "field_checkbox",
|
||
"checked": true
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"mutator": "days_of_week",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/days_of_week"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > delay_days 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "delay_days",
|
||
"colour": "0",
|
||
"tooltip": "1 day is the maximum delay available",
|
||
"output": "delay_period",
|
||
"message0": "1 day %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_days"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > delay_hours 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "delay_hours",
|
||
"colour": "0",
|
||
"tooltip": "Set a delay between 1 and 23 hours",
|
||
"output": "delay_period",
|
||
"message0": "%1 hours %2",
|
||
"args0": [
|
||
{
|
||
"name": "SECONDS",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"3600"
|
||
],
|
||
[
|
||
"2",
|
||
"7200"
|
||
],
|
||
[
|
||
"3",
|
||
"10800"
|
||
],
|
||
[
|
||
"4",
|
||
"14400"
|
||
],
|
||
[
|
||
"5",
|
||
"18000"
|
||
],
|
||
[
|
||
"6",
|
||
"21600"
|
||
],
|
||
[
|
||
"7",
|
||
"25200"
|
||
],
|
||
[
|
||
"8",
|
||
"28800"
|
||
],
|
||
[
|
||
"9",
|
||
"32400"
|
||
],
|
||
[
|
||
"10",
|
||
"36000"
|
||
],
|
||
[
|
||
"11",
|
||
"39600"
|
||
],
|
||
[
|
||
"12",
|
||
"43200"
|
||
],
|
||
[
|
||
"13",
|
||
"46800"
|
||
],
|
||
[
|
||
"14",
|
||
"50400"
|
||
],
|
||
[
|
||
"15",
|
||
"54000"
|
||
],
|
||
[
|
||
"16",
|
||
"57600"
|
||
],
|
||
[
|
||
"17",
|
||
"61200"
|
||
],
|
||
[
|
||
"18",
|
||
"64800"
|
||
],
|
||
[
|
||
"19",
|
||
"68400"
|
||
],
|
||
[
|
||
"20",
|
||
"72000"
|
||
],
|
||
[
|
||
"21",
|
||
"75600"
|
||
],
|
||
[
|
||
"22",
|
||
"79200"
|
||
],
|
||
[
|
||
"23",
|
||
"82800"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_hours"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > delay_minutes 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "delay_minutes",
|
||
"colour": "0",
|
||
"tooltip": "Set a delay between 1 and 59 minutes",
|
||
"output": "delay_period",
|
||
"message0": "%1 minutes %2",
|
||
"args0": [
|
||
{
|
||
"name": "SECONDS",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"60"
|
||
],
|
||
[
|
||
"2",
|
||
"120"
|
||
],
|
||
[
|
||
"3",
|
||
"180"
|
||
],
|
||
[
|
||
"4",
|
||
"240"
|
||
],
|
||
[
|
||
"5",
|
||
"300"
|
||
],
|
||
[
|
||
"6",
|
||
"360"
|
||
],
|
||
[
|
||
"7",
|
||
"420"
|
||
],
|
||
[
|
||
"8",
|
||
"480"
|
||
],
|
||
[
|
||
"9",
|
||
"540"
|
||
],
|
||
[
|
||
"10",
|
||
"600"
|
||
],
|
||
[
|
||
"11",
|
||
"660"
|
||
],
|
||
[
|
||
"12",
|
||
"720"
|
||
],
|
||
[
|
||
"13",
|
||
"780"
|
||
],
|
||
[
|
||
"14",
|
||
"840"
|
||
],
|
||
[
|
||
"15",
|
||
"900"
|
||
],
|
||
[
|
||
"16",
|
||
"960"
|
||
],
|
||
[
|
||
"17",
|
||
"1020"
|
||
],
|
||
[
|
||
"18",
|
||
"1080"
|
||
],
|
||
[
|
||
"19",
|
||
"1140"
|
||
],
|
||
[
|
||
"20",
|
||
"1200"
|
||
],
|
||
[
|
||
"21",
|
||
"1260"
|
||
],
|
||
[
|
||
"22",
|
||
"1320"
|
||
],
|
||
[
|
||
"23",
|
||
"1380"
|
||
],
|
||
[
|
||
"24",
|
||
"1440"
|
||
],
|
||
[
|
||
"25",
|
||
"1500"
|
||
],
|
||
[
|
||
"26",
|
||
"1560"
|
||
],
|
||
[
|
||
"27",
|
||
"1620"
|
||
],
|
||
[
|
||
"28",
|
||
"1680"
|
||
],
|
||
[
|
||
"29",
|
||
"1740"
|
||
],
|
||
[
|
||
"30",
|
||
"1800"
|
||
],
|
||
[
|
||
"31",
|
||
"1860"
|
||
],
|
||
[
|
||
"32",
|
||
"1920"
|
||
],
|
||
[
|
||
"33",
|
||
"1980"
|
||
],
|
||
[
|
||
"34",
|
||
"2040"
|
||
],
|
||
[
|
||
"35",
|
||
"2100"
|
||
],
|
||
[
|
||
"36",
|
||
"2160"
|
||
],
|
||
[
|
||
"37",
|
||
"2220"
|
||
],
|
||
[
|
||
"38",
|
||
"2280"
|
||
],
|
||
[
|
||
"39",
|
||
"2340"
|
||
],
|
||
[
|
||
"40",
|
||
"2400"
|
||
],
|
||
[
|
||
"41",
|
||
"2460"
|
||
],
|
||
[
|
||
"42",
|
||
"2520"
|
||
],
|
||
[
|
||
"43",
|
||
"2580"
|
||
],
|
||
[
|
||
"44",
|
||
"2640"
|
||
],
|
||
[
|
||
"45",
|
||
"2700"
|
||
],
|
||
[
|
||
"46",
|
||
"2760"
|
||
],
|
||
[
|
||
"47",
|
||
"2820"
|
||
],
|
||
[
|
||
"48",
|
||
"2880"
|
||
],
|
||
[
|
||
"49",
|
||
"2940"
|
||
],
|
||
[
|
||
"50",
|
||
"3000"
|
||
],
|
||
[
|
||
"51",
|
||
"3060"
|
||
],
|
||
[
|
||
"52",
|
||
"3120"
|
||
],
|
||
[
|
||
"53",
|
||
"3180"
|
||
],
|
||
[
|
||
"54",
|
||
"3240"
|
||
],
|
||
[
|
||
"55",
|
||
"3300"
|
||
],
|
||
[
|
||
"56",
|
||
"3360"
|
||
],
|
||
[
|
||
"57",
|
||
"3420"
|
||
],
|
||
[
|
||
"58",
|
||
"3480"
|
||
],
|
||
[
|
||
"59",
|
||
"3540"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_minutes"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > delay_none 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "delay_none",
|
||
"colour": "0",
|
||
"tooltip": "No delay: Actions run immediately when triggered.",
|
||
"output": "delay_period",
|
||
"message0": "No Delay %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_none"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > delay_seconds 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "delay_seconds",
|
||
"colour": "0",
|
||
"tooltip": "Set a delay between 1 and 59 seconds (or 0 for no delay)",
|
||
"output": "delay_period",
|
||
"message0": "%1 seconds %2",
|
||
"args0": [
|
||
{
|
||
"name": "SECONDS",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"24",
|
||
"24"
|
||
],
|
||
[
|
||
"25",
|
||
"25"
|
||
],
|
||
[
|
||
"26",
|
||
"26"
|
||
],
|
||
[
|
||
"27",
|
||
"27"
|
||
],
|
||
[
|
||
"28",
|
||
"28"
|
||
],
|
||
[
|
||
"29",
|
||
"29"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
],
|
||
[
|
||
"31",
|
||
"31"
|
||
],
|
||
[
|
||
"32",
|
||
"32"
|
||
],
|
||
[
|
||
"33",
|
||
"33"
|
||
],
|
||
[
|
||
"34",
|
||
"34"
|
||
],
|
||
[
|
||
"35",
|
||
"35"
|
||
],
|
||
[
|
||
"36",
|
||
"36"
|
||
],
|
||
[
|
||
"37",
|
||
"37"
|
||
],
|
||
[
|
||
"38",
|
||
"38"
|
||
],
|
||
[
|
||
"39",
|
||
"39"
|
||
],
|
||
[
|
||
"40",
|
||
"40"
|
||
],
|
||
[
|
||
"41",
|
||
"41"
|
||
],
|
||
[
|
||
"42",
|
||
"42"
|
||
],
|
||
[
|
||
"43",
|
||
"43"
|
||
],
|
||
[
|
||
"44",
|
||
"44"
|
||
],
|
||
[
|
||
"45",
|
||
"45"
|
||
],
|
||
[
|
||
"46",
|
||
"46"
|
||
],
|
||
[
|
||
"47",
|
||
"47"
|
||
],
|
||
[
|
||
"48",
|
||
"48"
|
||
],
|
||
[
|
||
"49",
|
||
"49"
|
||
],
|
||
[
|
||
"50",
|
||
"50"
|
||
],
|
||
[
|
||
"51",
|
||
"51"
|
||
],
|
||
[
|
||
"52",
|
||
"52"
|
||
],
|
||
[
|
||
"53",
|
||
"53"
|
||
],
|
||
[
|
||
"54",
|
||
"54"
|
||
],
|
||
[
|
||
"55",
|
||
"55"
|
||
],
|
||
[
|
||
"56",
|
||
"56"
|
||
],
|
||
[
|
||
"57",
|
||
"57"
|
||
],
|
||
[
|
||
"58",
|
||
"58"
|
||
],
|
||
[
|
||
"59",
|
||
"59"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_seconds"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > delay_settings 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "delay_settings",
|
||
"colour": "0",
|
||
"tooltip": "Causes a delay between this Action's trigger and its execution",
|
||
"message0": "Delay Settings %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message1": "Delay: %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "DELAY_PERIOD",
|
||
"check": "delay_period",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "and %1 %2",
|
||
"args2": [
|
||
{
|
||
"name": "DELAY_MODE",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"reset",
|
||
"extend"
|
||
],
|
||
[
|
||
"keep",
|
||
"static"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message3": "existing delays %1",
|
||
"args3": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_settings"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > every_days_between 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "every_days_between",
|
||
"colour": 30,
|
||
"tooltip": "Runs every X days, between days Y and Z.",
|
||
"output": "cron_day",
|
||
"message0": "Every %1 days between %2 and %3 %4",
|
||
"args0": [
|
||
{
|
||
"name": "FREQUENCY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "START",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"24",
|
||
"24"
|
||
],
|
||
[
|
||
"25",
|
||
"25"
|
||
],
|
||
[
|
||
"26",
|
||
"26"
|
||
],
|
||
[
|
||
"27",
|
||
"27"
|
||
],
|
||
[
|
||
"28",
|
||
"28"
|
||
],
|
||
[
|
||
"29",
|
||
"29"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
],
|
||
[
|
||
"31",
|
||
"31"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "END",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"31",
|
||
"31"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
],
|
||
[
|
||
"29",
|
||
"29"
|
||
],
|
||
[
|
||
"28",
|
||
"28"
|
||
],
|
||
[
|
||
"27",
|
||
"27"
|
||
],
|
||
[
|
||
"26",
|
||
"26"
|
||
],
|
||
[
|
||
"25",
|
||
"25"
|
||
],
|
||
[
|
||
"24",
|
||
"24"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "every_days_between",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/every_days_between"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > every_hours_between 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "every_hours_between",
|
||
"colour": 30,
|
||
"tooltip": "Runs every X hours, between hours Y and Z.",
|
||
"output": "cron_hour",
|
||
"message0": "Every %1 hours between %2 and %3 %4",
|
||
"args0": [
|
||
{
|
||
"name": "FREQUENCY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "START",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"0",
|
||
"0"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "END",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"0",
|
||
"0"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "every_hours_between",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/every_hours_between"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > every_minutes_between 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "every_minutes_between",
|
||
"colour": 30,
|
||
"tooltip": "Runs every X minutes, between minutes Y and Z.",
|
||
"output": "cron_minute",
|
||
"message0": "Every %1 minutes between %2 and %3 %4",
|
||
"args0": [
|
||
{
|
||
"name": "FREQUENCY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "START",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"0",
|
||
"0"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"24",
|
||
"24"
|
||
],
|
||
[
|
||
"25",
|
||
"25"
|
||
],
|
||
[
|
||
"26",
|
||
"26"
|
||
],
|
||
[
|
||
"27",
|
||
"27"
|
||
],
|
||
[
|
||
"28",
|
||
"28"
|
||
],
|
||
[
|
||
"29",
|
||
"29"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
],
|
||
[
|
||
"31",
|
||
"31"
|
||
],
|
||
[
|
||
"32",
|
||
"32"
|
||
],
|
||
[
|
||
"33",
|
||
"33"
|
||
],
|
||
[
|
||
"34",
|
||
"34"
|
||
],
|
||
[
|
||
"35",
|
||
"35"
|
||
],
|
||
[
|
||
"36",
|
||
"36"
|
||
],
|
||
[
|
||
"37",
|
||
"37"
|
||
],
|
||
[
|
||
"38",
|
||
"38"
|
||
],
|
||
[
|
||
"39",
|
||
"39"
|
||
],
|
||
[
|
||
"40",
|
||
"40"
|
||
],
|
||
[
|
||
"41",
|
||
"41"
|
||
],
|
||
[
|
||
"42",
|
||
"42"
|
||
],
|
||
[
|
||
"43",
|
||
"43"
|
||
],
|
||
[
|
||
"44",
|
||
"44"
|
||
],
|
||
[
|
||
"45",
|
||
"45"
|
||
],
|
||
[
|
||
"46",
|
||
"46"
|
||
],
|
||
[
|
||
"47",
|
||
"47"
|
||
],
|
||
[
|
||
"48",
|
||
"48"
|
||
],
|
||
[
|
||
"49",
|
||
"49"
|
||
],
|
||
[
|
||
"50",
|
||
"50"
|
||
],
|
||
[
|
||
"51",
|
||
"51"
|
||
],
|
||
[
|
||
"52",
|
||
"52"
|
||
],
|
||
[
|
||
"53",
|
||
"53"
|
||
],
|
||
[
|
||
"54",
|
||
"54"
|
||
],
|
||
[
|
||
"55",
|
||
"55"
|
||
],
|
||
[
|
||
"56",
|
||
"56"
|
||
],
|
||
[
|
||
"57",
|
||
"57"
|
||
],
|
||
[
|
||
"58",
|
||
"58"
|
||
],
|
||
[
|
||
"59",
|
||
"59"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "END",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"59",
|
||
"59"
|
||
],
|
||
[
|
||
"58",
|
||
"58"
|
||
],
|
||
[
|
||
"57",
|
||
"57"
|
||
],
|
||
[
|
||
"56",
|
||
"56"
|
||
],
|
||
[
|
||
"55",
|
||
"55"
|
||
],
|
||
[
|
||
"54",
|
||
"54"
|
||
],
|
||
[
|
||
"53",
|
||
"53"
|
||
],
|
||
[
|
||
"52",
|
||
"52"
|
||
],
|
||
[
|
||
"51",
|
||
"51"
|
||
],
|
||
[
|
||
"50",
|
||
"50"
|
||
],
|
||
[
|
||
"49",
|
||
"49"
|
||
],
|
||
[
|
||
"48",
|
||
"48"
|
||
],
|
||
[
|
||
"47",
|
||
"47"
|
||
],
|
||
[
|
||
"46",
|
||
"46"
|
||
],
|
||
[
|
||
"45",
|
||
"45"
|
||
],
|
||
[
|
||
"44",
|
||
"44"
|
||
],
|
||
[
|
||
"43",
|
||
"43"
|
||
],
|
||
[
|
||
"42",
|
||
"42"
|
||
],
|
||
[
|
||
"41",
|
||
"41"
|
||
],
|
||
[
|
||
"40",
|
||
"40"
|
||
],
|
||
[
|
||
"39",
|
||
"39"
|
||
],
|
||
[
|
||
"38",
|
||
"38"
|
||
],
|
||
[
|
||
"37",
|
||
"37"
|
||
],
|
||
[
|
||
"36",
|
||
"36"
|
||
],
|
||
[
|
||
"35",
|
||
"35"
|
||
],
|
||
[
|
||
"34",
|
||
"34"
|
||
],
|
||
[
|
||
"33",
|
||
"33"
|
||
],
|
||
[
|
||
"32",
|
||
"32"
|
||
],
|
||
[
|
||
"31",
|
||
"31"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
],
|
||
[
|
||
"29",
|
||
"29"
|
||
],
|
||
[
|
||
"28",
|
||
"28"
|
||
],
|
||
[
|
||
"27",
|
||
"27"
|
||
],
|
||
[
|
||
"26",
|
||
"26"
|
||
],
|
||
[
|
||
"25",
|
||
"25"
|
||
],
|
||
[
|
||
"24",
|
||
"24"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"0",
|
||
"0"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "every_minutes_between",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/every_minutes_between"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > every_months_between 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "every_months_between",
|
||
"colour": 30,
|
||
"tooltip": "Runs every X months, between months Y and Z.",
|
||
"output": "cron_month",
|
||
"message0": "Every %1 months between %2 and %3 %4",
|
||
"args0": [
|
||
{
|
||
"name": "FREQUENCY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "START",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "END",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "every_months_between",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/every_months_between"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > feed_get_value 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "feed_get_value",
|
||
"colour": 300,
|
||
"tooltip": "Resolves to the last value of this feed or component, always a String",
|
||
"output": "expression",
|
||
"message0": "Get %1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "FEED_KEY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Loading Feeds...",
|
||
""
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"extensions": [
|
||
"replaceDropdownOptions",
|
||
"populateFeedDropdown"
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/feeds/get_value"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > feed_set_value 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "feed_set_value",
|
||
"colour": 300,
|
||
"tooltip": "Publish the specified data point to the specified Feed.",
|
||
"nextStatement": "expression",
|
||
"previousStatement": "expression",
|
||
"message0": "Set %1 to: %2",
|
||
"args0": [
|
||
{
|
||
"name": "FEED_KEY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Loading Feeds...",
|
||
""
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "VALUE",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"extensions": [
|
||
"replaceDropdownOptions",
|
||
"populateFeedDropdown"
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/feeds/set_value"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > hour_settings 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "hour_settings",
|
||
"colour": 30,
|
||
"tooltip": "How would you like to specify hours of the day for your schedule?",
|
||
"message0": "Hour: %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "HOUR_BLOCK",
|
||
"check": "cron_hour",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/hour_settings"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_controls_if 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_controls_if",
|
||
"colour": 60,
|
||
"tooltip": "Execute different block diagrams based on the outcome of conditional checks.",
|
||
"nextStatement": "expression",
|
||
"previousStatement": "expression",
|
||
"message0": "if %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "IF0",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": "do %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_statement",
|
||
"name": "THEN0",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "else if %1",
|
||
"args2": [
|
||
{
|
||
"type": "input_dummy",
|
||
"name": "ELSE_IF_LABEL",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message3": "else %1",
|
||
"args3": [
|
||
{
|
||
"type": "input_dummy",
|
||
"name": "ELSE_LABEL",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "io_controls_if",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/logic/if"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_logic_boolean 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_logic_boolean",
|
||
"colour": 60,
|
||
"tooltip": "A true or false value.",
|
||
"output": [
|
||
"expression",
|
||
"boolean"
|
||
],
|
||
"message0": "%1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "BOOL",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"true",
|
||
"TRUE"
|
||
],
|
||
[
|
||
"false",
|
||
"FALSE"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/logic/boolean"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_logic_compare 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "io_logic_compare",
|
||
"colour": 120,
|
||
"tooltip": "Build mathematical conditions by comparing any two numerical values in your Action logic. Perfect for creating if/then statements like 'if temperature is greater than target temp', 'if battery level equals low threshold', or 'if sensor reading is between two values'. Works with feed data, variables, calculations, or any numerical inputs.",
|
||
"output": "expression",
|
||
"message0": "%1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "A",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": " %1 %2",
|
||
"args1": [
|
||
{
|
||
"name": "OP",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"=",
|
||
"EQ"
|
||
],
|
||
[
|
||
"≠",
|
||
"NEQ"
|
||
],
|
||
[
|
||
"<",
|
||
"LT"
|
||
],
|
||
[
|
||
"≤",
|
||
"LTE"
|
||
],
|
||
[
|
||
">",
|
||
"GT"
|
||
],
|
||
[
|
||
"≥",
|
||
"GTE"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "B",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/math/compare"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_logic_negate 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_logic_negate",
|
||
"colour": 60,
|
||
"tooltip": "Flip any condition to its opposite - turns true into false and false into true. Essential for creating inverse logic like 'if NOT raining', 'if door is NOT open', or 'if temperature is NOT above 75°F'. Perfect for building exception handling, safety conditions, and reverse automation logic in your IoT Actions.",
|
||
"output": "expression",
|
||
"message0": "not %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "EXPRESSION",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/logic/negate"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_logic_operation 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "io_logic_operation",
|
||
"colour": 60,
|
||
"tooltip": "Combine multiple conditions to create sophisticated decision logic in your Actions. Perfect for complex automation like 'if temperature is high AND humidity is low', 'if motion detected OR door opened', or any scenario where you need multiple criteria to work together. Essential for building smart, multi-factor IoT control systems.",
|
||
"output": "expression",
|
||
"message0": "%1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "A",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": " %1 %2",
|
||
"args1": [
|
||
{
|
||
"name": "OP",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"and",
|
||
"AND"
|
||
],
|
||
[
|
||
"or",
|
||
"OR"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "B",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/logic/operation"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_math_arithmetic 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "io_math_arithmetic",
|
||
"colour": 120,
|
||
"tooltip": "Perform the specified arithmetic operation on two specified operands.",
|
||
"output": "expression",
|
||
"message0": "%1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "A",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": " %1 %2",
|
||
"args1": [
|
||
{
|
||
"name": "OP",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"+",
|
||
"ADD"
|
||
],
|
||
[
|
||
"-",
|
||
"MINUS"
|
||
],
|
||
[
|
||
"x",
|
||
"MULTIPLY"
|
||
],
|
||
[
|
||
"/",
|
||
"DIVIDE"
|
||
],
|
||
[
|
||
"^",
|
||
"POWER"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "B",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/math/arithmetic"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_math_constrain 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_math_constrain",
|
||
"colour": 120,
|
||
"tooltip": "Constrain a given number to fall within a given range.",
|
||
"output": "number",
|
||
"message0": "Constrain %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "VALUE",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": "to %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "RANGE",
|
||
"check": "range",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/math/constrain"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_math_number 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_math_number",
|
||
"colour": 120,
|
||
"tooltip": "A numeric value, whole or decimal.",
|
||
"output": [
|
||
"expression",
|
||
"number"
|
||
],
|
||
"message0": " %1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "NUM",
|
||
"type": "field_input",
|
||
"text": "0"
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"extensions": [
|
||
"validateNumbers"
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/math/number"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_math_round 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_math_round",
|
||
"colour": 120,
|
||
"tooltip": "Round a value to the nearest whole number via round, floor, or ceiling functions",
|
||
"output": "expression",
|
||
"message0": "%1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "OPERATION",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Round",
|
||
"round"
|
||
],
|
||
[
|
||
"Floor",
|
||
"floor"
|
||
],
|
||
[
|
||
"Ceiling",
|
||
"ceiling"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "VALUE",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/math/round"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_text 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_text",
|
||
"colour": 180,
|
||
"tooltip": "A String of text",
|
||
"output": [
|
||
"expression",
|
||
"string"
|
||
],
|
||
"message0": "\\"%1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "TEXT",
|
||
"type": "field_input",
|
||
"text": ""
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/text/text"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_text_join 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "io_text_join",
|
||
"colour": 180,
|
||
"tooltip": "Join two pieces of text into one.",
|
||
"output": "expression",
|
||
"message0": "%1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "A",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": " + %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "B",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/text/join"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_text_multiline 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_text_multiline",
|
||
"colour": 180,
|
||
"tooltip": "A String of longer-form text with newlines.",
|
||
"output": [
|
||
"expression",
|
||
"string"
|
||
],
|
||
"message0": "¶ %1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "TEXT",
|
||
"type": "field_multilinetext",
|
||
"text": ""
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/text/text_multiline"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_variables_get 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "io_variables_get",
|
||
"colour": 240,
|
||
"tooltip": "Retrieve the value stored in a variable that was previously set using a Set Variable block. Use this to access stored feed values, calculation results, or any data saved earlier in your Action.",
|
||
"output": "expression",
|
||
"message0": "Get variable %1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "VAR",
|
||
"type": "field_variable"
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/variables/get"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > io_variables_set 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "io_variables_set",
|
||
"colour": 240,
|
||
"tooltip": "Store a value in a named variable for later use in your Action. Variables let you remember feed values, calculation results, or any data to use in subsequent action blocks.",
|
||
"nextStatement": "expression",
|
||
"previousStatement": "expression",
|
||
"message0": "Set variable %1 = %2",
|
||
"args0": [
|
||
{
|
||
"name": "VAR",
|
||
"type": "field_variable"
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "VALUE",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/variables/set"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > matcher_compare 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "matcher_compare",
|
||
"colour": 224,
|
||
"tooltip": "Create smart triggers based on numerical sensor data and thresholds. Perfect for temperature alerts ('notify when above 80°F'), battery monitoring ('warn when below 20%'), humidity control ('turn on fan when over 60%'), or any sensor-based automation that depends on numerical comparisons.",
|
||
"output": "matcher",
|
||
"message0": "%1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "OP",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"=",
|
||
"EQ"
|
||
],
|
||
[
|
||
"≠",
|
||
"NEQ"
|
||
],
|
||
[
|
||
"<",
|
||
"LT"
|
||
],
|
||
[
|
||
"≤",
|
||
"LTE"
|
||
],
|
||
[
|
||
">",
|
||
"GT"
|
||
],
|
||
[
|
||
"≥",
|
||
"GTE"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "B",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/triggers/matcher_compare"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > matcher_text_compare 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "matcher_text_compare",
|
||
"colour": 180,
|
||
"tooltip": "Compare text-based feed data using smart text matching. Perfect for triggers based on status messages ('door opened', 'motion detected'), device states ('online', 'offline'), or any text-based sensor data. Works with exact matches, exclusions, or partial text detection within longer messages.",
|
||
"output": "matcher",
|
||
"message0": "%1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "OP",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"=",
|
||
"EQ"
|
||
],
|
||
[
|
||
"≠",
|
||
"NEQ"
|
||
],
|
||
[
|
||
"includes",
|
||
"INC"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "B",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/triggers/matcher_text_compare"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > math_map 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "math_map",
|
||
"colour": 120,
|
||
"tooltip": "Scale a value from one range of numbers to another",
|
||
"output": "number",
|
||
"message0": "Map %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": "Value: %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "VALUE",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "From: %1",
|
||
"args2": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "FROM_RANGE",
|
||
"check": "range",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message3": "To: %1",
|
||
"args3": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "TO_RANGE",
|
||
"check": "range",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/math/map"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > math_range 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "math_range",
|
||
"colour": 120,
|
||
"tooltip": "A range of numbers specified by a lower and upper bound.",
|
||
"output": "range",
|
||
"message0": "(%1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "FROM",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": ",%1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "TO",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": ") %1",
|
||
"args2": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/range"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > minute_settings 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "minute_settings",
|
||
"colour": 30,
|
||
"tooltip": "How would you like to specify minutes of the hour for your schedule?",
|
||
"message0": "Minute: %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "MINUTE_BLOCK",
|
||
"check": "cron_minute",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/minute_settings"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > month_settings 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "month_settings",
|
||
"colour": 30,
|
||
"tooltip": "How would you like to specify the months portion of your schedule?",
|
||
"message0": "Month: %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "MONTH_BLOCK",
|
||
"check": "cron_month",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/month_settings"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > on_schedule 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "on_schedule",
|
||
"colour": 30,
|
||
"tooltip": "Create powerful time-based automation that runs your Actions on a schedule - from simple daily reminders to complex patterns like 'every 15 minutes during weekdays' or 'first Monday of each quarter'. Works like a smart alarm clock for your IoT devices, automatically triggering actions without any manual intervention. Perfect for turning lights on/off, sending regular reports, or controlling devices based on time patterns.",
|
||
"nextStatement": "trigger",
|
||
"previousStatement": "trigger",
|
||
"message0": "Schedule %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message1": "Months: %1",
|
||
"args1": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "MONTH",
|
||
"check": "cron_month",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "Days: %1",
|
||
"args2": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "DAY",
|
||
"check": "cron_day",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message3": "Hours: %1",
|
||
"args3": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "HOUR",
|
||
"check": "cron_hour",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message4": "Minutes: %1",
|
||
"args4": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "MINUTE",
|
||
"check": "cron_minute",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/triggers/on_schedule"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > one_day 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "one_day",
|
||
"colour": 30,
|
||
"tooltip": "Runs during a particular day of the month.",
|
||
"output": "cron_day",
|
||
"message0": "On date: %1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "DAY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"24",
|
||
"24"
|
||
],
|
||
[
|
||
"25",
|
||
"25"
|
||
],
|
||
[
|
||
"26",
|
||
"26"
|
||
],
|
||
[
|
||
"27",
|
||
"27"
|
||
],
|
||
[
|
||
"28",
|
||
"28"
|
||
],
|
||
[
|
||
"29",
|
||
"29"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
],
|
||
[
|
||
"31",
|
||
"31"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "one_day",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/one_day"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > one_hour 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "one_hour",
|
||
"colour": 30,
|
||
"tooltip": "Runs during a particular hour of the day.",
|
||
"output": "cron_hour",
|
||
"message0": "During hour: %1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "HOUR",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"0",
|
||
"0"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "one_hour",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/one_hour"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > one_minute 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "one_minute",
|
||
"colour": 30,
|
||
"tooltip": "Runs at a particular minute of the hour.",
|
||
"output": "cron_minute",
|
||
"message0": "At minute: %1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "MINUTE",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"0",
|
||
"0"
|
||
],
|
||
[
|
||
"1",
|
||
"1"
|
||
],
|
||
[
|
||
"2",
|
||
"2"
|
||
],
|
||
[
|
||
"3",
|
||
"3"
|
||
],
|
||
[
|
||
"4",
|
||
"4"
|
||
],
|
||
[
|
||
"5",
|
||
"5"
|
||
],
|
||
[
|
||
"6",
|
||
"6"
|
||
],
|
||
[
|
||
"7",
|
||
"7"
|
||
],
|
||
[
|
||
"8",
|
||
"8"
|
||
],
|
||
[
|
||
"9",
|
||
"9"
|
||
],
|
||
[
|
||
"10",
|
||
"10"
|
||
],
|
||
[
|
||
"11",
|
||
"11"
|
||
],
|
||
[
|
||
"12",
|
||
"12"
|
||
],
|
||
[
|
||
"13",
|
||
"13"
|
||
],
|
||
[
|
||
"14",
|
||
"14"
|
||
],
|
||
[
|
||
"15",
|
||
"15"
|
||
],
|
||
[
|
||
"16",
|
||
"16"
|
||
],
|
||
[
|
||
"17",
|
||
"17"
|
||
],
|
||
[
|
||
"18",
|
||
"18"
|
||
],
|
||
[
|
||
"19",
|
||
"19"
|
||
],
|
||
[
|
||
"20",
|
||
"20"
|
||
],
|
||
[
|
||
"21",
|
||
"21"
|
||
],
|
||
[
|
||
"22",
|
||
"22"
|
||
],
|
||
[
|
||
"23",
|
||
"23"
|
||
],
|
||
[
|
||
"24",
|
||
"24"
|
||
],
|
||
[
|
||
"25",
|
||
"25"
|
||
],
|
||
[
|
||
"26",
|
||
"26"
|
||
],
|
||
[
|
||
"27",
|
||
"27"
|
||
],
|
||
[
|
||
"28",
|
||
"28"
|
||
],
|
||
[
|
||
"29",
|
||
"29"
|
||
],
|
||
[
|
||
"30",
|
||
"30"
|
||
],
|
||
[
|
||
"31",
|
||
"31"
|
||
],
|
||
[
|
||
"32",
|
||
"32"
|
||
],
|
||
[
|
||
"33",
|
||
"33"
|
||
],
|
||
[
|
||
"34",
|
||
"34"
|
||
],
|
||
[
|
||
"35",
|
||
"35"
|
||
],
|
||
[
|
||
"36",
|
||
"36"
|
||
],
|
||
[
|
||
"37",
|
||
"37"
|
||
],
|
||
[
|
||
"38",
|
||
"38"
|
||
],
|
||
[
|
||
"39",
|
||
"39"
|
||
],
|
||
[
|
||
"40",
|
||
"40"
|
||
],
|
||
[
|
||
"41",
|
||
"41"
|
||
],
|
||
[
|
||
"42",
|
||
"42"
|
||
],
|
||
[
|
||
"43",
|
||
"43"
|
||
],
|
||
[
|
||
"44",
|
||
"44"
|
||
],
|
||
[
|
||
"45",
|
||
"45"
|
||
],
|
||
[
|
||
"46",
|
||
"46"
|
||
],
|
||
[
|
||
"47",
|
||
"47"
|
||
],
|
||
[
|
||
"48",
|
||
"48"
|
||
],
|
||
[
|
||
"49",
|
||
"49"
|
||
],
|
||
[
|
||
"50",
|
||
"50"
|
||
],
|
||
[
|
||
"51",
|
||
"51"
|
||
],
|
||
[
|
||
"52",
|
||
"52"
|
||
],
|
||
[
|
||
"53",
|
||
"53"
|
||
],
|
||
[
|
||
"54",
|
||
"54"
|
||
],
|
||
[
|
||
"55",
|
||
"55"
|
||
],
|
||
[
|
||
"56",
|
||
"56"
|
||
],
|
||
[
|
||
"57",
|
||
"57"
|
||
],
|
||
[
|
||
"58",
|
||
"58"
|
||
],
|
||
[
|
||
"59",
|
||
"59"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "one_minute",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/one_minute"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > one_month 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "one_month",
|
||
"colour": 30,
|
||
"tooltip": "Runs during a particular month.",
|
||
"output": "cron_month",
|
||
"message0": "%1 %2",
|
||
"args0": [
|
||
{
|
||
"name": "MONTH",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"January",
|
||
"1"
|
||
],
|
||
[
|
||
"February",
|
||
"2"
|
||
],
|
||
[
|
||
"March",
|
||
"3"
|
||
],
|
||
[
|
||
"April",
|
||
"4"
|
||
],
|
||
[
|
||
"May",
|
||
"5"
|
||
],
|
||
[
|
||
"June",
|
||
"6"
|
||
],
|
||
[
|
||
"July",
|
||
"7"
|
||
],
|
||
[
|
||
"August",
|
||
"8"
|
||
],
|
||
[
|
||
"September",
|
||
"9"
|
||
],
|
||
[
|
||
"October",
|
||
"10"
|
||
],
|
||
[
|
||
"November",
|
||
"11"
|
||
],
|
||
[
|
||
"December",
|
||
"12"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"mutator": "one_month",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/one_month"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > some_months 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "some_months",
|
||
"colour": 30,
|
||
"tooltip": "Run during particular months.",
|
||
"output": "cron_month",
|
||
"message0": "Jan: %1 Feb: %2 Mar: %3 Apr: %4 %5",
|
||
"args0": [
|
||
{
|
||
"name": "JAN",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "FEB",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "MAR",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "APR",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message1": "May: %1 Jun: %2 Jul: %3 Aug: %4 %5",
|
||
"args1": [
|
||
{
|
||
"name": "MAY",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "JUN",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "JUL",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "AUG",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message2": "Sep: %1 Oct: %2 Nov: %3 Dec: %4 %5",
|
||
"args2": [
|
||
{
|
||
"name": "SEP",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "OCT",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "NOV",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"name": "DEC",
|
||
"type": "field_checkbox",
|
||
"checked": false
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"mutator": "some_months",
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/uncategorized/some_months"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > text_compare 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "text_compare",
|
||
"colour": 180,
|
||
"tooltip": "Compare any two pieces of text or data to build conditional logic in your Actions. Perfect for creating if/then statements like 'if device status equals online', 'if user name is not guest', or 'if error message contains timeout'. Works with feed values, variables, user input, or any text-based data.",
|
||
"output": "expression",
|
||
"message0": "%1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "A",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message1": " %1 %2",
|
||
"args1": [
|
||
{
|
||
"name": "OP",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"=",
|
||
"EQ"
|
||
],
|
||
[
|
||
"≠",
|
||
"NEQ"
|
||
],
|
||
[
|
||
"includes",
|
||
"INC"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "B",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/logic/compare"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > text_template 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "text_template",
|
||
"colour": 180,
|
||
"tooltip": "Render a text template.",
|
||
"output": [
|
||
"expression",
|
||
"string"
|
||
],
|
||
"message0": "{{ %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_value",
|
||
"name": "TEMPLATE",
|
||
"check": "expression",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/text/template"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > weather 1`] = `
|
||
{
|
||
"inputsInline": false,
|
||
"type": "weather",
|
||
"colour": 360,
|
||
"tooltip": "Fetch the current or forecast weather conditions at the specified location.",
|
||
"output": "expression",
|
||
"message0": "Weather %1",
|
||
"args0": [
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "CENTRE"
|
||
}
|
||
],
|
||
"message1": "At: %1 %2",
|
||
"args1": [
|
||
{
|
||
"name": "POWER_UP_ID",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Loading locations...",
|
||
""
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message2": "When: %1 %2",
|
||
"args2": [
|
||
{
|
||
"name": "WEATHER_TIME",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Now",
|
||
"current"
|
||
],
|
||
[
|
||
"In 5 minutes",
|
||
"forecast_minutes_5"
|
||
],
|
||
[
|
||
"In 30 minutes",
|
||
"forecast_minutes_30"
|
||
],
|
||
[
|
||
"This hour",
|
||
"forecast_hours_0"
|
||
],
|
||
[
|
||
"In 1 hour",
|
||
"forecast_hours_1"
|
||
],
|
||
[
|
||
"In 2 hours",
|
||
"forecast_hours_2"
|
||
],
|
||
[
|
||
"In 6 hours",
|
||
"forecast_hours_6"
|
||
],
|
||
[
|
||
"In 12 hours",
|
||
"forecast_hours_12"
|
||
],
|
||
[
|
||
"In 24 hours",
|
||
"forecast_hours_24"
|
||
],
|
||
[
|
||
"Today",
|
||
"forecast_days_0"
|
||
],
|
||
[
|
||
"Tomorrow",
|
||
"forecast_days_1"
|
||
],
|
||
[
|
||
"In 2 days",
|
||
"forecast_days_2"
|
||
],
|
||
[
|
||
"In 3 days",
|
||
"forecast_days_3"
|
||
],
|
||
[
|
||
"In 4 days",
|
||
"forecast_days_4"
|
||
],
|
||
[
|
||
"In 5 days",
|
||
"forecast_days_5"
|
||
],
|
||
[
|
||
"In 6 days",
|
||
"forecast_days_6"
|
||
],
|
||
[
|
||
"In 7 days",
|
||
"forecast_days_7"
|
||
],
|
||
[
|
||
"In 8 days",
|
||
"forecast_days_8"
|
||
],
|
||
[
|
||
"In 9 days",
|
||
"forecast_days_9"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message3": "Metric: %1 %2",
|
||
"args3": [
|
||
{
|
||
"name": "WEATHER_PROPERTY",
|
||
"type": "field_label",
|
||
"text": ""
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"message4": "%1 %2",
|
||
"args4": [
|
||
{
|
||
"name": "WEATHER_PROPERTY_HELP",
|
||
"type": "field_label",
|
||
"text": ""
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"extensions": [
|
||
"replaceDropdownOptions",
|
||
"weatherMixin",
|
||
"prepareWeather"
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/weather/weather"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > when_data 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "when_data",
|
||
"colour": 30,
|
||
"tooltip": "The simplest trigger - runs your Action every single time ANY new data arrives at a feed, regardless of what the value is. Perfect for logging all activity ('record every sensor reading'), acknowledging data receipt ('send confirmation for every message'), or triggering workflows that need to process all incoming data. No conditions, no filtering - just pure data arrival detection.",
|
||
"nextStatement": "trigger",
|
||
"previousStatement": "trigger",
|
||
"message0": "When %1 gets any data %2",
|
||
"args0": [
|
||
{
|
||
"name": "FEED_KEY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Loading Feeds...",
|
||
""
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_dummy",
|
||
"align": "LEFT"
|
||
}
|
||
],
|
||
"extensions": [
|
||
"replaceDropdownOptions",
|
||
"populateFeedDropdown"
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/triggers/when_data"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > when_data_matching 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "when_data_matching",
|
||
"colour": 30,
|
||
"tooltip": "The most common trigger type - runs your Action immediately whenever new data arrives at a feed that meets your specified condition. Perfect for real-time responses like 'send alert when temperature exceeds 85°F', 'turn on lights when motion detected', or 'notify me when battery drops below 20%'. This trigger fires every single time the condition is met.",
|
||
"nextStatement": "trigger",
|
||
"previousStatement": "trigger",
|
||
"message0": "When %1 gets data matching: %2",
|
||
"args0": [
|
||
{
|
||
"name": "FEED_KEY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Loading Feeds...",
|
||
""
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "MATCHER",
|
||
"check": "matcher",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"extensions": [
|
||
"replaceDropdownOptions",
|
||
"populateFeedDropdown"
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/triggers/when_data_matching"
|
||
}
|
||
`;
|
||
|
||
exports[`Block Snapshots > Blockly JSON > when_data_matching_state 1`] = `
|
||
{
|
||
"inputsInline": true,
|
||
"type": "when_data_matching_state",
|
||
"colour": 30,
|
||
"tooltip": "Advanced trigger that watches for changes in how your feed data matches a condition over time. Unlike basic triggers that just check if data equals a value, this compares the current data point with the previous one to detect when conditions START being true, STOP being true, or CONTINUE being true. Perfect for detecting state changes like 'temperature just went above 80°' or 'door just closed after being open'.",
|
||
"nextStatement": "trigger",
|
||
"previousStatement": "trigger",
|
||
"message0": "When %1 gets data that %2 matching %3",
|
||
"args0": [
|
||
{
|
||
"name": "FEED_KEY",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"Loading Feeds...",
|
||
""
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"name": "MATCH_STATE",
|
||
"type": "field_dropdown",
|
||
"options": [
|
||
[
|
||
"starts",
|
||
"starts"
|
||
],
|
||
[
|
||
"stops",
|
||
"stops"
|
||
],
|
||
[
|
||
"keeps",
|
||
"keeps"
|
||
],
|
||
[
|
||
"keeps not",
|
||
"avoids"
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"type": "input_value",
|
||
"name": "MATCHER",
|
||
"check": "matcher",
|
||
"align": "RIGHT"
|
||
}
|
||
],
|
||
"extensions": [
|
||
"replaceDropdownOptions",
|
||
"populateFeedDropdown"
|
||
],
|
||
"helpUrl": "https://io.adafruit.com/actions-docs/blocks/triggers/when_data_matching_state"
|
||
}
|
||
`;
|