Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Scripting für ioBroker: Wenn dies, dann das best practicse?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    685

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Scripting für ioBroker: Wenn dies, dann das best practicse?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
scripting
14 Beiträge 4 Kommentatoren 1.1k Aufrufe 2 Beobachtet
  • Ä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.
  • BravestarrB Offline
    BravestarrB Offline
    Bravestarr
    schrieb am zuletzt editiert von
    #1

    Hallo liebes Forum,

    ich habe bislang mein Heim viel über IFTTT ohne iobroker konfiguriert. Nun bin wegen Alexa für Gira dank https://marc.tv/synology-iobroker-dank-node-red-mit-alexa-steuern/ bei ioBroker gelandet und würde gerne mehr direkt über den ioBroker machen.

    Was ist hier die best practice für Aufgaben wie "Wenn die Luftfeuchtigkeit über den Meross Sensor bei > 90% liegt, mach bitte das Licht des Hue Adapters im Badezimmer rot und mache die Heizung von Homatic IP für 10 min auf max.

    Ich kann programmieren (Javascript und PHP), ich kenne NodeRed aber wie bilde ich solche Dinge ab? Gibt es da etwas eingebautes oder einen Scripting Adapeter im Kern von iObroker?

    HomoranH paul53P da_WoodyD 3 Antworten Letzte Antwort
    0
    • BravestarrB Bravestarr

      Hallo liebes Forum,

      ich habe bislang mein Heim viel über IFTTT ohne iobroker konfiguriert. Nun bin wegen Alexa für Gira dank https://marc.tv/synology-iobroker-dank-node-red-mit-alexa-steuern/ bei ioBroker gelandet und würde gerne mehr direkt über den ioBroker machen.

      Was ist hier die best practice für Aufgaben wie "Wenn die Luftfeuchtigkeit über den Meross Sensor bei > 90% liegt, mach bitte das Licht des Hue Adapters im Badezimmer rot und mache die Heizung von Homatic IP für 10 min auf max.

      Ich kann programmieren (Javascript und PHP), ich kenne NodeRed aber wie bilde ich solche Dinge ab? Gibt es da etwas eingebautes oder einen Scripting Adapeter im Kern von iObroker?

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @Bravestarr sagte in Scripting für ioBroker: Wenn dies, dann das best practicse?:

      Gibt es da etwas eingebautes oder einen Scripting Adapeter

      da gibt es denn javascript-Adapter (heißt jetzt script-Engine).

      Wahlweise in echtem js, oder für Einsteiger mit Blockly als "js-visual"

      kein Support per PN! - Fragen im Forum stellen -
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      1
      • BravestarrB Bravestarr

        Hallo liebes Forum,

        ich habe bislang mein Heim viel über IFTTT ohne iobroker konfiguriert. Nun bin wegen Alexa für Gira dank https://marc.tv/synology-iobroker-dank-node-red-mit-alexa-steuern/ bei ioBroker gelandet und würde gerne mehr direkt über den ioBroker machen.

        Was ist hier die best practice für Aufgaben wie "Wenn die Luftfeuchtigkeit über den Meross Sensor bei > 90% liegt, mach bitte das Licht des Hue Adapters im Badezimmer rot und mache die Heizung von Homatic IP für 10 min auf max.

        Ich kann programmieren (Javascript und PHP), ich kenne NodeRed aber wie bilde ich solche Dinge ab? Gibt es da etwas eingebautes oder einen Scripting Adapeter im Kern von iObroker?

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

        @Bravestarr sagte:

        Ich kann programmieren (Javascript

        Dann werden Dich die Funktionen des Javascript-Adapters interessieren.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

        1 Antwort Letzte Antwort
        0
        • BravestarrB Bravestarr

          Hallo liebes Forum,

          ich habe bislang mein Heim viel über IFTTT ohne iobroker konfiguriert. Nun bin wegen Alexa für Gira dank https://marc.tv/synology-iobroker-dank-node-red-mit-alexa-steuern/ bei ioBroker gelandet und würde gerne mehr direkt über den ioBroker machen.

          Was ist hier die best practice für Aufgaben wie "Wenn die Luftfeuchtigkeit über den Meross Sensor bei > 90% liegt, mach bitte das Licht des Hue Adapters im Badezimmer rot und mache die Heizung von Homatic IP für 10 min auf max.

          Ich kann programmieren (Javascript und PHP), ich kenne NodeRed aber wie bilde ich solche Dinge ab? Gibt es da etwas eingebautes oder einen Scripting Adapeter im Kern von iObroker?

          da_WoodyD Offline
          da_WoodyD Offline
          da_Woody
          Most Active
          schrieb am zuletzt editiert von
          #4

          @Bravestarr oder du siehst dir mal den smartcontrol adapter an.

          gruß vom Woody
          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

          BravestarrB 1 Antwort Letzte Antwort
          0
          • da_WoodyD da_Woody

            @Bravestarr oder du siehst dir mal den smartcontrol adapter an.

            BravestarrB Offline
            BravestarrB Offline
            Bravestarr
            schrieb am zuletzt editiert von
            #5

            Danke!

            Ich habe nun ein ganz simples Script geschrieben welches einen Wert eines Objektes überwacht um einen anderen zu setzen. Denn ich habe ja nicht automatisch ein event wie "Wert ist größer als X" was geworfen wird. Anders als bei einem Button.

            Das versuche ich nun alle 30 Sek auszuführen. Ich weiß nicht, ob es so klappt. Ich hätte erwartet, dass der Value alle 30 sekunden im iobroker log steht. Tut es nämlich nicht. Macht man das so oder kann/sollte ich das eleganter über "on" machen?

            '*/30 * * * * *'
            getState('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (error, state) {
                console.log(state.val);
                if(state.val > 90) {
                    setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                } else {
                    setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                }
            });
            
            HomoranH BravestarrB 2 Antworten Letzte Antwort
            0
            • BravestarrB Bravestarr

              Danke!

              Ich habe nun ein ganz simples Script geschrieben welches einen Wert eines Objektes überwacht um einen anderen zu setzen. Denn ich habe ja nicht automatisch ein event wie "Wert ist größer als X" was geworfen wird. Anders als bei einem Button.

              Das versuche ich nun alle 30 Sek auszuführen. Ich weiß nicht, ob es so klappt. Ich hätte erwartet, dass der Value alle 30 sekunden im iobroker log steht. Tut es nämlich nicht. Macht man das so oder kann/sollte ich das eleganter über "on" machen?

              '*/30 * * * * *'
              getState('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (error, state) {
                  console.log(state.val);
                  if(state.val > 90) {
                      setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                  } else {
                      setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                  }
              });
              
              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              @Bravestarr sagte in Scripting für ioBroker: Wenn dies, dann das best practicse?:

              Denn ich habe ja nicht automatisch ein event wie "Wert ist größer als X" was geworfen wird

              nicht direkt, aber dass bei dem Datenpunkt etwas geändert wird.
              Dann prüfen ob die Änderung im Vergleich zum alten Wert >60 ist und gut ist

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              BravestarrB 1 Antwort Letzte Antwort
              0
              • BravestarrB Bravestarr

                Danke!

                Ich habe nun ein ganz simples Script geschrieben welches einen Wert eines Objektes überwacht um einen anderen zu setzen. Denn ich habe ja nicht automatisch ein event wie "Wert ist größer als X" was geworfen wird. Anders als bei einem Button.

                Das versuche ich nun alle 30 Sek auszuführen. Ich weiß nicht, ob es so klappt. Ich hätte erwartet, dass der Value alle 30 sekunden im iobroker log steht. Tut es nämlich nicht. Macht man das so oder kann/sollte ich das eleganter über "on" machen?

                '*/30 * * * * *'
                getState('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (error, state) {
                    console.log(state.val);
                    if(state.val > 90) {
                        setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                    } else {
                        setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                    }
                });
                
                BravestarrB Offline
                BravestarrB Offline
                Bravestarr
                schrieb am zuletzt editiert von
                #7

                Ich war dumm. So geht das, oder?

                schedule('*/30 * * * * *', function () {
                  getState('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (error, state) {
                    log(state.val);
                    if(state.val > 90) {
                        setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                    } else {
                        setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                    }
                });
                });
                
                HomoranH 1 Antwort Letzte Antwort
                0
                • BravestarrB Bravestarr

                  Ich war dumm. So geht das, oder?

                  schedule('*/30 * * * * *', function () {
                    getState('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (error, state) {
                      log(state.val);
                      if(state.val > 90) {
                          setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                      } else {
                          setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                      }
                  });
                  });
                  
                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #8

                  @Bravestarr sagte in Scripting für ioBroker: Wenn dies, dann das best practicse?:

                  So geht das, oder?

                  ich kann nur Blöcke schieben ;-)

                  Du brauchst keinen schedule, in js gibt es etwas wie on....
                  damit prüfst du den Datenpunkt ob er sich ändert

                  kein Support per PN! - Fragen im Forum stellen -
                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @Bravestarr sagte in Scripting für ioBroker: Wenn dies, dann das best practicse?:

                    Denn ich habe ja nicht automatisch ein event wie "Wert ist größer als X" was geworfen wird

                    nicht direkt, aber dass bei dem Datenpunkt etwas geändert wird.
                    Dann prüfen ob die Änderung im Vergleich zum alten Wert >60 ist und gut ist

                    BravestarrB Offline
                    BravestarrB Offline
                    Bravestarr
                    schrieb am zuletzt editiert von
                    #9

                    @Homoran Brauche ich dann keinen cron mehr? Also wenn ich so was mache wie das hier wäre besser und nix mehr mit dem scheduler?

                    on('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (obj) {
                        
                        if(obj.val > 90) {
                            setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                        } else {
                            setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                        }
                    });
                    
                    paul53P 1 Antwort Letzte Antwort
                    0
                    • BravestarrB Bravestarr

                      @Homoran Brauche ich dann keinen cron mehr? Also wenn ich so was mache wie das hier wäre besser und nix mehr mit dem scheduler?

                      on('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (obj) {
                          
                          if(obj.val > 90) {
                              setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                          } else {
                              setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                          }
                      });
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #10

                      @Bravestarr sagte:

                      if(obj.val > 90) {

                      Ändere in

                          if(obj.state.val > 90) {
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                      BravestarrB 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @Bravestarr sagte:

                        if(obj.val > 90) {

                        Ändere in

                            if(obj.state.val > 90) {
                        
                        BravestarrB Offline
                        BravestarrB Offline
                        Bravestarr
                        schrieb am zuletzt editiert von Bravestarr
                        #11

                        @paul53
                        Geht leider nicht mit obj.state.val nicht. Ich habe ein Mini-Beispiel das ja gehen müsste. Wenn ich die rechte Lampe am Bett per Hue App oder Alexa ein- oder auzsschalte, muss doch das event feuern. Tut es aber nicht. Das log bleibt leer.

                        on('hue.0.Bett_rechts.on', function (obj) {
                          log(obj.state.val);
                          log("Lichtstatus hat sich geändert!");
                        });
                        
                        paul53P 1 Antwort Letzte Antwort
                        0
                        • BravestarrB Bravestarr

                          @paul53
                          Geht leider nicht mit obj.state.val nicht. Ich habe ein Mini-Beispiel das ja gehen müsste. Wenn ich die rechte Lampe am Bett per Hue App oder Alexa ein- oder auzsschalte, muss doch das event feuern. Tut es aber nicht. Das log bleibt leer.

                          on('hue.0.Bett_rechts.on', function (obj) {
                            log(obj.state.val);
                            log("Lichtstatus hat sich geändert!");
                          });
                          
                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #12

                          @Bravestarr
                          Der Wert des Datenpunktes mit der ID 'hue.0.Bett_rechts.on' muss sich erst ändern, damit getriggert wird.

                          @Bravestarr sagte in Scripting für ioBroker: Wenn dies, dann das best practicse?:

                          Das log bleibt leer.

                          Hast Du auch mal im Tab "Log" nachgeschaut ?
                          Das Script hast Du aktiviert und hoffentlich nicht in der Gruppe "global" erstellt ?

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                          BravestarrB 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @Bravestarr
                            Der Wert des Datenpunktes mit der ID 'hue.0.Bett_rechts.on' muss sich erst ändern, damit getriggert wird.

                            @Bravestarr sagte in Scripting für ioBroker: Wenn dies, dann das best practicse?:

                            Das log bleibt leer.

                            Hast Du auch mal im Tab "Log" nachgeschaut ?
                            Das Script hast Du aktiviert und hoffentlich nicht in der Gruppe "global" erstellt ?

                            BravestarrB Offline
                            BravestarrB Offline
                            Bravestarr
                            schrieb am zuletzt editiert von Bravestarr
                            #13

                            @paul53

                            ist in "common". Und ja, es ist aktiv. Und ich habe das Licht doch an und aus gemacht. Also müsste es sich doch verändern. Zumindest tut es das im Object Tree

                            BravestarrB 1 Antwort Letzte Antwort
                            0
                            • BravestarrB Bravestarr

                              @paul53

                              ist in "common". Und ja, es ist aktiv. Und ich habe das Licht doch an und aus gemacht. Also müsste es sich doch verändern. Zumindest tut es das im Object Tree

                              BravestarrB Offline
                              BravestarrB Offline
                              Bravestarr
                              schrieb am zuletzt editiert von Bravestarr
                              #14

                              @Bravestarr ok, geht doch. Nur ist da eine Verzögerung. Aber danke für die Hilfe! =) Ihr habt mir sehr geholfen!

                              Hier das finale Script falls es jemand braucht. Wenn die Luftfeuchtigkeit im Bad über 90% ist (jemand duscht), Handtuchwärme an. Sonst aus.

                              on('meross.0.1912184550583426280548e1e913c738.120027D1B3B3.latestHumidity', function (obj) {
                                  log(obj.state.val);
                                  if(obj.state.val > 90) {
                                      setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',35);
                                  } else {
                                      setState('meross.0.1912184550583426280548e1e913c738.01009500.custom',5);
                                  }
                              });
                              
                              1 Antwort Letzte Antwort
                              0

                              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                              Registrieren Anmelden
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate
                              FAQ Cloud / IOT
                              HowTo: Node.js-Update
                              HowTo: Backup/Restore
                              Downloads
                              BLOG

                              242

                              Online

                              32.9k

                              Benutzer

                              83.0k

                              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