Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Material Design Widgets: Skript Status

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    993

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Material Design Widgets: Skript Status

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
material design widgetsvisiconlistviewview adapteradapterstatusanzeige
56 Posts 13 Posters 13.1k Views 29 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D3ltoroxpD D3ltoroxp

    @Scrounger said in Material Design Widgets: Skript Status:

    Benötigte libraries & Einstellungen im Javascript Adapter:

    Was ist das für ein Pfad, selbst erstellt, egal wohin und wie er heißt ?

    D:\iobroker\devBroker\scripts
    

    iobroker muss halt Schreibrechte haben ?

    Dann das Script, erstellt er die Datenpunkte selber unter userdata ? Wenn ja klappt das bei mir nicht.
    Unten steht nur folgendes ..

    14:30:36.053	info	javascript.0 (6342) Start javascript script.js.VIS.Script_Status_für_VIS
    14:30:36.177	warn	javascript.0 (6342) at skriptStatus (script.js.VIS.Script_Status_für_VIS:214:13)
    14:30:36.177	warn	javascript.0 (6342) at script.js.VIS.Script_Status_für_VIS:270:1
    14:30:36.178	info	javascript.0 (6342) script.js.VIS.Script_Status_für_VIS: registered 81 subscriptions and 1 schedule
    14:30:36.241	warn	javascript.0 (6342) at Object.skriptStatus (script.js.VIS.Script_Status_für_VIS:214:13)
    14:30:47.114	info	javascript.0 (6342) Stop script script.js.VIS.Script_Status_für_VIS
    
    ScroungerS Offline
    ScroungerS Offline
    Scrounger
    Developer
    wrote on last edited by Scrounger
    #41

    @D3ltoroxp sagte in Material Design Widgets: Skript Status:

    Was ist das für ein Pfad, selbst erstellt, egal wohin und wie er heißt ?

    D:\iobroker\devBroker\scripts
    

    Hat nichts mit dem Skript zu tun, einfach ignorieren, ist halt auf dem Screenshot mit drauf.

    Dann das Script, erstellt er die Datenpunkte selber unter userdata ? Wenn ja klappt das bei mir nicht.

    Nein, Datenpunkte müssen selbst angelegt werden.

    1 Reply Last reply
    1
    • D3ltoroxpD Offline
      D3ltoroxpD Offline
      D3ltoroxp
      wrote on last edited by
      #42

      Dann passt es vielen Dank. Die json List ist auch schon voll.

      1 Reply Last reply
      0
      • D3ltoroxpD Offline
        D3ltoroxpD Offline
        D3ltoroxp
        wrote on last edited by D3ltoroxp
        #43

        Diese Scrollleiste ist nur auf dem PC Browser zu sehen ? Auf dem Tablet gibt es die Leiste nicht, ist das normal, oder stimmt da was nicht bei mir ? Scrollen geht, aber es fehlt der Scrollbalken wenn ich das am Tablet anschaue.

        Habe deine View importiert und in view in 8 view Widget ausgewählt. Die 8 view ist auf meine Displaygröße angepasst. (1280x800)

        a0abb5ee-c65b-4b90-8a59-d5d05729e074-image.png

        Und bekommt man das evtl. raus ? (Den Text)

        8f630570-bbcc-4370-9cc9-6caba95169e7-image.png

        Uwe ClementU 1 Reply Last reply
        0
        • D3ltoroxpD D3ltoroxp

          Diese Scrollleiste ist nur auf dem PC Browser zu sehen ? Auf dem Tablet gibt es die Leiste nicht, ist das normal, oder stimmt da was nicht bei mir ? Scrollen geht, aber es fehlt der Scrollbalken wenn ich das am Tablet anschaue.

          Habe deine View importiert und in view in 8 view Widget ausgewählt. Die 8 view ist auf meine Displaygröße angepasst. (1280x800)

          a0abb5ee-c65b-4b90-8a59-d5d05729e074-image.png

          Und bekommt man das evtl. raus ? (Den Text)

          8f630570-bbcc-4370-9cc9-6caba95169e7-image.png

          Uwe ClementU Offline
          Uwe ClementU Offline
          Uwe Clement
          wrote on last edited by
          #44

          @D3ltoroxp ist mir gestern auch bei bmeiner Iconlist aufgefallen. Nutze meine Visualisierung bisher nur am PC und wollte es mal auf dem Tablet ausprobieren. Da sah ich keine Scrollbar.

          D3ltoroxpD 1 Reply Last reply
          0
          • Uwe ClementU Uwe Clement

            @D3ltoroxp ist mir gestern auch bei bmeiner Iconlist aufgefallen. Nutze meine Visualisierung bisher nur am PC und wollte es mal auf dem Tablet ausprobieren. Da sah ich keine Scrollbar.

            D3ltoroxpD Offline
            D3ltoroxpD Offline
            D3ltoroxp
            wrote on last edited by
            #45

            @Uwe-Clement vllt weil man am PC nicht per Touch scrollen kann, am Tablet aber schon. Man braucht den Balken am Tablet ja nicht, aber es wäre ein Indikator dafür, das es noch weiter nach unten geht.

            Uwe ClementU 1 Reply Last reply
            0
            • D3ltoroxpD D3ltoroxp

              @Uwe-Clement vllt weil man am PC nicht per Touch scrollen kann, am Tablet aber schon. Man braucht den Balken am Tablet ja nicht, aber es wäre ein Indikator dafür, das es noch weiter nach unten geht.

              Uwe ClementU Offline
              Uwe ClementU Offline
              Uwe Clement
              wrote on last edited by
              #46

              @D3ltoroxp

              stimmt schon. Problem war beim nach unten scrollen immer, dass die ganze Seite als "Reload" erkannt wird. d.h. das nach unten ziehen wurde als ganze Seite aktualisieren erkannt von meiner "Wallpaper" App....

              D3ltoroxpD 1 Reply Last reply
              0
              • Uwe ClementU Uwe Clement

                @D3ltoroxp

                stimmt schon. Problem war beim nach unten scrollen immer, dass die ganze Seite als "Reload" erkannt wird. d.h. das nach unten ziehen wurde als ganze Seite aktualisieren erkannt von meiner "Wallpaper" App....

                D3ltoroxpD Offline
                D3ltoroxpD Offline
                D3ltoroxp
                wrote on last edited by
                #47

                @Uwe-Clement Das Problem hatte ich beim Fully auch, daher hatte ich das erst mal wieder deaktiviert.

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  derrapf
                  wrote on last edited by derrapf
                  #48

                  Hallo alle
                  Habe das Script von Seite 1 importiert, aber bei mir wirft es zig Fehler:
                  2021-04-16 00_49_13-Kalender - Ralf.Zaisser@dscsag.com - Outlook.jpg 2021-04-16 00_48_45-javascript - ioBroker.jpg 2021-04-16 00_48_21-javascript - ioBroker.jpg 2021-04-16 00_47_39-javascript - ioBroker.jpg
                  usw.
                  Was stimmt denn hier nicht?
                  Gruss Ralf

                  sigi234S NegaleinN 2 Replies Last reply
                  0
                  • D derrapf

                    Hallo alle
                    Habe das Script von Seite 1 importiert, aber bei mir wirft es zig Fehler:
                    2021-04-16 00_49_13-Kalender - Ralf.Zaisser@dscsag.com - Outlook.jpg 2021-04-16 00_48_45-javascript - ioBroker.jpg 2021-04-16 00_48_21-javascript - ioBroker.jpg 2021-04-16 00_47_39-javascript - ioBroker.jpg
                    usw.
                    Was stimmt denn hier nicht?
                    Gruss Ralf

                    sigi234S Online
                    sigi234S Online
                    sigi234
                    Forum Testing Most Active
                    wrote on last edited by
                    #49

                    @derrapf

                    DP's Richtig angelegt und im JS Adapter alles eingetragen wie auf den Screenshot?

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

                    D 1 Reply Last reply
                    0
                    • D derrapf

                      Hallo alle
                      Habe das Script von Seite 1 importiert, aber bei mir wirft es zig Fehler:
                      2021-04-16 00_49_13-Kalender - Ralf.Zaisser@dscsag.com - Outlook.jpg 2021-04-16 00_48_45-javascript - ioBroker.jpg 2021-04-16 00_48_21-javascript - ioBroker.jpg 2021-04-16 00_47_39-javascript - ioBroker.jpg
                      usw.
                      Was stimmt denn hier nicht?
                      Gruss Ralf

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      wrote on last edited by
                      #50

                      @derrapf sagte in Material Design Widgets: Skript Status:

                      aber bei mir wirft es zig Fehler:

                      du meinst jetzt nur die roten Wellenlinien? Das sind nicht unbedingt Fehler.
                      Hast du das Script schon mal gestartet? Läuft es, oder kommen dann echte Fehler?

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

                      1 Reply Last reply
                      0
                      • sigi234S sigi234

                        @derrapf

                        DP's Richtig angelegt und im JS Adapter alles eingetragen wie auf den Screenshot?

                        D Offline
                        D Offline
                        derrapf
                        wrote on last edited by
                        #51

                        @sigi234
                        Ich hab's so gemacht (hoffentlich richtig). Stand nirgends wie es geht; ich hab dann einfach den Text "moment" usw. eingetragen:
                        a0be6e24-deee-4535-808b-7348d7e7a281-image.png

                        DP's Richtig angelegt
                        

                        Öh.. welche meinst Du?

                        Das sind nicht unbedingt Fehler.
                        Hast du das Script schon mal gestartet? 
                        

                        Nee. Normalerweise bin ich es gewöhnt, dass ich das gar nicht erst probieren muss wenn die Entwicklungsumgebung Fehler wirft. Vor allem dann wenn es angeblich eine Methode nicht gibt.
                        Aber ich kann's mal probieren.
                        Moment...
                        Yep. Wie erwartet:
                        9f9c0e18-feb3-4fb3-a302-0c80ecdb5eed-image.png

                        Gruss Ralf

                        sigi234S 1 Reply Last reply
                        0
                        • D derrapf

                          @sigi234
                          Ich hab's so gemacht (hoffentlich richtig). Stand nirgends wie es geht; ich hab dann einfach den Text "moment" usw. eingetragen:
                          a0be6e24-deee-4535-808b-7348d7e7a281-image.png

                          DP's Richtig angelegt
                          

                          Öh.. welche meinst Du?

                          Das sind nicht unbedingt Fehler.
                          Hast du das Script schon mal gestartet? 
                          

                          Nee. Normalerweise bin ich es gewöhnt, dass ich das gar nicht erst probieren muss wenn die Entwicklungsumgebung Fehler wirft. Vor allem dann wenn es angeblich eine Methode nicht gibt.
                          Aber ich kann's mal probieren.
                          Moment...
                          Yep. Wie erwartet:
                          9f9c0e18-feb3-4fb3-a302-0c80ecdb5eed-image.png

                          Gruss Ralf

                          sigi234S Online
                          sigi234S Online
                          sigi234
                          Forum Testing Most Active
                          wrote on last edited by sigi234
                          #52

                          @derrapf
                          Du brauchst 4 DP
                          Wie im Skript steht. Zeile 5,6,8,9

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

                          D 1 Reply Last reply
                          0
                          • sigi234S sigi234

                            @derrapf
                            Du brauchst 4 DP
                            Wie im Skript steht. Zeile 5,6,8,9

                            D Offline
                            D Offline
                            derrapf
                            wrote on last edited by
                            #53

                            @sigi234 Hab ich angelegt
                            30f73271-df25-481a-b2f5-c4dcf0b90d92-image.png
                            Aber das ändert nichts.
                            Gruss Ralf

                            NegaleinN GlasfaserG 2 Replies Last reply
                            0
                            • D derrapf

                              @sigi234 Hab ich angelegt
                              30f73271-df25-481a-b2f5-c4dcf0b90d92-image.png
                              Aber das ändert nichts.
                              Gruss Ralf

                              NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              wrote on last edited by
                              #54

                              @derrapf sagte in Material Design Widgets: Skript Status:

                              Aber das ändert nichts.

                              stell mal dein Script hier rein.

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

                              1 Reply Last reply
                              0
                              • D derrapf

                                @sigi234 Hab ich angelegt
                                30f73271-df25-481a-b2f5-c4dcf0b90d92-image.png
                                Aber das ändert nichts.
                                Gruss Ralf

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                wrote on last edited by Glasfaser
                                #55

                                @derrapf

                                Das Script wurde nicht richtig runtergeladen , es hat dann Fehler , dadurch die Error Meldung .

                                ... compile   ....
                                

                                Lade es nochmal runter !!

                                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 ..

                                1 Reply Last reply
                                0
                                • ScroungerS Scrounger

                                  Skript zur Anzeige des Status aller Skripte mit dem Material Design IconList Widget

                                  Mit diesem Skript wird ein json string erzeugt mit dem Status aller Skripte. Diese Daten (Datenpunkt) kann dann im Material Design IconList Widget verwendet werden, um den Status der Skripte im VIS anzuzeigen.

                                  letzte Aktualierung: 04.03.2020

                                  Skript_Status.gif

                                  Voraussetzung:

                                  • Material Design Widgets v0.2.62

                                  Funktionen:

                                  • Anzeige des Status aller Skripte (Aktiviert, Deakitivert, Fehler)
                                  • Anzeige von Werten der Skripte(Sprache, letzte Änderung, Ordner)
                                  • Neustarten / Starten / Stoppen von Skripten
                                  • Sortier und Filter Funktion
                                  • Einstellungen, siehe im Skript Sektion Einstellungen, Funktion der Einstellungen ist dort als Kommentar beschrieben.

                                  Ist auch im Online Beispiel enthalten

                                  View zum importieren:

                                  {
                                    "settings": {
                                      "style": {
                                        "background_class": ""
                                      },
                                      "theme": "redmond",
                                      "sizex": "",
                                      "sizey": "",
                                      "gridSize": "",
                                      "snapType": null
                                    },
                                    "widgets": {
                                      "e00001": {
                                        "tpl": "tplVis-materialdesign-Icon-List",
                                        "data": {
                                          "g_fixed": false,
                                          "g_visibility": false,
                                          "g_css_font_text": false,
                                          "g_css_background": false,
                                          "g_css_shadow_padding": false,
                                          "g_css_border": false,
                                          "g_gestures": false,
                                          "g_signals": false,
                                          "g_last_change": false,
                                          "visibility-cond": "==",
                                          "visibility-val": 1,
                                          "visibility-groups-action": "hide",
                                          "wrapItems": true,
                                          "listItemDataMethod": "jsonStringObject",
                                          "countListItems": "1",
                                          "vibrateOnMobilDevices": "50",
                                          "listLayout": "card",
                                          "itemLayout": "horizontal",
                                          "listType0": "text",
                                          "showValueLabel0": "true",
                                          "listType1": "text",
                                          "showValueLabel1": "true",
                                          "signals-cond-0": "==",
                                          "signals-val-0": true,
                                          "signals-icon-0": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-0": 0,
                                          "signals-blink-0": false,
                                          "signals-horz-0": 0,
                                          "signals-vert-0": 0,
                                          "signals-hide-edit-0": false,
                                          "signals-cond-1": "==",
                                          "signals-val-1": true,
                                          "signals-icon-1": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-1": 0,
                                          "signals-blink-1": false,
                                          "signals-horz-1": 0,
                                          "signals-vert-1": 0,
                                          "signals-hide-edit-1": false,
                                          "signals-cond-2": "==",
                                          "signals-val-2": true,
                                          "signals-icon-2": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-2": 0,
                                          "signals-blink-2": false,
                                          "signals-horz-2": 0,
                                          "signals-vert-2": 0,
                                          "signals-hide-edit-2": false,
                                          "lc-type": "last-change",
                                          "lc-is-interval": true,
                                          "lc-is-moment": false,
                                          "lc-format": "",
                                          "lc-position-vert": "top",
                                          "lc-position-horz": "right",
                                          "lc-offset-vert": 0,
                                          "lc-offset-horz": 0,
                                          "lc-font-size": "12px",
                                          "lc-font-family": "",
                                          "lc-font-style": "",
                                          "lc-bkg-color": "",
                                          "lc-color": "",
                                          "lc-border-width": "0",
                                          "lc-border-style": "",
                                          "lc-border-color": "",
                                          "lc-border-radius": 10,
                                          "lc-zindex": 0,
                                          "json_string_oid": "0_userdata.0.vis.SkriptStatus.jsonList",
                                          "maxItemsperRow": "6",
                                          "iconItemMinWidth": "280",
                                          "iconHeight": "35",
                                          "buttonHeight": "70",
                                          "labelFontSize": "22",
                                          "subLabelFontSize": "14",
                                          "subLabelFontColor": "#000000",
                                          "labelFontFamily": "RobotoCondensed-Regular",
                                          "subLabelFontFamily": "RobotoCondensed-Light",
                                          "horizontalIconContainerWidth": "70"
                                        },
                                        "style": {
                                          "left": "0px",
                                          "top": "50px",
                                          "width": "100%",
                                          "height": "calc(100% - 50px)",
                                          "overflow-x": "",
                                          "overflow-y": "auto",
                                          "z-index": "1"
                                        },
                                        "widgetSet": "materialdesign"
                                      },
                                      "e00002": {
                                        "tpl": "tplHtml",
                                        "data": {
                                          "g_fixed": false,
                                          "g_visibility": false,
                                          "g_css_font_text": false,
                                          "g_css_background": true,
                                          "g_css_shadow_padding": false,
                                          "g_css_border": false,
                                          "g_gestures": false,
                                          "g_signals": false,
                                          "g_last_change": false,
                                          "visibility-cond": "==",
                                          "visibility-val": 1,
                                          "visibility-groups-action": "hide",
                                          "refreshInterval": "0",
                                          "signals-cond-0": "==",
                                          "signals-val-0": true,
                                          "signals-icon-0": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-0": 0,
                                          "signals-blink-0": false,
                                          "signals-horz-0": 0,
                                          "signals-vert-0": 0,
                                          "signals-hide-edit-0": false,
                                          "signals-cond-1": "==",
                                          "signals-val-1": true,
                                          "signals-icon-1": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-1": 0,
                                          "signals-blink-1": false,
                                          "signals-horz-1": 0,
                                          "signals-vert-1": 0,
                                          "signals-hide-edit-1": false,
                                          "signals-cond-2": "==",
                                          "signals-val-2": true,
                                          "signals-icon-2": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-2": 0,
                                          "signals-blink-2": false,
                                          "signals-horz-2": 0,
                                          "signals-vert-2": 0,
                                          "signals-hide-edit-2": false,
                                          "lc-type": "last-change",
                                          "lc-is-interval": true,
                                          "lc-is-moment": false,
                                          "lc-format": "",
                                          "lc-position-vert": "top",
                                          "lc-position-horz": "right",
                                          "lc-offset-vert": 0,
                                          "lc-offset-horz": 0,
                                          "lc-font-size": "12px",
                                          "lc-font-family": "",
                                          "lc-font-style": "",
                                          "lc-bkg-color": "",
                                          "lc-color": "",
                                          "lc-border-width": "0",
                                          "lc-border-style": "",
                                          "lc-border-color": "",
                                          "lc-border-radius": 10,
                                          "lc-zindex": 0
                                        },
                                        "style": {
                                          "left": "0",
                                          "top": "0",
                                          "width": "100%",
                                          "height": "50px",
                                          "background-color": "#44739e"
                                        },
                                        "widgetSet": "basic"
                                      },
                                      "e00003": {
                                        "tpl": "tplVis-materialdesign-Select",
                                        "data": {
                                          "oid": "0_userdata.0.vis.SkriptStatus.sortMode",
                                          "g_fixed": false,
                                          "g_visibility": false,
                                          "g_css_font_text": false,
                                          "g_css_background": false,
                                          "g_css_shadow_padding": false,
                                          "g_css_border": false,
                                          "g_gestures": false,
                                          "g_signals": false,
                                          "g_last_change": false,
                                          "visibility-cond": "==",
                                          "visibility-val": 1,
                                          "visibility-groups-action": "hide",
                                          "inputType": "text",
                                          "inputLayout": "regular",
                                          "showInputMessageAlways": "true",
                                          "showInputCounter": false,
                                          "clearIconShow": false,
                                          "listDataMethod": "jsonStringObject",
                                          "countSelectItems": "1",
                                          "listPosition": "bottom",
                                          "showSelectedIcon": "prepend-inner",
                                          "showValue": false,
                                          "signals-cond-0": "==",
                                          "signals-val-0": true,
                                          "signals-icon-0": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-0": 0,
                                          "signals-blink-0": false,
                                          "signals-horz-0": 0,
                                          "signals-vert-0": 0,
                                          "signals-hide-edit-0": false,
                                          "signals-cond-1": "==",
                                          "signals-val-1": true,
                                          "signals-icon-1": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-1": 0,
                                          "signals-blink-1": false,
                                          "signals-horz-1": 0,
                                          "signals-vert-1": 0,
                                          "signals-hide-edit-1": false,
                                          "signals-cond-2": "==",
                                          "signals-val-2": true,
                                          "signals-icon-2": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-2": 0,
                                          "signals-blink-2": false,
                                          "signals-horz-2": 0,
                                          "signals-vert-2": 0,
                                          "signals-hide-edit-2": false,
                                          "lc-type": "last-change",
                                          "lc-is-interval": true,
                                          "lc-is-moment": false,
                                          "lc-format": "",
                                          "lc-position-vert": "top",
                                          "lc-position-horz": "right",
                                          "lc-offset-vert": 0,
                                          "lc-offset-horz": 0,
                                          "lc-font-size": "12px",
                                          "lc-font-family": "",
                                          "lc-font-style": "",
                                          "lc-bkg-color": "",
                                          "lc-color": "",
                                          "lc-border-width": "0",
                                          "lc-border-style": "",
                                          "lc-border-color": "",
                                          "lc-border-radius": 10,
                                          "lc-zindex": 0,
                                          "inputLabelText": "Sortieren nach",
                                          "inputLabelColor": "#ffffff",
                                          "inputLabelFontFamily": "RobotoCondensed-LightItalic",
                                          "collapseIconColor": "#ffffff",
                                          "collapseIconSize": "",
                                          "jsonStringObject": "[\n\t{\n\t\t\"text\": \"Skriptname\",\n\t\t\"value\": \"name\",\n\t\t\"icon\": \"sort-alphabetical\"\n\t},\n\t{\n\t\t\"text\": \"letzte Änderung\",\n\t\t\"value\": \"lastChange\",\n\t\t\"icon\": \"clock-outline\"\n\t},\n\t{\n\t\t\"text\": \"Status\",\n\t\t\"value\": \"status\",\n\t\t\"icon\": \"information-variant\"\n\t},\n\t{\n\t\t\"text\": \"Ordner\",\n\t\t\"value\": \"folder\",\n\t\t\"icon\": \"folder\"\n\t}\t\n]",
                                          "listPositionOffset": true,
                                          "inputLayoutBackgroundColor": "transparent",
                                          "inputLabelColorSelected": "#ffffff",
                                          "inputTranslateX": "-15",
                                          "clearIcon": "",
                                          "inputLayoutBorderColorHover": "#ffffff",
                                          "inputLayoutBorderColorSelected": "#ffffff",
                                          "inputLayoutBorderColor": "#a1a1a1",
                                          "listItemFontColor": "",
                                          "inputTextColor": "#ffffff",
                                          "inputTextFontFamily": "RobotoCondensed-LightItalic",
                                          "prepandIcon": "",
                                          "prepandIconColor": "",
                                          "prepandIconSize": "",
                                          "prepandInnerIcon": "",
                                          "prepandInnerIconColor": "#ffffff",
                                          "prepandInnerIconSize": "18",
                                          "collapseIcon": "",
                                          "inputTranslateY": "-12",
                                          "listIconSelectedColor": "#44739e",
                                          "listIconColor": "",
                                          "appendOuterIcon": "",
                                          "appendOuterIconSize": "2",
                                          "listItemFont": "RobotoCondensed-Regular",
                                          "listItemRippleEffectColor": "",
                                          "inputLayoutBackgroundColorSelected": "",
                                          "inputLayoutBackgroundColorHover": ""
                                        },
                                        "style": {
                                          "left": "10px",
                                          "top": "0px",
                                          "z-index": "1",
                                          "width": "calc(50% - 20px)",
                                          "height": "40px"
                                        },
                                        "widgetSet": "materialdesign"
                                      },
                                      "e00004": {
                                        "tpl": "tplVis-materialdesign-Select",
                                        "data": {
                                          "oid": "0_userdata.0.vis.SkriptStatus.filterMode",
                                          "g_fixed": false,
                                          "g_visibility": false,
                                          "g_css_font_text": false,
                                          "g_css_background": false,
                                          "g_css_shadow_padding": false,
                                          "g_css_border": false,
                                          "g_gestures": false,
                                          "g_signals": false,
                                          "g_last_change": false,
                                          "visibility-cond": "==",
                                          "visibility-val": 1,
                                          "visibility-groups-action": "hide",
                                          "inputType": "text",
                                          "inputLayout": "regular",
                                          "showInputMessageAlways": "true",
                                          "showInputCounter": false,
                                          "clearIconShow": true,
                                          "listDataMethod": "jsonStringObject",
                                          "countSelectItems": "1",
                                          "listPosition": "bottom",
                                          "showSelectedIcon": "prepend-inner",
                                          "showValue": false,
                                          "signals-cond-0": "==",
                                          "signals-val-0": true,
                                          "signals-icon-0": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-0": 0,
                                          "signals-blink-0": false,
                                          "signals-horz-0": 0,
                                          "signals-vert-0": 0,
                                          "signals-hide-edit-0": false,
                                          "signals-cond-1": "==",
                                          "signals-val-1": true,
                                          "signals-icon-1": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-1": 0,
                                          "signals-blink-1": false,
                                          "signals-horz-1": 0,
                                          "signals-vert-1": 0,
                                          "signals-hide-edit-1": false,
                                          "signals-cond-2": "==",
                                          "signals-val-2": true,
                                          "signals-icon-2": "/vis/signals/lowbattery.png",
                                          "signals-icon-size-2": 0,
                                          "signals-blink-2": false,
                                          "signals-horz-2": 0,
                                          "signals-vert-2": 0,
                                          "signals-hide-edit-2": false,
                                          "lc-type": "last-change",
                                          "lc-is-interval": true,
                                          "lc-is-moment": false,
                                          "lc-format": "",
                                          "lc-position-vert": "top",
                                          "lc-position-horz": "right",
                                          "lc-offset-vert": 0,
                                          "lc-offset-horz": 0,
                                          "lc-font-size": "12px",
                                          "lc-font-family": "",
                                          "lc-font-style": "",
                                          "lc-bkg-color": "",
                                          "lc-color": "",
                                          "lc-border-width": "0",
                                          "lc-border-style": "",
                                          "lc-border-color": "",
                                          "lc-border-radius": 10,
                                          "lc-zindex": 0,
                                          "inputLabelText": "Filtern nach",
                                          "inputLabelColor": "#ffffff",
                                          "inputLabelFontFamily": "RobotoCondensed-LightItalic",
                                          "collapseIconColor": "#ffffff",
                                          "collapseIconSize": "",
                                          "jsonStringObject": "[\n\t{\n\t\t\"text\": \"Fehler\",\n\t\t\"value\": \"error\",\n\t\t\"icon\": \"alert-box-outline\"\n\t},\n\t{\n\t\t\"text\": \"deaktiviert\",\n\t\t\"value\": \"deactivated\",\n\t\t\"icon\": \"checkbox-blank-outline\"\n\t},\t\n\t{\n\t\t\"text\": \"aktiviert\",\n\t\t\"value\": \"activated\",\n\t\t\"icon\": \"checkbox-intermediate\"\n\t}\n]",
                                          "listPositionOffset": true,
                                          "inputLayoutBackgroundColor": "transparent",
                                          "inputLabelColorSelected": "#ffffff",
                                          "inputTranslateX": "-15",
                                          "clearIcon": "",
                                          "inputLayoutBorderColorHover": "#ffffff",
                                          "inputLayoutBorderColorSelected": "#ffffff",
                                          "inputLayoutBorderColor": "#a1a1a1",
                                          "listItemFontColor": "",
                                          "inputTextColor": "#ffffff",
                                          "inputTextFontFamily": "RobotoCondensed-LightItalic",
                                          "prepandIcon": "",
                                          "prepandIconColor": "",
                                          "prepandIconSize": "",
                                          "prepandInnerIcon": "",
                                          "prepandInnerIconColor": "#ffffff",
                                          "prepandInnerIconSize": "18",
                                          "collapseIcon": "",
                                          "inputTranslateY": "-12",
                                          "listIconSelectedColor": "#44739e",
                                          "listIconColor": "",
                                          "appendOuterIcon": "",
                                          "appendOuterIconSize": "2",
                                          "listItemFont": "RobotoCondensed-Regular",
                                          "listItemRippleEffectColor": "",
                                          "inputLayoutBackgroundColorSelected": "",
                                          "inputLayoutBackgroundColorHover": "",
                                          "clearIconColor": "#ffffff"
                                        },
                                        "style": {
                                          "left": "calc(50% + 10px)",
                                          "top": "0px",
                                          "z-index": "1",
                                          "width": "calc(50% - 20px)",
                                          "height": "40px"
                                        },
                                        "widgetSet": "materialdesign"
                                      }
                                    },
                                    "name": "SkriptStatus",
                                    "filterList": []
                                  }
                                  

                                  Hier hab ich beschrieben, wie man das layout am besten einstellt:
                                  https://forum.iobroker.net/topic/30661/material-design-widgets-adapter-status/5

                                  Skript:

                                  const moment = require("moment");
                                  
                                  // Skript Einstellungen *************************************************************************************************************************************************
                                  
                                  let dpList = '0_userdata.0.vis.SkriptStatus.jsonList';                      // Datenpunkt für IconList Widget (Typ: Zeichenkette (String))
                                  let dpskriptRestart = '0_userdata.0.vis.SkriptStatus.restart';              // Datenpunkt für Skript restart (Typ: Zeichenkette (String))
                                  
                                  let dpSortMode = '0_userdata.0.vis.SkriptStatus.sortMode';                  // Datenpunkt für Sortieren (Typ: Zeichenkette (String))
                                  let dpFilterMode = '0_userdata.0.vis.SkriptStatus.filterMode';              // Datenpunkt für Filter (Typ: Zeichenkette (String))
                                  
                                  const checkInterval = 30;                                                   // Interval wie oft Status der Skripte aktualisiert werden soll (in Sekunden)
                                  
                                  let sprache = 'de';                                                         // Sprache für formatierung letzte Änderung
                                  let formatierungLastChange = "ddd DD.MM - HH:mm";                           // Formatierung letzte Änderung -> siehe momentjs library
                                  
                                  let neustarten = true;                                                      // true: Skript wird neugestartet, false: Skript wird gestoppt oder gestartet
                                  
                                  let farbeSkriptAktiv = 'green';                                             // Status Bar Farbe wenn Skript aktiv ist
                                  let farbeSkriptDeaktiviert = 'darkgrey';                                    // Status Bar Farbe wenn Skript deaktiviert ist
                                  let farbeSkriptProblem = 'FireBrick';                                       // Status Bar Farbe wenn Skript Problem hat
                                  
                                  let sortResetAfter = 120;                                                   // Sortierung nach X Sekunden auf sortReset zurücksetzen (0=deaktiviert)
                                  let sortReset = 'name'                                                      // Sortierung auf die zurückgesetzt werden soll
                                  
                                  let filterResetAfter = 120;                                                 // Filter nach X Sekunden zurücksetzen (0=deaktiviert)
                                  
                                  // **********************************************************************************************************************************************************************
                                  
                                  // Fomate für moment Lib
                                  moment.locale(sprache);
                                  
                                  // auf Änderungen aktiver Skripts hören
                                  let enableSelector = `[id=javascript.*.scriptEnabled.*]`;
                                  let skriptEnableList = $(enableSelector);
                                  if (skriptEnableList.length === 0) {
                                      // Fehlermeldung ausgeben, wenn selector kein result liefert
                                      console.error(`no result for selector '${enableSelector}'`)
                                  } else {
                                      // listener nur für Änderung bei alive
                                      skriptEnableList.on(skriptStatus);
                                  }
                                  
                                  // auf Änderungen Skripts mit Problemen hören
                                  let problemSelector = `[id=javascript.*.scriptProblem.*]`;
                                  let skriptProblemList = $(problemSelector);
                                  if (skriptProblemList.length === 0) {
                                      // Fehlermeldung ausgeben, wenn selector kein result liefert
                                      console.error(`no result for selector '${problemSelector}'`)
                                  } else {
                                      // listener nur für Änderung bei alive
                                      skriptProblemList.on(skriptStatus);
                                  }
                                  
                                  
                                  // auf Änderungen der Sortieung hören
                                  on({ id: dpSortMode, change: 'any' }, skriptStatus);
                                  on({ id: dpSortMode, change: 'any' }, resetSort);
                                  
                                  // auf Änderungen der Filter hören
                                  on({ id: dpFilterMode, change: 'any' }, skriptStatus);
                                  on({ id: dpFilterMode, change: 'any' }, resetFilter);
                                  
                                  
                                  // Funktion adapterStatus alle x Sekunden ausführen
                                  schedule('*/' + checkInterval + ' * * * * *', skriptStatus);
                                  
                                  function skriptStatus() {
                                      try {
                                          skriptList = [];
                                  
                                          for (var i = 0; i <= skriptEnableList.length - 1; i++) {
                                              let id = skriptEnableList[i];
                                              let obj = getObject(id);
                                  
                                              let scriptObj = undefined;
                                              let scriptName = '';
                                              let engineType = '';
                                              let lastChangeText = '';
                                              let lastChange = 0;
                                              let image = 'image-off-outline';
                                              let imageColor = '';
                                              let statusBarColor = farbeSkriptDeaktiviert;
                                              let status = 1;
                                  
                                  
                                              if (obj && obj !== null && obj.native && obj.native.script) {
                                                  scriptObj = getObject(obj.native.script);
                                  
                                                  if (scriptObj && scriptObj.common) {
                                                      if (scriptObj.common.name) {
                                                          scriptName = scriptObj.common.name;
                                                      }
                                  
                                                      if (scriptObj.common.engineType) {
                                                          engineType = scriptObj.common.engineType.replace('/js', '').replace('/ts', '');
                                  
                                                          if (engineType.toLowerCase() === 'Javascript'.toLowerCase()) {
                                                              image = 'language-javascript';
                                                              imageColor = '#ffca28';
                                                          } else if (engineType.toLowerCase() === 'TypeScript'.toLowerCase()) {
                                                              image = 'language-typescript';
                                                              imageColor = '#007acc';
                                                          } else if (engineType.toLowerCase() === 'Blockly'.toLowerCase()) {
                                                              image = 'puzzle';
                                                              imageColor = '#5a80a6';
                                                          }
                                                      }
                                  
                                                      if (scriptObj.ts) {
                                                          lastChange = scriptObj.ts;
                                                          lastChangeText = moment(scriptObj.ts).format(formatierungLastChange);
                                                      }
                                  
                                                      if (scriptObj.common.enabled) {
                                                          statusBarColor = farbeSkriptAktiv;
                                                          status = 0;
                                                      }
                                  
                                                      if (myHelper().getStateValueIfExist(id) === 'true') {
                                                          statusBarColor = farbeSkriptAktiv;
                                                          status = 0;
                                                      }
                                  
                                                      if (myHelper().getStateValueIfExist(id.replace('.scriptEnabled.', '.scriptProblem.'), false) === 'true') {
                                                          statusBarColor = farbeSkriptProblem;
                                                          status = 2;
                                                      }
                                  
                                                      let folder = '-';
                                                      let folderList = id.replace('javascript.0.scriptEnabled.').split(".");
                                                      if (folderList.length > 1) {
                                                          folder = id.replace('javascript.0.scriptEnabled.', '').replace('.' + folderList[folderList.length - 1], '');
                                                      }
                                  
                                                      let text = scriptName;
                                                      if (status === 2) {
                                                          text = `<span class="mdi mdi-alert-box-outline" style="color: #ec0909;"></span> ${scriptName}`
                                                      }
                                  
                                                      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;">Sprache</div>
                                                                          <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${engineType}</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;">letzte Änderung</div>
                                                                          <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${lastChangeText}</div>
                                                                      </div>
                                                                      <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px;">
                                                                          <div style="flex: 1;">Ordner</div>
                                                                          <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-overflow: ellipsis; white-space: normal; text-align: right;">${folder}</div>
                                                                      </div>`
                                  
                                                      skriptList.push({
                                                          text: text,
                                                          subText: subText,
                                                          statusBarColor: statusBarColor,
                                                          image: image,
                                                          imageColor: imageColor,
                                                          listType: "buttonState",
                                                          objectId: dpskriptRestart,
                                                          buttonStateValue: (obj && obj !== null && obj.native && obj.native.script) ? obj.native.script : '',
                                                          showValueLabel: false,
                                                          name: scriptName,
                                                          lastChange: lastChange,
                                                          status: status,
                                                          folder: folder
                                                      });
                                                  }
                                              }
                                          }
                                  
                                          let sortMode = myHelper().getStateValueIfExist(dpSortMode, 'name');
                                  
                                          if (sortMode === 'name') {
                                              skriptList.sort(function (a, b) {
                                                  return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                                              });
                                          } else if (sortMode === 'lastChange' || sortMode === 'status' || sortMode === 'folder') {
                                              skriptList.sort(function (a, b) {
                                                  return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] < b[sortMode]) || -1;
                                              });
                                          } else {
                                              // default: nach name sortieren
                                              sortMode = 'name'
                                              skriptList.sort(function (a, b) {
                                                  return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                                              });
                                          }
                                  
                                  
                                          let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
                                  
                                          if (filterMode && filterMode !== null && filterMode !== '') {
                                              if (filterMode === 'error') {
                                                  skriptList = skriptList.filter(function (item) {
                                                      return item.status === 2;
                                                  });
                                              } else if (filterMode === 'deactivated') {
                                                  skriptList = skriptList.filter(function (item) {
                                                      return item.status === 1;
                                                  });
                                              } else if (filterMode === 'activated') {
                                                  skriptList = skriptList.filter(function (item) {
                                                      return item.status === 0;
                                                  });
                                              }
                                          }
                                  
                                  
                                          let result = JSON.stringify(skriptList);
                                          if (existsState(dpList) && getState(dpList).val !== result) {
                                              setState(dpList, result, true);
                                          } else {
                                              setState(dpList, result, true);
                                          }
                                  
                                      } catch (err) {
                                          console.error(`[skriptStatus] error: ${err.message}, stack: ${err.stack}`);
                                      }
                                  }
                                  
                                  
                                  // // Funktion um Skript starten / Stoppen
                                  on({ id: dpskriptRestart }, function (obj) {
                                      var scriptObj = getObject(obj.state.val.toString());
                                  
                                      if (neustarten) {
                                          scriptObj.common.enabled = true;
                                          setObject(obj.state.val.toString(), scriptObj);
                                      }
                                      else {
                                          if (scriptObj && scriptObj.common) {
                                  
                                              if (scriptObj.common.enabled) {
                                                  scriptObj.common.enabled = false;
                                              } else {
                                                  scriptObj.common.enabled = true;
                                              }
                                  
                                              setObject(obj.state.val.toString(), scriptObj);
                                          }
                                      }
                                  });
                                  
                                  function resetSort() {
                                      let sortMode = myHelper().getStateValueIfExist(dpSortMode, null);
                                  
                                      if (sortResetAfter > 0) {
                                          setTimeout(function () {
                                              if (sortMode !== null && sortMode === myHelper().getStateValueIfExist(dpSortMode, null)) {
                                                  setState(dpSortMode, sortReset);
                                              }
                                          }, sortResetAfter * 1000);
                                      }
                                  }
                                  
                                  function resetFilter() {
                                      let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
                                  
                                      if (filterResetAfter > 0) {
                                          setTimeout(function () {
                                              if (filterMode !== null && filterMode === myHelper().getStateValueIfExist(dpFilterMode, null)) {
                                                  setState(dpFilterMode, '');
                                              }
                                          }, filterResetAfter * 1000);
                                      }
                                  }
                                  
                                  // Beim Staren des Skriptes Adapter Status abrufen
                                  skriptStatus();
                                  
                                  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;
                                              }
                                          }
                                      }
                                  }
                                  

                                  Benötigte libraries & Einstellungen im Javascript Adapter:
                                  6222b915-4e9e-4025-98ec-0baedcaed5b1-grafik.png

                                  GarganoG Offline
                                  GarganoG Offline
                                  Gargano
                                  wrote on last edited by
                                  #56

                                  @scrounger Hab Dein Script gerade runtergeladen und ausprobiert. Es gab eine ganze Menge Logs, der Grund ist, das ich einige Scripts disabled habe und diese werden dann als Log ausgeworfen (Object nicht gefunden).
                                  Grund ist in der Zeile 86 zu suchen : bei disabled Scripts ist obj.native.script nicht vorhanden.
                                  Dies ist die Änderung und damit geht es dann :

                                  if (obj && obj !== null && obj.native && obj.native.script && (await existsObjectAsynct(obj.native.script)===true)) {
                                  

                                  dazu noch die function auf async setzen

                                  async function skriptStatus() {
                                  
                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  756

                                  Online

                                  32.5k

                                  Users

                                  81.6k

                                  Topics

                                  1.3m

                                  Posts
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Home
                                  • Recent
                                  • Tags
                                  • Unread 0
                                  • Categories
                                  • Unreplied
                                  • Popular
                                  • GitHub
                                  • Docu
                                  • Hilfe