Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. "On" Subscripton: Funktionsaufruf mit Parameter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    "On" Subscripton: Funktionsaufruf mit Parameter

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @Vippis last edited by 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 1 Reply Last reply Reply Quote 0
      • V
        Vippis @haus-automatisierung last edited by

        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-automatisierung 2 Replies Last reply Reply Quote 0
        • V
          Vippis @Vippis last edited by

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

          1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @Vippis last edited by

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

            Ich bekomme jetzt error 429

            Heißt: 429 Too Many Requests

            V 1 Reply Last reply Reply Quote 0
            • V
              Vippis @haus-automatisierung last edited by

              @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-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @Vippis last edited by

                @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?

                ice987 1 Reply Last reply Reply Quote 0
                • ice987
                  ice987 @haus-automatisierung last edited by

                  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 1 Reply Last reply Reply Quote 0
                  • V
                    Vippis @ice987 last edited by

                    @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 Reply Last reply Reply Quote 0
                    • V
                      Vippis last edited by

                      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-automatisierung 1 Reply Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @Vippis last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • V
                          Vippis last edited by

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

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          814
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          5
                          14
                          674
                          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