NEWS
Betatest Adapter NSPanel-lovelace-ui v0.13.x
-
-
Moin zusammen,
bisher hatte ich den advanced Screensaver. Nach Nachbau der bisherigen Ansichten, wird mir nun der Standard-Screensaver angezeigt. Wo konnte man noch den advanced Screensaver auswählen?Vielen Dank für einen kurzen Anschub :)
-
0.15.2 (2026-03-26)
- (tt-tom17) added: message dialog when berry installation fails due to missing internet access on the panel
- (ticaki) added: improved offline detection for panels
- (ticaki) improved: version info caching (15–60 min) to reduce external API calls
- (ticaki) fixed: admin panel info tab now displays state labels in the correct system language
Bemerkung:
Es wird jetzt mehr überprüft ob die Initalisierung klappen kann und ob sie geklappt hat.
Das Caching der Versionsdaten wird mit einem adapter neustart aktualisiert oder wenn die 60 Min seit dem letzten Download rum sind vorher wurde für jedes panel extra runtergeladen -
Hi, die 0.15.2 laeuft, hat aber nach dem starten des Adapters ewig gebraucht, bis alle Panels online waren.. wollte schon wieder zurueck zur 0.15.1.. als dann doch nach und nach alle online gingen.. es wurden auch bei 3 Panels angemeckert, es waere script version 19.3 drauf, anstatt 20, dabei ist es aber Version 20.. sind ja alle gleich bei mir.. nur mal so..
Tasmota ist bei 12 Panels die 15.3, bei einem die 15.0.1.
Admin Version 7.8.9 und Nodejs 22.22.2 -
Das Anmeckern der Skriptversion liegt an folgendem:
Update your script and/or resend the configurationDu hast zwar im Javascript-Adapter die Skripte geupdatet - jedoch nicht an den Adapter gesendet. Dadurch wird beim Start des Adapter die Skriptversion als veraltet erkannt.
Ich weiß nicht ob ich das ändern soll. Hat i.d.R. keine Nachteile das nicht zu senden. EDIT: Das Überprüfen der Skriptversion ist schon seit einer großen Anzahl von Monaten teils kaputt gewesen)
Den Potenziel längere Startup kann ich mir gerade nicht erklären. Das passiert, wenn der Tasmota sich nicht im MQTT-Server anmelden kann, dann geht er in einen 10 Sekunden Interval der ansteigt. Oder er verpasst den startup - dann geht der Adapter in einen startup interval mit 5 Sekunden delay. Ist mir auch schon gelegentlich aufgefallen - aber meist hats nicht länger gedauert als meine sehr kurze Lunte :)
-
ah, danke, ja das kann sein, dann starte ich die scripte alle mal durch.. ist ja kein fehler.
Was mir auch noch einfaellt.. ich hatte schon den Fall, dass der nspanel-Adapter beim start hing, weil ich den javascript-Adapter gerade gestoppt hatte.. vielleicht kann man das noch irgendwie schoener abfangen .. probiers mal aus.. javascript adapter stop und dann den nspanel adapter neu starten.. der geigt dann ewig rum.. vielleicht soll er sich dann einfach mit fehler beenden? -
oha em hm wirklich?
Ich wüsste nicht das ich sowas eingebaut habe... Ich teste es mal@tt-tom bitte auch mal testen
-
oha em hm wirklich?
Ich wüsste nicht das ich sowas eingebaut habe... Ich teste es mal@tt-tom bitte auch mal testen
@ticaki sagte in Betatest Adapter NSPanel-lovelace-ui v0.13.x:
oha em hm wirklich?
Ich wüsste nicht das ich sowas eingebaut habe... Ich teste es malKann keinen Fehler feststellen. ohne javascript gestartet, während Start abgeschaltet, nach Start abgeschaltet, alles ohne Probleme.
-
ah, danke, ja das kann sein, dann starte ich die scripte alle mal durch.. ist ja kein fehler.
Was mir auch noch einfaellt.. ich hatte schon den Fall, dass der nspanel-Adapter beim start hing, weil ich den javascript-Adapter gerade gestoppt hatte.. vielleicht kann man das noch irgendwie schoener abfangen .. probiers mal aus.. javascript adapter stop und dann den nspanel adapter neu starten.. der geigt dann ewig rum.. vielleicht soll er sich dann einfach mit fehler beenden?@ilovegym sagte in Betatest Adapter NSPanel-lovelace-ui v0.13.x:
Was mir auch noch einfaellt.. ich hatte schon den Fall, dass der nspanel-Adapter beim start hing, weil ich den javascript-Adapter gerade gestoppt hatte.. vielleicht kann man das noch irgendwie schoener abfangen .. probiers mal aus.. javascript adapter stop und dann den nspanel adapter neu starten.. der geigt dann ewig rum.. vielleicht soll er sich dann einfach mit fehler beenden?
Es gibt nur eine stelle wo javascript.0 erwähnt wird und das ist beim erstmaligen erstellen des Skripts - ansonsten gibts im kompletten Backend code keine Erwähnung des Javascript Adapters:
const script: ioBroker.ScriptObject = { type: 'script', _id: scriptId, common: { name: 'Global page configuration', engineType: 'TypeScript/ts', engine: `system.adapter.javascript.0`, source: file, debug: false, verbose: false, enabled: o?.common.enabled ?? true, }, native: {}, };EDIT - 2 mal sind ja 2 skripts :)
-
Hab mir ein kleines ip/internetadressen überwachungsscript geschrieben. das mir ein Popup aufmacht wenn das gerät down ist
Falls es jemand gebrauchen kann:
Ah braucht linux als os - und exec muß erlaubt sein
async function main() { // Einstellungen const intervalTime = 30000; const id = '0_userdata.0.pve2Online'; // Datenpunkt der geändert online status anzeigt const target = '192.168.179.5 , 192.168.179.199'; // Adresse die überprüft werden soll string (Komma seperarite liste) const every = false; // true: jede ip muss online sein - false: eine ip muss online sein // Einstellungen Ende const stateObj: iobJS.StateObject = { _id: id, type: 'state', common: { name: 'Ist PVE2 online', desc: target, type: 'boolean', role: 'indicator', def: false, read: true, write: false, }, native: {}, } const targets: string[] = target.split(',').map(entry => { return entry.trim() }) await extendObject(stateObj._id, stateObj); let status = getState(stateObj._id).val send({state: {val: status}}, true); const endlessTask = () => { setTimeout(async ()=> { await checkTargets(); endlessTask(); }, intervalTime) } await checkTargets(); endlessTask(); function execPromise(cmd: string): Promise<string> { return new Promise((resolve, reject) => { exec(cmd, (err, stdout) => { if (err) return reject(err); resolve(stdout); }); }); } async function checkTargets() { const promises = targets.map(t => execPromise('ping -qc 2 ' + t) .then(res => { let should: string|number = res.substring( res.indexOf('statistics ---') + 'statistics ---'.length, res.indexOf(' packets transmitted') ); should = Number(should); let current: string|number = res.substring( res.indexOf('transmitted, ') + 'transmitted, '.length, res.indexOf('received') ); current = Number(current); return should && should === current; }) .catch(() => { log(`${t} is offline`) }) ); const results = await Promise.all(promises); setState(stateObj._id, every ? results.every(Boolean) : results.some(Boolean), true); } on({id: stateObj._id, change: 'ne'}, send) function send(obj, first?: boolean) { if (!first && obj.state.val === status) return; if (!obj.state.val) sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id: 'PVE2Check', headline: 'Kritischer Fehler', text: 'PVE2 ist offline', priority: 30, colorHeadline: '#FF0000', textSize: 3, type: 'acknowledge', buttonRight: 'Ok' }) else sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id: 'PVE2Check', headline: 'Kritischer Fehler', text: 'PVE2 ist online', priority: -1 }) } } main()