[Pavlok] Add test beep button to settings to verify API config

This commit is contained in:
2026-08-18 14:18:39 -04:00
parent b1052ff2a0
commit 0ef3101fe8
2 changed files with 27 additions and 9 deletions
+4 -7
View File
@@ -35,13 +35,10 @@ module.exports = [
"label": "Zap Intensity" "label": "Zap Intensity"
}, },
{ {
"id": "pavlok_interval", "id": "pavlok_test_button",
"type": "slider", "type": "button",
"messageKey": "PKJS_PAVLOK_INTERVAL", "messageKey": "PKJS_PAVLOK_TEST_BUTTON",
defaultValue: 5, "defaultValue": "Test Beep"
min: 1,
max: 60,
"label": "Zap Repeat Interval (Seconds - NOT IMPLEMENTED)"
} }
] ]
}, },
+23 -2
View File
@@ -8,17 +8,38 @@ module.exports = function (minified) {
if (this.get()) { if (this.get()) {
clayConfig.getItemById('pavlok_api_key').show(); clayConfig.getItemById('pavlok_api_key').show();
clayConfig.getItemById('pavlok_zap_intensity').show(); clayConfig.getItemById('pavlok_zap_intensity').show();
clayConfig.getItemById('pavlok_interval').show(); clayConfig.getItemById('pavlok_test_button').show();
} else { } else {
clayConfig.getItemById('pavlok_api_key').hide(); clayConfig.getItemById('pavlok_api_key').hide();
clayConfig.getItemById('pavlok_zap_intensity').hide(); clayConfig.getItemById('pavlok_zap_intensity').hide();
clayConfig.getItemById('pavlok_interval').hide(); clayConfig.getItemById('pavlok_test_button').hide();
} }
} }
function sendTestBeep() {
const data = JSON.stringify({
stimulus: {
stimulusType: 'beep',
stimulusValue: 80,
reason: 'Trigalarm Test'
}
});
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open('POST', 'https://api.pavlok.com/api/v5/stimulus/send');
xhr.setRequestHeader('accept', 'application/json');
xhr.setRequestHeader('content-type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer ' + clayConfig.getItemById('pavlok_api_key').get());
xhr.send(data);
}
clayConfig.on(clayConfig.EVENTS.AFTER_BUILD, function () { clayConfig.on(clayConfig.EVENTS.AFTER_BUILD, function () {
var pavlokIntegrationToggle = clayConfig.getItemById('pavlok_enable'); var pavlokIntegrationToggle = clayConfig.getItemById('pavlok_enable');
togglePavlokIntegration.call(pavlokIntegrationToggle); togglePavlokIntegration.call(pavlokIntegrationToggle);
pavlokIntegrationToggle.on('change', togglePavlokIntegration); pavlokIntegrationToggle.on('change', togglePavlokIntegration);
clayConfig.getItemById('pavlok_test_button').on('click', sendTestBeep);
}); });
}; };