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. JavaScript
  5. "On" Subscripton: Funktionsaufruf mit Parameter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    631

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    628

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

"On" Subscripton: Funktionsaufruf mit Parameter

Geplant Angeheftet Gesperrt Verschoben JavaScript
14 Beiträge 5 Kommentatoren 1.3k Aufrufe 5 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.
  • haus-automatisierungH haus-automatisierung

    @vippis sagte in "On" Subscripton: Funktionsaufruf mit Parameter:

    Wo ist mein Fehler?

    Sleep liefert ein Promise zurück: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#wait

    Damit wartet Dein Script an der Stelle nie, sondern die Schleife läuft mit voller Rechenleistung. Ansonsten könntest Du das Script deutlich vereinfachen (es fehlt zwar die Hälfte vom Script, aber hier ein Beispiel):

    const ventile = {
        '0_userdata.0.Garten.Rasensprenger_Ein': {
            name: 'Rasensprenger',
            nr: 1,
            left: '0_userdata.0.Garten.Rasensprenger_Restzeit',
        },
        '0_userdata.0.Garten.Hecke+Steinbeet_Ein': {
            name: 'Hecke+Steinbeet',
            nr: 2,
            left: '0_userdata.0.Garten.Hecke+Steinbeet_Restzeit',
        },
        '0_userdata.0.Garten.Vorgaten+Kübel_Ein': {
            name: 'Vorgarten+Kübel',
            nr: 3,
            left: '0_userdata.0.Garten.Vorgarten+Kübel_Restzeit',
        },
        '0_userdata.0.Garten.Hochbeete_Ein': {
            name: 'Hochbeete',
            nr: 4,
            left: '0_userdata.0.Garten.Hochbeete_Restzeit',
        },
        '0_userdata.0.Garten.Oli-Seite_Ein': {
            name: 'Oli-Seite',
            nr: 5,
            left: '0_userdata.0.Garten.Oli-Seite_Restzeit',
        },
        '0_userdata.0.Garten.Dachterrasse_Ein': {
            name: 'Dachterrasse',
            nr: 6,
            left: '0_userdata.0.Garten.Dachterrasse_Restzeit',
        },
    };
    
    on ({ id: Object.keys(ventile), change: 'ne' }, async (obj) => {
        const ventil = ventile[obj.id];
        const isOn = obj.state.val;
    
        const durationStateId = `${root}${ventil.nr}.duration_value`;
    
        console.log(`Schalte Ventil ${ventil.name} ein.`);
    
        const min = parseInt(getState('0_userdata.0.Garten.Einschalten_min').val);
    
        const s = min * 60;
    
        if (isOn) {
            const duration_value = getState(durationStateId).val;
            let i = 1;
    
            while (duration_value == null || duration_value == "null") {
               log(`Starte Bewässerung ${ventil.name}. ${i}-ter Versuch...`);
    
               setState(durationStateId, String(s), true);
    
               await sleep(10000);
               i += 1;
            }
        } else {
            setState(durationStateId, 'STOP_UNTIL_NEXT_TASK', true);
            log(`Stoppe Bewässerung ${ventil.name}`);
        }
    });
    

    (so richtig verstehe ich die Logik dahinter noch nicht. Nur im Forum programmiert - daher kein Anspruch auf Vollständigkeit)

    V Offline
    V Offline
    Vippis
    schrieb am zuletzt editiert von
    #5

    Vielen Dank für Euren Input, werde es umsetzen.

    Zurzeit macht der smartgarden Adapter aber Ärger und daher kann ich die Verbesserungen nicht überprüfen. Ich bekomme jetzt error 429 Rückmeldungen von der API, wahrscheinlich weil die while Schleife zu viele API Calls generiert hat...

    V haus-automatisierungH 2 Antworten Letzte Antwort
    0
    • V Vippis

      Vielen Dank für Euren Input, werde es umsetzen.

      Zurzeit macht der smartgarden Adapter aber Ärger und daher kann ich die Verbesserungen nicht überprüfen. Ich bekomme jetzt error 429 Rückmeldungen von der API, wahrscheinlich weil die while Schleife zu viele API Calls generiert hat...

      V Offline
      V Offline
      Vippis
      schrieb am zuletzt editiert von
      #6

      @vippis
      https://forum.iobroker.net/topic/31289/neuer-adapter-smartgarden-adapter-for-gardena-smart-system/1051

      1 Antwort Letzte Antwort
      0
      • V Vippis

        Vielen Dank für Euren Input, werde es umsetzen.

        Zurzeit macht der smartgarden Adapter aber Ärger und daher kann ich die Verbesserungen nicht überprüfen. Ich bekomme jetzt error 429 Rückmeldungen von der API, wahrscheinlich weil die while Schleife zu viele API Calls generiert hat...

        haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #7

        @vippis sagte in "On" Subscripton: Funktionsaufruf mit Parameter:

        Ich bekomme jetzt error 429

        Heißt: 429 Too Many Requests

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        V 1 Antwort Letzte Antwort
        0
        • haus-automatisierungH haus-automatisierung

          @vippis sagte in "On" Subscripton: Funktionsaufruf mit Parameter:

          Ich bekomme jetzt error 429

          Heißt: 429 Too Many Requests

          V Offline
          V Offline
          Vippis
          schrieb am zuletzt editiert von
          #8

          @haus-automatisierung

          Ja genau, das habe ich auch schon herausgefunden. Weißt du wie man da rauskommt oder hilft nur warten?

          Hab schon eine Anfrage an feedback@developer.husqvarnagroup.cloud gesendet

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • V Vippis

            @haus-automatisierung

            Ja genau, das habe ich auch schon herausgefunden. Weißt du wie man da rauskommt oder hilft nur warten?

            Hab schon eine Anfrage an feedback@developer.husqvarnagroup.cloud gesendet

            haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #9

            @vippis sagte in "On" Subscripton: Funktionsaufruf mit Parameter:

            Weißt du wie man da rauskommt oder hilft nur warten?

            Das weiß nur der Serverbetreiber. Normalerweise sind die Rate Limits für so eine API öffentlich dokumentiert. Gibt es da nix?

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            ice987I 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @vippis sagte in "On" Subscripton: Funktionsaufruf mit Parameter:

              Weißt du wie man da rauskommt oder hilft nur warten?

              Das weiß nur der Serverbetreiber. Normalerweise sind die Rate Limits für so eine API öffentlich dokumentiert. Gibt es da nix?

              ice987I Offline
              ice987I Offline
              ice987
              schrieb am zuletzt editiert von
              #10

              bei der Automower Connect API gilt:

              Limits
              The following limitations currently apply to the Automower Connect API:
              Max 1 request per second and appKey.
              Max 10 000 request per month and appKey.
              Any additional requests above these limits will be throttled.

              https://developer.husqvarnagroup.cloud/apis/automower-connect-api?tab=readme

              ist ggf. bei Gardena gleich/ähnlich.

              husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

              V 1 Antwort Letzte Antwort
              0
              • ice987I ice987

                bei der Automower Connect API gilt:

                Limits
                The following limitations currently apply to the Automower Connect API:
                Max 1 request per second and appKey.
                Max 10 000 request per month and appKey.
                Any additional requests above these limits will be throttled.

                https://developer.husqvarnagroup.cloud/apis/automower-connect-api?tab=readme

                ist ggf. bei Gardena gleich/ähnlich.

                V Offline
                V Offline
                Vippis
                schrieb am zuletzt editiert von
                #11

                @ice987

                On average one call every fifteen minutes.

                700 requests per week.

                10 requests per 10-second interval.

                https://developer.husqvarnagroup.cloud/apis/gardena-smart-system-api?tab=readme

                1 Antwort Letzte Antwort
                0
                • V Offline
                  V Offline
                  Vippis
                  schrieb am zuletzt editiert von
                  #12

                  Wie könnte man effektiv die API calls monitoren, damit ich die Limits nicht reiße?

                  Die Calls sollen dann entsprechend delayed werden und eine Ausgabe erfolgen?

                  Ist das eher was für mein Anwenderskript oder für @jpgorganizer Adapter?

                  haus-automatisierungH 1 Antwort Letzte Antwort
                  0
                  • V Vippis

                    Wie könnte man effektiv die API calls monitoren, damit ich die Limits nicht reiße?

                    Die Calls sollen dann entsprechend delayed werden und eine Ausgabe erfolgen?

                    Ist das eher was für mein Anwenderskript oder für @jpgorganizer Adapter?

                    haus-automatisierungH Online
                    haus-automatisierungH Online
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #13

                    @vippis sagte in "On" Subscripton: Funktionsaufruf mit Parameter:

                    Wie könnte man effektiv die API calls monitoren, damit ich die Limits nicht reiße?

                    Die meisten APIs liefern in jedem Response auch die restlichen rateLimits mit. Dann weiß man schon, ob man noch Luft hat und wieviele Anfragen verbleiben.

                    Ist aber sehr individuell. Ich würde einfach mal einen Response genauer anschauen, ob etwas in die Richtung enthalten ist.

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    1 Antwort Letzte Antwort
                    0
                    • V Offline
                      V Offline
                      Vippis
                      schrieb am zuletzt editiert von
                      #14

                      Ich hab mir unter https://developer.husqvarnagroup.cloud einen frischen API Key erzeugt und bekomme jetzt keinen error 429 mehr

                      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

                      389

                      Online

                      32.6k

                      Benutzer

                      81.9k

                      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