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.
  • 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

                      295

                      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