Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
388bcc6c2c |
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Divera Status",
|
||||
"version": "0.0.1",
|
||||
"version": "0.0.2",
|
||||
"description": "Übernehmen des Status aus der Divera App in Alarmiator",
|
||||
"main": "base.js",
|
||||
"service": "service.js",
|
||||
|
73
service.js
73
service.js
@ -238,41 +238,54 @@ async function onStateChange(consumer_id, status_id){
|
||||
}
|
||||
}
|
||||
|
||||
function sleep(ms) {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(resolve, ms);
|
||||
});
|
||||
}
|
||||
|
||||
async function startAPI() {
|
||||
let _auth = await auth()
|
||||
if(_auth){
|
||||
global.logger.info('auth OK')
|
||||
var _pulled_data = await pull()
|
||||
while(_pulled_data !== null){
|
||||
if(_pulled_data !== null){
|
||||
if(_pulled_data.success){
|
||||
var d = _pulled_data.data
|
||||
if('cluster' in d){
|
||||
pulled_data['consumer'] = d['cluster']['consumer']
|
||||
pulled_data['status'] = d['cluster']['status']
|
||||
}
|
||||
if('monitor' in d){
|
||||
var m = d['monitor'][config.MONITOR_ID]
|
||||
Object.entries(m).forEach(([key, value]) => {
|
||||
// wenn 'monitor' nicht in pulled_data ist das der erste pull, dann alle status in ALARMiator abgleichen (betrifft hautsächlich den EB/NEB status)
|
||||
if(!('monitor' in pulled_data) || ('monitor' in pulled_data && value.status !== pulled_data['monitor'][key]['status'])){
|
||||
onStateChange(value.id,value.status )
|
||||
while(true){
|
||||
try{
|
||||
let _auth = await auth()
|
||||
if(_auth){
|
||||
global.logger.info('auth OK')
|
||||
var _pulled_data = await pull()
|
||||
while(_pulled_data !== null){
|
||||
if(_pulled_data !== null){
|
||||
if(_pulled_data.success){
|
||||
var d = _pulled_data.data
|
||||
if('cluster' in d){
|
||||
pulled_data['consumer'] = d['cluster']['consumer']
|
||||
pulled_data['status'] = d['cluster']['status']
|
||||
}
|
||||
});
|
||||
pulled_data['monitor'] = d['monitor'][config.MONITOR_ID]
|
||||
if('monitor' in d){
|
||||
var m = d['monitor'][config.MONITOR_ID]
|
||||
Object.entries(m).forEach(([key, value]) => {
|
||||
// wenn 'monitor' nicht in pulled_data ist das der erste pull, dann alle status in ALARMiator abgleichen (betrifft hautsächlich den EB/NEB status)
|
||||
if(!('monitor' in pulled_data) || ('monitor' in pulled_data && value.status !== pulled_data['monitor'][key]['status'])){
|
||||
onStateChange(value.id,value.status )
|
||||
}
|
||||
});
|
||||
pulled_data['monitor'] = d['monitor'][config.MONITOR_ID]
|
||||
}
|
||||
}
|
||||
}
|
||||
_pulled_data = await pull()
|
||||
if(_pulled_data === null){
|
||||
global.logger.debug('_pulled_data === null, reauth')
|
||||
_auth = await auth()
|
||||
_pulled_data = await pull()
|
||||
if(_pulled_data === null){
|
||||
global.logger.debug('_pulled_data === null after reauth, EXIT!!')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_pulled_data = await pull()
|
||||
if(_pulled_data === null){
|
||||
global.logger.debug('_pulled_data === null, reauth')
|
||||
_auth = await auth()
|
||||
_pulled_data = await pull()
|
||||
if(_pulled_data === null){
|
||||
global.logger.debug('_pulled_data === null after reauth, EXIT!!')
|
||||
}
|
||||
}
|
||||
}catch(err){
|
||||
console.error(err);
|
||||
}
|
||||
await sleep(10000);
|
||||
global.logger.info('auth mit API_KEY war nicht erfolgreich. Service ist gestoppt und startet nicht mehr automatisch??')
|
||||
}
|
||||
global.logger.info('auth mit API_KEY war nicht erfolgreich. Service ist gestoppt und startet nicht mehr automatisch??')
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user