404
+ +Page not found
+ + +diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..2989048 --- /dev/null +++ b/404.html @@ -0,0 +1,122 @@ + + +
+ + + + +Page not found
+ + +This file was automatically generated via lazydocs.
+ +' + escapeHtml(summary) +'
' + noResultsText + '
'); + } +} + +function doSearch () { + var query = document.getElementById('mkdocs-search-query').value; + if (query.length > min_search_length) { + if (!window.Worker) { + displayResults(search(query)); + } else { + searchWorker.postMessage({query: query}); + } + } else { + // Clear results for short queries + displayResults([]); + } +} + +function initSearch () { + var search_input = document.getElementById('mkdocs-search-query'); + if (search_input) { + search_input.addEventListener("keyup", doSearch); + } + var term = getSearchTermFromLocation(); + if (term) { + search_input.value = term; + doSearch(); + } +} + +function onWorkerMessage (e) { + if (e.data.allowSearch) { + initSearch(); + } else if (e.data.results) { + var results = e.data.results; + displayResults(results); + } else if (e.data.config) { + min_search_length = e.data.config.min_search_length-1; + } +} + +if (!window.Worker) { + console.log('Web Worker API not supported'); + // load index in main thread + $.getScript(joinUrl(base_url, "search/worker.js")).done(function () { + console.log('Loaded worker'); + init(); + window.postMessage = function (msg) { + onWorkerMessage({data: msg}); + }; + }).fail(function (jqxhr, settings, exception) { + console.error('Could not load worker.js'); + }); +} else { + // Wrap search in a web worker + var searchWorker = new Worker(joinUrl(base_url, "search/worker.js")); + searchWorker.postMessage({init: true}); + searchWorker.onmessage = onWorkerMessage; +} diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 0000000..5229ae3 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"About Blog post Configyration settings","title":"Home"},{"location":"#about","text":"Blog post","title":"About"},{"location":"#configyration","text":"settings","title":"Configyration"},{"location":"settings/","text":"Settings for the Amazon Dash button settings.json Root Keys latitude and longitude Type : String (decimal representation) Description : Specifies the geographical coordinates for the location of use. Essential for functionalities dependent on location-based triggers or conditions. Example : \"latitude\": \"60.002228\", \"longitude\": \"30.296947\" credentials_file_name Type : String (path) Description : The path to the credentials file that is necessary for accessing certain functionalities or APIs. Example : \"credentials_file_name\": \"../amazon-dash-private/amazon-dash-hack.json\" ifttt_key_file_name Type : String (path) Description : The path to the IFTTT (If This Then That) service key file, which enables the integration with IFTTT services. Example : \"ifttt_key_file_name\": \"../amazon-dash-private/ifttt-key.json\" openweathermap_key_file_name Type : String (path) Description : The path to the OpenWeatherMap API key file. This is essential if any functionality uses weather-related triggers or conditions. Example : \"openweathermap_key_file_name\": \"../amazon-dash-private/openweathermap-key.json\" images_folder Type : String (path) Description : Path to the directory where the relevant images (icons, graphics) are stored. Example : \"images_folder\": \"../amazon-dash-private/images/\" bounce_delay Type : Integer Description : The delay (in seconds) before the system will respond or react to a subsequent trigger. This can prevent from unintendent multiple presses. Example : \"bounce_delay\": 5 dashboards Dasboards settings events Events settings","title":"Settings for the Amazon Dash button"},{"location":"settings/#settings-for-the-amazon-dash-button","text":"settings.json","title":"Settings for the Amazon Dash button"},{"location":"settings/#root-keys","text":"","title":"Root Keys"},{"location":"settings/#latitude-and-longitude","text":"Type : String (decimal representation) Description : Specifies the geographical coordinates for the location of use. Essential for functionalities dependent on location-based triggers or conditions. Example : \"latitude\": \"60.002228\", \"longitude\": \"30.296947\"","title":"latitude and longitude"},{"location":"settings/#credentials_file_name","text":"Type : String (path) Description : The path to the credentials file that is necessary for accessing certain functionalities or APIs. Example : \"credentials_file_name\": \"../amazon-dash-private/amazon-dash-hack.json\"","title":"credentials_file_name"},{"location":"settings/#ifttt_key_file_name","text":"Type : String (path) Description : The path to the IFTTT (If This Then That) service key file, which enables the integration with IFTTT services. Example : \"ifttt_key_file_name\": \"../amazon-dash-private/ifttt-key.json\"","title":"ifttt_key_file_name"},{"location":"settings/#openweathermap_key_file_name","text":"Type : String (path) Description : The path to the OpenWeatherMap API key file. This is essential if any functionality uses weather-related triggers or conditions. Example : \"openweathermap_key_file_name\": \"../amazon-dash-private/openweathermap-key.json\"","title":"openweathermap_key_file_name"},{"location":"settings/#images_folder","text":"Type : String (path) Description : Path to the directory where the relevant images (icons, graphics) are stored. Example : \"images_folder\": \"../amazon-dash-private/images/\"","title":"images_folder"},{"location":"settings/#bounce_delay","text":"Type : Integer Description : The delay (in seconds) before the system will respond or react to a subsequent trigger. This can prevent from unintendent multiple presses. Example : \"bounce_delay\": 5","title":"bounce_delay"},{"location":"settings/#dashboards","text":"Dasboards settings","title":"dashboards"},{"location":"settings/#events","text":"Events settings","title":"events"},{"location":"settings_dashboards/","text":"Amazon Dash Dashboard Configuration Structure \"dashboards\": [ \"dashboard1\" \" { \"summary\": [...], \"actions\": [...] }, ... ] Type : Object Description : Contains configurations for different dashboards. Each dashboard has its own properties, such as summary , empty_image , and absent . summary : A textual description or title for the dashboard. empty_image : The image displayed when no specific condition is met or data is empty. absent : An array of objects specifying different reasons for being absent, and their associated images for grid and plot views. Example : \"dashboards\": { \"anna_work_out\": { \"summary\": \"Anna work-out\", \"empty_image\": \"old-woman.png\", \"absent\": [ { \"summary\": \"Sick\", \"image_grid\": \"absent_ill_grid.png\", \"image_plot\": \"absent_ill_plot.png\" } ] } }","title":"Amazon Dash Dashboard Configuration"},{"location":"settings_dashboards/#amazon-dash-dashboard-configuration","text":"","title":"Amazon Dash Dashboard Configuration"},{"location":"settings_dashboards/#structure","text":"\"dashboards\": [ \"dashboard1\" \" { \"summary\": [...], \"actions\": [...] }, ... ] Type : Object Description : Contains configurations for different dashboards. Each dashboard has its own properties, such as summary , empty_image , and absent . summary : A textual description or title for the dashboard. empty_image : The image displayed when no specific condition is met or data is empty. absent : An array of objects specifying different reasons for being absent, and their associated images for grid and plot views. Example : \"dashboards\": { \"anna_work_out\": { \"summary\": \"Anna work-out\", \"empty_image\": \"old-woman.png\", \"absent\": [ { \"summary\": \"Sick\", \"image_grid\": \"absent_ill_grid.png\", \"image_plot\": \"absent_ill_plot.png\" } ] } }","title":"Structure"},{"location":"settings_events/","text":"Amazon Dash Actions Configuration In the configuration file, events are defined that dictate the response to different Amazon Dash button presses. Each button links to a set of specified actions and, optionally, a summarized purpose. Structure \"events\": [ \"button1\" \" { \"summary\": [...], \"actions\": [...] }, \"button2\" \" { \"summary\": [...], \"actions\": [...] }, ... ] Each button corresponds to a key within the events dictionary. This key holds actions executed upon the button's press and can be detailed as follows: Summary (Optional): Describes the button's purpose. Useful for user feedback or logging. Can vary depending on time (e.g., actions before 12:00:00). Actions : A list of actions to perform. Actions have a specific type which determines their behavior. Each action type might require different parameters. Action Types and Their Parameters: sheet - Logs button presses in a Google Sheet. { \"type\": \"sheet\", \"name\": \"amazon_dash\", \"press_sheet\": \"press\", \"event_sheet\": \"event\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 } calendar - Creates an event in a Google Calendar. { \"type\": \"calendar\", \"calendar_id\": \"eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com\", \"dashboard\": \"anna_work_out\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 } ifttt - Initiates an IFTTT applet. { \"type\": \"ifttt\", \"summary\": \"{button}_amazon_dash\", \"value1\": \"\", \"value2\": \"\", \"value3\": \"\" } openhab - Sends commands to an openHAB item. { \"type\": \"openhab\", \"path\": \"http://localhost:8080\", \"item\": \"{button}_amazon_dash\", \"command\": \"ON;OFF\" } Example { \"events\": { \"white\": { \"summary\": [ { \"summary\": \"Morning work-out\", \"before\": \"12:00:00\", \"image\": \"morning.png\" }, { \"summary\": \"Physiotherapy\", \"image\": \"evening2.png\" } ], \"actions\": [ { \"type\": \"sheet\", \"name\": \"amazon_dash\", \"press_sheet\": \"press\", \"event_sheet\": \"event\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"calendar\", \"calendar_id\": \"eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com\", \"dashboard\": \"anna_work_out\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"ifttt\", \"summary\": \"white_amazon_dash\", \"value1\": \"\", \"value2\": \"\", \"value3\": \"\" } ] } } } \"white\" button: Upon pressing: Before 12:00:00 : Recognized as Morning work-out . Image used: morning.png . After 12:00:00 : Labeled as Physiotherapy . Image used: evening2.png . The actions executed: Logging in the \"amazon_dash\" Google Sheet. Registering an event in a specific Google Calendar. Triggering an IFTTT applet. Default Configuration If a button isn't uniquely configured, the \" DEFAULT \" configuration activates. This offers a standard set of actions for any non-specific button. { \"events\": { ... \"__DEFAULT__\": { \"summary\": \"{button}\", \"actions\": [ { \"type\": \"sheet\", \"name\": \"amazon_dash\", \"press_sheet\": \"press\", \"event_sheet\": \"event\", \"restart\": 60, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"calendar\", \"calendar_id\": \"eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"ifttt\", \"summary\": \"{button}_amazon_dash\", \"value1\": \"\", \"value2\": \"\", \"value3\": \"\" }, { \"type\": \"openhab\", \"path\": \"http://localhost:8080\", \"item\": \"{button}_amazon_dash\", \"command\": \"ON;OFF\" } ] } } }","title":"Amazon Dash Actions Configuration"},{"location":"settings_events/#amazon-dash-actions-configuration","text":"In the configuration file, events are defined that dictate the response to different Amazon Dash button presses. Each button links to a set of specified actions and, optionally, a summarized purpose.","title":"Amazon Dash Actions Configuration"},{"location":"settings_events/#structure","text":"\"events\": [ \"button1\" \" { \"summary\": [...], \"actions\": [...] }, \"button2\" \" { \"summary\": [...], \"actions\": [...] }, ... ] Each button corresponds to a key within the events dictionary. This key holds actions executed upon the button's press and can be detailed as follows: Summary (Optional): Describes the button's purpose. Useful for user feedback or logging. Can vary depending on time (e.g., actions before 12:00:00). Actions : A list of actions to perform. Actions have a specific type which determines their behavior. Each action type might require different parameters.","title":"Structure"},{"location":"settings_events/#action-types-and-their-parameters","text":"sheet - Logs button presses in a Google Sheet. { \"type\": \"sheet\", \"name\": \"amazon_dash\", \"press_sheet\": \"press\", \"event_sheet\": \"event\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 } calendar - Creates an event in a Google Calendar. { \"type\": \"calendar\", \"calendar_id\": \"eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com\", \"dashboard\": \"anna_work_out\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 } ifttt - Initiates an IFTTT applet. { \"type\": \"ifttt\", \"summary\": \"{button}_amazon_dash\", \"value1\": \"\", \"value2\": \"\", \"value3\": \"\" } openhab - Sends commands to an openHAB item. { \"type\": \"openhab\", \"path\": \"http://localhost:8080\", \"item\": \"{button}_amazon_dash\", \"command\": \"ON;OFF\" }","title":"Action Types and Their Parameters:"},{"location":"settings_events/#example","text":"{ \"events\": { \"white\": { \"summary\": [ { \"summary\": \"Morning work-out\", \"before\": \"12:00:00\", \"image\": \"morning.png\" }, { \"summary\": \"Physiotherapy\", \"image\": \"evening2.png\" } ], \"actions\": [ { \"type\": \"sheet\", \"name\": \"amazon_dash\", \"press_sheet\": \"press\", \"event_sheet\": \"event\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"calendar\", \"calendar_id\": \"eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com\", \"dashboard\": \"anna_work_out\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"ifttt\", \"summary\": \"white_amazon_dash\", \"value1\": \"\", \"value2\": \"\", \"value3\": \"\" } ] } } }","title":"Example"},{"location":"settings_events/#white-button","text":"Upon pressing: Before 12:00:00 : Recognized as Morning work-out . Image used: morning.png . After 12:00:00 : Labeled as Physiotherapy . Image used: evening2.png . The actions executed: Logging in the \"amazon_dash\" Google Sheet. Registering an event in a specific Google Calendar. Triggering an IFTTT applet.","title":"\"white\" button:"},{"location":"settings_events/#default-configuration","text":"If a button isn't uniquely configured, the \" DEFAULT \" configuration activates. This offers a standard set of actions for any non-specific button. { \"events\": { ... \"__DEFAULT__\": { \"summary\": \"{button}\", \"actions\": [ { \"type\": \"sheet\", \"name\": \"amazon_dash\", \"press_sheet\": \"press\", \"event_sheet\": \"event\", \"restart\": 60, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"calendar\", \"calendar_id\": \"eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com\", \"restart\": 15, \"autoclose\": 10800, \"default\": 900 }, { \"type\": \"ifttt\", \"summary\": \"{button}_amazon_dash\", \"value1\": \"\", \"value2\": \"\", \"value3\": \"\" }, { \"type\": \"openhab\", \"path\": \"http://localhost:8080\", \"item\": \"{button}_amazon_dash\", \"command\": \"ON;OFF\" } ] } } }","title":"Default Configuration"},{"location":"docstrings/","text":"API Overview Modules No modules Classes No classes Functions No functions This file was automatically generated via lazydocs .","title":"Overview"},{"location":"docstrings/#api-overview","text":"","title":"API Overview"},{"location":"docstrings/#modules","text":"No modules","title":"Modules"},{"location":"docstrings/#classes","text":"No classes","title":"Classes"},{"location":"docstrings/#functions","text":"No functions This file was automatically generated via lazydocs .","title":"Functions"}]} \ No newline at end of file diff --git a/search/worker.js b/search/worker.js new file mode 100644 index 0000000..8628dbc --- /dev/null +++ b/search/worker.js @@ -0,0 +1,133 @@ +var base_path = 'function' === typeof importScripts ? '.' : '/search/'; +var allowSearch = false; +var index; +var documents = {}; +var lang = ['en']; +var data; + +function getScript(script, callback) { + console.log('Loading script: ' + script); + $.getScript(base_path + script).done(function () { + callback(); + }).fail(function (jqxhr, settings, exception) { + console.log('Error: ' + exception); + }); +} + +function getScriptsInOrder(scripts, callback) { + if (scripts.length === 0) { + callback(); + return; + } + getScript(scripts[0], function() { + getScriptsInOrder(scripts.slice(1), callback); + }); +} + +function loadScripts(urls, callback) { + if( 'function' === typeof importScripts ) { + importScripts.apply(null, urls); + callback(); + } else { + getScriptsInOrder(urls, callback); + } +} + +function onJSONLoaded () { + data = JSON.parse(this.responseText); + var scriptsToLoad = ['lunr.js']; + if (data.config && data.config.lang && data.config.lang.length) { + lang = data.config.lang; + } + if (lang.length > 1 || lang[0] !== "en") { + scriptsToLoad.push('lunr.stemmer.support.js'); + if (lang.length > 1) { + scriptsToLoad.push('lunr.multi.js'); + } + if (lang.includes("ja") || lang.includes("jp")) { + scriptsToLoad.push('tinyseg.js'); + } + for (var i=0; i < lang.length; i++) { + if (lang[i] != 'en') { + scriptsToLoad.push(['lunr', lang[i], 'js'].join('.')); + } + } + } + loadScripts(scriptsToLoad, onScriptsLoaded); +} + +function onScriptsLoaded () { + console.log('All search scripts loaded, building Lunr index...'); + if (data.config && data.config.separator && data.config.separator.length) { + lunr.tokenizer.separator = new RegExp(data.config.separator); + } + + if (data.index) { + index = lunr.Index.load(data.index); + data.docs.forEach(function (doc) { + documents[doc.location] = doc; + }); + console.log('Lunr pre-built index loaded, search ready'); + } else { + index = lunr(function () { + if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) { + this.use(lunr[lang[0]]); + } else if (lang.length > 1) { + this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility + } + this.field('title'); + this.field('text'); + this.ref('location'); + + for (var i=0; i < data.docs.length; i++) { + var doc = data.docs[i]; + this.add(doc); + documents[doc.location] = doc; + } + }); + console.log('Lunr index built, search ready'); + } + allowSearch = true; + postMessage({config: data.config}); + postMessage({allowSearch: allowSearch}); +} + +function init () { + var oReq = new XMLHttpRequest(); + oReq.addEventListener("load", onJSONLoaded); + var index_path = base_path + '/search_index.json'; + if( 'function' === typeof importScripts ){ + index_path = 'search_index.json'; + } + oReq.open("GET", index_path); + oReq.send(); +} + +function search (query) { + if (!allowSearch) { + console.error('Assets for search still loading'); + return; + } + + var resultDocuments = []; + var results = index.search(query); + for (var i=0; i < results.length; i++){ + var result = results[i]; + doc = documents[result.ref]; + doc.summary = doc.text.substring(0, 200); + resultDocuments.push(doc); + } + return resultDocuments; +} + +if( 'function' === typeof importScripts ) { + onmessage = function (e) { + if (e.data.init) { + init(); + } else if (e.data.query) { + postMessage({ results: search(e.data.query) }); + } else { + console.error("Worker - Unrecognized message: " + e); + } + }; +} diff --git a/settings/index.html b/settings/index.html new file mode 100644 index 0000000..12be27a --- /dev/null +++ b/settings/index.html @@ -0,0 +1,212 @@ + + + + + + + +latitude
and longitude
Example:
+"latitude": "60.002228",
+"longitude": "30.296947"
+
+credentials_file_name
Example:
+"credentials_file_name": "../amazon-dash-private/amazon-dash-hack.json"
+
+ifttt_key_file_name
Example:
+"ifttt_key_file_name": "../amazon-dash-private/ifttt-key.json"
+
+openweathermap_key_file_name
Example:
+"openweathermap_key_file_name": "../amazon-dash-private/openweathermap-key.json"
+
+images_folder
Example:
+"images_folder": "../amazon-dash-private/images/"
+
+bounce_delay
Example:
+"bounce_delay": 5
+
+dashboards
events
"dashboards": [
+ "dashboard1" " {
+ "summary": [...],
+ "actions": [...]
+ },
+ ...
+ ]
+
+Description: Contains configurations for different dashboards.
+Each dashboard has its own properties, such as summary
, empty_image
, and absent
.
summary
: A textual description or title for the dashboard.empty_image
: The image displayed when no specific condition is met or data is empty.absent
: An array of objects specifying different reasons for being absent, and their associated images for grid and plot views.Example:
+ "dashboards": {
+ "anna_work_out": {
+ "summary": "Anna work-out",
+ "empty_image": "old-woman.png",
+ "absent": [
+ {
+ "summary": "Sick",
+ "image_grid": "absent_ill_grid.png",
+ "image_plot": "absent_ill_plot.png"
+ }
+ ]
+ }
+ }
+
+
+ In the configuration file, events are defined that dictate the response to different Amazon Dash button presses. +Each button links to a set of specified actions and, optionally, a summarized purpose.
+ "events": [
+ "button1" " {
+ "summary": [...],
+ "actions": [...]
+ },
+ "button2" " {
+ "summary": [...],
+ "actions": [...]
+ },
+ ...
+ ]
+
+Each button corresponds to a key within the events
dictionary.
+This key holds actions executed upon the button's press and can be detailed as follows:
Summary (Optional):
+Actions:
+type
which determines their behavior.{
+ "type": "sheet",
+ "name": "amazon_dash",
+ "press_sheet": "press",
+ "event_sheet": "event",
+ "restart": 15,
+ "autoclose": 10800,
+ "default": 900
+}
+
+{
+ "type": "calendar",
+ "calendar_id": "eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com",
+ "dashboard": "anna_work_out",
+ "restart": 15,
+ "autoclose": 10800,
+ "default": 900
+}
+
+{
+ "type": "ifttt",
+ "summary": "{button}_amazon_dash",
+ "value1": "",
+ "value2": "",
+ "value3": ""
+}
+
+{
+ "type": "openhab",
+ "path": "http://localhost:8080",
+ "item": "{button}_amazon_dash",
+ "command": "ON;OFF"
+}
+
+{
+ "events": {
+ "white": {
+ "summary": [
+ {
+ "summary": "Morning work-out",
+ "before": "12:00:00",
+ "image": "morning.png"
+ },
+ {
+ "summary": "Physiotherapy",
+ "image": "evening2.png"
+ }
+ ],
+ "actions": [
+ {
+ "type": "sheet",
+ "name": "amazon_dash",
+ "press_sheet": "press",
+ "event_sheet": "event",
+ "restart": 15,
+ "autoclose": 10800,
+ "default": 900
+ },
+ {
+ "type": "calendar",
+ "calendar_id": "eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com",
+ "dashboard": "anna_work_out",
+ "restart": 15,
+ "autoclose": 10800,
+ "default": 900
+ },
+ {
+ "type": "ifttt",
+ "summary": "white_amazon_dash",
+ "value1": "",
+ "value2": "",
+ "value3": ""
+ }
+ ]
+ }
+ }
+}
+
+Upon pressing:
+Before 12:00:00:
+morning.png
.After 12:00:00:
+evening2.png
.The actions executed:
+If a button isn't uniquely configured, the "DEFAULT" configuration activates. +This offers a standard set of actions for any non-specific button.
+{
+ "events": {
+ ...
+ "__DEFAULT__": {
+ "summary": "{button}",
+ "actions": [
+ {
+ "type": "sheet",
+ "name": "amazon_dash",
+ "press_sheet": "press",
+ "event_sheet": "event",
+ "restart": 60,
+ "autoclose": 10800,
+ "default": 900
+ },
+ {
+ "type": "calendar",
+ "calendar_id": "eo2n7ip8p1tm6dgseh3e7p19no@group.calendar.google.com",
+ "restart": 15,
+ "autoclose": 10800,
+ "default": 900
+ },
+ {
+ "type": "ifttt",
+ "summary": "{button}_amazon_dash",
+ "value1": "",
+ "value2": "",
+ "value3": ""
+ },
+ {
+ "type": "openhab",
+ "path": "http://localhost:8080",
+ "item": "{button}_amazon_dash",
+ "command": "ON;OFF"
+ }
+ ]
+ }
+ }
+}
+
+
+