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. Einführung in JavaScript - Diskussionsthread

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    501

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Einführung in JavaScript - Diskussionsthread

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
23 Beiträge 9 Kommentatoren 4.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.
  • HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #8

    @Bluefox:

    @gst666 Probiere noch mal. `
    So hätte ich es auch gekonnt - das ist zu einfach :mrgreen:

    Gruß

    Rainer

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #9

      Hi,

      Ertsmal noch mals ein riesen Lob für die tolle Arbeit!!!!!!!!!!!

      Eine Frage Bezüglich der Formulierung…

      @gst666:

      Etwas tückisch ist, dass man Variablen auch implizit durch Wertezuweisung erzeugen kann:

      	sLastName=„Müller“;
      

      Hiervon rate ich jedoch ab, da schwer zu erkennen ist, ob eine Variable erstmalig erzeugt wird, oder unreinen neuen Wert zugewiesen bekommt `

      Es macht doch meines Wissen einen riesen Unterschied ob man'Variablen so deklariert. Hier kommt doch die globale Verfügbarkeit und Spiel. Deklariere ich eine Variable innerhalb einer Funktion mit var…. Ist sie auch nur dort verfügbar, mache ich dies ohne var.... Ist sie auch außerhalb verfügbar.?

      Das soll als Frage verstanden werden, bin nämlich absoluter Neuling...

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

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

        Ich vermeide generell dIE Variablendeklarierung ohne "var". Wie du es richtig bemerkt hast, ohne "var" sind überall sichtbar und können von Garbage Collector nie befreit sein.

        Und "überall" in diesem Fall heißt: überall in diesem Skript. Nicht in allen Skripten.

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          tschombe
          schrieb am zuletzt editiert von
          #11

          Arbeite mich aktuell auch tiefer in JavaScript ein,

          das Beste Buch dafür ist meiner Meinung nach:

          https://www.amazon.de/Das-Beste-JavaScr … 3897218763

          Ich kenne nur die englische Version, kann also zur Übersetzung nix sagen, aber

          das Buch beleuchtet die Guten und Schlechten Aspekte von JavaScript und

          zeigt Gründe, warum man gewisse Konstrukte verwenden oder vermeiden sollte

          1 Antwort Letzte Antwort
          0
          • G Offline
            G Offline
            gst666
            schrieb am zuletzt editiert von
            #12

            @ blauholsten

            Danke für einen Beitrag. Bezüglich des Scope, also Sichtbarkeit habe ich nichts geschrieben, da ich bislang noch nicht in das Thema Funktionen eingeführt habe. Ich finde es toll, dass Du so etwas bemerkst. Sichtbarkeit kann bei unübersichtlicher Programmierung ein ganz heikles Thema sein. Falls Dir andere Fragen aufkommen, nur heraus damit. Dadurch habe ich einen Feedback, wie verständlich der Text ist und ob vielleicht Ergänzungen sinnvoll sind. Falls Dich ein Thema besonders interessiert, so Frage ruhig danach. Zwar versuche ich im Augenblick die Kapitel in einer gewissen Reihenfolge zu schreiben. Sicherlich muss ich die einzelnen Kapitel mit der Zeit neu sortieren, damit die Übersichtlichkeit gewährleistet ist.

            Auch Hinweise zu Schreibfehlern, etc. sind erwünscht. So hat die automatische Textkorrektur in dem Zitat von Dir aus "irgendeinen" das Wort "unreinen" gemacht. Grrgh.

            In dem Sinne weiterhin viel Spaß beim lesen und nachfragen. Wie alle lernen davon (auch ich, da ich durch das Schreiben, vieles noch mal nachlesen muss und dabei immer wieder auf für mich neues treffe).

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

              @gst666:

              Es gibt folgende primitiven Datentypen:

              • Boolean

              • Undefined

              • Null

              • Number

              • String Du solltest Javascript-Schlüsselworte generell so schreiben, wie sie in Javascript zu schreiben sind (also klein), da es Anfänger sonst verwirren könnte > Es gibt folgende primitiven Datentypen:

              • 'boolean'

              • 'undefined'

              • null ??

              • 'number'

              • 'string' `
                Ist null wirklich ein Datentyp ? Meiner Meinung nach ist null ein spezieller Wert und typeof null liefert 'object' .
                @gst666:

              Boolean:

              Der Datentyp Boolean stellt einen logischen Wert: „true“ oder „false“. Man kann sich das vorstellen wie Licht an/aus. "true" und "false" sind Strings, was ebenfalls zur Annahme führen könnte, dass es auch so verwendet werden kann. Besser: > boolean:

              Der Datentyp 'boolean' stellt einen logischen Wert: true oder false. Man kann sich das vorstellen wie Licht an/aus. `
              Um Schlüsselwörter hervorzuheben, besser eine andere Schriftart verwenden als die normale, aber bitte keine Anführungszeichen.

              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
              • HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #14

                Hallo gst666;

                ich muss da paul53 recht geben, auch ich versuche immer Anführungszeichen wo sie nicht hingehören zu vermeiden und durch andere Hilfsmittel den entsprechenden Text hervorzuheben.

                Apropos Anführungszeichen:

                Ich habe heute morgen deinen Text von gestern und soeben deinen aktuellen Text auf die Website kopiert und dabei gesehen, dass wieder (ohne System) typographische An- und Abführungszeichen vorkamen - warum auch immer :?:

                Diesmal waren dann in dem letzten Beispiel sogar andere Hochkommata drin (IMHO diesmal korrekt)

                Ich muss beizeiten nochmal den gesamten Text (zumindest auf der Website) danach durchflöhen und ändern.

                Für heute las ich es noch.

                Gruß

                Rainer

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                1 Antwort Letzte Antwort
                0
                • G Offline
                  G Offline
                  gst666
                  schrieb am zuletzt editiert von
                  #15

                  @paul53

                  Macht Sinn den Datentyp genauso zu schreiben wie das Schlüsselwort, um Verwirrungen zu vermeiden. Werde ich ändern.

                  null ist laut Definition ein primitiven Datentyp. In der Spezifikation von Javascript kann man es nachlesen: http://www.ecma-international.org/ecma- … null-value.

                  Die Idee Schlüsselwörter hervorzuheben finde ich gut. Mit den Anführungszeichen bin ich nicht glücklich. Mal sehen, ob das auch so einfach in das Wiki kopiert werden kann. Übrigens „true“ oder „false“ sind gerade keine Strings. Nur die Zeichen " oder ' begrenzen einen String. Die Zeichenkombination „“ begrenzt keinen String.

                  @Homoran

                  Die blöden „“ zaubert mir die Autokorrektur rein. Der Vorschlag von Paul möglichst auf Anführungszeichen zu verzichten ist sicherlich der Königsweg. Im Forum würde ich solche Worte einfach so kennzeichnen.

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

                    @gst666:

                    null ist laut Definition ein primitiven Datentyp. In der Spezifikation von Javascript kann man es nachlesen: http://www.ecma-international.org/ecma- … null-value. `
                    Das stimmt laut ECMA-Definition zwar, aber ich würde als Datentyp nur die Sachen bezeichnen, die typeof Wert liefert. null ist hingegen ein Wert und wird ohne Hochkomma verwendet, während typeof immer einen String liefert.
                    @gst666:

                    Übrigens „true“ oder „false“ sind gerade keine Strings. `
                    Stimmt, kann man aber leicht übersehen (wie mir geschehen).

                    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
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #17

                      @gst666:

                      Die blöden „“ zaubert mir die Autokorrektur rein. Der Vorschlag von Paul möglichst auf Anführungszeichen zu verzichten ist sicherlich der Königsweg. `
                      Mir geht es nicht um den Text sondern um die Codebeispiele.

                      dort müssen ja Stringerkennungszeichen ;-) den String eingrenzen, egal ob es einfache oder doppelte Hochkommata sind.

                      Die An- und Abführungszeichen habe ich auf der Website bereits gegen dopppelte Hochkommata ersetzt, jedoch scheinen es sich bei den einfachen Hochkommata zu 95% ebenfalls um typographische An-und Abführungszeichen (allerdings einfache) zu handeln. Ich habe das bereits früher vermutet, weil An- und Ab- sahen unterschiedlich aus, jetzt bin ich mir sicher, da im letzten Beispiel des letzten Teils tatsächlich echte Hochkommata verwendet wurden.
                      144_einfache_hochkommata.jpg
                      Wie gesagt, da muss ich die Seite noch mal durcharbeiten. Ich hoffe nur, dass bei cut and paste in einen Linuxeditor das sowieso automatisch korrigiert wird.

                      Gruß

                      Rainer

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

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

                        @gst666:

                        ts: Zeitstempel, wann der Wert geändert wurde

                        q: nicht bekannt

                        from: Instanz des Adapter, der die Meldung in ioBroker gesetzt hat

                        lc: Zeitstempel, des davor liegenden letzten Änderung des Wertes `
                        ts: Zeitstempel, wann der Wert aktualisiert wurde (auch ohne Wertänderung)

                        lc: Zeitstempel, wann der Wert geändert wurde

                        from: Adapter-Instanz, die den Wert zuletzt aktualisiert hat

                        q: Qualität - Nummer mit folgenden Zuständen:
                        ` > 0x00 - 00000000 - gut (kann auch undefined oder null sein)

                        0x01 - 00000001 - generell schlecht, generelles Problem

                        0x41 - 01000001 - generelles Problem mit dem Gerät

                        0x81 - 10000001 - generelles Problem mit dem Sensor

                        0x42 - 01000010 - Gerät nicht verbunden

                        0x82 - 10000010 - Sensor nicht verbunden

                        0x44 - 01000100 - Fehlermeldung aus dem Gerät

                        0x84 - 10000100 - Fehlermeldung aus dem Sensor `

                        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
                        • G Offline
                          G Offline
                          gst666
                          schrieb am zuletzt editiert von
                          #19

                          @paul53

                          Danke für Deine Hinweise. lc hatte ich falsch verstanden. Habe Deine Anmerkung in die Doku eingearbeitet.

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

                            Habe alles auf der Webseite eingepflegt. Es ist ein sehr gute Einleitung geworden.

                            Danke.

                            1 Antwort Letzte Antwort
                            0
                            • HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #21

                              :oops: Bin zum Schluss nicht mehr dazu gekommen :oops:

                              Zu viele Baustellen

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Antwort Letzte Antwort
                              0
                              • D Offline
                                D Offline
                                dtp
                                schrieb am zuletzt editiert von
                                #22

                                Auch von meiner Seite ein riesengroßes Dankeschön an steinwedel/gst666 für die tolle Doku. Konnte da schon einiges rausziehen für meine ersten Javascript-Gehversuche. Sehr gut finde ich die direkten Bezüge in der Anleitung zum ioBroker.

                                Gruß,

                                Thorsten

                                ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                                1 Antwort Letzte Antwort
                                0
                                • M Offline
                                  M Offline
                                  Mihaeru
                                  schrieb am zuletzt editiert von
                                  #23

                                  Ich bin beeindruckt vom Umfang und der Aufmachung der Einführung. Vielen Dank dafür!

                                  Ich komme aus der C\C++\C# Entwicklung und überfliege gerade mal die Doku, da ich mit Javascript bisher nichts zu tun hatte.

                                  Mir sind da ein paar Kleinigkeiten aufgefallen:
                                  > Wenn es wärmer als 25°C sind sollen sich die Fenster öffnen (1\. Punkt). Erst wenn es 20°C sind, sollen sie sich wieder schließen (2\. Punkt).
                                  Im Code schließen die Fenster nicht bei 20°C, sondern wenn es unter 25°C ist.

                                  if (temp>25) {
                                  setState("hm-rpc.1.IEQ057xxxx.3.State",true); //Fenster öffnen
                                  } else if (temp<25) {
                                  setState("hm-rpc.1.IEQ057xxxx.3.State",true); //Fenster schließen
                                  

                                  Weiter unten bei 'Logische Operatoren' ist die Darstellung etwas verunglückt und dadurch haben sich auch zwei Fehler eingeschlichen:
                                  ` > A B A && B A || B !A

                                  false false true false true

                                  false true false true false

                                  true false false true false

                                  true true true true false `

                                  > In der ersten Zeile wird das Modul util geladen. Was es damit auf sich hat, lassen wir mal offen.
                                  Ein kurzer Hinweis, dass util ein Javascript Modul (oder wie auch immer man das nennt) ist und 'Inspect' einen string ausgibt, der das Objekt repräsentiert, wäre schon hilfreich. Ich hatte mich jedenfalls erst mal gewundert, da ich keine Ahnung hatte, ob es etwas ioBroker spezifisches ist oder mit einem Adapter zu tun hat oder was auch immer.

                                  Noch eine letzte Sache. Bei der Beschreibung von Funktionen wird in den Code Beispielen an mehreren Stellen '<' statt '<' angezeigt.

                                  Bin jetzt damit durch und habe wirklich eine Menge gelernt. Prima Einführung und vielen Dank nochmal!

                                  Viele Grüße

                                  Michael

                                  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

                                  594

                                  Online

                                  32.5k

                                  Benutzer

                                  81.8k

                                  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