Hallo zusammen schon wieder ich habe das nächste Skript mit nem fehler
javascript.0 (11658) script.js.java.abfragen.adapter_widget compile failed: at script.js.java.abfragen.adapter_widget:438
// @ts-nocheck
// Imports -> müssen im Javascript Adapter unter 'Zusätzliche NPM-Module' eingetragen sein
const moment = require("moment");
const momentDurationFormatSetup = require("moment-duration-format");
// Skript Einstellungen *************************************************************************************************************************************************
let dpList = '0_userdata.0.vis.AdapterStatus.jsonList'; // Datenpunkt für IconList Widget (Typ: Zeichenkette (String))
let dpAdapterRestart = '0_userdata.0.vis.AdapterStatus.restartTrigger'; // Datenpunkt für Adapter restart (Typ: Zeichenkette (String))
let adminUpdatesList = 'admin.0.info.updatesList' // Datenpunkt Admin Adapter für verfübare Updates der Adapter
const checkInterval = 30; // Interval wie oft Status der Adapter aktualisiert werden soll (in Sekunden)
let sprache = 'de'; // Sprache für formatierung Dauer
let formatierungDauer = "dd[T] hh[h] mm[m]" // Formatierung der Dauer -> siehe momentjs library
let neustarten = true; // true: Adapter wird neugestartet, false: Adapter wird gestoppt oder gestartet
let farbeAdapterAktiv = 'green'; // Status Bar Farbe wenn Adapter aktiv ist
let farbeAdapterNichtAktiv = 'FireBrick'; // Status Bar Farbe wenn Adapter nicht aktiv ist oder Fehler vorliegt
let farbeAdapterDeaktiviert = 'darkgrey'; // Status Bar Farbe wenn Adapter deaktiviert ist
let farbeAdapterNichtVerbunden = 'yellow'; // Status Bar Farbe wenn Adapter nicht verbunden ist
let farbeAdapterZeitgesteuert = 'darkgreen'; // Status Bar Farbe wenn Adapter zeitgesteuert ist
// **********************************************************************************************************************************************************************
// Fomate für moment Lib
moment.locale(sprache);
// auf .alive Änderungen hören
let aliveSelector = `[id=system.adapter.*.alive]`;
let adapterAliveList = $(aliveSelector);
if (adapterAliveList.length === 0) {
// Fehlermeldung ausgeben, wenn selector kein result liefert
console.error(`no result for selector '${aliveSelector}'`)
} else {
// listener nur für Änderung bei alive
adapterAliveList.on(adapterStatus);
}
// auf .connected Änderungen hören
let connectedSelector = `[id=*.info.connection]`;
let adapterConnectedList = $(connectedSelector);
if (adapterConnectedList.length === 0) {
// Fehlermeldung ausgeben, wenn selector kein result liefert
console.error(`no result for selector '${connectedSelector}'`)
} else {
// listener nur für Änderung bei alive
adapterConnectedList.on(adapterStatus);
}
// Funktion adapterStatus alle x Sekunden ausführen
schedule('*/' + checkInterval + ' * * * * *', adapterStatus);
function adapterStatus() {
// Funktion um Status der Adapter abzurufen und als JSON String für das Material Design Widget IconList aufbereiten
let adapterList = [];
let updateList = myHelper().getStateValueIfExist(adminUpdatesList);
try {
for (var i = 0; i <= adapterAliveList.length - 1; i++) {
let id = adapterAliveList[i].replace('.alive', '');
let obj = getObject(adapterAliveList[i].replace('.alive', ''));
let nameArray = id.replace('system.adapter.', '').split(".");
let name = nameArray[0];
name = name.charAt(0).toUpperCase() + name.slice(1);
let nameWithInstance = name;
let adapterInstance = nameArray[1];
if (parseInt(adapterInstance) > 0) {
nameWithInstance = name + '.' + adapterInstance;
}
// @ts-ignore
let uptime = (existsState(id + '.uptime')) ? moment.duration(getState(id + '.uptime').val, 'seconds').format(formatierungDauer, 0) : '-';
let image = (myHelper().checkCommonPropertyExist(obj, 'icon')) ? `/${nameArray[0]}.admin/${obj.common.icon}` : 'image-off-outline';
let newVersion = (updateList && updateList.includes(nameArray[0])) ? '<span class="mdi mdi-update" style="color: #ec0909;"></span>' : '';
let text = `<div style="display: flex; flex-direction: row; line-height: 1.5; padding-right: 8px; align-items: center;">
<div style="flex: 1">${newVersion} ${nameWithInstance}</div>
<div style="color: grey; font-size: 12px; font-family: RobotoCondensed-LightItalic;">${myHelper().getCommonPropertyIfExist(obj, 'version', '-', 'v', '')}</div>
</div>`
let subText = `<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
<div style="flex: 1">CPU</div>
<div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.cpu', '-', '', ' %')}</div>
</div>
<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
<div style="flex: 1">RAM total</div>
<div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memHeapTotal', '-', '', ' MB')}</div>
</div>
<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
<div style="flex: 1">RAM verwendet</div>
<div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memHeapUsed', '-', '', ' MB')}</div>
</div>
<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
<div style="flex: 1">RAM reserviert</div>
<div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memRss', '-', '', ' MB')}</div>
</div>
<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
<div style="flex: 1">Betriebszeit</div>
<div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${uptime}</div>
</div>`
adapterList.push({
text: text,
subText: subText,
image: image,
listType: "buttonState",
objectId: dpAdapterRestart,
buttonStateValue: id,
statusBarColor: getStatusColor(),
showValueLabel: false,
name: name
})
function getStatusColor() {
let statusBarColor = farbeAdapterNichtAktiv;
if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
statusBarColor = farbeAdapterAktiv;
if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
statusBarColor = farbeAdapterNichtVerbunden;
}
} else {
if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
statusBarColor = farbeAdapterNichtVerbunden;
}
}
}
if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
// Adapter ist deaktiviert
statusBarColor = farbeAdapterDeaktiviert;
}
if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
// Adapter ist zeitgesteuert
statusBarColor = farbeAdapterZeitgesteuert;
}
return statusBarColor;
}
}
} catch (err) {
console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
}
adapterList.sort(function (a, b) {
return a.name == b.name ? 0 : +(a.name > b.name) || -1;
});
let result = JSON.stringify(adapterList);
// @ts-ignore
if (getState(dpList) !== result) {
setState(dpList, result, true);
}
}
// Beim Staren des Skriptes Adapter Status abrufen
adapterStatus();
// Funktion um Adapter zu starten / neu starten
on({ id: dpAdapterRestart }, function (obj) {
var adapter = getObject(obj.state.val.toString());
if (neustarten) {
if (adapter.common && adapter.common.enabled === false) {
// Adapter deaktiviert -> starten
adapter.common.enabled = true;
}
} else {
if (adapter.common && adapter.common.enabled) {
adapter.common.enabled = !adapter.common.enabled;
} else {
adapter.common.enabled = true;
}
}
// @ts-ignore
setObject(obj.state.val, adapter);
console.log(`${obj.state.val.replace('system.adapter.', '')} neugestartet`);
});
function myHelper() {
return {
getStateValueIfExist: function (id, nullValue = undefined, prepand = '', append = '') {
if (existsState(id)) {
return prepand + getState(id).val + append;
} else {
return nullValue;
}
},
getCommonPropertyIfExist: function (object, prop, nullValue = undefined, prepand = '', append = '') {
if (myHelper().checkCommonPropertyExist(object, prop)) {
return prepand + object.common[prop] + append;
} else {
return nullValue;
}
},
checkCommonPropertyExist: function (object, prop) {
if (object && object.common && object.common[prop]) {
return true;
} else {
return false;
}
}
}
}
export function log(arg0: string) {
throw new Error("Function not implemented.");
}
Kann mir wer helfen bitte
LG Daniel