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. [gelöst]Fehler in Skripten nach Javaskript Adapter Update auf 2.1.2

NEWS

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

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

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

[gelöst]Fehler in Skripten nach Javaskript Adapter Update auf 2.1.2

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 4 Kommentatoren 3.1k Aufrufe
  • Ä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.
  • P Offline
    P Offline
    pix
    schrieb am zuletzt editiert von
    #1

    Seit dem Update des Javascript Adapter heute von 2.0.6 auf 2.1.2 habe ich sehr viele Fehler "error: uncaught exception: Cannot read property 'val' of undefined" und zB "warn: javascript.1 Wrong type of javascript.1.Wunderground.XXXXX.Aktualisierung: undefined Please fix, while deprecated and will not work in next versions." oder "warn: javascript.0 Wrong type of javascript.0.Strom.Dampfgarer.Verbrauch.Tag: string Please fix, while deprecated and will not work in next versions." im Log. Der Adapter startet die betroffenen Instanzen ständig neu.

    Da scheint einiges im Adapter geändert worden zu sein. Was ist zu tun?

    Gruß

    Pix

    Edit:

    Logfile wächste und wächst

    ! ````
    2016-05-24 02:06:28.897 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Verbrauch.Woche: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:06:28.897 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Kosten.Woche: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:06:28.898 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Verbrauch.Monat: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:06:28.898 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Kosten.Monat: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:06:28.898 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Verbrauch.Quartal: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:06:28.899 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Kosten.Quartal: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:06:28.899 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Verbrauch.Jahr: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:06:28.900 - warn: javascript.0 Wrong type of javascript.0.Strom.Kühlschrank.Kosten.Jahr: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.012 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Verbrauch.Tag: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.013 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Kosten.Tag: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.013 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Verbrauch.Woche: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.013 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Kosten.Woche: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.014 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Verbrauch.Monat: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.014 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Kosten.Monat: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.014 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Verbrauch.Quartal: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.015 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Kosten.Quartal: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.015 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Verbrauch.Jahr: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:07:49.015 - warn: javascript.0 Wrong type of javascript.0.Strom.Waschmaschine.Kosten.Jahr: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.774 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Verbrauch.Tag: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.774 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Kosten.Tag: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.775 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Verbrauch.Woche: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.775 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Kosten.Woche: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.775 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Verbrauch.Monat: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.777 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Kosten.Monat: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.777 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Verbrauch.Quartal: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.777 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Kosten.Quartal: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.778 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Verbrauch.Jahr: string Please fix, while deprecated and will not work in next versions.
    2016-05-24 02:08:29.778 - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Kosten.Jahr: string Please fix, while deprecated and will not work in next versions.

    Dabei sind die angesprochenen States gar nicht vom Typ string, sondern number! :cry:

    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #2

      Guten Morgen Pix,

      siehe http://forum.iobroker.net/viewtopic.php … 203#p26184

      Offiziell gibt es noch nichts, aber eine Lösung von paul53.

      Gruß

      Michael

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        schrieb am zuletzt editiert von
        #3

        @pix:

        2016-05-24 02:08:29.778  - warn: javascript.0 Wrong type of javascript.0.Strom.Venta.Kosten.Jahr: string Please fix, while deprecated and will not work in next versions.
        

        Dabei sind die angesprochenen States gar nicht vom Typ string, sondern number! :cry: `
        Wie sieht dein Kode an dieser Stelle aus?

        Wenn typeof "string" sagt, dann ist es ein String :)

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          Mit setState(id, val) werden String-Werte an Datenpunkte vom Typ 'number' (Zahl) übergeben. Das soll zukünftig vermieden werden.

          Wenn die Originale als String vorliegen, sollte

          Wert = parseFloat(Wert);
          // oder
          Wert = parseInt(Wert);
          

          darauf angewendet werden. Macht man das nicht, hat man ein Problem, wenn man mit den zurück gelesenen Werten rechnen will.

          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

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            Aus Deinem Verbrauchs-Skript:

                setState(instanz + pfad + geraet + '.Verbrauch.Tag',     (zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Tag').val).toFixed(3));           // Verbrauch an diesem Tag in kWh
            
            

            toFixed(3) erzeugt einen String !

            Mit createState wurde aber ein Datenpunkt mit type 'number' angelegt !

            Sollte also korrigiert werden:

            setState(instanz + pfad + geraet + '.Verbrauch.Tag', parseFloat((zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Tag').val).toFixed(3)));           // Verbrauch an diesem Tag in kWh
            

            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

            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #6

              Danke für die Erläuterungen…

              habe bei meinen Skripten nun auch einiges zu tun :shock: ;)

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • P Offline
                P Offline
                pix
                schrieb am zuletzt editiert von
                #7

                Jetzt habe ich das verstanden. Das heißt im Klartext, dass man in Zukunft sehr genau evtl. Fehler abfangen muss. Gerade beim Parsen passiert da schnell ein Fehler. Ich habe es gerade mal geschafft 4 Skripte zu überarbeiten. 70! kommen noch. Da hab ih erstmal zu tun.

                Für einige Skripte, die hier veröffentlicht worden sind trifft das zu. Gerade habe ich am Skript für Spritpreise gearbeitet. Es folgen weitere.

                Gruß

                Pix

                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  pix
                  schrieb am zuletzt editiert von
                  #8

                  @paul53:

                  Aus Deinem Verbrauchs-Skript:

                      setState(instanz + pfad + geraet + '.Verbrauch.Tag',     (zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Tag').val).toFixed(3));           // Verbrauch an diesem Tag in kWh
                  
                  

                  toFixed(3) erzeugt einen String !

                  Mit createState wurde aber ein Datenpunkt mit type 'number' angelegt !

                  Sollte also korrigiert werden:

                  setState(instanz + pfad + geraet + '.Verbrauch.Tag', parseFloat((zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Tag').val).toFixed(3)));           // Verbrauch an diesem Tag in kWh
                  ```` `  
                  

                  Danke, das war aufschlussreich. Habs angepasst

                  ! ````
                  function berechneVerbrauchKosten(geraet, zaehler, preis) { // bei jedem eingehenden Wert pro Gerät
                  // Tag [Verbrauchskosten = (Zähler_ist - Zähler_Tagesbeginn) * Preis ] --- zaehler muss immer größer sein als Tages, Wochen, etc.-Wert
                  setState(instanz + pfad + geraet + '.Verbrauch.Tag', parseFloat( (zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Tag').val).toFixed(3) )); // Verbrauch an diesem Tag in kWh
                  setState(instanz + pfad + geraet + '.Kosten.Tag', parseFloat( ((zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Tag').val) * preis).toFixed(3) )); // Kosten an diesem Tag in €
                  // Woche
                  setState(instanz + pfad + geraet + '.Verbrauch.Woche', parseFloat( (zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Woche').val).toFixed(3) ));
                  setState(instanz + pfad + geraet + '.Kosten.Woche', parseFloat( ((zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Woche').val) * preis).toFixed(3) ));
                  // Monat
                  setState(instanz + pfad + geraet + '.Verbrauch.Monat', parseFloat( (zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Monat').val).toFixed(3) ));
                  setState(instanz + pfad + geraet + '.Kosten.Monat', parseFloat( ((zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Monat').val) * preis).toFixed(3) ));
                  // Quartal
                  setState(instanz + pfad + geraet + '.Verbrauch.Quartal', parseFloat( (zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Quartal').val).toFixed(3) ));
                  setState(instanz + pfad + geraet + '.Kosten.Quartal', parseFloat( ((zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Quartal').val) * preis).toFixed(3) ));
                  // Jahr
                  setState(instanz + pfad + geraet + '.Verbrauch.Jahr', parseFloat( (zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Jahr').val).toFixed(3) ));
                  setState(instanz + pfad + geraet + '.Kosten.Jahr', parseFloat( ((zaehler - getState(instanz + pfad + geraet + '.Zaehlerstand.Jahr').val) * preis).toFixed(3) ));
                  if (logging) log('Stromverbrauch und -kosten (' + geraet + ') aktualisiert', 'info');
                  }

                  Lasse das jetzt erstmal ein paar Tage laufen, bevor ich hier im Forum die neue Version poste.
                  
                  Gruß
                  
                  Pix

                  ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @pix:

                    Das heißt im Klartext, dass man in Zukunft sehr genau evtl. Fehler abfangen muss. `
                    Wenn man sauber programmieren will, sollte man an den Datenpunkt-Typ denken.

                    Als quick and dirty Programmierer kann man auch Datenpunkte vom Typ 'mixed' mittels der Kurzform von createState(name, init) erzeugen, was ich allerdings nicht empfehle.

                    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

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      pix
                      schrieb am zuletzt editiert von
                      #10

                      Ich habe schon immer versucht, in meinen Scripts die Parameter zu setzen.

                          createState(pfad + geraet + '.Zaehlerstand.Jahr',    0, {name: 'Zählerstand Jahresbeginn ('      + geraet + ')', type: 'number', unit:'kWh'});
                      
                      

                      Allerdings lasse ich read und write meistens weg (stehen immer auf true). Ebenso fehlt manchmal description.

                      Wenn jetzt also eine Zeichenkette in einen Number-Datenpunkt geschrieben werden soll, gibt es einen Fehler. Richtig? Gilt das auch für Adapter?

                      Gruß

                      Pix

                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #11

                        @pix:

                        Wenn jetzt also eine Zeichenkette in einen Number-Datenpunkt geschrieben werden soll, gibt es einen Fehler. Richtig? `
                        Ja.
                        @pix:

                        Gilt das auch für Adapter? `
                        Bisher ist die Typprüfung nur im JS-Adapter implementiert.

                        Meiner Meinung nach sollte sie künftig für alle Adapter erfolgen. Ist aber vielleicht nicht die Meinung von Bluefox :?:

                        Oder schwierig zu realisieren ?

                        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

                        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

                        756

                        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