Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Automatisierung
    5. Grundlegendes zu Skripten

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grundlegendes zu Skripten

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jack
      Jack last edited by

      Hallo,
      ich möchte meine Skripte von fhem übernehmen, und jetzt stellen sich mir ein paar Fragen:

      Bei verlassen der Wohnung sämtliche Lichter ausschalten:
      Ein Skript das alle Lichter ausschaltet, oder ist es besser in jedem "Licht-Skript" das Licht auszuschalten?

      Drei Dimmer für 2 Lampen:
      (Schlafzimmer; ein Dimmer bei der Tür für beide Nachttischlampen, jeweils ein Dimmer bei den Lampen)
      Ein Skript für alles (damit die Lampen gleichzeitig an/aus gehen), oder besser für jede Lampe ein Skript?

      If-Verknüpfungen: Was ist Resourcenschonender - oder egal?

      if Bedingung1 && Bedingung2
      // oder
      if Bedingung1
          if Bedingung2
      

      Skripte richtig triggern:

      on( "fhem.0.GB_Home.state", "zwave2.0.Node_059.status", function (obj) {
      // oder
      on( "fhem.0.GB_Home.state", "zwave2.0.Node_059.status", (obj) => {
      // oder wie bei Blokly
      on({id: [].concat(['fhem.0.GB_Home.state']).concat(['zwave2.0.Node_059.status']), change: "ne"}, async function (obj) {
      // oder ganz anders?
      

      Wohin mit den Skripten - root, common, global?
      f19990b3-89f5-43d3-82a4-d42139ffc468-image.png

      Danke,
      Jack

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Jack last edited by paul53

        @jack sagte: If-Verknüpfungen: Was ist Resourcenschonender - oder egal?

        Das macht kaum Unterschied. Die Version, die man selbst besser lesen kann, verwenden.

        @jack sagte in Grundlegendes zu Skripten:

        Skripte richtig triggern:

        Die ersten beiden Versionen funktionieren nicht. Richtig:

        on(["fhem.0.GB_Home.state", "zwave2.0.Node_059.status"], function (obj) { // triggert bei Wertänderung eines DP
        

        @jack sagte in Grundlegendes zu Skripten:

        Wohin mit den Skripten - root, common, global?

        Unter "common" oder eigene Ordner; keinesfalls unter "global". Unter "global" erstellt man nur Skripte mit häufig verwendeten eigenen Funktionen, die sich aus jedem anderen (nicht globalen) Skript aufrufen lassen, da sie dort bei Skriptstart hinein kopiert werden.

        @jack sagte: Drei Dimmer für 2 Lampen:
        (Schlafzimmer; ein Dimmer bei der Tür für beide Nachttischlampen, jeweils ein Dimmer bei den Lampen)
        Ein Skript für alles (damit die Lampen gleichzeitig an/aus gehen), oder besser für jede Lampe ein Skript?

        Besser ein Skript, da man sonst leicht den Überblick darüber verliert, wo überall die Dimmer gesteuert werden.

        1 Reply Last reply Reply Quote 0
        • Jack
          Jack last edited by

          Die nächsten Fragen. - Ich konnte das leider nicht an meinen alten Beitrag anhängen...
          Javascript:
          Sollte man Objekte direkt abfragen, oder einmal in Variablen packen, und dann damit arbeiten?

          //entweder direkt
              if (getState(x.y.z).var == true {mach was};
              if (getState(x.y.z).var == false {mach was};
          //oder mit variablen
              var VarStatus = getState(x.y.z).var;
              if (VarStatus == true) {mach was};
              if (VarStatus == false) {mach was};
          

          Wenn man ein Licht schaltet; wird es dann immer wieder eingeschaltet?:

              if ("ist dunkel genug" && "ist das Licht NICHT an" ) {Licht an};
          //oder reicht einfach nur (und ioBroker managed den Rest?
              if ("ist dunkel genug") {Licht an};
          

          Und ein Frage am Rande:
          Ich hab "Fibaro Bewegungsmelder, die eine Warnung im Log auslösen:
          'State value to set for "zwave2.0.Node_090.Basic.currentValue" has value "255" greater than max "99"'
          wem soll ich das mitteilen? Fibaro, oder dem ZWave-Adapter Autor?

          Danke für eure Hilfe,
          Jack

          paul53 bahnuhr 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @Jack last edited by

            @jack sagte: Sollte man Objekte direkt abfragen, oder einmal in Variablen packen, und dann damit arbeiten?

            Wenn ein Datenpunktwert mehr als einmal verwendet wird, sollte man eine Variable verwenden. Bei einmaliger Verwendung macht eine zusätzliche Variable keinen Sinn:

                if (getState(x.y.z).val) {mach was};
                else {mach was anderes};
            

            @jack sagte in Weitere grundsätzliche Fragen:

            Wenn man ein Licht schaltet; wird es dann immer wieder eingeschaltet?:

            Das hängt davon ab, wie "ist dunkel genug" ermittelt wird.

            Jack 1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active @Jack last edited by bahnuhr

              @jack

              Und vielleicht mal den Titel ändern !

              "Weitere grundsätzliche Fragen" sagt ja gar nichts.

              Jack 1 Reply Last reply Reply Quote 0
              • Jack
                Jack @paul53 last edited by

                @paul53 Hallo paul53, es geht nicht um "dunkel genug", sondern um den Zustand der Lampe, bzw. dem Telegramm Verkehr dazwischen.

                if (dunkel) {licht an} //< Setzt mir bei jedem Script Aufruf ERNEUT das "licht an"
                //damit es nur ein mal passiert:
                if (dunkel && licht aus) {licht an} //< Setzt nur EINMAL "licht an"
                

                Muss ICH das berücksichtigen, oder macht das IObROKER?

                bahnuhr paul53 2 Replies Last reply Reply Quote 0
                • Jack
                  Jack @bahnuhr last edited by

                  @bahnuhr Leider hab ich, als ich das an meinen ursprünglichen Beitrag anhängen wollte einen Fehler erhalten -(Forbiden) und hab (sorry) den Text nicht geändert...

                  bahnuhr Homoran 3 Replies Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @Jack last edited by

                    @jack sagte in Weitere grundsätzliche Fragen:

                    Fehler erhalten -(Forbiden)

                    Mit F5 die Seite neu laden; dann kommt forbidden nicht mehr.

                    1 Reply Last reply Reply Quote 0
                    • bahnuhr
                      bahnuhr Forum Testing Most Active @Jack last edited by

                      @jack sagte in Weitere grundsätzliche Fragen:

                      (sorry) den Text nicht geändert...

                      kannst du aber jetzt immer noch tun.
                      Einfach in #1 ändern

                      1 Reply Last reply Reply Quote 0
                      • bahnuhr
                        bahnuhr Forum Testing Most Active @Jack last edited by

                        @jack sagte in Weitere grundsätzliche Fragen:

                        Muss ICH das berücksichtigen, oder macht das IObROKER?

                        iob macht genau das was du ihm sagst.

                        @jack sagte in Weitere grundsätzliche Fragen:

                        && "ist das Licht NICHT an"

                        Diese Prüfung würde ich einziehen. Denn ansonsten wird das Licht eingeschaltet obwohl es schon an ist.
                        Und sorgt für unnötigen duty cycle

                        Jack 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Jack last edited by paul53

                          @jack sagte: Muss ICH das berücksichtigen, oder macht das IObROKER?

                          Das musst Du berücksichtigen, wenn "dunkel" nicht nur einmal triggert oder innerhalb eines anderen Triggers abgefragt wird.

                          on(idLux, function(dp) {
                              let dunkel = dp.state.val < 10;
                              if(dunkel && !getState(idLicht).val) setState(idLicht, true);
                          });
                          
                          // Wenn "dunkel" ein boolescher Datenpunkt ist
                          on(idDunkel, funktion(dp) {
                              if(dp.state.val) setState(idLicht, true);
                          });
                          
                          1 Reply Last reply Reply Quote 0
                          • Jack
                            Jack @bahnuhr last edited by

                            @bahnuhr && @paul53
                            Danke für Eure Hilfe!
                            @bahnuhr #1 ? Wie was wo? (Das ist das 1. Forum, von allen anderen, das sehr toll, aber auch ganz anders, als alle anderen Foren ist.)

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @Jack last edited by

                              @jack sagte in Weitere grundsätzliche Fragen:

                              einen Fehler erhalten -(Forbiden)

                              meistens in Verbindung mit Firefox.
                              Seite neu laden und wiedrr abdrücken!

                              wo soll ich es hinschieben?
                              bitte Link!

                              Jack 1 Reply Last reply Reply Quote 0
                              • Jack
                                Jack @Homoran last edited by

                                @homoran Grüß Dich!
                                meinst Du:
                                'State value to set for "zwave2.0.Node_090.Basic.currentValue" has value "255" greater than max "99"'
                                wem soll ich das mitteilen? Fibaro, oder dem ZWave-Adapter Autor?

                                1 Reply Last reply Reply Quote 0
                                • Jack
                                  Jack last edited by

                                  @Homoran ja bitte (hab da was falsch verstanden). wenn, dann zu meinem vorherigen Beitrag: https://forum.iobroker.net/topic/61388/grundlegendes-zu-skripten
                                  Da wollte ich es ja prinzipiell anhängen.

                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @Jack last edited by

                                    @jack erledigt!

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    971
                                    Online

                                    31.7k
                                    Users

                                    79.7k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    16
                                    693
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo