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] Fehlermeldung JS: Ref...or: typ is not defined

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Fehlermeldung JS: Ref...or: typ is not defined

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 540 Aufrufe 1 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.
  • AndreiosA Offline
    AndreiosA Offline
    Andreios
    Forum Testing
    schrieb am zuletzt editiert von Andreios
    #1

    Hallo,

    ich steuere ein paar Lampen über JavaScript.
    Dazu habe ich mir ein Array angelegt, wo ich die entsprechenden Daten zur Prüfung, ob sie aktiv geschaltet werden, ob eine Mail geschickt werden soll usw. hinterlegt.

    Das funktioniert für ein paar Lampen.
    Jetzt habe ich das Array um ein Objekt erweitert:

    schalter[++i]                    	= new Object();
    schalter[i]["Pruefpunkt"]		= "alias.0.OG.Essszimmer.LichtFenster.Schalter.Switch";     
    schalter[i]["Aktivpunkt"]		= "0_userdata.0.Automatisierungsschalter.Aktiv.Esszimmer_Fenster";
    schalter[i]["Signalisierung"]    	= "0_userdata.0.Automatisierungsschalter.EMail.Esszimmer_Fenster";	
    schalter[i]["Typ"] 			= "boolean";
    schalter[i]["Ein"] 			= true;
    schalter[i]["Aus"] 			= false;
    
    

    ... und bekomme bei der Ausführung 3 Fehlermeldungen:

    11:40:00.005	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:123:23)
    11:41:00.049	error	javascript.0 (1478) script.js.Steuerung.Licht: ReferenceError: typ is not defined
    11:41:00.050	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:123:23)
    

    Die Stelle in Zeile 123 nutzt den Pruefpunkt, aber diesen habe ich aus der Liste hinzugefügt (Die 3 s in Essszimmer sind ein Tippfehler im Alias, den ich noch nicht korrigiert habe!), der ist also vorhanden, vom Typ Boolean (Ist ein Shelly Plug S) und lässt sich so über einen Button auch schalten.
    Da so auch andere Shellys, jedoch noch kein Plug, geschaltet werden und ich den Code-Block kopiert und angepasst habe, bin ich davon ausgeggangen, dass es funktionieren sollte.

    Lange Rede, ....: Die Meldung "ReferenceError: typ ist not defined" bringt mich aktuell nicht auf die richtige Idee, wo ich suchen soll.
    Kann mich jemanda auf die richtige Spur bringen? ;-)

    Danke!

    --
    Schöne Grüße
    Andreas

    ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

    Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

    paul53P 1 Antwort Letzte Antwort
    0
    • AndreiosA Andreios

      Hallo,

      ich steuere ein paar Lampen über JavaScript.
      Dazu habe ich mir ein Array angelegt, wo ich die entsprechenden Daten zur Prüfung, ob sie aktiv geschaltet werden, ob eine Mail geschickt werden soll usw. hinterlegt.

      Das funktioniert für ein paar Lampen.
      Jetzt habe ich das Array um ein Objekt erweitert:

      schalter[++i]                    	= new Object();
      schalter[i]["Pruefpunkt"]		= "alias.0.OG.Essszimmer.LichtFenster.Schalter.Switch";     
      schalter[i]["Aktivpunkt"]		= "0_userdata.0.Automatisierungsschalter.Aktiv.Esszimmer_Fenster";
      schalter[i]["Signalisierung"]    	= "0_userdata.0.Automatisierungsschalter.EMail.Esszimmer_Fenster";	
      schalter[i]["Typ"] 			= "boolean";
      schalter[i]["Ein"] 			= true;
      schalter[i]["Aus"] 			= false;
      
      

      ... und bekomme bei der Ausführung 3 Fehlermeldungen:

      11:40:00.005	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:123:23)
      11:41:00.049	error	javascript.0 (1478) script.js.Steuerung.Licht: ReferenceError: typ is not defined
      11:41:00.050	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:123:23)
      

      Die Stelle in Zeile 123 nutzt den Pruefpunkt, aber diesen habe ich aus der Liste hinzugefügt (Die 3 s in Essszimmer sind ein Tippfehler im Alias, den ich noch nicht korrigiert habe!), der ist also vorhanden, vom Typ Boolean (Ist ein Shelly Plug S) und lässt sich so über einen Button auch schalten.
      Da so auch andere Shellys, jedoch noch kein Plug, geschaltet werden und ich den Code-Block kopiert und angepasst habe, bin ich davon ausgeggangen, dass es funktionieren sollte.

      Lange Rede, ....: Die Meldung "ReferenceError: typ ist not defined" bringt mich aktuell nicht auf die richtige Idee, wo ich suchen soll.
      Kann mich jemanda auf die richtige Spur bringen? ;-)

      Danke!

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @andreas-5 sagte: typ ist not defined

      Vermutlich fehlt ein "e": "type"?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      AndreiosA 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @andreas-5 sagte: typ ist not defined

        Vermutlich fehlt ein "e": "type"?

        AndreiosA Offline
        AndreiosA Offline
        Andreios
        Forum Testing
        schrieb am zuletzt editiert von Andreios
        #3

        @paul53 sagte in Fehlermeldung JavaScript: ReferenceError: typ is not defined:

        @andreas-5 sagte: typ ist not defined

        Vermutlich fehlt ein "e": "type"?

        Das kann ich mir nicht vorstellen. Das Wort "Typ" kommt nur an einer Stelle in dem Objekt vor, ist vorne groß geschrieben und da definiere ich das selber. Auch bei den anderen 8 Objekten, die auf die gleiche Weise behandelt werden, ist das "Typ" geschrieben.

        Hier das Object direkt davor, das funktioniert:

        schalter[++i]                  	= new Object();
        schalter[i]["Pruefpunkt"] 		= "shelly.0.SHSW-25#10521CF12090#1.Relay1.Switch";                 
        schalter[i]["Aktivpunkt"]		= "0_userdata.0.Automatisierungsschalter.Aktiv.Licht_Balkon_Strahler";
        schalter[i]["Signalisierung"] 	= "0_userdata.0.Automatisierungsschalter.EMail.Licht_Balkon_Strahler";	
        schalter[i]["Typ"] 				= "boolean";
        schalter[i]["Ein"] 				= true;
        schalter[i]["Aus"] 				= false;
        
        

        Ich kann da den entscheidenden Unterschied nicht feststellen, zudem ich genau dieses Objekt kopiert hatte und dann lediglich die 3 Datenpunkte ersetzt. Damit habe ich auch Tippfehler weitestgehend ausgeschlossen.

        Den einzigen Unterschied, den ich aktuell bei diesen beiden sehe, ist, dass der eine Datenpunkt direkt der vom Shelly ist und der andere ein Alias.
        Aber Aliase habe ich im gleichen Script weiter vorne auch verwendet!

        Mmmmhh [Am Kinn kratz].
        Hat vielleicht noch jemand eine Idee, wo ich noch suchen kann?

        Edit: Da ich es gerade geschrieben hatte, habe ich dann doch einmal den Alias gegen den Direkten DP vom Shelly-Adapter ausgetauscht.

        Ergebnis:

        19:53:00.005	error	javascript.0 (1478) script.js.Steuerung.Licht: ReferenceError: typ is not defined
        19:53:00.006	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:127:23)
        19:54:00.048	error	javascript.0 (1478) script.js.Steuerung.Licht: ReferenceError: typ is not defined
        19:54:00.049	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:127:23)
        
        

        Die andere Zeilennummer kommt daher, das ich die Auskommentierung des Block nicht gelöscht habe, sondern nur den Kommentar vorher geschlossen und hinterher wieder geöffnet habe.

        --
        Schöne Grüße
        Andreas

        ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

        Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

        paul53P 1 Antwort Letzte Antwort
        0
        • AndreiosA Andreios

          @paul53 sagte in Fehlermeldung JavaScript: ReferenceError: typ is not defined:

          @andreas-5 sagte: typ ist not defined

          Vermutlich fehlt ein "e": "type"?

          Das kann ich mir nicht vorstellen. Das Wort "Typ" kommt nur an einer Stelle in dem Objekt vor, ist vorne groß geschrieben und da definiere ich das selber. Auch bei den anderen 8 Objekten, die auf die gleiche Weise behandelt werden, ist das "Typ" geschrieben.

          Hier das Object direkt davor, das funktioniert:

          schalter[++i]                  	= new Object();
          schalter[i]["Pruefpunkt"] 		= "shelly.0.SHSW-25#10521CF12090#1.Relay1.Switch";                 
          schalter[i]["Aktivpunkt"]		= "0_userdata.0.Automatisierungsschalter.Aktiv.Licht_Balkon_Strahler";
          schalter[i]["Signalisierung"] 	= "0_userdata.0.Automatisierungsschalter.EMail.Licht_Balkon_Strahler";	
          schalter[i]["Typ"] 				= "boolean";
          schalter[i]["Ein"] 				= true;
          schalter[i]["Aus"] 				= false;
          
          

          Ich kann da den entscheidenden Unterschied nicht feststellen, zudem ich genau dieses Objekt kopiert hatte und dann lediglich die 3 Datenpunkte ersetzt. Damit habe ich auch Tippfehler weitestgehend ausgeschlossen.

          Den einzigen Unterschied, den ich aktuell bei diesen beiden sehe, ist, dass der eine Datenpunkt direkt der vom Shelly ist und der andere ein Alias.
          Aber Aliase habe ich im gleichen Script weiter vorne auch verwendet!

          Mmmmhh [Am Kinn kratz].
          Hat vielleicht noch jemand eine Idee, wo ich noch suchen kann?

          Edit: Da ich es gerade geschrieben hatte, habe ich dann doch einmal den Alias gegen den Direkten DP vom Shelly-Adapter ausgetauscht.

          Ergebnis:

          19:53:00.005	error	javascript.0 (1478) script.js.Steuerung.Licht: ReferenceError: typ is not defined
          19:53:00.006	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:127:23)
          19:54:00.048	error	javascript.0 (1478) script.js.Steuerung.Licht: ReferenceError: typ is not defined
          19:54:00.049	error	javascript.0 (1478) at Object.<anonymous> (script.js.Steuerung.Licht:127:23)
          
          

          Die andere Zeilennummer kommt daher, das ich die Auskommentierung des Block nicht gelöscht habe, sondern nur den Kommentar vorher geschlossen und hinterher wieder geöffnet habe.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @andreas-5 sagte: Die andere Zeilennummer

          Was steht in Zeile 127?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          AndreiosA 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @andreas-5 sagte: Die andere Zeilennummer

            Was steht in Zeile 127?

            AndreiosA Offline
            AndreiosA Offline
            Andreios
            Forum Testing
            schrieb am zuletzt editiert von Andreios
            #5

            @paul53 sagte in Fehlermeldung JavaScript: ReferenceError: typ is not defined:

            @andreas-5 sagte: Die andere Zeilennummer

            Was steht in Zeile 127?

            Danke, das war der richtige Hinweis!!!
            Ich weiß nicht warum, vorher war es ja Zeile 123 und da hatte ich nachgesehen, da stand

                       createState(merkerpfad + schalter[i]["Pruefpunkt"], "", ueberschreiben, {
            
            

            Da habe ich hingeguckt und nicht weiter.
            Das mit der Auskommentierung sollte zwar eigentlich eine Verschiebung mit sich bringen, kann aber sein, dass ich auch irgendwo Leerzeilen gelöscht habe.

            Auf jeden Fall ist es jetzt so, dass in Zeile 127 tatsächlich typ zu finden ist!

            Hintergrund:
            Bis vor Kurzem hatte ich das noch nicht in Objekten organisiert, sondern, da das Skript ja mit der Zeit gewachsen ist, zuerst in einem Array, dann waren es mehrere und da u.a. auch das Array typ.

            Dann habe ich das auf das mehrdimensionale Array umgestellt und alles lief wunderbar.

            Nachdem ich dann das zusätzliche Object in das Array eingefügt hatte, kam der Fehler und da kam meine Verwirrung, weil ich die Zeile betrachtet und für gut befunden habe und nicht mehr den Rest angeschaut habe.
            Der ganze Block sieht so aus:

                for (var i = 0; i < schalter.length; i++) 
                {
                    if (!existsState(merkerpfad + schalter[i]["Pruefpunkt"]))
                    {
                        createState(merkerpfad + schalter[i]["Pruefpunkt"], "", ueberschreiben, {
                            name: schalter[i]["Pruefpunkt"],
                            desc: "Letzter Zustand",
                            type: typ[i],
                            role: "value",
                            unit: ""
                        });
            
            

            Da hätte ich auch drauf kommen können, dass da der neue Merker-DP angelegt werden soll und es gar nicht um die Zeile 123 (hier 5) ging. Der Fehler war da auch schon in Zeile 127 (hier 8)!
            Deshalb funktionierten die anderen Schalter, da die Merker-DP schon von vorher existierten und damit der Teil nicht genutzt wurde.

            Kurz geändert:

                for (var i = 0; i < schalter.length; i++) 
                {
                    if (!existsState(merkerpfad + schalter[i]["Pruefpunkt"]))
                    {
                        createState(merkerpfad + schalter[i]["Pruefpunkt"], "", ueberschreiben, {
                            name: schalter[i]["Pruefpunkt"],
                            desc: "Letzter Zustand",
                            type: schalter[i]["Typ"],
                            role: "value",
                            unit: ""
                        });
            
            

            und schon fuktioniert es!

            Peinlich, peinlich!!

            Danke!!!

            --
            Schöne Grüße
            Andreas

            ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

            Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

            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

            674

            Online

            32.6k

            Benutzer

            82.3k

            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