Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. View Adapter Status

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

View Adapter Status

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
view adapterview
212 Beiträge 31 Kommentatoren 37.1k Aufrufe 52 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • NashraN Offline
    NashraN Offline
    Nashra
    Most Active Forum Testing
    schrieb am zuletzt editiert von
    #103

    Moin, bei mir kommen wegen 2 Adaptern Warnmeldungen die da wären:
    Font UI da wird unter System auch nichts angelegt soweit und bei
    Text2Command sucht er ne CPU

    javascript.0	2020-02-23 09:41:00.110	warn	(3356) at Timer.processTimers (timers.js:223:10)
    javascript.0	2020-02-23 09:41:00.110	warn	(3356) at listOnTimeout (timers.js:263:5)
    javascript.0	2020-02-23 09:41:00.110	warn	(3356) at tryOnTimeout (timers.js:300:5)
    javascript.0	2020-02-23 09:41:00.110	warn	(3356) at ontimeout (timers.js:436:11)
    javascript.0	2020-02-23 09:41:00.110	warn	(3356) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
    javascript.0	2020-02-23 09:41:00.109	warn	(3356) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
    javascript.0	2020-02-23 09:41:00.109	warn	(3356) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
    javascript.0	2020-02-23 09:41:00.109	warn	(3356) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
    javascript.0	2020-02-23 09:41:00.109	warn	(3356) at Object.adapterStatus (script.js.Meine_Geräte.Adapter-auto:121:120)
    javascript.0	2020-02-23 09:41:00.108	warn	(3356) getState "system.adapter.text2command.0.cpu" not found (3)
    javascript.0	2020-02-23 09:41:00.044	warn	(3356) at Timer.processTimers (timers.js:223:10)
    javascript.0	2020-02-23 09:41:00.044	warn	(3356) at listOnTimeout (timers.js:263:5)
    javascript.0	2020-02-23 09:41:00.044	warn	(3356) at tryOnTimeout (timers.js:300:5)
    javascript.0	2020-02-23 09:41:00.043	warn	(3356) at ontimeout (timers.js:436:11)
    javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
    javascript.0	2020-02-23 09:41:00.043	warn	(3356) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
    javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
    javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
    javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Object.adapterStatus (script.js.Meine_Geräte.Adapter-auto:173:33)
    javascript.0	2020-02-23 09:41:00.043	warn	(3356) at getStatusColor (script.js.Meine_Geräte.Adapter-auto:185:21)
    javascript.0	2020-02-23 09:41:00.042	warn	(3356) getState "system.adapter.fontui.0.alive" not found (3) states[id]=null
    javascript.0	2020-02-23 09:41:00.041	warn	(3356) at Timer.processTimers (timers.js:223:10)
    javascript.0	2020-02-23 09:41:00.041	warn	(3356) at listOnTimeout (timers.js:263:5)
    javascript.0	2020-02-23 09:41:00.040	warn	(3356) at tryOnTimeout (timers.js:300:5)
    javascript.0	2020-02-23 09:41:00.040	warn	(3356) at ontimeout (timers.js:436:11)
    

    Gruß Ralf
    Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    S 1 Antwort Letzte Antwort
    0
    • NashraN Nashra

      Moin, bei mir kommen wegen 2 Adaptern Warnmeldungen die da wären:
      Font UI da wird unter System auch nichts angelegt soweit und bei
      Text2Command sucht er ne CPU

      javascript.0	2020-02-23 09:41:00.110	warn	(3356) at Timer.processTimers (timers.js:223:10)
      javascript.0	2020-02-23 09:41:00.110	warn	(3356) at listOnTimeout (timers.js:263:5)
      javascript.0	2020-02-23 09:41:00.110	warn	(3356) at tryOnTimeout (timers.js:300:5)
      javascript.0	2020-02-23 09:41:00.110	warn	(3356) at ontimeout (timers.js:436:11)
      javascript.0	2020-02-23 09:41:00.110	warn	(3356) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.0	2020-02-23 09:41:00.109	warn	(3356) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.0	2020-02-23 09:41:00.109	warn	(3356) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.0	2020-02-23 09:41:00.109	warn	(3356) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
      javascript.0	2020-02-23 09:41:00.109	warn	(3356) at Object.adapterStatus (script.js.Meine_Geräte.Adapter-auto:121:120)
      javascript.0	2020-02-23 09:41:00.108	warn	(3356) getState "system.adapter.text2command.0.cpu" not found (3)
      javascript.0	2020-02-23 09:41:00.044	warn	(3356) at Timer.processTimers (timers.js:223:10)
      javascript.0	2020-02-23 09:41:00.044	warn	(3356) at listOnTimeout (timers.js:263:5)
      javascript.0	2020-02-23 09:41:00.044	warn	(3356) at tryOnTimeout (timers.js:300:5)
      javascript.0	2020-02-23 09:41:00.043	warn	(3356) at ontimeout (timers.js:436:11)
      javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.0	2020-02-23 09:41:00.043	warn	(3356) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
      javascript.0	2020-02-23 09:41:00.043	warn	(3356) at Object.adapterStatus (script.js.Meine_Geräte.Adapter-auto:173:33)
      javascript.0	2020-02-23 09:41:00.043	warn	(3356) at getStatusColor (script.js.Meine_Geräte.Adapter-auto:185:21)
      javascript.0	2020-02-23 09:41:00.042	warn	(3356) getState "system.adapter.fontui.0.alive" not found (3) states[id]=null
      javascript.0	2020-02-23 09:41:00.041	warn	(3356) at Timer.processTimers (timers.js:223:10)
      javascript.0	2020-02-23 09:41:00.041	warn	(3356) at listOnTimeout (timers.js:263:5)
      javascript.0	2020-02-23 09:41:00.040	warn	(3356) at tryOnTimeout (timers.js:300:5)
      javascript.0	2020-02-23 09:41:00.040	warn	(3356) at ontimeout (timers.js:436:11)
      

      S Offline
      S Offline
      saeft_2003
      Most Active
      schrieb am zuletzt editiert von saeft_2003
      #104

      Hallo zusammen,

      ich versuche im Moment das ganze auch umzusetzen soweit sieht es auch nicht schlecht aus, aber ich bekomme alle 60 Sekunden (habe ich erhöht von 30) eine unmenge an Warnung im log. Habt ihr das auch? Ich sehe grad dieses cpu not found ist nur bei Adapter die nicht laufen. Aber muss dann diese unzahl an warnung sein? Da habe ich ja am ende vom Tag ein log von 100MB ;-)

      @Scrounger ist das "normal" diese vielen Warnungen?

      javascript.1	2020-02-23 22:17:00.438	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.437	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.437	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.437	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.437	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.437	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.436	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.436	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.436	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.435	warn	(20023) getState "system.adapter.pi-hole.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.411	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.411	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.411	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.410	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.410	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.410	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.409	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.409	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.408	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.407	warn	(20023) getState "system.adapter.yahka.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.399	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.398	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.398	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.397	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.396	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.396	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.395	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.395	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.394	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.393	warn	(20023) getState "system.adapter.unifi.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.387	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.386	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.385	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.385	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.384	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.384	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.383	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.383	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.382	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:173:33)
      javascript.1	2020-02-23 22:17:00.382	warn	(20023) at getStatusColor (script.js.funktioniert.Adapterstatus:185:21)
      javascript.1	2020-02-23 22:17:00.379	warn	(20023) getState "system.adapter.daikin.0.alive" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.373	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.372	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.371	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.370	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.370	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.369	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.369	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.368	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.367	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:153:136)
      javascript.1	2020-02-23 22:17:00.366	warn	(20023) getState "system.adapter.daikin.0.uptime" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.366	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.365	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.365	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.364	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.364	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.363	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.363	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.362	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.362	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:145:120)
      javascript.1	2020-02-23 22:17:00.360	warn	(20023) getState "system.adapter.daikin.0.memRss" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.360	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.359	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.359	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.358	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.358	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.357	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.357	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.356	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.356	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:137:120)
      javascript.1	2020-02-23 22:17:00.355	warn	(20023) getState "system.adapter.daikin.0.memHeapUsed" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.354	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.354	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.353	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.353	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.352	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.352	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.351	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.351	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.350	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:129:120)
      javascript.1	2020-02-23 22:17:00.349	warn	(20023) getState "system.adapter.daikin.0.memHeapTotal" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.349	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.348	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.348	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.347	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.347	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.346	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.346	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.345	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.345	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.344	warn	(20023) getState "system.adapter.daikin.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.339	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.338	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.338	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.337	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.336	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.336	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.335	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.335	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.334	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.333	warn	(20023) getState "system.adapter.volumio.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.332	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.331	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.331	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.330	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.330	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.329	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.328	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.327	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.326	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:173:33)
      javascript.1	2020-02-23 22:17:00.324	warn	(20023) at getStatusColor (script.js.funktioniert.Adapterstatus:185:21)
      javascript.1	2020-02-23 22:17:00.321	warn	(20023) getState "system.adapter.iqontrol.0.alive" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.314	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.314	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.313	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.312	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.310	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.296	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.294	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.293	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.292	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:153:136)
      javascript.1	2020-02-23 22:17:00.291	warn	(20023) getState "system.adapter.iqontrol.0.uptime" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.291	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.290	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.288	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.287	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.287	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.286	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.286	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.285	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.273	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:145:120)
      javascript.1	2020-02-23 22:17:00.271	warn	(20023) getState "system.adapter.iqontrol.0.memRss" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.270	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.270	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.269	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.269	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.268	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.267	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.267	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.266	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.266	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:137:120)
      javascript.1	2020-02-23 22:17:00.265	warn	(20023) getState "system.adapter.iqontrol.0.memHeapUsed" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.264	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.264	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.264	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.263	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.263	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.262	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.262	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.262	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.261	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:129:120)
      javascript.1	2020-02-23 22:17:00.260	warn	(20023) getState "system.adapter.iqontrol.0.memHeapTotal" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.260	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.259	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.259	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.259	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.258	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.257	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.257	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.256	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.256	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.255	warn	(20023) getState "system.adapter.iqontrol.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.239	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.239	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.238	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.238	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.238	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.237	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.237	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.236	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.236	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.235	warn	(20023) getState "system.adapter.proxmox.1.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.228	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.228	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.228	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.228	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.227	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.227	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.227	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.226	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.226	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.225	warn	(20023) getState "system.adapter.synology.0.cpu" not found (3) states[id]=null
      javascript.1	2020-02-23 22:17:00.221	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.220	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.220	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.220	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.220	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.219	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.219	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.219	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.218	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.218	warn	(20023) getState "system.adapter.weatherunderground.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.214	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.213	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.213	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.213	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.212	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.212	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.212	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.212	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.211	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.210	warn	(20023) getState "system.adapter.dwd.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.198	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.197	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.197	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.197	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.197	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.196	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.196	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.196	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.195	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.195	warn	(20023) getState "system.adapter.rpi2.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.189	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.189	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.188	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.188	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.187	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.187	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.186	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.186	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.185	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.184	warn	(20023) getState "system.adapter.history.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.177	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.177	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.176	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.176	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.176	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.175	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.175	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.171	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.171	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.170	warn	(20023) getState "system.adapter.tr-064.2.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.155	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.154	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.154	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.153	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.153	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.152	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.152	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.151	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.151	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.150	warn	(20023) getState "system.adapter.node-red.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.142	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.141	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.141	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.141	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.141	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.140	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.140	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.140	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.139	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.139	warn	(20023) getState "system.adapter.yeelight-2.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.135	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.135	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.135	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.135	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.134	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.134	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.134	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.134	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.133	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.132	warn	(20023) getState "system.adapter.mihome.1.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.115	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.114	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.114	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.114	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.113	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.113	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.112	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.112	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.111	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.110	warn	(20023) getState "system.adapter.samsung.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.090	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.090	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.090	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.089	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.089	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.089	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.088	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.088	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.088	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.087	warn	(20023) getState "system.adapter.cloud.0.cpu" not found (3)
      javascript.1	2020-02-23 22:17:00.077	warn	(20023) at Timer.processTimers (timers.js:223:10)
      javascript.1	2020-02-23 22:17:00.076	warn	(20023) at listOnTimeout (timers.js:263:5)
      javascript.1	2020-02-23 22:17:00.076	warn	(20023) at tryOnTimeout (timers.js:300:5)
      javascript.1	2020-02-23 22:17:00.076	warn	(20023) at ontimeout (timers.js:436:11)
      javascript.1	2020-02-23 22:17:00.076	warn	(20023) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
      javascript.1	2020-02-23 22:17:00.075	warn	(20023) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
      javascript.1	2020-02-23 22:17:00.075	warn	(20023) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
      javascript.1	2020-02-23 22:17:00.075	warn	(20023) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
      javascript.1	2020-02-23 22:17:00.074	warn	(20023) at Object.adapterStatus (script.js.funktioniert.Adapterstatus:121:120)
      javascript.1	2020-02-23 22:17:00.072	warn	(20023) getState "system.adapter.terminal.0.cpu" not found (3)
      
      1 Antwort Letzte Antwort
      0
      • ScroungerS Offline
        ScroungerS Offline
        Scrounger
        Developer
        schrieb am zuletzt editiert von Scrounger
        #105

        So hier ist die verbesserte Variante des Skriptes, die auch die ganzen Warn Meldungen abfangen sollte

        3c38829c-b368-4c0c-b312-7531dc59bff5-grafik.png

        // 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;
                    }
        
                    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);
            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;
                }
            }
        
            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;
                    }
                }
            }
        }
        

        Ihr könnt jetzt Einstellungen vornehmen, erklärung steht im kommentar

        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 = 10;                                                   // 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
        

        @Oli sagte in View Adapter Status:

        Die Info wenn ein Adapter gelb ist steht unter:
        "system.adapter.backitup.0.connected"

        Das ist aber nicht der Status für connection, dieser steht unter adapter.x.info.connection. Hab es gleich mal mit eingebaut ;-)

        <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

        <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

        sigi234S 2 Antworten Letzte Antwort
        0
        • ScroungerS Scrounger

          So hier ist die verbesserte Variante des Skriptes, die auch die ganzen Warn Meldungen abfangen sollte

          3c38829c-b368-4c0c-b312-7531dc59bff5-grafik.png

          // 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;
                      }
          
                      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);
              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;
                  }
              }
          
              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;
                      }
                  }
              }
          }
          

          Ihr könnt jetzt Einstellungen vornehmen, erklärung steht im kommentar

          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 = 10;                                                   // 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
          

          @Oli sagte in View Adapter Status:

          Die Info wenn ein Adapter gelb ist steht unter:
          "system.adapter.backitup.0.connected"

          Das ist aber nicht der Status für connection, dieser steht unter adapter.x.info.connection. Hab es gleich mal mit eingebaut ;-)

          sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #106

          @Scrounger

          100 Warnmeldungen, Skript hängt sich auf.

          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Immer Daten sichern!

          1 Antwort Letzte Antwort
          0
          • NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            schrieb am zuletzt editiert von
            #107

            @Scrounger

            Warn-Meldungen kommen bei mir auch sehr viele.
            Aber Script läuft sonst super.

            Adapter stoppen funktioniert
            Danke

            javascript.0	2020-02-24 18:46:00.828	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.828	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
            javascript.0	2020-02-24 18:46:00.827	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.826	warn	(592) getState "system.adapter.proxy.0.alive" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.824	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:101:132)
            javascript.0	2020-02-24 18:46:00.823	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.822	warn	(592) getState "system.adapter.proxy.0.memRss" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.819	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:97:132)
            javascript.0	2020-02-24 18:46:00.818	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.818	warn	(592) getState "system.adapter.proxy.0.memHeapUsed" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.815	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.815	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.815	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.815	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.815	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.814	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.814	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.814	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.814	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:93:132)
            javascript.0	2020-02-24 18:46:00.814	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.813	warn	(592) getState "system.adapter.proxy.0.memHeapTotal" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.807	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.806	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:78:89)
            javascript.0	2020-02-24 18:46:00.805	warn	(592) getState "system.adapter.proxy.0.uptime" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.379	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.379	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.379	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.379	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.378	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.378	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.378	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.378	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.378	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
            javascript.0	2020-02-24 18:46:00.378	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
            javascript.0	2020-02-24 18:46:00.378	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.377	warn	(592) getState "system.adapter.fontui.0.alive" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.375	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:101:132)
            javascript.0	2020-02-24 18:46:00.374	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.373	warn	(592) getState "system.adapter.fontui.0.memRss" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.370	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.370	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.370	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.370	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.370	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.370	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.370	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.369	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.369	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:97:132)
            javascript.0	2020-02-24 18:46:00.369	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.368	warn	(592) getState "system.adapter.fontui.0.memHeapUsed" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.366	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.366	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:93:132)
            javascript.0	2020-02-24 18:46:00.365	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.364	warn	(592) getState "system.adapter.fontui.0.memHeapTotal" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.361	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.360	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:89:132)
            javascript.0	2020-02-24 18:46:00.360	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.359	warn	(592) getState "system.adapter.fontui.0.cpu" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.355	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.355	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.355	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.354	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.354	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.354	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.354	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.354	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.354	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:78:89)
            javascript.0	2020-02-24 18:46:00.353	warn	(592) getState "system.adapter.fontui.0.uptime" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.210	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.210	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.210	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.210	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.209	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.209	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.209	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.209	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.209	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
            javascript.0	2020-02-24 18:46:00.209	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
            javascript.0	2020-02-24 18:46:00.208	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.207	warn	(592) getState "system.adapter.devices.0.alive" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.205	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.205	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.205	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.205	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.204	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.204	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.204	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.204	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.204	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:101:132)
            javascript.0	2020-02-24 18:46:00.204	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.203	warn	(592) getState "system.adapter.devices.0.memRss" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.201	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:97:132)
            javascript.0	2020-02-24 18:46:00.200	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.199	warn	(592) getState "system.adapter.devices.0.memHeapUsed" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.196	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.196	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.196	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.196	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.196	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.196	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.196	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.195	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.195	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:93:132)
            javascript.0	2020-02-24 18:46:00.195	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.194	warn	(592) getState "system.adapter.devices.0.memHeapTotal" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.192	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.192	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.192	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.191	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.191	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.191	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.191	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.191	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.191	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:89:132)
            javascript.0	2020-02-24 18:46:00.191	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:46:00.190	warn	(592) getState "system.adapter.devices.0.cpu" not found (3) states[id]=null
            javascript.0	2020-02-24 18:46:00.185	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:46:00.185	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:46:00.185	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:46:00.185	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:46:00.184	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:46:00.184	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:46:00.184	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:46:00.184	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:46:00.184	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:78:89)
            javascript.0	2020-02-24 18:46:00.183	warn	(592) getState "system.adapter.devices.0.uptime" not found (3) states[id]=null
            javascript.0	2020-02-24 18:45:57.842	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:45:57.842	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at tryOnTimeout (timers.js:300:5)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at ontimeout (timers.js:436:11)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
            javascript.0	2020-02-24 18:45:57.841	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
            javascript.0	2020-02-24 18:45:57.840	warn	(592) getState "system.adapter.proxy.0.alive" not found (3) states[id]=null
            javascript.0	2020-02-24 18:45:57.837	warn	(592) at Timer.processTimers (timers.js:223:10)
            javascript.0	2020-02-24 18:45:57.837	warn	(592) at listOnTimeout (timers.js:263:5)
            javascript.0	2020-02-24 18:45:57.837	warn	(592) at tryOnTimeout (timers.js:300:5)
            

            ° Node.js: 20.17.0 NPM: 10.8.2
            ° Proxmox, Ubuntu 22.04.3 LTS
            ° Fixer ---> iob fix

            1 Antwort Letzte Antwort
            0
            • NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #108

              @Scrounger

              Hab noch eine Frage, ob der Wunsch möglich ist.

              Derzeit wird nach senkrechten Spalten sortiert.
              Also zB

              aaa ggg
              bbb hhh
              ccc iii
              ddd jjj
              eee kkk
              fff lll

              Ist es möglich, die Sortierung waagrecht zu machen?
              Also zB

              aaa bbb
              ccc ddd
              eee fff
              ggg hhh
              iii jjj
              kkk lll

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              1 Antwort Letzte Antwort
              0
              • ScroungerS Offline
                ScroungerS Offline
                Scrounger
                Developer
                schrieb am zuletzt editiert von Scrounger
                #109

                Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

                // 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;
                            }
                
                            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);
                    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;
                        }
                    }
                
                    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;
                            }
                        }
                    }
                }
                

                @Negalein sagte in View Adapter Status:

                Derzeit wird nach senkrechten Spalten sortiert.

                Das wird doch genau so sortiert?

                <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

                <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

                NegaleinN O 2 Antworten Letzte Antwort
                0
                • ScroungerS Scrounger

                  Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

                  // 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;
                              }
                  
                              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);
                      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;
                          }
                      }
                  
                      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;
                              }
                          }
                      }
                  }
                  

                  @Negalein sagte in View Adapter Status:

                  Derzeit wird nach senkrechten Spalten sortiert.

                  Das wird doch genau so sortiert?

                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  schrieb am zuletzt editiert von Negalein
                  #110

                  @Scrounger sagte in View Adapter Status:

                  Das wird doch genau so sortiert?

                  nicht immer


                  vis (28).png


                  vis (31).png

                  Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

                  Ist das Script eine neue Version?

                  ° Node.js: 20.17.0 NPM: 10.8.2
                  ° Proxmox, Ubuntu 22.04.3 LTS
                  ° Fixer ---> iob fix

                  ScroungerS 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @Scrounger sagte in View Adapter Status:

                    Das wird doch genau so sortiert?

                    nicht immer


                    vis (28).png


                    vis (31).png

                    Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

                    Ist das Script eine neue Version?

                    ScroungerS Offline
                    ScroungerS Offline
                    Scrounger
                    Developer
                    schrieb am zuletzt editiert von
                    #111

                    @Negalein sagte in View Adapter Status:

                    Ist das Script eine neue Version?

                    ja

                    <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

                    <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

                    NegaleinN 1 Antwort Letzte Antwort
                    0
                    • ScroungerS Scrounger

                      @Negalein sagte in View Adapter Status:

                      Ist das Script eine neue Version?

                      ja

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      schrieb am zuletzt editiert von
                      #112

                      @Scrounger sagte in View Adapter Status:

                      ja

                      perfekt

                      Sortierung funktioniert wieder

                      Und das beste ..... Ich bekomme keine Fehlermeldungen mehr

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      O 1 Antwort Letzte Antwort
                      0
                      • NegaleinN Negalein

                        @Scrounger sagte in View Adapter Status:

                        ja

                        perfekt

                        Sortierung funktioniert wieder

                        Und das beste ..... Ich bekomme keine Fehlermeldungen mehr

                        O Online
                        O Online
                        Oli
                        schrieb am zuletzt editiert von
                        #113

                        @Negalein

                        wie machst du das mit dem stoppen?

                        bei mir starten die Adapter nur neu?

                        Gruß
                        Oliver

                        NegaleinN 1 Antwort Letzte Antwort
                        0
                        • O Oli

                          @Negalein

                          wie machst du das mit dem stoppen?

                          bei mir starten die Adapter nur neu?

                          NegaleinN Offline
                          NegaleinN Offline
                          Negalein
                          Global Moderator
                          schrieb am zuletzt editiert von
                          #114

                          @Oli sagte in View Adapter Status:

                          wie machst du das mit dem stoppen?

                          Zeile 18
                          let neustarten = true;auf falseändern

                          ° Node.js: 20.17.0 NPM: 10.8.2
                          ° Proxmox, Ubuntu 22.04.3 LTS
                          ° Fixer ---> iob fix

                          O 1 Antwort Letzte Antwort
                          0
                          • ScroungerS Scrounger

                            Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

                            // 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;
                                        }
                            
                                        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);
                                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;
                                    }
                                }
                            
                                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;
                                        }
                                    }
                                }
                            }
                            

                            @Negalein sagte in View Adapter Status:

                            Derzeit wird nach senkrechten Spalten sortiert.

                            Das wird doch genau so sortiert?

                            O Online
                            O Online
                            Oli
                            schrieb am zuletzt editiert von Oli
                            #115

                            @Scrounger

                            danke für das tolle Script, funktioniert super.

                            Könntest du mich vielleicht bei CSS etwas unterstützen?
                            Egal was ich bereits versucht habe, ich bekomme Rahmen und Schatten nur um das gesamte Widget aber leider nicht um die einzelnen Cards.

                            Eine Frage hätte ich noch, wie bekomme ich eine Linie mittels html unter den Adapternamen?

                            Gruß
                            Oliver

                            1 Antwort Letzte Antwort
                            0
                            • NegaleinN Negalein

                              @Oli sagte in View Adapter Status:

                              wie machst du das mit dem stoppen?

                              Zeile 18
                              let neustarten = true;auf falseändern

                              O Online
                              O Online
                              Oli
                              schrieb am zuletzt editiert von
                              #116

                              @Negalein

                              danke, wer lesen kann ist klar im Vorteil.

                              Gruß
                              Oliver

                              1 Antwort Letzte Antwort
                              0
                              • NegaleinN Negalein

                                @sigi234 sagte in View Adapter Status:

                                Ich denke das geht im Skript ab Zeile 54

                                Bingo, das wars :)
                                vis (26).png

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                schrieb am zuletzt editiert von
                                #117

                                @Negalein sagte in View Adapter Status:

                                vis (26).png

                                Ich finde die Zeile nicht , zum verändern der Card Farbe .
                                Bei mir unter 54 steht nichts .
                                Könntest du vielleicht ein Screenshot machen ?
                                Danke !

                                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                NegaleinN 1 Antwort Letzte Antwort
                                0
                                • GlasfaserG Glasfaser

                                  @Negalein sagte in View Adapter Status:

                                  vis (26).png

                                  Ich finde die Zeile nicht , zum verändern der Card Farbe .
                                  Bei mir unter 54 steht nichts .
                                  Könntest du vielleicht ein Screenshot machen ?
                                  Danke !

                                  NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  schrieb am zuletzt editiert von
                                  #118

                                  @Glasfaser sagte in View Adapter Status:

                                  Ich finde die Zeile nicht , zum verändern der Card Farbe .

                                  du meinst den schwarzen Hintergrund?
                                  Wird direkt im Widget eingestellt
                                  Edit vis (2).png

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  GlasfaserG 1 Antwort Letzte Antwort
                                  1
                                  • NegaleinN Negalein

                                    @Glasfaser sagte in View Adapter Status:

                                    Ich finde die Zeile nicht , zum verändern der Card Farbe .

                                    du meinst den schwarzen Hintergrund?
                                    Wird direkt im Widget eingestellt
                                    Edit vis (2).png

                                    GlasfaserG Offline
                                    GlasfaserG Offline
                                    Glasfaser
                                    schrieb am zuletzt editiert von
                                    #119

                                    @Negalein

                                    Ahh ..dachte im Script, , Danke .
                                    Sieht schon besser aus :+1:

                                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                    NegaleinN 1 Antwort Letzte Antwort
                                    0
                                    • GlasfaserG Glasfaser

                                      @Negalein

                                      Ahh ..dachte im Script, , Danke .
                                      Sieht schon besser aus :+1:

                                      NegaleinN Offline
                                      NegaleinN Offline
                                      Negalein
                                      Global Moderator
                                      schrieb am zuletzt editiert von
                                      #120

                                      @Glasfaser sagte in View Adapter Status:

                                      Ahh ..dachte im Script, , Danke .

                                      Und mir ist mit der Schriftfarbe so gegangen. Hab im Widget danach gesucht. :grin:

                                      ° Node.js: 20.17.0 NPM: 10.8.2
                                      ° Proxmox, Ubuntu 22.04.3 LTS
                                      ° Fixer ---> iob fix

                                      ScroungerS 1 Antwort Letzte Antwort
                                      1
                                      • ScroungerS Scrounger

                                        So hier ist die verbesserte Variante des Skriptes, die auch die ganzen Warn Meldungen abfangen sollte

                                        3c38829c-b368-4c0c-b312-7531dc59bff5-grafik.png

                                        // 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;
                                                    }
                                        
                                                    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);
                                            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;
                                                }
                                            }
                                        
                                            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;
                                                    }
                                                }
                                            }
                                        }
                                        

                                        Ihr könnt jetzt Einstellungen vornehmen, erklärung steht im kommentar

                                        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 = 10;                                                   // 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
                                        

                                        @Oli sagte in View Adapter Status:

                                        Die Info wenn ein Adapter gelb ist steht unter:
                                        "system.adapter.backitup.0.connected"

                                        Das ist aber nicht der Status für connection, dieser steht unter adapter.x.info.connection. Hab es gleich mal mit eingebaut ;-)

                                        sigi234S Online
                                        sigi234S Online
                                        sigi234
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #121

                                        @Scrounger sagte in View Adapter Status:

                                        die auch die ganzen Warn Meldungen abfangen sollte

                                        Leider noch nicht.

                                        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                        Immer Daten sichern!

                                        ScroungerS 1 Antwort Letzte Antwort
                                        0
                                        • sigi234S sigi234

                                          @Scrounger sagte in View Adapter Status:

                                          die auch die ganzen Warn Meldungen abfangen sollte

                                          Leider noch nicht.

                                          ScroungerS Offline
                                          ScroungerS Offline
                                          Scrounger
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #122

                                          @sigi234 sagte in View Adapter Status:

                                          @Scrounger sagte in View Adapter Status:

                                          die auch die ganzen Warn Meldungen abfangen sollte

                                          Leider noch nicht.

                                          Welche?...

                                          <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

                                          <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

                                          sigi234S 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          829

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe