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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst]js-typeof-befehl - was ist falsch daran?

NEWS

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

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

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

[gelöst]js-typeof-befehl - was ist falsch daran?

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 2 Kommentatoren 249 Aufrufe 2 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 Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von liv-in-sky
    #1

    hätte frage zm typeof befehl

    warum wird dieser datenpunkt nicht als type string erkannt?

    if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) ...
    

    wenn ich den inhalt in z.b aaa ändere funktioniert es!?

    mein datenpunkt:
    Image 7.png

    der inhalt (html-code):

    <table><tr><td  class="getprocessswap1" >9192kB&emsp;&emsp;</td><td>/usr/bin/node</td></tr><tr><td  class="getprocessswap1" >5088kB&emsp;&emsp;</td><td>/usr/bin/node</td></tr><tr><td  class="getprocessswap1" >2912kB&emsp;&emsp;</td><td>/usr/sbin/nmbd</td></tr><tr><td  class="getprocessswap1" >2061kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1863kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1829kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1805kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1688kB&emsp;&emsp;</td><td>/sbin/dhclient</td></tr><tr><td  class="getprocessswap1" >1304kB&emsp;&emsp;</td><td>/usr/sbin/sshd</td></tr><tr><td  class="getprocessswap1" >1285kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1267kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1216kB&emsp;&emsp;</td><td>/lib/systemd/systemd</td></tr><tr><td  class="getprocessswap1" >1120kB&emsp;&emsp;</td><td>/usr/bin/redis-server</td></tr><tr><td  class="getprocessswap1" >724kB&emsp;&emsp;</td><td>/lib/systemd/systemd-journald</td></tr><tr><td  class="getprocessswap1" >712kB&emsp;&emsp;</td><td>/lib/systemd/systemd-logind</td></tr><tr><td  class="getprocessswap1" >616kB&emsp;&emsp;</td><td>/usr/sbin/rsyslogd</td></tr><tr><td  class="getprocessswap1" >552kB&emsp;&emsp;</td><td>/usr/bin/dbus-daemon</td></tr><tr><td  class="getprocessswap1" >504kB&emsp;&emsp;</td><td>/usr/bin/node</td></tr><tr><td  class="getprocessswap1" >368kB&emsp;&emsp;</td><td>/usr/sbin/cron</td></tr><tr><td  class="getprocessswap1" >280kB&emsp;&emsp;</td><td>/sbin/agetty</td></tr><tr><td  class="getprocessswap1" >280kB&emsp;&emsp;</td><td>/sbin/agetty</td></tr><tr><td  class="getprocessswap1" >72kB&emsp;&emsp;</td><td>/usr/sbin/cron</td></tr><t/able>
    

    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

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

      hätte frage zm typeof befehl

      warum wird dieser datenpunkt nicht als type string erkannt?

      if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) ...
      

      wenn ich den inhalt in z.b aaa ändere funktioniert es!?

      mein datenpunkt:
      Image 7.png

      der inhalt (html-code):

      <table><tr><td  class="getprocessswap1" >9192kB&emsp;&emsp;</td><td>/usr/bin/node</td></tr><tr><td  class="getprocessswap1" >5088kB&emsp;&emsp;</td><td>/usr/bin/node</td></tr><tr><td  class="getprocessswap1" >2912kB&emsp;&emsp;</td><td>/usr/sbin/nmbd</td></tr><tr><td  class="getprocessswap1" >2061kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1863kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1829kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1805kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1688kB&emsp;&emsp;</td><td>/sbin/dhclient</td></tr><tr><td  class="getprocessswap1" >1304kB&emsp;&emsp;</td><td>/usr/sbin/sshd</td></tr><tr><td  class="getprocessswap1" >1285kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1267kB&emsp;&emsp;</td><td>/usr/sbin/smbd</td></tr><tr><td  class="getprocessswap1" >1216kB&emsp;&emsp;</td><td>/lib/systemd/systemd</td></tr><tr><td  class="getprocessswap1" >1120kB&emsp;&emsp;</td><td>/usr/bin/redis-server</td></tr><tr><td  class="getprocessswap1" >724kB&emsp;&emsp;</td><td>/lib/systemd/systemd-journald</td></tr><tr><td  class="getprocessswap1" >712kB&emsp;&emsp;</td><td>/lib/systemd/systemd-logind</td></tr><tr><td  class="getprocessswap1" >616kB&emsp;&emsp;</td><td>/usr/sbin/rsyslogd</td></tr><tr><td  class="getprocessswap1" >552kB&emsp;&emsp;</td><td>/usr/bin/dbus-daemon</td></tr><tr><td  class="getprocessswap1" >504kB&emsp;&emsp;</td><td>/usr/bin/node</td></tr><tr><td  class="getprocessswap1" >368kB&emsp;&emsp;</td><td>/usr/sbin/cron</td></tr><tr><td  class="getprocessswap1" >280kB&emsp;&emsp;</td><td>/sbin/agetty</td></tr><tr><td  class="getprocessswap1" >280kB&emsp;&emsp;</td><td>/sbin/agetty</td></tr><tr><td  class="getprocessswap1" >72kB&emsp;&emsp;</td><td>/usr/sbin/cron</td></tr><t/able>
      
      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      @liv-in-sky sagte in js-typeof-befehl - was ist falsch daran?:

      warum wird dieser datenpunkt nicht als type string erkannt?

      Wo ist val1 definiert? Woran machst du fest, dass der Datenpunkt kein String ist?

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      liv-in-skyL 1 Antwort Letzte Antwort
      0
      • AlCalzoneA AlCalzone

        @liv-in-sky sagte in js-typeof-befehl - was ist falsch daran?:

        warum wird dieser datenpunkt nicht als type string erkannt?

        Wo ist val1 definiert? Woran machst du fest, dass der Datenpunkt kein String ist?

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

        @AlCalzone weil ich es logge aber zum besseren verständnis der ganze teil (es handelt sich um ein geändertes script zu auslesen der redis states)

        var cacheSelectorState = $('state[state.id=javascript.0.*]');
        
        
        cacheSelectorState.each(function (id, i) {
            if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('Log-Script')  && !id.includes('Ereignisliste') && !id.includes('GETPROCESS') ){
            var val1 = getState(id).val;
               if (val1 == null ) 
                  {log(id + " hat keinen state");} 
             else {var zk = "setState('"+id+"', "+val1 +");\n";
                   if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) {
                       zk = "setState('"+id+"', '"+val1+"');\n";
                       log(id + " -- " + val1 + " ----------- " + val1.includes('span'));
                       fs.appendFileSync(datei + logdate + "-"+ logtime + ".txt", zk);}
                   else {
                    log("KEIN STRING " +id + " -- " + val1);
                    fs.appendFileSync(datei + logdate + "-"+ logtime + ".txt", zk);}
                   };}
        });
        

        wie erwähnt - steht nur ein kleiner text drin wird es als string erkannt

        ich wollte gerne die html einträge nicht im ergebnis haben, deashalb versuche ich span und class zu finden und nicht zu schreiben

        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
        • AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          Das müsste eigentlich genau so funktionieren. Gebe doch mal für den State bei dem der Fehler (?) auftritt den Typ im Log aus:

          if (id === "dein-problematischer-state") {
              var val1 = getState(id).val;
              log(typeof val1);
          }
          

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          liv-in-skyL 1 Antwort Letzte Antwort
          0
          • AlCalzoneA AlCalzone

            Das müsste eigentlich genau so funktionieren. Gebe doch mal für den State bei dem der Fehler (?) auftritt den Typ im Log aus:

            if (id === "dein-problematischer-state") {
                var val1 = getState(id).val;
                log(typeof val1);
            }
            
            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von liv-in-sky
            #5

            @AlCalzone habe es mal so versucht - jetzt scheint es zu gehen - habe abfragen getrennt

                var cacheSelectorState = $('state[state.id=controll-own.0.*]');
            cacheSelectorState.each(function (id, i) {
                var val1 = getState(id).val;
                   if (val1 == null ) 
                      {log(id + " hat keinen state");} 
                 else {var zk = "setState('"+id+"', "+val1 +");\n";
                      /* if(typeof val1 === "string" ) {*/
                           /*if( val1.indexOf('bespiel') == -1 && val1.indexOf('class') == -1) {                  && ! val1.includes('beispiel') && ! val1.includes('class') */      
                           if( typeof val1 === "string") {
                           zk = "setState('"+id+"', '"+val1+"');\n";
                           log(id + " -- " + val1 + " ----------- " + val1.includes('span'));
                           if (val1.includes('span') || val1.includes('class')) {log("------------------------------------------------------------- span oder classn enthalten "+ id);} else {
                           fs.appendFileSync(datei + "-controll-own0-" + logdate + "-"+ logtime + ".txt", zk);}}
                       else {
                           log("KEIN STRING " +id + " -- " + val1);
                           fs.appendFileSync(datei + "-controll-own0-" + logdate + "-"+ logtime + ".txt", zk);}
                       };
            });
            
            

            irgendwie habe ich da was falsches gemacht?

            f(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')
            

            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
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            813

            Online

            32.4k

            Benutzer

            81.5k

            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