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. IF .. THEN .. ELSE versus SWITCH .. CASE ..

NEWS

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

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

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

IF .. THEN .. ELSE versus SWITCH .. CASE ..

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
17 Beiträge 4 Kommentatoren 2.1k Aufrufe 4 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.
  • L Online
    L Online
    legro
    schrieb am zuletzt editiert von legro
    #1

    Irgendwie verstehe ich die Welt nicht mehr.:anguished:

    In der nachfolgenden Abbildung habe ich eine Funktion definiert, die eine ObjectID übergeben bekommt und den (Klar)Namen des Objektes zurückliefen soll. Die ObjectIDs werden einmal aus einer Aufzählung/Liste [FensterID], das andere Mal über den Namen des Objekts [Object ID(in ioBroker vergebener Name)] aus den Objekten in ioBroker bestimmt.

    Mittels debug-Ausgaben habe ich überprüft, dass tatsächlich identische Werte auf diese Weise entstehen.

    Die rechte Version arbeitet wie gewünscht, die linke Version liefert für alle Werte von FensterID bloß den Standardwert 'unbekannt'.

    Warum funktioniert die linke Version einfach nicht? Wer weiß Rat?

    fd38198d-333f-4c4c-b7e1-cbec615d0add-Seltsames.png

    PS:

    Die Funktion gedenke ich in mehreren Skripten zu verwenden, um mir PUSH-Meldungen zusammen zu basteln. So verwende ich sie beispielsweise, mich über ggf. noch offene Fenster benachrichtigen zu lassen, wenn ich das Haus verlasse.

    Um dasselbe optimierte Laufzeitverhalten zu erhalten, müsste ich - funktioniert die erste Variante nicht - in der zweiten noch IF .. THEN .. ELSE .. Ketten kodieren. Aber genau das wollte ich mir mit der ersten Lösung ersparen.

    Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
    Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

    AsgothianA AlCalzoneA 2 Antworten Letzte Antwort
    0
    • L legro

      Irgendwie verstehe ich die Welt nicht mehr.:anguished:

      In der nachfolgenden Abbildung habe ich eine Funktion definiert, die eine ObjectID übergeben bekommt und den (Klar)Namen des Objektes zurückliefen soll. Die ObjectIDs werden einmal aus einer Aufzählung/Liste [FensterID], das andere Mal über den Namen des Objekts [Object ID(in ioBroker vergebener Name)] aus den Objekten in ioBroker bestimmt.

      Mittels debug-Ausgaben habe ich überprüft, dass tatsächlich identische Werte auf diese Weise entstehen.

      Die rechte Version arbeitet wie gewünscht, die linke Version liefert für alle Werte von FensterID bloß den Standardwert 'unbekannt'.

      Warum funktioniert die linke Version einfach nicht? Wer weiß Rat?

      fd38198d-333f-4c4c-b7e1-cbec615d0add-Seltsames.png

      PS:

      Die Funktion gedenke ich in mehreren Skripten zu verwenden, um mir PUSH-Meldungen zusammen zu basteln. So verwende ich sie beispielsweise, mich über ggf. noch offene Fenster benachrichtigen zu lassen, wenn ich das Haus verlasse.

      Um dasselbe optimierte Laufzeitverhalten zu erhalten, müsste ich - funktioniert die erste Variante nicht - in der zweiten noch IF .. THEN .. ELSE .. Ketten kodieren. Aber genau das wollte ich mir mit der ersten Lösung ersparen.

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #2

      @legro Bei dem Bild passt etwas nicht.. Die beiden Funktionen sind identisch. Dementsprechend ist es schwer zu sagen was da nicht passt.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      L 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        @legro Bei dem Bild passt etwas nicht.. Die beiden Funktionen sind identisch. Dementsprechend ist es schwer zu sagen was da nicht passt.

        A.

        L Online
        L Online
        legro
        schrieb am zuletzt editiert von
        #3

        @Asgothian said in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

        @legro Bei dem Bild passt etwas nicht. ..

        Oh je, vor lauter Verzweiflung habe ich am Ende des Abends alles durcheinander gebracht.

        Ich habe meinen Beitrag daher nochmals überarbeitet.

        Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
        Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

        M 1 Antwort Letzte Antwort
        0
        • L legro

          @Asgothian said in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

          @legro Bei dem Bild passt etwas nicht. ..

          Oh je, vor lauter Verzweiflung habe ich am Ende des Abends alles durcheinander gebracht.

          Ich habe meinen Beitrag daher nochmals überarbeitet.

          M Offline
          M Offline
          mbw
          schrieb am zuletzt editiert von
          #4

          @legro in die "im Falle von" - Zweige muss nur die ObjektID rein, kein Vergleich mit der FensterID. Bei dem Vergleich mit FensterID kommt true oder false zurück und das wird dann wieder mit dem Wert vom SWITCH...CASE verglichen. Darum trifft dann auch kein Fall zu.

          L 1 Antwort Letzte Antwort
          1
          • M mbw

            @legro in die "im Falle von" - Zweige muss nur die ObjektID rein, kein Vergleich mit der FensterID. Bei dem Vergleich mit FensterID kommt true oder false zurück und das wird dann wieder mit dem Wert vom SWITCH...CASE verglichen. Darum trifft dann auch kein Fall zu.

            L Online
            L Online
            legro
            schrieb am zuletzt editiert von legro
            #5

            @mbw said in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

            @legro in die "im Falle von" - Zweige muss nur die ObjektID rein, kein Vergleich mit der FensterID. ..

            Oh verflixt! Darauf hätte ich auch selber kommen müssen.:anguished: In SELECT .. CASE .. wird schließlich eine Liste von verschiedenen Konstanten bewertet.

            Ich ließ mich wohl durch die Formulierungen in Blockly verführen, wobei ich doch extra mir den generierten Code angeschaut habe und dort sehen konnte, dass eine SELECT-Anweisung dahinter steckt.

            Nach einem ganzen Tag programmieren sieht man irgendwann den Wald vor lauter Bäumen nicht mehr.:grimacing:

            Vielen Dank für deine Hilfe!:+1:

            Und hier die korrigierte und selbstverständlich funktionierende Version ..

            206bbda6-54cc-4fbe-9695-c50a1b64b570-image.png

            Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
            Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

            1 Antwort Letzte Antwort
            0
            • L legro

              Irgendwie verstehe ich die Welt nicht mehr.:anguished:

              In der nachfolgenden Abbildung habe ich eine Funktion definiert, die eine ObjectID übergeben bekommt und den (Klar)Namen des Objektes zurückliefen soll. Die ObjectIDs werden einmal aus einer Aufzählung/Liste [FensterID], das andere Mal über den Namen des Objekts [Object ID(in ioBroker vergebener Name)] aus den Objekten in ioBroker bestimmt.

              Mittels debug-Ausgaben habe ich überprüft, dass tatsächlich identische Werte auf diese Weise entstehen.

              Die rechte Version arbeitet wie gewünscht, die linke Version liefert für alle Werte von FensterID bloß den Standardwert 'unbekannt'.

              Warum funktioniert die linke Version einfach nicht? Wer weiß Rat?

              fd38198d-333f-4c4c-b7e1-cbec615d0add-Seltsames.png

              PS:

              Die Funktion gedenke ich in mehreren Skripten zu verwenden, um mir PUSH-Meldungen zusammen zu basteln. So verwende ich sie beispielsweise, mich über ggf. noch offene Fenster benachrichtigen zu lassen, wenn ich das Haus verlasse.

              Um dasselbe optimierte Laufzeitverhalten zu erhalten, müsste ich - funktioniert die erste Variante nicht - in der zweiten noch IF .. THEN .. ELSE .. Ketten kodieren. Aber genau das wollte ich mir mit der ersten Lösung ersparen.

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #6

              @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

              Um dasselbe optimierte Laufzeitverhalten zu erhalten

              Solange du nicht in jeder Bedingung erneut ein Objekt aus der Datenbank abfragst brauchst du dir über Performance in so einfachen Skripten keine Gedanken machen. Stichwort "premature optimization"
              Ein Thema wird das erst, wenn du z.B. sehr häufig teure Berechnungen anstellst.

              Als Beispiel hatte im im zwave2-Adapter den Fall, dass im Millisekundentakt mehrere hundert JSON-Einträge geparsed und verglichen wurden. Da wurde dann tatsächlich Optimierung nötig.

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

              L 1 Antwort Letzte Antwort
              1
              • AlCalzoneA AlCalzone

                @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                Um dasselbe optimierte Laufzeitverhalten zu erhalten

                Solange du nicht in jeder Bedingung erneut ein Objekt aus der Datenbank abfragst brauchst du dir über Performance in so einfachen Skripten keine Gedanken machen. Stichwort "premature optimization"
                Ein Thema wird das erst, wenn du z.B. sehr häufig teure Berechnungen anstellst.

                Als Beispiel hatte im im zwave2-Adapter den Fall, dass im Millisekundentakt mehrere hundert JSON-Einträge geparsed und verglichen wurden. Da wurde dann tatsächlich Optimierung nötig.

                L Online
                L Online
                legro
                schrieb am zuletzt editiert von legro
                #7

                @AlCalzone

                Wie oben eingestellt, habe ich meine Funktion mittels der SELECT-Kontrollstruktur realisieren können. Wenn wir nun unser Zuhause verlassen, erhalten wir eine detaillierte PUSH-Nachricht auf unsere Handys, in der alle noch offenen Fenster angezeigt werden.

                Nun möchte die obige Funktion ein weiteres Mal verwenden: Immer, wenn ich den Hüllschutz (Alarmanlage) aktiviere, möchte ich ebenfalls eine solche Meldung erhalten.

                Gibt es auch in javascript eine Möglichkeit, so eine Art code library zu etablieren, in der mehrfach genutzter Programm-Code vorgehalten werden kann? Wie funktioniert in diesem Zusammenhang das sog. Common Verzeichnis?

                Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                AlCalzoneA 1 Antwort Letzte Antwort
                0
                • L legro

                  @AlCalzone

                  Wie oben eingestellt, habe ich meine Funktion mittels der SELECT-Kontrollstruktur realisieren können. Wenn wir nun unser Zuhause verlassen, erhalten wir eine detaillierte PUSH-Nachricht auf unsere Handys, in der alle noch offenen Fenster angezeigt werden.

                  Nun möchte die obige Funktion ein weiteres Mal verwenden: Immer, wenn ich den Hüllschutz (Alarmanlage) aktiviere, möchte ich ebenfalls eine solche Meldung erhalten.

                  Gibt es auch in javascript eine Möglichkeit, so eine Art code library zu etablieren, in der mehrfach genutzter Programm-Code vorgehalten werden kann? Wie funktioniert in diesem Zusammenhang das sog. Common Verzeichnis?

                  AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #8

                  @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                  Gibt es auch in javascript eine Möglichkeit, so eine Art code library zu etablieren

                  Bedingt durch die technischen Möglichkeiten von Node.js gibt es im Skript-Adapter derzeit nur die globalen Skripte, keine Module (was die bevorzugte Lösung wäre).
                  Globale Skripte liegen im Ordner "global" und werden vor jedes Skript kopiert, bevor das Skript ausgeführt wird.

                  Es erfüllt deinen Zweck, du solltest aber bedenken, dass der Code dann in jedem anderen Skript auch drin ist. Trigger o.ä. sollten daher nicht drin sein. Mehrfach genutzte Funktionen kannst du aber z.B. auslagern.
                  Wie gut das mit Blockly funktioniert, weiß ich allerdings nicht.

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

                  L 1 Antwort Letzte Antwort
                  1
                  • AlCalzoneA AlCalzone

                    @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                    Gibt es auch in javascript eine Möglichkeit, so eine Art code library zu etablieren

                    Bedingt durch die technischen Möglichkeiten von Node.js gibt es im Skript-Adapter derzeit nur die globalen Skripte, keine Module (was die bevorzugte Lösung wäre).
                    Globale Skripte liegen im Ordner "global" und werden vor jedes Skript kopiert, bevor das Skript ausgeführt wird.

                    Es erfüllt deinen Zweck, du solltest aber bedenken, dass der Code dann in jedem anderen Skript auch drin ist. Trigger o.ä. sollten daher nicht drin sein. Mehrfach genutzte Funktionen kannst du aber z.B. auslagern.
                    Wie gut das mit Blockly funktioniert, weiß ich allerdings nicht.

                    L Online
                    L Online
                    legro
                    schrieb am zuletzt editiert von legro
                    #9

                    @AlCalzone

                    Vielen Dank für die alles klärende Antwort!👍🏻

                    Nach dieser Erläuterung gehe ich davon aus, dass javascript nicht mit einem Compiler sondern Interpreter arbeitet. Code Libraries dürfte es ohnehin nur auf Compiler basierten Systemen geben.

                    Sei‘s d‘rum! Um so viel doppelt vorhandenen Quellcode handelt es sich bei meiner Installation sicherlich nicht, dass sich das im System auswirken könnte.

                    Ob’s sich mit Blockly realisieren lässt? Ich werde es ausprobieren und berichten.:blush:

                    Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                    Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                    AlCalzoneA 1 Antwort Letzte Antwort
                    0
                    • L legro

                      @AlCalzone

                      Vielen Dank für die alles klärende Antwort!👍🏻

                      Nach dieser Erläuterung gehe ich davon aus, dass javascript nicht mit einem Compiler sondern Interpreter arbeitet. Code Libraries dürfte es ohnehin nur auf Compiler basierten Systemen geben.

                      Sei‘s d‘rum! Um so viel doppelt vorhandenen Quellcode handelt es sich bei meiner Installation sicherlich nicht, dass sich das im System auswirken könnte.

                      Ob’s sich mit Blockly realisieren lässt? Ich werde es ausprobieren und berichten.:blush:

                      AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                      Nach dieser Erläuterung gehe ich davon aus, dass javascript nicht mit einem Compiler sondern Interpreter arbeitet.

                      Jein. Unter der Haube gibts da auch Just-In-Time-Compiler etc. aber an sich hast du Recht.

                      Code-Libraries gibts in Form von Modulen (andere js-Dateien in bestimmter Form), die man per require einbinden kann - nur für eigene Skripte aus dem Skript-Adapter geht das so nicht.

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

                      L 1 Antwort Letzte Antwort
                      1
                      • AlCalzoneA AlCalzone

                        @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                        Nach dieser Erläuterung gehe ich davon aus, dass javascript nicht mit einem Compiler sondern Interpreter arbeitet.

                        Jein. Unter der Haube gibts da auch Just-In-Time-Compiler etc. aber an sich hast du Recht.

                        Code-Libraries gibts in Form von Modulen (andere js-Dateien in bestimmter Form), die man per require einbinden kann - nur für eigene Skripte aus dem Skript-Adapter geht das so nicht.

                        L Online
                        L Online
                        legro
                        schrieb am zuletzt editiert von
                        #11

                        @AlCalzone

                        Vielen Dank für deine klaren und präzisen Antworten.:+1: Bei solch ausgezeichneten Hilfestellungen macht mir das Ganze nicht nur Spaß, da kommt sogar Freude auf.:relaxed:

                        Daher möchte ich mutig mich intensiver mit der Programmiersprache JSON beschäftigen und suche nun nach einer entsprechenden Dokumentation. Zwar ist die Möglichkeit Blockly in Code umzuwandeln eine tolle Sache, um die Programmiersprache kennenzulernen, aber man erhält unweigerlich bloß einen recht eingeschränkten Einblick in diese Welt. Weißt du auch hier Rat?

                        Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                        Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                        AsgothianA AlCalzoneA 2 Antworten Letzte Antwort
                        0
                        • L legro

                          @AlCalzone

                          Vielen Dank für deine klaren und präzisen Antworten.:+1: Bei solch ausgezeichneten Hilfestellungen macht mir das Ganze nicht nur Spaß, da kommt sogar Freude auf.:relaxed:

                          Daher möchte ich mutig mich intensiver mit der Programmiersprache JSON beschäftigen und suche nun nach einer entsprechenden Dokumentation. Zwar ist die Möglichkeit Blockly in Code umzuwandeln eine tolle Sache, um die Programmiersprache kennenzulernen, aber man erhält unweigerlich bloß einen recht eingeschränkten Einblick in diese Welt. Weißt du auch hier Rat?

                          AsgothianA Offline
                          AsgothianA Offline
                          Asgothian
                          Developer
                          schrieb am zuletzt editiert von Asgothian
                          #12

                          @legro Zumindest für die ioBroker spezifischen Funktionen gibt es hier eine brauchbare Anleitung mit Beispielen:

                          https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md

                          A.

                          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                          L 1 Antwort Letzte Antwort
                          0
                          • L legro

                            @AlCalzone

                            Vielen Dank für deine klaren und präzisen Antworten.:+1: Bei solch ausgezeichneten Hilfestellungen macht mir das Ganze nicht nur Spaß, da kommt sogar Freude auf.:relaxed:

                            Daher möchte ich mutig mich intensiver mit der Programmiersprache JSON beschäftigen und suche nun nach einer entsprechenden Dokumentation. Zwar ist die Möglichkeit Blockly in Code umzuwandeln eine tolle Sache, um die Programmiersprache kennenzulernen, aber man erhält unweigerlich bloß einen recht eingeschränkten Einblick in diese Welt. Weißt du auch hier Rat?

                            AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            schrieb am zuletzt editiert von AlCalzone
                            #13

                            @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                            Programmiersprache JSON

                            Ich denke du meinst JavaScript. JSON ist lediglich eine davon abgeleitete Notation für Daten.

                            Zum Lernen gibt es unzählige Tutorials, z.B. https://javascript.info/js
                            Allerdings gehen viele davon aus, dass du den Code in einem Browser ausführst - wir sind aber unter Node.js unterwegs. Für die Sprachgrundlagen ist das aber erst mal egal.

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

                            1 Antwort Letzte Antwort
                            0
                            • AsgothianA Asgothian

                              @legro Zumindest für die ioBroker spezifischen Funktionen gibt es hier eine brauchbare Anleitung mit Beispielen:

                              https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md

                              A.

                              L Online
                              L Online
                              legro
                              schrieb am zuletzt editiert von
                              #14

                              @Asgothian

                              Vielen Dank für diesen Hinweis.

                              Allerdings geht‘s dort gleich in die Vollen, sodass mir fast schon heiß und kalt wird.:cold_sweat:

                              Aber eines habe ich hoffentlich schon richtig verstanden: All die vielen tollen Beispiele kann ich ja einfach mittels den Blockly-Bausteinen JS-Funktion mit Ergebnis und Javascript-Funktion einbinden!?:thinking_face:

                              Allerdings wünsche ich mir noch eine Anleitung, über die in JSON verfügbare(n) Datentypen, Kontrollstrukturen, .. und die übliche Syntax. Vieles erinnert mich zwar an die Programmiersprache C, jedoch war‘s das auch schon und ich fühle mich in dieser für mich neuen Programmiersprache fast schon wieder wie ein Anfänger.:white_frowning_face:

                              Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                              Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                              AsgothianA 1 Antwort Letzte Antwort
                              0
                              • L legro

                                @Asgothian

                                Vielen Dank für diesen Hinweis.

                                Allerdings geht‘s dort gleich in die Vollen, sodass mir fast schon heiß und kalt wird.:cold_sweat:

                                Aber eines habe ich hoffentlich schon richtig verstanden: All die vielen tollen Beispiele kann ich ja einfach mittels den Blockly-Bausteinen JS-Funktion mit Ergebnis und Javascript-Funktion einbinden!?:thinking_face:

                                Allerdings wünsche ich mir noch eine Anleitung, über die in JSON verfügbare(n) Datentypen, Kontrollstrukturen, .. und die übliche Syntax. Vieles erinnert mich zwar an die Programmiersprache C, jedoch war‘s das auch schon und ich fühle mich in dieser für mich neuen Programmiersprache fast schon wieder wie ein Anfänger.:white_frowning_face:

                                AsgothianA Offline
                                AsgothianA Offline
                                Asgothian
                                Developer
                                schrieb am zuletzt editiert von
                                #15

                                @legro

                                Wenn dich das englische nicht schreckt kann ich https://javascript.info/ empfehlen. Einiges davon ist gezielt auf Webseiten und den Einsatz im Browser, die generellen sprach Infos zu synchronen / asynchronen Funktionen sowie Datentypen sind aber soweit nutzbar.

                                Nebenbei, die Sprache ist JavaScript, nicht JSON.

                                A.

                                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                                L 1 Antwort Letzte Antwort
                                0
                                • AsgothianA Asgothian

                                  @legro

                                  Wenn dich das englische nicht schreckt kann ich https://javascript.info/ empfehlen. Einiges davon ist gezielt auf Webseiten und den Einsatz im Browser, die generellen sprach Infos zu synchronen / asynchronen Funktionen sowie Datentypen sind aber soweit nutzbar.

                                  Nebenbei, die Sprache ist JavaScript, nicht JSON.

                                  A.

                                  L Online
                                  L Online
                                  legro
                                  schrieb am zuletzt editiert von legro
                                  #16

                                  @Asgothian said in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                                  @legro

                                  Wenn dich das englische nicht schreckt kann ich https://javascript.info/ empfehlen. ..

                                  Englisch ist doch kinderleicht. In England kann das schließlich jedes Kind.:joy: Schlimmer ist’s da schon bei Naturwissenschaften: Erklärt ein chinesischer Lehrer etwa den Kleinen in präzisem Chinesisch die Mathematik, so kommt‘s den Schülern dennoch bloß spanisch vor. Schlimmer noch! In Spanien soll‘s umgekehrt sein.:worried:

                                  Vielen Dank für den Hinweis. Ich denke, mit den hier erhaltenen Tipps werde ich mich in Javascript zunehmend reinfinden können.

                                  Die Einleitung des von dir verlinkten Tutorials verweist auf TypeScript als „strict data typing” - also auf die Welt an Programmiersprachen aus der ich komme. Diese Scriptsprache wird ja auch von ioBroker unterstützt und somit sollte ich mich ggf. auch hiermit einmal beschäftigen.:thinking_face:

                                  Kommt Zeit, kommt Rat, kommt Tat ..

                                  Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                                  Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                                  AlCalzoneA 1 Antwort Letzte Antwort
                                  0
                                  • L legro

                                    @Asgothian said in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                                    @legro

                                    Wenn dich das englische nicht schreckt kann ich https://javascript.info/ empfehlen. ..

                                    Englisch ist doch kinderleicht. In England kann das schließlich jedes Kind.:joy: Schlimmer ist’s da schon bei Naturwissenschaften: Erklärt ein chinesischer Lehrer etwa den Kleinen in präzisem Chinesisch die Mathematik, so kommt‘s den Schülern dennoch bloß spanisch vor. Schlimmer noch! In Spanien soll‘s umgekehrt sein.:worried:

                                    Vielen Dank für den Hinweis. Ich denke, mit den hier erhaltenen Tipps werde ich mich in Javascript zunehmend reinfinden können.

                                    Die Einleitung des von dir verlinkten Tutorials verweist auf TypeScript als „strict data typing” - also auf die Welt an Programmiersprachen aus der ich komme. Diese Scriptsprache wird ja auch von ioBroker unterstützt und somit sollte ich mich ggf. auch hiermit einmal beschäftigen.:thinking_face:

                                    Kommt Zeit, kommt Rat, kommt Tat ..

                                    AlCalzoneA Offline
                                    AlCalzoneA Offline
                                    AlCalzone
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #17

                                    @legro sagte in IF .. THEN .. ELSE versus SWITCH .. CASE ..:

                                    also auf die Welt an Programmiersprachen aus der ich komme

                                    🎉🎉🎉

                                    Diese Scriptsprache wird ja auch von ioBroker unterstützt und somit sollte ich mich ggf. auch hiermit einmal beschäftigen.

                                    Dann verweise ich dich mal auf https://forum.iobroker.net/topic/36493/09-09-20-30-einsteiger-cursus-demonstration-von-typescript und das TypeScript Handbook https://www.typescriptlang.org/docs/handbook/ welches übrigens auch einen guten Einstiegspunkt für Nicht-JS-Programmierer hat.

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

                                    1 Antwort Letzte Antwort
                                    1
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    355

                                    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