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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Sonoff Geräte als HTML Tabelle - Vis

NEWS

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

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

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

Sonoff Geräte als HTML Tabelle - Vis

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascriptmonitoringtemplate
632 Beiträge 34 Kommentatoren 134.1k Aufrufe 39 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.
  • liv-in-skyL liv-in-sky

    @Chaot aber doch nicht wegen es scriptes ?

    ChaotC Offline
    ChaotC Offline
    Chaot
    schrieb am zuletzt editiert von
    #15

    @liv-in-sky
    Nö, vermutlich nicht. Ich war zwar gerade mit dem Script zu Gange als sich alles aufgehängt hat, aber das hat bestimmt irgendwelche anderen Gründe.
    Jetzt muss ich mal schauen warum bei mir keine Daten in der Tabelle geschrieben werden.
    Wie identifizierst du die Module bzw. welcher Datenpunkt wird für die Erkennung benötigt?

    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

    liv-in-skyL 2 Antworten Letzte Antwort
    0
    • ChaotC Chaot

      @liv-in-sky
      Nö, vermutlich nicht. Ich war zwar gerade mit dem Script zu Gange als sich alles aufgehängt hat, aber das hat bestimmt irgendwelche anderen Gründe.
      Jetzt muss ich mal schauen warum bei mir keine Daten in der Tabelle geschrieben werden.
      Wie identifizierst du die Module bzw. welcher Datenpunkt wird für die Erkennung benötigt?

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #16

      @Chaot der .Module dp ist meist der ausgangspunkt

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • ChaotC Chaot

        @liv-in-sky
        Nö, vermutlich nicht. Ich war zwar gerade mit dem Script zu Gange als sich alles aufgehängt hat, aber das hat bestimmt irgendwelche anderen Gründe.
        Jetzt muss ich mal schauen warum bei mir keine Daten in der Tabelle geschrieben werden.
        Wie identifizierst du die Module bzw. welcher Datenpunkt wird für die Erkennung benötigt?

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #17

        @Chaot du kannst mir gerne ein json export von deiner sonoff instanz geben - vielleicht fällt mir was auf

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        ChaotC 2 Antworten Letzte Antwort
        0
        • liv-in-skyL liv-in-sky

          @Chaot du kannst mir gerne ein json export von deiner sonoff instanz geben - vielleicht fällt mir was auf

          ChaotC Offline
          ChaotC Offline
          Chaot
          schrieb am zuletzt editiert von
          #18

          @liv-in-sky Mir fällt schon was auf. Der Datenpunkt ist im Info Ordner oder?
          Der wird bei mir scheinbar nicht geschrieben.
          Tasmota 8.1.0.2
          Kann das möglich sein?

          ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

          liv-in-skyL 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @crunchip hi M

            ich suche ja tester diese erste version ist arg beschränkt ich habe mittlerweile noch ein paar dazugenommen -- bei mir haben einige geräte keinen info ordner und diese zu filternund darzustellen machte probleme

            in dernächsten version sollten dann mehr kommen

            habe auch einne zähler eingebaut, der die anzahl ausgibt

            crunchipC Abwesend
            crunchipC Abwesend
            crunchip
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #19

            @liv-in-sky ah ok, Info Ordner
            das heisst, daher ein Grund, da z.b. Gosund Stekdosen und Shelly mit Sonoff Software laufen und kein, z.b. (Sonoff basic) im Wert auftaucht, sondern der "ursprüngliche Geräte Name

            umgestiegen von Proxmox auf Unraid

            1 Antwort Letzte Antwort
            0
            • ChaotC Chaot

              @liv-in-sky Mir fällt schon was auf. Der Datenpunkt ist im Info Ordner oder?
              Der wird bei mir scheinbar nicht geschrieben.
              Tasmota 8.1.0.2
              Kann das möglich sein?

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von
              #20

              @Chaot ja - ich hatte ein paar geräte ohne info - die habe ich umständlich reingebracht - dieses script ist bei noch nicht online - einige sonoffs mußte ich neustarten, dann kam wieder der info ordner - auch di instanz habe eich mal neugestartet - seit dem letzten update habe ich ein paar probleme mit der schnelligkeit des adpters

              @crunchip vielleicht wird es mit dem neuen script besser - glaube nicht, dass dies heut noch klappt - eher morgen

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              crunchipC 1 Antwort Letzte Antwort
              0
              • liv-in-skyL liv-in-sky

                @Chaot du kannst mir gerne ein json export von deiner sonoff instanz geben - vielleicht fällt mir was auf

                ChaotC Offline
                ChaotC Offline
                Chaot
                schrieb am zuletzt editiert von Chaot
                #21

                @liv-in-sky
                Ok, jetzt haben wir ein Problem.
                Der Sonoff Adpter ist veraltet.

                Ich habe gerade den Grund gefunden warum kein Info Ordner geschrieben wird:

                In der Firmware vor 8.x.x.x war bei MQTT als Topic "sonoff" angegeben. Seit der 8.x.x.x steht da "tasmota"

                Wenn ich manuell den topic auf sonoff ändere kommt der Info Ordner.

                ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                1 Antwort Letzte Antwort
                0
                • liv-in-skyL liv-in-sky

                  @Chaot ja - ich hatte ein paar geräte ohne info - die habe ich umständlich reingebracht - dieses script ist bei noch nicht online - einige sonoffs mußte ich neustarten, dann kam wieder der info ordner - auch di instanz habe eich mal neugestartet - seit dem letzten update habe ich ein paar probleme mit der schnelligkeit des adpters

                  @crunchip vielleicht wird es mit dem neuen script besser - glaube nicht, dass dies heut noch klappt - eher morgen

                  crunchipC Abwesend
                  crunchipC Abwesend
                  crunchip
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #22

                  @liv-in-sky keine Eile, muss jetzt je zu Arbeit:blush:

                  umgestiegen von Proxmox auf Unraid

                  1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    schrieb am zuletzt editiert von
                    #23

                    meine sorgenkinder

                    Image 6.png

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    crunchipC 1 Antwort Letzte Antwort
                    0
                    • liv-in-skyL liv-in-sky

                      meine sorgenkinder

                      Image 6.png

                      crunchipC Abwesend
                      crunchipC Abwesend
                      crunchip
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #24

                      @liv-in-sky 4 kanal hab ich keinen, dein King Art wird bei dir angezeigt, meiner nicht

                      umgestiegen von Proxmox auf Unraid

                      liv-in-skyL 1 Antwort Letzte Antwort
                      0
                      • crunchipC crunchip

                        @liv-in-sky 4 kanal hab ich keinen, dein King Art wird bei dir angezeigt, meiner nicht

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #25

                        @crunchip kommt noch

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        ChaotC 1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL liv-in-sky

                          @crunchip kommt noch

                          ChaotC Offline
                          ChaotC Offline
                          Chaot
                          schrieb am zuletzt editiert von Chaot
                          #26

                          @liv-in-sky
                          Jetzt läuft ein Fehler auf:

                          
                          javascript.0	2020-01-14 20:56:16.877	error	(560) at Script.runInContext (vm.js:133:20)
                          javascript.0	2020-01-14 20:56:16.877	error	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                          javascript.0	2020-01-14 20:56:16.877	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:56:16.877	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:56:16.877	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                          javascript.0	2020-01-14 20:56:16.877	error	(560) TypeError: Cannot read property 'replace' of null
                          javascript.0	2020-01-14 20:56:16.877	error	(560) ^
                          javascript.0	2020-01-14 20:56:16.876	error	(560) val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                          javascript.0	2020-01-14 20:56:16.876	error	(560) script.js.Systeminfo.TasmotasNeu: script.js.Systeminfo.TasmotasNeu:229
                          javascript.0	2020-01-14 20:56:16.875	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                          javascript.0	2020-01-14 20:56:16.875	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:56:16.875	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:56:16.874	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                          javascript.0	2020-01-14 20:56:16.874	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                          javascript.0	2020-01-14 20:56:16.873	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                          javascript.0	2020-01-14 20:56:16.873	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:56:16.873	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:56:16.873	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                          javascript.0	2020-01-14 20:56:16.871	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                          javascript.0	2020-01-14 20:55:20.015	error	(560) at tryOnTimeout (timers.js:300:5)
                          javascript.0	2020-01-14 20:55:20.015	error	(560) at ontimeout (timers.js:436:11)
                          javascript.0	2020-01-14 20:55:20.014	error	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                          javascript.0	2020-01-14 20:55:20.014	error	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                          javascript.0	2020-01-14 20:55:20.014	error	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                          javascript.0	2020-01-14 20:55:20.014	error	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                          javascript.0	2020-01-14 20:55:20.014	error	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                          javascript.0	2020-01-14 20:55:20.014	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:55:20.013	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:55:20.013	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                          javascript.0	2020-01-14 20:55:20.013	error	(560) Error in callback: TypeError: Cannot read property 'replace' of null
                          javascript.0	2020-01-14 20:55:20.012	warn	(560) at Timer.processTimers (timers.js:223:10)
                          javascript.0	2020-01-14 20:55:20.012	warn	(560) at listOnTimeout (timers.js:263:5)
                          javascript.0	2020-01-14 20:55:20.012	warn	(560) at tryOnTimeout (timers.js:300:5)
                          javascript.0	2020-01-14 20:55:20.012	warn	(560) at ontimeout (timers.js:436:11)
                          javascript.0	2020-01-14 20:55:20.012	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                          javascript.0	2020-01-14 20:55:20.012	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                          javascript.0	2020-01-14 20:55:20.011	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                          javascript.0	2020-01-14 20:55:20.011	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                          javascript.0	2020-01-14 20:55:20.011	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                          javascript.0	2020-01-14 20:55:20.011	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:55:20.011	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:55:20.010	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                          javascript.0	2020-01-14 20:55:20.009	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                          javascript.0	2020-01-14 20:55:20.009	warn	(560) at Timer.processTimers (timers.js:223:10)
                          javascript.0	2020-01-14 20:55:20.009	warn	(560) at listOnTimeout (timers.js:263:5)
                          javascript.0	2020-01-14 20:55:20.009	warn	(560) at tryOnTimeout (timers.js:300:5)
                          javascript.0	2020-01-14 20:55:20.008	warn	(560) at ontimeout (timers.js:436:11)
                          javascript.0	2020-01-14 20:55:20.008	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                          javascript.0	2020-01-14 20:55:20.008	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                          javascript.0	2020-01-14 20:55:20.008	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                          javascript.0	2020-01-14 20:55:20.008	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                          javascript.0	2020-01-14 20:55:20.008	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                          javascript.0	2020-01-14 20:55:20.007	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:55:20.007	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:55:20.007	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                          javascript.0	2020-01-14 20:55:20.006	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                          javascript.0	2020-01-14 20:55:00.017	error	(560) at tryOnTimeout (timers.js:300:5)
                          javascript.0	2020-01-14 20:55:00.017	error	(560) at ontimeout (timers.js:436:11)
                          javascript.0	2020-01-14 20:55:00.017	error	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                          javascript.0	2020-01-14 20:55:00.017	error	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                          javascript.0	2020-01-14 20:55:00.017	error	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                          javascript.0	2020-01-14 20:55:00.016	error	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                          javascript.0	2020-01-14 20:55:00.016	error	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                          javascript.0	2020-01-14 20:55:00.016	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:55:00.016	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:55:00.016	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                          javascript.0	2020-01-14 20:55:00.015	error	(560) Error in callback: TypeError: Cannot read property 'replace' of null
                          javascript.0	2020-01-14 20:55:00.014	warn	(560) at Timer.processTimers (timers.js:223:10)
                          javascript.0	2020-01-14 20:55:00.014	warn	(560) at listOnTimeout (timers.js:263:5)
                          javascript.0	2020-01-14 20:55:00.014	warn	(560) at tryOnTimeout (timers.js:300:5)
                          javascript.0	2020-01-14 20:55:00.014	warn	(560) at ontimeout (timers.js:436:11)
                          javascript.0	2020-01-14 20:55:00.014	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                          javascript.0	2020-01-14 20:55:00.013	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                          javascript.0	2020-01-14 20:55:00.013	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                          javascript.0	2020-01-14 20:55:00.013	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                          javascript.0	2020-01-14 20:55:00.013	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                          javascript.0	2020-01-14 20:55:00.013	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:55:00.013	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:55:00.012	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                          javascript.0	2020-01-14 20:55:00.012	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                          javascript.0	2020-01-14 20:55:00.011	warn	(560) at Timer.processTimers (timers.js:223:10)
                          javascript.0	2020-01-14 20:55:00.011	warn	(560) at listOnTimeout (timers.js:263:5)
                          javascript.0	2020-01-14 20:55:00.011	warn	(560) at tryOnTimeout (timers.js:300:5)
                          javascript.0	2020-01-14 20:55:00.011	warn	(560) at ontimeout (timers.js:436:11)
                          javascript.0	2020-01-14 20:55:00.011	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                          javascript.0	2020-01-14 20:55:00.011	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                          javascript.0	2020-01-14 20:55:00.011	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                          javascript.0	2020-01-14 20:55:00.010	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                          javascript.0	2020-01-14 20:55:00.010	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                          javascript.0	2020-01-14 20:55:00.010	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:55:00.009	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:55:00.007	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                          javascript.0	2020-01-14 20:55:00.006	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                          

                          javascript.0	2020-01-14 20:58:25.771	error	(560) at Script.runInContext (vm.js:133:20)
                          javascript.0	2020-01-14 20:58:25.771	error	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                          javascript.0	2020-01-14 20:58:25.771	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:58:25.770	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:58:25.770	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                          javascript.0	2020-01-14 20:58:25.770	error	(560) TypeError: Cannot read property 'replace' of null
                          javascript.0	2020-01-14 20:58:25.770	error	(560) ^
                          javascript.0	2020-01-14 20:58:25.770	error	(560) val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                          javascript.0	2020-01-14 20:58:25.769	error	(560) script.js.Systeminfo.TasmotasNeu: script.js.Systeminfo.TasmotasNeu:229
                          javascript.0	2020-01-14 20:58:25.769	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                          javascript.0	2020-01-14 20:58:25.769	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:58:25.768	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:58:25.768	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                          javascript.0	2020-01-14 20:58:25.767	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                          javascript.0	2020-01-14 20:58:25.767	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                          javascript.0	2020-01-14 20:58:25.766	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                          javascript.0	2020-01-14 20:58:25.766	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                          javascript.0	2020-01-14 20:58:25.766	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                          javascript.0	2020-01-14 20:58:25.765	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                          

                          ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                          liv-in-skyL 1 Antwort Letzte Antwort
                          0
                          • ChaotC Chaot

                            @liv-in-sky
                            Jetzt läuft ein Fehler auf:

                            
                            javascript.0	2020-01-14 20:56:16.877	error	(560) at Script.runInContext (vm.js:133:20)
                            javascript.0	2020-01-14 20:56:16.877	error	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                            javascript.0	2020-01-14 20:56:16.877	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:56:16.877	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:56:16.877	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                            javascript.0	2020-01-14 20:56:16.877	error	(560) TypeError: Cannot read property 'replace' of null
                            javascript.0	2020-01-14 20:56:16.877	error	(560) ^
                            javascript.0	2020-01-14 20:56:16.876	error	(560) val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                            javascript.0	2020-01-14 20:56:16.876	error	(560) script.js.Systeminfo.TasmotasNeu: script.js.Systeminfo.TasmotasNeu:229
                            javascript.0	2020-01-14 20:56:16.875	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                            javascript.0	2020-01-14 20:56:16.875	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:56:16.875	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:56:16.874	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                            javascript.0	2020-01-14 20:56:16.874	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                            javascript.0	2020-01-14 20:56:16.873	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                            javascript.0	2020-01-14 20:56:16.873	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:56:16.873	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:56:16.873	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                            javascript.0	2020-01-14 20:56:16.871	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                            javascript.0	2020-01-14 20:55:20.015	error	(560) at tryOnTimeout (timers.js:300:5)
                            javascript.0	2020-01-14 20:55:20.015	error	(560) at ontimeout (timers.js:436:11)
                            javascript.0	2020-01-14 20:55:20.014	error	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                            javascript.0	2020-01-14 20:55:20.014	error	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                            javascript.0	2020-01-14 20:55:20.014	error	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                            javascript.0	2020-01-14 20:55:20.014	error	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                            javascript.0	2020-01-14 20:55:20.014	error	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                            javascript.0	2020-01-14 20:55:20.014	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:55:20.013	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:55:20.013	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                            javascript.0	2020-01-14 20:55:20.013	error	(560) Error in callback: TypeError: Cannot read property 'replace' of null
                            javascript.0	2020-01-14 20:55:20.012	warn	(560) at Timer.processTimers (timers.js:223:10)
                            javascript.0	2020-01-14 20:55:20.012	warn	(560) at listOnTimeout (timers.js:263:5)
                            javascript.0	2020-01-14 20:55:20.012	warn	(560) at tryOnTimeout (timers.js:300:5)
                            javascript.0	2020-01-14 20:55:20.012	warn	(560) at ontimeout (timers.js:436:11)
                            javascript.0	2020-01-14 20:55:20.012	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                            javascript.0	2020-01-14 20:55:20.012	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                            javascript.0	2020-01-14 20:55:20.011	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                            javascript.0	2020-01-14 20:55:20.011	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                            javascript.0	2020-01-14 20:55:20.011	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                            javascript.0	2020-01-14 20:55:20.011	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:55:20.011	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:55:20.010	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                            javascript.0	2020-01-14 20:55:20.009	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                            javascript.0	2020-01-14 20:55:20.009	warn	(560) at Timer.processTimers (timers.js:223:10)
                            javascript.0	2020-01-14 20:55:20.009	warn	(560) at listOnTimeout (timers.js:263:5)
                            javascript.0	2020-01-14 20:55:20.009	warn	(560) at tryOnTimeout (timers.js:300:5)
                            javascript.0	2020-01-14 20:55:20.008	warn	(560) at ontimeout (timers.js:436:11)
                            javascript.0	2020-01-14 20:55:20.008	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                            javascript.0	2020-01-14 20:55:20.008	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                            javascript.0	2020-01-14 20:55:20.008	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                            javascript.0	2020-01-14 20:55:20.008	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                            javascript.0	2020-01-14 20:55:20.008	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                            javascript.0	2020-01-14 20:55:20.007	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:55:20.007	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:55:20.007	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                            javascript.0	2020-01-14 20:55:20.006	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                            javascript.0	2020-01-14 20:55:00.017	error	(560) at tryOnTimeout (timers.js:300:5)
                            javascript.0	2020-01-14 20:55:00.017	error	(560) at ontimeout (timers.js:436:11)
                            javascript.0	2020-01-14 20:55:00.017	error	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                            javascript.0	2020-01-14 20:55:00.017	error	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                            javascript.0	2020-01-14 20:55:00.017	error	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                            javascript.0	2020-01-14 20:55:00.016	error	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                            javascript.0	2020-01-14 20:55:00.016	error	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                            javascript.0	2020-01-14 20:55:00.016	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:55:00.016	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:55:00.016	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                            javascript.0	2020-01-14 20:55:00.015	error	(560) Error in callback: TypeError: Cannot read property 'replace' of null
                            javascript.0	2020-01-14 20:55:00.014	warn	(560) at Timer.processTimers (timers.js:223:10)
                            javascript.0	2020-01-14 20:55:00.014	warn	(560) at listOnTimeout (timers.js:263:5)
                            javascript.0	2020-01-14 20:55:00.014	warn	(560) at tryOnTimeout (timers.js:300:5)
                            javascript.0	2020-01-14 20:55:00.014	warn	(560) at ontimeout (timers.js:436:11)
                            javascript.0	2020-01-14 20:55:00.014	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                            javascript.0	2020-01-14 20:55:00.013	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                            javascript.0	2020-01-14 20:55:00.013	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                            javascript.0	2020-01-14 20:55:00.013	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                            javascript.0	2020-01-14 20:55:00.013	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                            javascript.0	2020-01-14 20:55:00.013	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:55:00.013	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:55:00.012	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                            javascript.0	2020-01-14 20:55:00.012	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                            javascript.0	2020-01-14 20:55:00.011	warn	(560) at Timer.processTimers (timers.js:223:10)
                            javascript.0	2020-01-14 20:55:00.011	warn	(560) at listOnTimeout (timers.js:263:5)
                            javascript.0	2020-01-14 20:55:00.011	warn	(560) at tryOnTimeout (timers.js:300:5)
                            javascript.0	2020-01-14 20:55:00.011	warn	(560) at ontimeout (timers.js:436:11)
                            javascript.0	2020-01-14 20:55:00.011	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                            javascript.0	2020-01-14 20:55:00.011	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                            javascript.0	2020-01-14 20:55:00.011	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                            javascript.0	2020-01-14 20:55:00.010	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                            javascript.0	2020-01-14 20:55:00.010	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                            javascript.0	2020-01-14 20:55:00.010	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:55:00.009	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:55:00.007	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                            javascript.0	2020-01-14 20:55:00.006	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                            

                            javascript.0	2020-01-14 20:58:25.771	error	(560) at Script.runInContext (vm.js:133:20)
                            javascript.0	2020-01-14 20:58:25.771	error	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                            javascript.0	2020-01-14 20:58:25.771	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:58:25.770	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:58:25.770	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                            javascript.0	2020-01-14 20:58:25.770	error	(560) TypeError: Cannot read property 'replace' of null
                            javascript.0	2020-01-14 20:58:25.770	error	(560) ^
                            javascript.0	2020-01-14 20:58:25.770	error	(560) val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                            javascript.0	2020-01-14 20:58:25.769	error	(560) script.js.Systeminfo.TasmotasNeu: script.js.Systeminfo.TasmotasNeu:229
                            javascript.0	2020-01-14 20:58:25.769	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                            javascript.0	2020-01-14 20:58:25.769	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:58:25.768	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:58:25.768	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                            javascript.0	2020-01-14 20:58:25.767	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                            javascript.0	2020-01-14 20:58:25.767	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                            javascript.0	2020-01-14 20:58:25.766	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                            javascript.0	2020-01-14 20:58:25.766	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                            javascript.0	2020-01-14 20:58:25.766	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                            javascript.0	2020-01-14 20:58:25.765	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                            
                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #27

                            @Chaot ok müßte die stelle 229 sein

                            hast du mal ein json von diesem datenpunkt - es müßte ein generic typ sein

                            du könntest auch versuchen, das replace mal wegzunehmen

                            zeile 229
                            von

                             val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") 
                            

                            nach

                             val2=getState(id.replace("Module","Version")).val) 
                            

                            wenn das nicht geht fehlt evtl der datenpunkt version - da könntest du mal einen wert von hand eintragen, falls du das device findest

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            ChaotC 1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL liv-in-sky

                              @Chaot ok müßte die stelle 229 sein

                              hast du mal ein json von diesem datenpunkt - es müßte ein generic typ sein

                              du könntest auch versuchen, das replace mal wegzunehmen

                              zeile 229
                              von

                               val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") 
                              

                              nach

                               val2=getState(id.replace("Module","Version")).val) 
                              

                              wenn das nicht geht fehlt evtl der datenpunkt version - da könntest du mal einen wert von hand eintragen, falls du das device findest

                              ChaotC Offline
                              ChaotC Offline
                              Chaot
                              schrieb am zuletzt editiert von
                              #28

                              @liv-in-sky Ich kann dir das hier anbieten:
                              sonoff.0.json

                              Da sind alle drin. Vielleicht hilft dir das beim Script weiter, weil ich auch DEV und SV verwende

                              ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                              liv-in-skyL 2 Antworten Letzte Antwort
                              0
                              • ChaotC Chaot

                                @liv-in-sky Ich kann dir das hier anbieten:
                                sonoff.0.json

                                Da sind alle drin. Vielleicht hilft dir das beim Script weiter, weil ich auch DEV und SV verwende

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                schrieb am zuletzt editiert von
                                #29

                                @Chaot habe gerade festgestellt, das ich ohne dp inhalte(states) nix finde - ich suche nach einem sonoff - eingestellt als generic - und der muss im info.module irgendwas falsches oder nichts stehen haben

                                glaubst du, du kannst den finden?

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                1 Antwort Letzte Antwort
                                0
                                • ChaotC Chaot

                                  @liv-in-sky Ich kann dir das hier anbieten:
                                  sonoff.0.json

                                  Da sind alle drin. Vielleicht hilft dir das beim Script weiter, weil ich auch DEV und SV verwende

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von
                                  #30

                                  @Chaot ansonsten dieses log aktivieren und im das script kurz starten und wiedewr stoppen - danach im log nachsehen welche id noch geschrieben wurde bevor der error kommt

                                  Image 7.png

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  ChaotC 1 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @Chaot ansonsten dieses log aktivieren und im das script kurz starten und wiedewr stoppen - danach im log nachsehen welche id noch geschrieben wurde bevor der error kommt

                                    Image 7.png

                                    ChaotC Offline
                                    ChaotC Offline
                                    Chaot
                                    schrieb am zuletzt editiert von
                                    #31

                                    @liv-in-sky
                                    Log:

                                    javascript.0	2020-01-14 21:27:45.514	error	(560) at Script.runInContext (vm.js:133:20)
                                    javascript.0	2020-01-14 21:27:45.514	error	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                    javascript.0	2020-01-14 21:27:45.514	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                    javascript.0	2020-01-14 21:27:45.513	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                    javascript.0	2020-01-14 21:27:45.513	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                                    javascript.0	2020-01-14 21:27:45.513	error	(560) TypeError: Cannot read property 'replace' of null
                                    javascript.0	2020-01-14 21:27:45.513	error	(560) ^
                                    javascript.0	2020-01-14 21:27:45.513	error	(560) val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                    javascript.0	2020-01-14 21:27:45.512	error	(560) script.js.Systeminfo.TasmotasNeu: script.js.Systeminfo.TasmotasNeu:229
                                    javascript.0	2020-01-14 21:27:45.512	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                    javascript.0	2020-01-14 21:27:45.511	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                    javascript.0	2020-01-14 21:27:45.511	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                    javascript.0	2020-01-14 21:27:45.511	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                                    javascript.0	2020-01-14 21:27:45.510	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                                    javascript.0	2020-01-14 21:27:45.509	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                    javascript.0	2020-01-14 21:27:45.509	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                    javascript.0	2020-01-14 21:27:45.509	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                    javascript.0	2020-01-14 21:27:45.508	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                    javascript.0	2020-01-14 21:27:45.506	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                                    

                                    Am Sonoff Eingang steht Generic und bei Radar steht ebenfalls Generic

                                    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                    liv-in-skyL 1 Antwort Letzte Antwort
                                    0
                                    • ChaotC Chaot

                                      @liv-in-sky
                                      Log:

                                      javascript.0	2020-01-14 21:27:45.514	error	(560) at Script.runInContext (vm.js:133:20)
                                      javascript.0	2020-01-14 21:27:45.514	error	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                      javascript.0	2020-01-14 21:27:45.514	error	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                      javascript.0	2020-01-14 21:27:45.513	error	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                      javascript.0	2020-01-14 21:27:45.513	error	(560) at script.js.Systeminfo.TasmotasNeu:229:60
                                      javascript.0	2020-01-14 21:27:45.513	error	(560) TypeError: Cannot read property 'replace' of null
                                      javascript.0	2020-01-14 21:27:45.513	error	(560) ^
                                      javascript.0	2020-01-14 21:27:45.513	error	(560) val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"") //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                      javascript.0	2020-01-14 21:27:45.512	error	(560) script.js.Systeminfo.TasmotasNeu: script.js.Systeminfo.TasmotasNeu:229
                                      javascript.0	2020-01-14 21:27:45.512	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                      javascript.0	2020-01-14 21:27:45.511	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                      javascript.0	2020-01-14 21:27:45.511	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                      javascript.0	2020-01-14 21:27:45.511	warn	(560) at script.js.Systeminfo.TasmotasNeu:229:16
                                      javascript.0	2020-01-14 21:27:45.510	warn	(560) getState "sonoff.0.Radar.INFO.Version" not found (3)
                                      javascript.0	2020-01-14 21:27:45.509	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                      javascript.0	2020-01-14 21:27:45.509	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                      javascript.0	2020-01-14 21:27:45.509	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                      javascript.0	2020-01-14 21:27:45.508	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                      javascript.0	2020-01-14 21:27:45.506	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                                      

                                      Am Sonoff Eingang steht Generic und bei Radar steht ebenfalls Generic

                                      liv-in-skyL Offline
                                      liv-in-skyL Offline
                                      liv-in-sky
                                      schrieb am zuletzt editiert von
                                      #32

                                      @Chaot und was steht bei denen unter INFO.Module

                                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                      ChaotC 1 Antwort Letzte Antwort
                                      0
                                      • liv-in-skyL liv-in-sky

                                        @Chaot und was steht bei denen unter INFO.Module

                                        ChaotC Offline
                                        ChaotC Offline
                                        Chaot
                                        schrieb am zuletzt editiert von
                                        #33

                                        @liv-in-sky
                                        Dort steht Generic.

                                        Ich habe jetzt den Radar gelöscht so das unter Radar.info momentan nichts steht und jetzt kommt das:

                                        javascript.0	2020-01-14 21:42:20.011	warn	(560) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-01-14 21:42:20.011	warn	(560) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-01-14 21:42:20.010	warn	(560) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-01-14 21:42:20.010	warn	(560) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-01-14 21:42:20.010	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                                        javascript.0	2020-01-14 21:42:20.010	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                                        javascript.0	2020-01-14 21:42:20.009	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                                        javascript.0	2020-01-14 21:42:20.009	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                                        javascript.0	2020-01-14 21:42:20.009	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                                        javascript.0	2020-01-14 21:42:20.009	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                        javascript.0	2020-01-14 21:42:20.009	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                        javascript.0	2020-01-14 21:42:20.009	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                        javascript.0	2020-01-14 21:42:20.008	warn	(560) getState "sonoff.0.Sender.POWER" not found (3)
                                        javascript.0	2020-01-14 21:42:20.008	warn	(560) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                                        javascript.0	2020-01-14 21:42:20.007	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                        javascript.0	2020-01-14 21:42:20.006	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                        javascript.0	2020-01-14 21:42:20.006	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                        javascript.0	2020-01-14 21:42:20.005	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                                        javascript.0	2020-01-14 21:42:17.681	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                        javascript.0	2020-01-14 21:42:17.680	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                        javascript.0	2020-01-14 21:42:17.680	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                        javascript.0	2020-01-14 21:42:17.680	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                        javascript.0	2020-01-14 21:42:17.680	warn	(560) getState "sonoff.0.Sender.POWER" not found (3)
                                        javascript.0	2020-01-14 21:42:17.679	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                        javascript.0	2020-01-14 21:42:17.679	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                        javascript.0	2020-01-14 21:42:17.679	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                        javascript.0	2020-01-14 21:42:17.679	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                        javascript.0	2020-01-14 21:42:17.677	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                                        

                                        Kann ich eigentlich die Geräte irgendwo selbst eintragen?
                                        Also
                                        Sonoff SV
                                        Sonoff T1 1CH
                                        oder Sonoff DEV

                                        Mit der Zeile beim replace:

                                        val2=getState(id.replace("Module","Version")).val) 
                                        

                                        funktioniert das scheinbar nicht.

                                        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                        liv-in-skyL 1 Antwort Letzte Antwort
                                        0
                                        • ChaotC Chaot

                                          @liv-in-sky
                                          Dort steht Generic.

                                          Ich habe jetzt den Radar gelöscht so das unter Radar.info momentan nichts steht und jetzt kommt das:

                                          javascript.0	2020-01-14 21:42:20.011	warn	(560) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-01-14 21:42:20.011	warn	(560) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-01-14 21:42:20.010	warn	(560) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-01-14 21:42:20.010	warn	(560) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-01-14 21:42:20.010	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                                          javascript.0	2020-01-14 21:42:20.010	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                                          javascript.0	2020-01-14 21:42:20.009	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                                          javascript.0	2020-01-14 21:42:20.009	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                                          javascript.0	2020-01-14 21:42:20.009	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                                          javascript.0	2020-01-14 21:42:20.009	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                          javascript.0	2020-01-14 21:42:20.009	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                          javascript.0	2020-01-14 21:42:20.009	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                          javascript.0	2020-01-14 21:42:20.008	warn	(560) getState "sonoff.0.Sender.POWER" not found (3)
                                          javascript.0	2020-01-14 21:42:20.008	warn	(560) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1319:34)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at Object.<anonymous> (script.js.Systeminfo.TasmotasNeu:409:2)
                                          javascript.0	2020-01-14 21:42:20.007	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                          javascript.0	2020-01-14 21:42:20.006	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                          javascript.0	2020-01-14 21:42:20.006	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                          javascript.0	2020-01-14 21:42:20.005	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                                          javascript.0	2020-01-14 21:42:17.681	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                          javascript.0	2020-01-14 21:42:17.680	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                          javascript.0	2020-01-14 21:42:17.680	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                          javascript.0	2020-01-14 21:42:17.680	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                          javascript.0	2020-01-14 21:42:17.680	warn	(560) getState "sonoff.0.Sender.POWER" not found (3)
                                          javascript.0	2020-01-14 21:42:17.679	warn	(560) at script.js.Systeminfo.TasmotasNeu:412:2
                                          javascript.0	2020-01-14 21:42:17.679	warn	(560) at writeHTML (script.js.Systeminfo.TasmotasNeu:217:30)
                                          javascript.0	2020-01-14 21:42:17.679	warn	(560) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:846:29)
                                          javascript.0	2020-01-14 21:42:17.679	warn	(560) at script.js.Systeminfo.TasmotasNeu:231:22
                                          javascript.0	2020-01-14 21:42:17.677	warn	(560) getState "sonoff.0.Eingang.POWER" not found (3)
                                          

                                          Kann ich eigentlich die Geräte irgendwo selbst eintragen?
                                          Also
                                          Sonoff SV
                                          Sonoff T1 1CH
                                          oder Sonoff DEV

                                          Mit der Zeile beim replace:

                                          val2=getState(id.replace("Module","Version")).val) 
                                          

                                          funktioniert das scheinbar nicht.

                                          liv-in-skyL Offline
                                          liv-in-skyL Offline
                                          liv-in-sky
                                          schrieb am zuletzt editiert von
                                          #34

                                          @Chaot ich bin ein tr..tel - unter version ist der wichtige wert - was steht da drin

                                          und kannst du bitte dieses script verwenden - ist das neuste - ist einfacher zum fehler finden - du müßtest aber noch einen datenpunkt anlegen - für die anzahl der geräte (dpAnzahl) und den anderen datenpunkt wieder angleichen

                                          //@liv-in-sky Januar 2020
                                          
                                          //HIER WIRD PFAD UND FILENAME DEFINIERT
                                          const path = "/htmlakku.html";                   //FIlenamen definieren
                                          const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
                                          let   braucheEinFile=false;                          // bei true wird ein file geschrieben
                                          let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
                                          let dpVIS="controll-own.0.TABELLEN.SONOFF"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
                                          let dpAnzahl="controll-own.0.TABELLEN.AnzahlSonoff";  //WICHTIG datenpunkt erstellen vom typ "number" - bei 0 kein alarm und größer 0 die anzahl der schlechten batterien
                                          let htmlColorDeviceUeberschrift="#00BFFF"
                                          var battAlarm=30;                                     //alarm batterie wert
                                          var battAlarmWarning=55;                                     //warnungen batterie wert
                                          
                                          // ------------------------    hier einstellen, was man für ein device  hat - die nicht gebraucht werden auf false setzen !!!
                                          var pow=true;
                                          var generic=true;
                                          var basic=true;
                                          var externalMitInfo=false; //noch nicht integriert
                                          var externalOhneInfo=false;  //noch nicht integriert
                                          var schalter2ch=true;                                               
                                          var rfbridge=true;
                                          var stdoseS2X=true;
                                          var ohneInfo=false;
                                          //Sonderfall
                                          var linganSteckdose =true;
                                          
                                          
                                          
                                          var filterArray=["Sonoff Pow","Generic","Sonoff Basic","Sonoff T1 2CH","Sonoff S2X","Lingan SWA1"]; //hier arten eintragen - muss gefiltert werden für geräte ohne INFO
                                          
                                          let mySchedule="  * * * * * "; 
                                          
                                          //HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 5
                                          var htmlFeld1='Device';       var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
                                          var htmlFeld2='Status';        var Feld2lAlign="center";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
                                          var htmlFeld3='Version';         var Feld3lAlign="center";                    // überschrift Tabellen Spalte3 und  Ausrichtung left,right or center
                                          var htmlFeld4='WLAN';        var Feld4lAlign="right";                    // überschrift Tabellen Spalte4 und  Ausrichtung left,right or center
                                          var htmlFeld5='IP';        var Feld5lAlign="left";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
                                          var htmlFeld6='';        var Feld6lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
                                          var htmlFeld7='';        var Feld7lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
                                          var htmlFeld8='';        var Feld8lAlign="center";                    // überschrift Tabellen Spalte5 und  Ausrichtung left,right or center
                                          
                                          //-----------------------------------
                                          
                                          
                                          
                                          //hier werden die styles für die tabelle definiert
                                          //ÜBERSCHRIFT ÜBER TABELLE
                                          let   htmlUberschrift=true;                           // mit Überschrift über der tabelle
                                          let   htmlSignature=true;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
                                          const htmlFeldUeber='Sonoff Devices';              // Überschrift und Signature
                                          const htmlFarbUber="white";                         // Farbe der Überschrift
                                          const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
                                          const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
                                          //MEHRERE TABELLEN NEBENEINANDER
                                          let   mehrfachTabelle=1;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
                                          const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
                                          const htmlFarbTableColorUber="#BDBDBD";               // Überschrift in der tabelle - der einzelnen Spalten
                                          //GANZE TABELLE
                                          let abstandZelle="1";
                                          let weite="auto";                                     //Weite der Tabelle
                                          let zentriert=true;                                   //ganze tabelle zentriert
                                          const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
                                          const htmlSchriftart="Helvetica";
                                          const htmlSchriftgroesse="14px";
                                          //FELDER UND RAHMEN
                                          let   UeberschriftSpalten=true;                // ein- oder ausblenden der spatlen-überschriften
                                          const htmlFarbFelderschrift="#BDBDBD";                  // SchriftFarbe der Felder
                                          const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
                                          const htmlFarbTableColorGradient1="#424242";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
                                          const htmlFarbTableColorGradient2="#424242";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
                                          const htmlFarbTableBorderColor="gray";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
                                          let htmlRahmenLinien="cols";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
                                          const htmlSpalte1Weite="auto";                   //  Weite der ersten beiden  Spalten oder z.b. 115px
                                          
                                          // HIER NICHTS  ÄNDERN
                                          
                                          let borderHelpBottum;
                                          let borderHelpRight;
                                          let htmlcenterHelp;
                                          let htmlcenterHelp2;
                                          
                                          if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
                                          if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
                                          if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
                                          if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
                                          zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
                                          zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
                                          
                                          
                                          const htmlZentriert='<center>'
                                          const htmlStart=    "<!DOCTYPE html><html lang=\"de\"><head><title>Vorlage</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"+
                                                             "<style> * {  margin: 0;} body {background-color: "+backgroundAll+"; margin: 0 auto;  }"+
                                                             " p {padding-top: 10px; padding-bottom: 10px; text-align: "+htmlcenterHelp2+"}"+
                                                            // " div { margin: 0 auto;  margin-left: auto; margin-right: auto;}"+
                                                             " td { padding:"+abstandZelle+"px; border:0px solid "+htmlFarbTableBorderColor+";  border-right:"+borderHelpRight+"px solid "+htmlFarbTableBorderColor+";border-bottom:"+borderHelpBottum+"px solid "+htmlFarbTableBorderColor+";}"+ 
                                                             " table { width: "+weite+";  margin: 0 "+htmlcenterHelp+"; border:1px solid "+htmlFarbTableBorderColor+"; border-spacing=\""+abstandZelle+"0px\" ; }"+   // margin macht center
                                                             "td:nth-child(1) {width: "+htmlSpalte1Weite+"}"+"td:nth-child(2) {width:"+htmlSpalte1Weite+"}"+
                                                             " </style></head><body> <div>";
                                          //const htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\">"+htmlFeldUeber+"</p>";                    
                                          const htmlTabStyle= "<table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                                                "; font-family:"+htmlSchriftart+";background-image: linear-gradient(42deg,"+htmlFarbTableColorGradient2+","+htmlFarbTableColorGradient1+");\">";
                                          const htmlTabUeber1="<tr style=\"color:"+htmlFarbTableColorUber+"; font-weight: bold\">";
                                          const htmlTabUeber3="</tr>";
                                          
                                          
                                          //NICHTS ÄNDERN - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 5
                                          
                                          
                                          var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td><td  align="+Feld3lAlign+">&ensp;"+htmlFeld3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+htmlFeld4+"&ensp;</td><td  align="+Feld5lAlign+">&ensp;"+htmlFeld5+"&ensp;</td><td  align="+Feld6lAlign+">&ensp;"+htmlFeld6+"&ensp;</td><td  align="+Feld7lAlign+">&ensp;"+htmlFeld7+"&ensp;</td><td  align="+Feld8lAlign+">&ensp;"+htmlFeld8+"&ensp;</td>";
                                          var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+
                                                             "&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld3+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld4+
                                                             "&ensp;</td><td align="+Feld5lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&ensp;>"+htmlFeld5+"&ensp;</td><td align="+Feld6lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&ensp;>"+htmlFeld6+"&ensp;</td><td align="+Feld7lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&ensp;>"+htmlFeld7+"&ensp;</td><td align="+Feld8lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&ensp;>"+htmlFeld8+"&ensp;</td>";
                                                                 //------------------------------------------------------
                                          
                                          var anzahl;
                                          var AkkuAlarm=[];
                                          var htmlOut="";
                                          var mix;
                                          var counter;
                                          var val1; var val2; var val0; var val3; var val4; var val5; var val6; var val7;
                                          var htmlTabUeber="";
                                          function writeHTML(){
                                          
                                          
                                          anzahl=0;
                                          htmlOut="";
                                          
                                          counter=-1;
                                          htmlTabUeber="";
                                          switch (mehrfachTabelle) { 
                                             case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3;  break;
                                             case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                                             case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2+htmlTabUeber2+htmlTabUeber3; break;
                                             case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                                          }; 
                                          if (!UeberschriftSpalten) {htmlTabUeber=""}  
                                          
                                          //--------------------------------------------------------------------------------------------------------------------------------------------------
                                          //---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
                                          //---------alle valx werte müssen von euch bestimmt werden - val0,val1,val2,val3,val4!!!------------------------------------------------------------
                                          //--------------------------------------------------------------------------------------------------------------------------------------------------
                                          
                                          var myColl=[];
                                          var val1help;
                                          
                                            
                                            if (pow){
                                          
                                                       // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>SONOFF POW</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Gesamt";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">kWh Today";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power Switch"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          
                                          //sonoff.0.SonoffPow1.INFO.Module
                                           $('sonoff.*.*.INFO.Module').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                             
                                                if (getState(id).val=="Sonoff Pow") {
                                                   // log (id)
                                                   anzahl++;
                                                  var ida = id.split('.');
                                                 
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id.replace("INFO.Module","alive")).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=getState(id.replace("Module","IPAddress")).val
                                                    val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    let val7_1=getState(id.replace("INFO.Module","POWER")).val;        
                                                    val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                    val6=getState(id.replace("INFO.Module","ENERGY_Today")).val.toString();
                                                    val5=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                  
                                                    if (!getState(id.replace("INFO.Module","alive")).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val1;
                                                        val2=(" <font color=\"red\"> ")+val2;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                          
                                          
                                                   
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                              
                                            } }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!  
                                          } //ende fritzdect
                                          
                                           if (generic){
                                                       // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>Generic</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power Switch"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          
                                          //sonoff.0.SonoffPow1.INFO.Module
                                           $('sonoff.*.*.INFO.Module').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                             
                                                if (getState(id).val=="Generic") {
                                                   //log (id)
                                                   anzahl++;
                                                  var ida = id.split('.');
                                                 
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id.replace("INFO.Module","alive")).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=getState(id.replace("Module","IPAddress")).val
                                                    val5=val3=getState(id.replace("INFO.Module","Uptime")).val.toString()
                                                    val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    let val7_1=getState(id.replace("INFO.Module","POWER")).val;        
                                                    val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                  //  let val6_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                  //  val6_1 ? val6=(" <font color=\"lightgreen\"> ")+"ON" : val6=(" <font color=\"red\"> ")+"OFF";
                                                    
                                                   // val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
                                                    //val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                   // val6=""
                                                     val6="";
                                                  
                                                    if (!getState(id.replace("INFO.Module","alive")).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val4;
                                                        val2=(" <font color=\"red\"> ")+val2;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                                   
                                                
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                }
                                             }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                                           
                                           } //ende xiaomi
                                          
                                          if (basic){
                                                          // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>Basic</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power Switch"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          
                                          //sonoff.0.SonoffPow1.INFO.Module
                                           $('sonoff.*.*.INFO.Module').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                             
                                                if (getState(id).val=="Sonoff Basic") {
                                                 //  log (id)
                                                  var ida = id.split('.');
                                                 anzahl++;
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id.replace("INFO.Module","alive")).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=getState(id.replace("Module","IPAddress")).val
                                                    val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    let val7_1=getState(id.replace("INFO.Module","POWER")).val;        
                                                    val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                 //   let val6_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val6_1 ? val6=(" <font color=\"lightgreen\"> ")+"ON" : val6=(" <font color=\"red\"> ")+"OFF";
                                                 //   let val7_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                   // val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
                                                    //val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                    val6=""
                                                    val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
                                                  
                                                    if (!getState(id.replace("INFO.Module","alive")).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val4;
                                                        val2=(" <font color=\"red\"> ")+val2;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                                   
                                                
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                }
                                             }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                                           
                                           } //ende xiaomi
                                          
                                          if (schalter2ch){
                                                          // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>Schalter T1 2Ch</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Switch 1";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Switch 2"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          
                                          //sonoff.0.SonoffPow1.INFO.Module
                                           $('sonoff.*.*.INFO.Module').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                             
                                                if (getState(id).val=="Sonoff T1 2CH") {
                                                 //  log (id)
                                                 anzahl++;
                                                  var ida = id.split('.');
                                                 
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id.replace("INFO.Module","alive")).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=getState(id.replace("Module","IPAddress")).val
                                                    val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    val5=val3=getState(id.replace("INFO.Module","Uptime")).val.toString()
                                                    let val6_1=getState(id.replace("INFO.Module","POWER1")).val;        
                                                    val6_1 ? val6=(" <font color=\"lightgreen\"> ")+"ON" : val6=(" <font color=\"red\"> ")+"OFF";
                                                    let val7_1=getState(id.replace("INFO.Module","POWER2")).val;        
                                                    val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                 //   let val7_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                   // val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
                                                    //val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                  //  val6=""
                                                    
                                                  
                                                    if (!getState(id.replace("INFO.Module","alive")).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val4;
                                                        val2=(" <font color=\"red\"> ")+val2;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                                   
                                                
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                }
                                             }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                                           
                                           } //ende xiaomi
                                          
                                           
                                          
                                          if (stdoseS2X){
                                                          // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>Steckdose S2X</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power Switch"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          
                                          //sonoff.0.SonoffPow1.INFO.Module
                                           $('sonoff.*.*.INFO.Module').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                             
                                                if (getState(id).val=="Sonoff S2X") {
                                                 //  log (id)
                                                 anzahl++;
                                                  var ida = id.split('.');
                                                 
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id.replace("INFO.Module","alive")).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=getState(id.replace("Module","IPAddress")).val
                                                    val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    val5=val3=getState(id.replace("INFO.Module","Uptime")).val.toString()
                                                    let val7_1=getState(id.replace("INFO.Module","POWER")).val;        
                                                    val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                    
                                                 //   let val7_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                   // val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
                                                    //val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                    val6=""
                                                    
                                                  
                                                    if (!getState(id.replace("INFO.Module","alive")).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val4;
                                                        val2=(" <font color=\"red\"> ")+val2;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                                   
                                                
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                }
                                             }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                                           
                                           } //ende xiaomi
                                          
                                          if (linganSteckdose){
                                                          // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>Lingan Steckdose</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power Switch"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          
                                          //sonoff.0.SonoffPow1.INFO.Module
                                           $('sonoff.*.*.INFO.Module').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                             
                                                if (getState(id).val=="Lingan SWA1") {
                                                 //  log (id)
                                                  var ida = id.split('.');
                                                    anzahl++;
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id.replace("INFO.Module","alive")).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=getState(id.replace("Module","IPAddress")).val
                                                    val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3="na"; //getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    val5="na"; //val3=getState(id.replace("INFO.Module","Uptime")).val.toString()
                                                    let val7_1=getState(id.replace("INFO.Module","POWER")).val;        
                                                    val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                    
                                                 //   let val7_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                   // val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
                                                    //val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                    val6=""
                                                    
                                                  
                                                    if (!getState(id.replace("INFO.Module","alive")).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val4;
                                                        val2=(" <font color=\"red\"> ")+val2;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                                   
                                                
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                }
                                             }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                                           
                                           } //ende xiaomi
                                          
                                           
                                          if (rfbridge){
                                                          // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>RF Bridge</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">Received";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power Switch"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          
                                          //sonoff.0.SonoffPow1.INFO.Module
                                           $('sonoff.*.*.INFO.Module').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                             
                                                if (getState(id).val=="Sonoff Bridge") {
                                                 //  log (id)
                                                  var ida = id.split('.');
                                                 anzahl++;
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id.replace("INFO.Module","alive")).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=getState(id.replace("Module","IPAddress")).val
                                                    val2=getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3=getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    let val7_1=getState(id.replace("INFO.Module","POWER")).val;        
                                                    val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                 //   let val6_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val6_1 ? val6=(" <font color=\"lightgreen\"> ")+"ON" : val6=(" <font color=\"red\"> ")+"OFF";
                                                 //   let val7_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                   // val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
                                                    //val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                    val6=getState(id.replace("INFO.Module","RfReceived_Data")).val;
                                                    val5=getState(id.replace("INFO.Module","Uptime")).val.toString()
                                                  
                                                    if (!getState(id.replace("INFO.Module","alive")).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val4;
                                                        val2=(" <font color=\"red\"> ")+val2;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                                   
                                                
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                }
                                             }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                                           
                                           } //ende xiaomi
                                          
                                          
                                           if (ohneInfo){
                                                          // UNTERTEILUNG - ÜBERSCHRIFT IN TABELLE
                                                tabelleAusbessern();
                                                counter=0;
                                                val0=val0=""; val1=""; val2="";val3="";val4="";val5="";val6="";val7="";
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=0;
                                                val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><b>Sonderfälle ohne INFO</b>"; val1=""; val2="";val3="";val4="";val5="<font color=\""+htmlColorDeviceUeberschrift+"\">Uptime";val6="<font color=\""+htmlColorDeviceUeberschrift+"\">";val7="<font color=\""+htmlColorDeviceUeberschrift+"\">Power Switch"
                                                tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                tabelleAusbessern();
                                                counter=-1
                                          var arrFilt=[];
                                          //sonoff.0.SonoffPow1.INFO.Module
                                          
                                           $('sonoff.*.*').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                          
                                                  var ida = id.split('.');
                                          
                                                  //  log(ida[0]+"."+ida[1]+"."+ida[2]+"."+"INFO.IPAddress")
                                          
                                                    $(ida[0]+"."+ida[1]+"."+ida[2]+"."+"INFO.IPAddress").each(function(id, i) {   // kontrolliere ob  vorhanden
                                                      
                                                        var idc = id.split('.');
                                                        if(!arrFilt.includes(idc[2])){
                                                      //  log(idc[2])
                                                     arrFilt.push(idc[2])}
                                                     });
                                                    
                                          });
                                          
                                          //log("filter: "+arrFilt.toString())
                                          //sonoff.0.ShellyWC.alive
                                           $('sonoff.*.*.alive').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                          
                                             var ida = id.split('.');
                                             //log(ida[2])
                                                //  log (" hier die werte: "+id)
                                              //  if (filterArray.includes) {
                                                    if (!arrFilt.includes(ida[2])) {
                                                //   log (id)
                                                
                                                 anzahl++;
                                                    counter++; 
                                                      //log("dad   "+getState(id.replace("Info.Module","alive")).val + " ----" +id.replace("Info.Module","alive"))
                                                    val1=getState(id).val;                   //sonoff.0.SonoffPow1.alive          sonoff.0.SonoffPow1.INFO.Module
                                                    val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ;
                                                    val4=" na "; //getState(id.replace("Module","IPAddress")).val
                                                    val2=" na "; //getState(id.replace("Module","Version")).val.replace(/\(.+\)/g,"")     //sonoff.0.SonoffPow1.Wifi_RSSIsonoff.0.SonoffPow1.POWER
                                                    val3="na"; //getState(id.replace("INFO.Module","Wifi_RSSI")).val.toString()+" %"; 
                                                    val5="na"; //val3=getState(id.replace("INFO.Module","Uptime")).val.toString()
                                                    val7="na" // let val7_1=getState(id.replace("alive","POWER")).val;        
                                                   // val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                    
                                                 //   let val7_1=getState(id.replace("INFO.Module","Switch1")).val;        
                                                 //   val7_1 ? val7=(" <font color=\"lightgreen\"> ")+"ON" : val7=(" <font color=\"red\"> ")+"OFF";
                                                   // val6=getState(id.replace("INFO.Module","SWITCH1")).val.toString();
                                                    //val7=getState(id.replace("INFO.Module","ENERGY_Total")).val.toString();
                                                    ida[2].includes("Bridge") ?  val6=getState(id.replace("alive","RfReceived_Data")).val : val6="";
                                                    
                                                    
                                                  
                                                    if (!getState(id).val) {
                                                        val1="❌";
                                                        val4=(" <font color=\"red\"> ")+val4;
                                                        val2=(" <font color=\"red\"> ")+val1;
                                                        val3=(" <font color=\"red\"> ")+" 0 %";
                                                        val5=(" <font color=\"red\"> ")+" --- ";
                                                        val6=(" <font color=\"red\"> ")+" --- ";
                                                        val7=(" <font color=\"red\"> ")+" --- ";
                                                        val0=(" <font color=\"red\"> ")+val0} 
                                                    else{
                                                        val1="✅";
                                                       // val1=(" <font color=\"lightgreen\"> ")+val1
                                                       // val2=(" <font color=\"green\"> ")+val2
                                                       // val3=(" <font color=\"green\"> ")+val3
                                                       // val0=(" <font color=\"green\"> ")+val0
                                                       }
                                                   
                                                
                                             
                                               tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                                }
                                             }); //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                                           
                                           } //ende xiaomi
                                          
                                           //   if (AkkuAlarm.length >=1 ) {setState(dpAlarm,AkkuAlarm.length)} else {setState(dpAlarm,AkkuAlarm.length)}
                                             // log("BATTERIE Alarm     : "+AkkuAlarm.length.toString());
                                          //-------------------------------------------------------------------------------------------------------------------------------------------------
                                          //--------------------------------------------------Ende der schleife------------------------------------------------------------------------------
                                          //-------------------------------------------------------------------------------------------------------------------------------------------------
                                          
                                              tabelleFinish(); // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
                                          
                                              setState(dpAnzahl,anzahl); 
                                           
                                             
                                          
                                          } // function ende
                                          
                                          
                                          
                                          //MAIN:
                                           
                                          schedule(mySchedule,  function () {
                                           writeHTML();
                                           if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
                                          }); 
                                           writeHTML();
                                          
                                             				 function tabelleBind(){
                                               //HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT - hat man oben 5 Felder definiert, braucht man hier 5 Werte
                                             
                                                 switch (mehrfachTabelle) {  
                                                   case 1:                    htmlOut=htmlOut+"<tr><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>"; break;
                                                  case 2:  if(counter%2==0)  {htmlOut = htmlOut+"<tr><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                                                        else {htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";} break;
                                                                             
                                                  case 3: if(counter%3==0 )  {htmlOut = htmlOut+"<tr><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                                                        else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";} 
                                                                                         else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";}
                                                                                   } break;
                                          
                                          
                                                  case 4: if(counter%4==0)  {htmlOut = htmlOut+"<tr><td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>"; } 
                                                                            else {if(counter%2==1 )  { htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";} 
                                                                                         else    {if(counter%2==1 && counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+"  style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td><td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val2+"&ensp;</td><td  align="+Feld4lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val3+"&ensp;</td><td align="+Feld5lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td></tr>";} 
                                                                                                           else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+" >&ensp;"+val0+"&ensp;</td><td>&ensp;"+val1+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val2+"&ensp;</td><td align="+Feld3lAlign+">&ensp;"+val3+"&ensp;</td><td align="+Feld4lAlign+">&ensp;"+val4+"&ensp;</td><td align="+Feld6lAlign+">&ensp;"+val5+"&ensp;</td><td align="+Feld7lAlign+">&ensp;"+val6+"&ensp;</td><td align="+Feld8lAlign+">&ensp;"+val7+"&ensp;</td>";}}
                                                                                   } break;
                                          
                                               } //switch ende
                                          
                                          
                                          
                                          }
                                          
                                          function tabelleAusbessern() {
                                                      switch (mehrfachTabelle) {  
                                                   case 1:    break;
                                                   case 2:    mix=Math.abs(((counter+1)%2)-mehrfachTabelle);  
                                                              if(mix==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');       
                                                              break;
                                                   case 3:    mix =Math.abs(((counter+1)%3)-mehrfachTabelle);
                                                              if(mix==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');       
                                                              if(mix==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');   
                                                              break;
                                                   case 4:    mix=Math.abs(((counter+1)%4)-mehrfachTabelle);
                                                              if(mix==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');
                                                              if(mix==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');    
                                                              if(mix==3)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');      
                                                              break; }
                                          }
                                          
                                          function tabelleFinish() {
                                          
                                                // tabelle fertigstellen
                                                 switch (mehrfachTabelle) {  
                                                   case 1:    break;
                                                   case 2:    mix=Math.abs(((counter+1)%2)-mehrfachTabelle);  
                                                              if(mix==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');       
                                                              break;
                                                   case 3:    mix =Math.abs(((counter+1)%3)-mehrfachTabelle);
                                                              if(mix==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');       
                                                              if(mix==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');   
                                                              break;
                                                   case 4:    mix=Math.abs(((counter+1)%4)-mehrfachTabelle);
                                                              if(mix==1)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');
                                                              if(mix==2)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');    
                                                              if(mix==3)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>');      
                                                              break; }
                                               
                                                              var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</p>"; 
                                                 var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                                                  
                                                  if (!htmlSignature) htmlUnter="";
                                                    //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
                                                     var htmlOutVIS="";
                                                   //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>";
                                                      if (htmlUberschrift) 
                                                          { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter ;
                                          
                                                        } else {
                                                         zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter;
                                          
                                                           }
                                          
                                          // log("bin raus aus tabelleBind");
                                                     if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
                                          
                                           var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                                           var htmlEnd="</table>"+htmlUnter+"</div></body>";
                                           if (!htmlSignature) htmlUnter="";
                                          
                                           //mit oder ohne überschrift - zentriert oder links
                                          htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd : htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd;
                                           //log(htmlOut);
                                           
                                          
                                          
                                          }
                                          
                                          
                                          
                                          

                                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                          ChaotC ? 3 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          644

                                          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