Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. [neuer Adapter] smartgarden adapter for Gardena smart system

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[neuer Adapter] smartgarden adapter for Gardena smart system

Scheduled Pinned Locked Moved Tester
gardena smart systemsmartgarden
1.1k Posts 108 Posters 352.1k Views 101 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M martin_olw

    @michihorn Vielen Dank!
    Ich habe die beiden IDs in Zeile 1 und 2 durch meiner Werte aus den jeweiligen Objekten ersetzt. Auch den Datenpunkt in Zeile 8 und Zeile 14 angepasst. Aber bei mir kommt in den Datenpunkten immer noch "0", obwohl die beiden Werte zur verbleibenden Lauf- und Ladezeit im io aktualisiert werden.
    Wo kann das Problem liegen, nach was soll ich schauen?
    852325e8-a767-4084-a571-96b5b272a18a-image.png

    M Offline
    M Offline
    michihorn
    wrote on last edited by michihorn
    #1035

    @martin_olw Hallo, das Script arbeitet nur, wenn sich der Wert des entsprechenden Datenpunktes in Zeile 1 oder 2 ändert, die selbst angelegten Datenpunkte in Zeile 8 und 14 müssen vom Typ Number sein und werden dann entsprechend des Scriptes mit Daten gefüllt.

    Zeigt mal das LOG bei Ausführung, sollte so aussehen....
    lz.png

    M 1 Reply Last reply
    0
    • M michihorn

      @martin_olw Hallo, das Script arbeitet nur, wenn sich der Wert des entsprechenden Datenpunktes in Zeile 1 oder 2 ändert, die selbst angelegten Datenpunkte in Zeile 8 und 14 müssen vom Typ Number sein und werden dann entsprechend des Scriptes mit Daten gefüllt.

      Zeigt mal das LOG bei Ausführung, sollte so aussehen....
      lz.png

      M Offline
      M Offline
      martin_olw
      wrote on last edited by
      #1036

      @michihorn Ich habe den Fehler gefunden. Hatte wohl beim Kopieren der beiden Datenpunkte einen Fehler gemacht. Ich habe die Pfade noch einmal neu kopiert (zur Sicherheit in Notepad), verglichen und neu ins Script eingefügt. Dann ging es.
      Danke!

      1 Reply Last reply
      0
      • M Offline
        M Offline
        MatthiasPetersen
        wrote on last edited by
        #1037

        Hi, nachdem ich meinen Gardena Sileno City letztes Jahr auf die aktuellste Version geupdated habe, habe ich heute den Mähroboter aus dem Keller geholt. Mir ist nun aufgefallen, dass die Datenpunkte activity_mowingTime_remain_i und batteryState_chargingTime_remain_i nicht mehr im iobroker gesetzt werden. Nach einem Neustart des Adapters sieht man zwar anhand des Timestamps, dass die Datenpunkte aktualisiert wurden, allerdings immer nur mit dem Wert Null. Meine Biobroker-Installation inkl. des Smartgarden-Adapters sind jeweils auf der aktuellsten Version.

        Kennt Ihr zufällig das Problem?

        Viele Grüße
        Matthias

        1 Reply Last reply
        0
        • K Kaiman55

          @mcbirne sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:

          @kaiman55 said in [neuer Adapter] smartgarden adapter for Gardena smart system:

          r Sensor keinen Regen mehr an (hier nehme ich immer den Regen Wert "in der letzten Stunde", da er son

          Wie sendest du es an den Rasenmähern?

          Ein Stück weiter oben, habe ich einen Teil des Blockly gepostet. Da siehst Du es.

          Edit:
          Hier nochmal als Export. Funktioniert bei mir sehr gut.
          Muster.png

          <xml xmlns="https://developers.google.com/blockly/xml">
            <block type="comment" id="!5#EPV5tY!uMs.c:xRKl" x="-1487" y="-1312">
              <field name="COMMENT">Mählanie bei Regen/Trockenheit rein und raus</field>
              <next>
                <block type="on_ext" id="Ps5%H5|sm,lZR5Mx~u]2">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                  <field name="CONDITION">ne</field>
                  <field name="ACK_CONDITION"></field>
                  <value name="OID0">
                    <shadow type="field_oid" id="Fhv0CaM~0KQi1#h)-K=K">
                      <field name="oid">netatmo.0.Wohnbereich-(Innen).Regen.Rain.SumRain1</field>
                    </shadow>
                  </value>
                  <statement name="STATEMENT">
                    <block type="comment" id="`H(zJXb|OgmoBpa=o*Id">
                      <field name="COMMENT">Mähen fortsetzen wenn es die letzte Stunde trocken war und rausschicken</field>
                      <next>
                        <block type="controls_if" id="kMv#PEDhcxz[S7_+j$:A">
                          <value name="IF0">
                            <block type="logic_operation" id="6?)|+@t.Z7w{fL;8ODH}" inline="false">
                              <field name="OP">AND</field>
                              <value name="A">
                                <block type="logic_compare" id="{zT!Dnt-6jBo5tofA36z">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value" id="yu]AGvIi!8k]4_aQmx5s">
                                      <field name="ATTR">val</field>
                                      <field name="OID">netatmo.0.Wohnbereich-(Innen).Regen.Rain.SumRain1</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="FW{XQ]B(v387y7yZ]Ovs">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_compare" id="9`D18YFlpB1ZPD^Y%c(A">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value" id="(MaIwHj8ttq`64|xLZH_">
                                      <field name="ATTR">val</field>
                                      <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_mowing_i</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="logic_boolean" id="2nV[8E/H:+S9;jideC5}">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="r?Ws.R4O#`(%{.]6]IEy">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_control_i</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="text" id=")4/Q=nS46)(.v?~gG,*T">
                                  <field name="TEXT">START_DONT_OVERRIDE</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <next>
                            <block type="comment" id="+jz?xHrG/M|6f42myVBx">
                              <field name="COMMENT">Mäher bei aktiven Regen beenden und in die Hütte schicken</field>
                              <next>
                                <block type="controls_if" id="i|[`4tT!fw=x*8!O|*r8">
                                  <value name="IF0">
                                    <block type="logic_compare" id="/N]7?]TkkIuJTGg%mMn8">
                                      <field name="OP">NEQ</field>
                                      <value name="A">
                                        <block type="get_value" id="Dac0C!co=@NsOer[Pvn~">
                                          <field name="ATTR">val</field>
                                          <field name="OID">netatmo.0.Wohnbereich-(Innen).Regen.Rain.Rain</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="math_number" id="bv[S6JBf|Tk+kbbVnSJR">
                                          <field name="NUM">0</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="control" id="358e!BIjwBL?s3R$NVKJ">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_control_i</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="text" id="E5BZT|~^dqNWTMPBYH}a">
                                          <field name="TEXT">PARK_UNTIL_FURTHER_NOTICE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </xml>
          
          D Offline
          D Offline
          DaHu
          wrote on last edited by
          #1038

          @kaiman55 sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:

                                                                                                                                      <xml xmlns="https://developers.google.com/blockly/xml">                                                                                                                                                                              <block type="comment" id="!5#EPV5tY!uMs.c:xRKl" x="-1487" y="-1312">                                                                                                                                                                                <field name="COMMENT">Mählanie bei Regen/Trockenheit rein und raus</field>                                                                                                                                                                                <next>                                                                                                                                                                                  <block type="on_ext" id="Ps5%H5|sm,lZR5Mx~u]2">                                                                                                                                                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>                                                                                                                                                                                    <field name="CONDITION">ne</field>                                                                                                                                                                                    <field name="ACK_CONDITION"></field>                                                                                                                                                                                    <value name="OID0">                                                                                                                                                                                      <shadow type="field_oid" id="Fhv0CaM~0KQi1#h)-K=K">                                                                                                                                                                                        <field name="oid">netatmo.0.Wohnbereich-(Innen).Regen.Rain.SumRain1</field>                                                                                                                                                                                      </shadow>                                                                                                                                                                                    </value>                                                                                                                                                                                    <statement name="STATEMENT">                                                                                                                                                                                      <block type="comment" id="`H(zJXb|OgmoBpa=o*Id">                                                                                                                                                                                        <field name="COMMENT">Mähen fortsetzen wenn es die letzte Stunde trocken war und rausschicken</field>                                                                                                                                                                                        <next>                                                                                                                                                                                          <block type="controls_if" id="kMv#PEDhcxz[S7_+j$:A">                                                                                                                                                                                            <value name="IF0">                                                                                                                                                                                              <block type="logic_operation" id="6?)|+@t.Z7w{fL;8ODH}" inline="false">                                                                                                                                                                                                <field name="OP">AND</field>                                                                                                                                                                                                <value name="A">                                                                                                                                                                                                  <block type="logic_compare" id="{zT!Dnt-6jBo5tofA36z">                                                                                                                                                                                                    <field name="OP">EQ</field>                                                                                                                                                                                                    <value name="A">                                                                                                                                                                                                      <block type="get_value" id="yu]AGvIi!8k]4_aQmx5s">                                                                                                                                                                                                        <field name="ATTR">val</field>                                                                                                                                                                                                        <field name="OID">netatmo.0.Wohnbereich-(Innen).Regen.Rain.SumRain1</field>                                                                                                                                                                                                      </block>                                                                                                                                                                                                    </value>                                                                                                                                                                                                    <value name="B">                                                                                                                                                                                                      <block type="math_number" id="FW{XQ]B(v387y7yZ]Ovs">                                                                                                                                                                                                        <field name="NUM">0</field>                                                                                                                                                                                                      </block>                                                                                                                                                                                                    </value>                                                                                                                                                                                                  </block>                                                                                                                                                                                                </value>                                                                                                                                                                                                <value name="B">                                                                                                                                                                                                  <block type="logic_compare" id="9`D18YFlpB1ZPD^Y%c(A">                                                                                                                                                                                                    <field name="OP">EQ</field>                                                                                                                                                                                                    <value name="A">                                                                                                                                                                                                      <block type="get_value" id="(MaIwHj8ttq`64|xLZH_">                                                                                                                                                                                                        <field name="ATTR">val</field>                                                                                                                                                                                                        <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_mowing_i</field>                                                                                                                                                                                                      </block>                                                                                                                                                                                                    </value>                                                                                                                                                                                                    <value name="B">                                                                                                                                                                                                      <block type="logic_boolean" id="2nV[8E/H:+S9;jideC5}">                                                                                                                                                                                                        <field name="BOOL">FALSE</field>                                                                                                                                                                                                      </block>                                                                                                                                                                                                    </value>                                                                                                                                                                                                  </block>                                                                                                                                                                                                </value>                                                                                                                                                                                              </block>                                                                                                                                                                                            </value>                                                                                                                                                                                            <statement name="DO0">                                                                                                                                                                                              <block type="control" id="r?Ws.R4O#`(%{.]6]IEy">                                                                                                                                                                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>                                                                                                                                                                                                <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_control_i</field>                                                                                                                                                                                                <field name="WITH_DELAY">FALSE</field>                                                                                                                                                                                                <value name="VALUE">                                                                                                                                                                                                  <block type="text" id=")4/Q=nS46)(.v?~gG,*T">                                                                                                                                                                                                    <field name="TEXT">START_DONT_OVERRIDE</field>                                                                                                                                                                                                  </block>                                                                                                                                                                                                </value>                                                                                                                                                                                              </block>                                                                                                                                                                                            </statement>                                                                                                                                                                                            <next>                                                                                                                                                                                              <block type="comment" id="+jz?xHrG/M|6f42myVBx">                                                                                                                                                                                                <field name="COMMENT">Mäher bei aktiven Regen beenden und in die Hütte schicken</field>                                                                                                                                                                                                <next>                                                                                                                                                                                                  <block type="controls_if" id="i|[`4tT!fw=x*8!O|*r8">                                                                                                                                                                                                    <value name="IF0">                                                                                                                                                                                                      <block type="logic_compare" id="/N]7?]TkkIuJTGg%mMn8">                                                                                                                                                                                                        <field name="OP">NEQ</field>                                                                                                                                                                                                        <value name="A">                                                                                                                                                                                                          <block type="get_value" id="Dac0C!co=@NsOer[Pvn~">                                                                                                                                                                                                            <field name="ATTR">val</field>                                                                                                                                                                                                            <field name="OID">netatmo.0.Wohnbereich-(Innen).Regen.Rain.Rain</field>                                                                                                                                                                                                          </block>                                                                                                                                                                                                        </value>                                                                                                                                                                                                        <value name="B">                                                                                                                                                                                                          <block type="math_number" id="bv[S6JBf|Tk+kbbVnSJR">                                                                                                                                                                                                            <field name="NUM">0</field>                                                                                                                                                                                                          </block>                                                                                                                                                                                                        </value>                                                                                                                                                                                                      </block>                                                                                                                                                                                                    </value>                                                                                                                                                                                                    <statement name="DO0">                                                                                                                                                                                                      <block type="control" id="358e!BIjwBL?s3R$NVKJ">                                                                                                                                                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>                                                                                                                                                                                                        <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_control_i</field>                                                                                                                                                                                                        <field name="WITH_DELAY">FALSE</field>                                                                                                                                                                                                        <value name="VALUE">                                                                                                                                                                                                          <block type="text" id="E5BZT|~^dqNWTMPBYH}a">                                                                                                                                                                                                            <field name="TEXT">PARK_UNTIL_FURTHER_NOTICE</field>                                                                                                                                                                                                          </block>                                                                                                                                                                                                        </value>                                                                                                                                                                                                      </block>                                                                                                                                                                                                    </statement>                                                                                                                                                                                                  </block>                                                                                                                                                                                                </next>                                                                                                                                                                                              </block>                                                                                                                                                                                            </next>                                                                                                                                                                                          </block>                                                                                                                                                                                        </next>                                                                                                                                                                                      </block>                                                                                                                                                                                    </statement>                                                                                                                                                                                  </block>                                                                                                                                                                                </next>                                                                                                                                                                              </block>                                                                                                                                                                            </xml>                                            
          

          "Mählanie"....:joy: :joy: :joy: :joy: Ich brüll mich gerade weg. Es gibt noch mehr Freaks wie ich auf diesem Planeten. :right-facing_fist: :left-facing_fist:

          1 Reply Last reply
          1
          • jpgorganizerJ jpgorganizer

            Hallo liebe ioBroker Gemeinde,

            da Gardena in 2019 eine Websocket Schnittstelle für die Smart Geräte wie Mähroboter, Bewässerungsanlage (smart irrigation control) veröffentlicht hat und es m.W. noch keinen Adapter dafür gibt, habe ich in den vergangenen Wochen einen Adapter dafür entwickelt.

            Ich bitte euch nun diesen zu testen. Für Fragen, Fehler etc. bitte diesen Thread nutzen. Ich werde versuchen die Fragen zu beantworten und auch Fehler zu beheben.

            Der Adapter liegt in github unter https://github.com/jpgorganizer/ioBroker.smartgarden.

            Viele Grüße
            jpgorganizer

            S Offline
            S Offline
            Sleepwalker
            wrote on last edited by
            #1039

            Moin,

            ich bin gerade auf der Suche nach einem Mähroboter für unseren 2-zonigen Garten, ca. 500m² + 80m². Ein Punkt ist die Integration in ioBroker. Aktuell steht der Sileno Life 1000m² mit Lona auf Platz 1 meiner persönlichen Rangliste. Und da bin ich auf diesen Adapter gestroßen. Was genau mit Alexa und dem Skill machbar ist, konnte ich noch nicht herausfinden.

            Allerdings wirkt die Entwicklung dieses Adapters eingestellt, oder täusche ich mich? Falls nicht, gibt es Alternativen?

            Ich würde den Mäher gerne:

            • bei Regen per ioBroker rein holen (er hat ja keinen eigenen Regensensor)
            • manuell in eine bestimmte Zone schicken, denn die 2. Zone ist eher optional für ihn, weil direkt an der Straße mit lediglich 80cm hohem Zaun. Da möchte ich ihn nur fahren lassen, wenn ich zu Hause bin und es manuell anstoße.
            • den Hebealarm direkt auslesen können, um darauf reagieren zu können

            Gibt es da Möglichkeiten?

            Danke und Gruß

            1 Reply Last reply
            0
            • StrathColeS StrathCole

              Guten Morgen, alle zusammen.

              Ich weiß, dass jpgorganizer gerade an den Ladezeit- und Mähprognosen arbeitet, allerdings brauchte ich für mich ein Skript, das die komplette Zeitplanung aus der Gardena-App ersetzt.

              Da ich außerdem eine Bewässerung von Rain Bird habe, die also nicht mit diesem Adapter kombiniert werden kann, habe ich nun ein komplettes Skript geschrieben, das die Steuerung inkl. Vorhersagen usw. übernimmt. Vielleicht ist es ja für den ein oder anderen von euch als Basis interessant. Ich habe versucht, die relevanten Dinge etwas zu kommentieren.

              Da das Skript ausschließlich mit diesem Adapter funktioniert, poste ich es mal hier im Thread und nicht separat.

              Edit: Skript auf github ausgelagert
              

              Es befindet sich noch in einer sehr frühen Phase, kann also sein, dass es noch ein paar Fehler enthält. Die jeweils aktuelle Version findet ihr hier auf github: https://github.com/StrathCole/smartgarden.schedule/blob/master/sg_schedule.js
              Dort könnt ihr auch Wünsche oder Anmerkungen/Fehler hinterlassen, damit wir diesen Thread nicht "kapern" und zumüllen.

              So sieht meine rudimentäre Vis dazu dann aus:
              Bildschirmfoto von 2020-04-21 09-57-18.png

              M Offline
              M Offline
              michihorn
              wrote on last edited by
              #1040

              @strathcole sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:

              Guten Morgen, alle zusammen.

              Ich weiß, dass jpgorganizer gerade an den Ladezeit- und Mähprognosen arbeitet, allerdings brauchte ich für mich ein Skript, das die komplette Zeitplanung aus der Gardena-App ersetzt.

              Da ich außerdem eine Bewässerung von Rain Bird habe, die also nicht mit diesem Adapter kombiniert werden kann, habe ich nun ein komplettes Skript geschrieben, das die Steuerung inkl. Vorhersagen usw. übernimmt. Vielleicht ist es ja für den ein oder anderen von euch als Basis interessant. Ich habe versucht, die relevanten Dinge etwas zu kommentieren.

              Da das Skript ausschließlich mit diesem Adapter funktioniert, poste ich es mal hier im Thread und nicht separat.

              Edit: Skript auf github ausgelagert
              

              Es befindet sich noch in einer sehr frühen Phase, kann also sein, dass es noch ein paar Fehler enthält. Die jeweils aktuelle Version findet ihr hier auf github: https://github.com/StrathCole/smartgarden.schedule/blob/master/sg_schedule.js
              Dort könnt ihr auch Wünsche oder Anmerkungen/Fehler hinterlassen, damit wir diesen Thread nicht "kapern" und zumüllen.

              So sieht meine rudimentäre Vis dazu dann aus:
              Bildschirmfoto von 2020-04-21 09-57-18.png

              Hallo gibt es das Script noch irgendwo, der Github läuft auf 404
              Gruß Michael

              S H 2 Replies Last reply
              0
              • M michihorn

                @strathcole sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:

                Guten Morgen, alle zusammen.

                Ich weiß, dass jpgorganizer gerade an den Ladezeit- und Mähprognosen arbeitet, allerdings brauchte ich für mich ein Skript, das die komplette Zeitplanung aus der Gardena-App ersetzt.

                Da ich außerdem eine Bewässerung von Rain Bird habe, die also nicht mit diesem Adapter kombiniert werden kann, habe ich nun ein komplettes Skript geschrieben, das die Steuerung inkl. Vorhersagen usw. übernimmt. Vielleicht ist es ja für den ein oder anderen von euch als Basis interessant. Ich habe versucht, die relevanten Dinge etwas zu kommentieren.

                Da das Skript ausschließlich mit diesem Adapter funktioniert, poste ich es mal hier im Thread und nicht separat.

                Edit: Skript auf github ausgelagert
                

                Es befindet sich noch in einer sehr frühen Phase, kann also sein, dass es noch ein paar Fehler enthält. Die jeweils aktuelle Version findet ihr hier auf github: https://github.com/StrathCole/smartgarden.schedule/blob/master/sg_schedule.js
                Dort könnt ihr auch Wünsche oder Anmerkungen/Fehler hinterlassen, damit wir diesen Thread nicht "kapern" und zumüllen.

                So sieht meine rudimentäre Vis dazu dann aus:
                Bildschirmfoto von 2020-04-21 09-57-18.png

                Hallo gibt es das Script noch irgendwo, der Github läuft auf 404
                Gruß Michael

                S Offline
                S Offline
                Sammyray
                wrote on last edited by
                #1041

                Der Adapter funktioniert nur bei Gardena smart system und kann mir nicht bei Geräten der "Gardena Bluetooth App" helfen, oder?

                G 1 Reply Last reply
                0
                • S Sammyray

                  Der Adapter funktioniert nur bei Gardena smart system und kann mir nicht bei Geräten der "Gardena Bluetooth App" helfen, oder?

                  G Offline
                  G Offline
                  Gonzokalle
                  wrote on last edited by
                  #1042

                  Habe gerade ein Problem, dass wahrscheinlich nichts mit dem Adapter zu tun hat. Vielleicht ist das Problem ja bekannt. Mein Mähroboter schreibt pünktlich "Unterwegs zum Startpunkt", fährt aber meistens nicht los.
                  Erst wenn ich ihn manuell parke und wieder starte, fährt es los.

                  1 Reply Last reply
                  0
                  • M michihorn

                    @strathcole sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:

                    Guten Morgen, alle zusammen.

                    Ich weiß, dass jpgorganizer gerade an den Ladezeit- und Mähprognosen arbeitet, allerdings brauchte ich für mich ein Skript, das die komplette Zeitplanung aus der Gardena-App ersetzt.

                    Da ich außerdem eine Bewässerung von Rain Bird habe, die also nicht mit diesem Adapter kombiniert werden kann, habe ich nun ein komplettes Skript geschrieben, das die Steuerung inkl. Vorhersagen usw. übernimmt. Vielleicht ist es ja für den ein oder anderen von euch als Basis interessant. Ich habe versucht, die relevanten Dinge etwas zu kommentieren.

                    Da das Skript ausschließlich mit diesem Adapter funktioniert, poste ich es mal hier im Thread und nicht separat.

                    Edit: Skript auf github ausgelagert
                    

                    Es befindet sich noch in einer sehr frühen Phase, kann also sein, dass es noch ein paar Fehler enthält. Die jeweils aktuelle Version findet ihr hier auf github: https://github.com/StrathCole/smartgarden.schedule/blob/master/sg_schedule.js
                    Dort könnt ihr auch Wünsche oder Anmerkungen/Fehler hinterlassen, damit wir diesen Thread nicht "kapern" und zumüllen.

                    So sieht meine rudimentäre Vis dazu dann aus:
                    Bildschirmfoto von 2020-04-21 09-57-18.png

                    Hallo gibt es das Script noch irgendwo, der Github läuft auf 404
                    Gruß Michael

                    H Offline
                    H Offline
                    higginsd
                    wrote on last edited by
                    #1043

                    @michihorn

                    Ja, bei mir auch. Leider, denn das JS interessiert mich auch, da ich gerade etwas Ähnliches entwickle.

                    M 1 Reply Last reply
                    0
                    • H higginsd

                      @michihorn

                      Ja, bei mir auch. Leider, denn das JS interessiert mich auch, da ich gerade etwas Ähnliches entwickle.

                      M Offline
                      M Offline
                      michihorn
                      wrote on last edited by michihorn
                      #1044

                      @higginsd
                      Ich habe das so gelöst:
                      Grundsätzlich soll der Mäher automatisch arbeiten, ausser bei Regen, dann startet er nicht.
                      Anbei ein Bild der manuell angelegten DP
                      bild2.png
                      Meine Entwicklung beinhaltet 5 Scripte.

                      1. Startet meinen Mäher (Cordula)
                      2. Berechnet die Laufzeit
                      3. Löscht den letzten Tag
                      4. Status des Mäher inkl. Whatsapp Versand
                      5. Abbruch des Mähens bei Regen
                        bild1.png
                      Script1:
                      [s=]
                       /*****Steuerung Gardena **************************************
                      * April 2024
                      * Adapter: Smartgarden
                      * 
                      * geä:
                      **************************************************************/
                      
                      const idgo_SO = "0_userdata.0.Garten.Rasen.Cordula.SO.Moving"
                      const idgo_MO = "0_userdata.0.Garten.Rasen.Cordula.MO.Moving"
                      const idgo_DI = "0_userdata.0.Garten.Rasen.Cordula.Di.Moving"
                      const idgo_MI = "0_userdata.0.Garten.Rasen.Cordula.MI.Moving"
                      const idgo_DO = "0_userdata.0.Garten.Rasen.Cordula.DO.Moving"
                      const idgo_FR = "0_userdata.0.Garten.Rasen.Cordula.FR.Moving"
                      const idgo_SA = "0_userdata.0.Garten.Rasen.Cordula.SA.Moving"
                      
                      const idmt_SO = "0_userdata.0.Garten.Rasen.Cordula.SO.MovingTime"
                      const idmt_MO = "0_userdata.0.Garten.Rasen.Cordula.MO.MovingTime"
                      const idmt_DI = "0_userdata.0.Garten.Rasen.Cordula.Di.MovingTime"
                      const idmt_MI = "0_userdata.0.Garten.Rasen.Cordula.MI.MovingTime"
                      const idmt_DO = "0_userdata.0.Garten.Rasen.Cordula.DO.MovingTime"
                      const idmt_FR = "0_userdata.0.Garten.Rasen.Cordula.FR.MovingTime"
                      const idmt_SA = "0_userdata.0.Garten.Rasen.Cordula.SA.MovingTime"
                      
                      const id_Go = "smartgarden.0.LOCATION_xxxxx0-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.activity_control_i"
                      
                      schedule("*/1 * * * *", function (dp) {
                          var d = new Date();
                          var day = d.getDay();
                          if ((getState("0_userdata.0.Garten.Rasen.Cordula.MoHand").val == true) && (getState("mqtt.1.shellies.Regensensor_CAS.input.1").val == 1)) {
                              log("Tag: " + day)
                              switch (day) {
                                  case 0:
                                      if (getState(idgo_SO).val == true) {
                                          var schedStart = null;
                                          var start = getState("0_userdata.0.Garten.Rasen.Cordula.SO.Von").val.split(':');
                                          schedStart = schedule(start[1] + ' ' + start[0] + ' * * 0', function () {
                                              var merker = getState("0_userdata.0.Garten.Rasen.Cordula.SO.MovingTime").val
                                              if (merker = 1) {
                                                  setState(id_Go, 3600);
                                              } else if (merker = 2) {
                                                  setState(id_Go, 7200);
                                              }
                                              setState("0_userdata.0.Garten.Rasen.Cordula.SO.Run", true)
                                          });
                                      }
                                      break;
                                  case 1:
                                      if (getState(idgo_MO).val == true) {
                                          var schedStart = null;
                                          var start = getState("0_userdata.0.Garten.Rasen.Cordula.MO.Von").val.split(':');
                                          schedStart = schedule(start[1] + ' ' + start[0] + ' * * 1', function () {
                                              var merker = getState("0_userdata.0.Garten.Rasen.Cordula.MO.MovingTime").val
                                              if (merker = 1) {
                                                  setState(id_Go, 3600);
                                              } else if (merker = 2) {
                                                  setState(id_Go, 7200);
                                              }
                                              setState("0_userdata.0.Garten.Rasen.Cordula.MO.Run", true)
                                          });
                                      }
                                      break;
                                  case 2:
                                      if (getState("0_userdata.0.Garten.Rasen.Cordula.Di.Moving").val == true) {  //Schiebeschalter
                                          var schedStart = null;
                                          var start = getState("0_userdata.0.Garten.Rasen.Cordula.Di.Von").val.split(':');
                                          schedStart = schedule(start[1] + ' ' + start[0] + ' * * 2', function () {
                                              var merker = getState("0_userdata.0.Garten.Rasen.Cordula.Di.MovingTime").val
                                              if (merker = 1) {
                                                  setState(id_Go, 3600);
                                              } else if (merker = 2) {
                                                  setState(id_Go, 7200);
                                              }
                                              setState("0_userdata.0.Garten.Rasen.Cordula.Di.Run", true)
                                          });
                                      }
                                      break;
                                  case 3:
                                      if (getState("0_userdata.0.Garten.Rasen.Cordula.MI.Moving").val == true) {  //Schiebeschalter
                                          var schedStart = null;
                                          var start = getState("0_userdata.0.Garten.Rasen.Cordula.MI.Von").val.split(':');
                                          schedStart = schedule(start[1] + ' ' + start[0] + ' * * 3', function () {
                                              var merker = getState("0_userdata.0.Garten.Rasen.Cordula.MI.MovingTime").val
                                              if (merker = 1) {
                                                  setState(id_Go, 3600);
                                              } else if (merker = 2) {
                                                  setState(id_Go, 7200);
                                              }
                                              setState("0_userdata.0.Garten.Rasen.Cordula.MI.Run", true)
                                          });
                                      }
                                      break;
                                  case 4:
                                      if (getState(idgo_DO).val == true) {
                                          var schedStart = null;
                                          var start = getState("0_userdata.0.Garten.Rasen.Cordula.DO.Von").val.split(':');
                                          schedStart = schedule(start[1] + ' ' + start[0] + ' * * 4', function () {
                                              var merker = getState("0_userdata.0.Garten.Rasen.Cordula.DO.MovingTime").val
                                              if (merker = 1) {
                                                  setState(id_Go, 3600);
                                              } else if (merker = 2) {
                                                  setState(id_Go, 7200);
                                              }
                                              setState("0_userdata.0.Garten.Rasen.Cordula.DO.Run", true)
                                          });
                                      }
                                      break;
                                  case 5:
                                      if (getState("0_userdata.0.Garten.Rasen.Cordula.FR.Moving").val == true) {  //Schiebeschalter
                                          var schedStart = null;
                                          var start = getState("0_userdata.0.Garten.Rasen.Cordula.FR.Von").val.split(':');
                                          schedStart = schedule(start[1] + ' ' + start[0] + ' * * 5', function () {
                                              var merker = getState("0_userdata.0.Garten.Rasen.Cordula.FR.MovingTime").val
                                              if (merker = 1) {
                                                  setState(id_Go, 3600);
                                              } else if (merker = 2) {
                                                  setState(id_Go, 7200);
                                              }
                                              setState("0_userdata.0.Garten.Rasen.Cordula.FR.Run", true)
                                          });
                                      }
                                      break;
                                  case 6:
                                      if (getState(idgo_SA).val == true) {
                                          var schedStart = null;
                                          var start = getState("0_userdata.0.Garten.Rasen.Cordula.SA.Von").val.split(':');
                                          schedStart = schedule(start[1] + ' ' + start[0] + ' * * 6', function () {
                                              var merker = getState("0_userdata.0.Garten.Rasen.Cordula.SA.MovingTime").val
                                              if (merker = 1) {
                                                  setState(id_Go, 3600);
                                              } else if (merker = 2) {
                                                  setState(id_Go, 7200);
                                              }
                                              setState("0_userdata.0.Garten.Rasen.Cordula.SA.Run", true)
                                          });
                                      }
                                      break;
                              }
                          }
                      });
                      
                      [/s]
                      
                      Script2: (ist noch nicht zu Ende gedacht...)
                      [s=]
                       /*****Laufzeit Gardena Mover *******************************************
                      * April 2024
                      * Adapter: Smartgarden
                      * 
                      * geä:08.05.24
                      *************************************************************************/
                      const id_CT = "smartgarden.0.LOCATION_xxxxx-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_COMMON_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.batteryState_chargingTime_remain_i"
                      const id_Status = "0_userdata.0.Garten.Rasen.StatusNr"
                      const id_MT = "0_userdata.0.Garten.Rasen.Cordula.MI.MovingTime"
                      const ids = $('0_userdata.0.Garten.Rasen.Cordula.*.Run');
                      const id_mt = "0_userdata.0.Garten.Rasen.Cordula.MT"
                      
                      on({ id: id_CT, change: "any" }, function (dp) {
                          var LZ = (dp.state.val / 60).toFixed(0)
                          setState("0_userdata.0.Garten.Rasen.Restladezeit", LZ)
                      });
                      
                      schedule("*/1 * * * *", function () {
                          if (getState("0_userdata.0.Garten.Rasen.StatusNr").val == 1) {
                              ids.each(function (id, i) {
                                  if (getState(id).val == true)
                                      setState("0_userdata.0.Garten.Rasen.Cordula.Aktuell", id)
                              });
                              var mt = getState("0_userdata.0.Garten.Rasen.Cordula.Aktuell").val
                              mt = mt.split('.');
                              mt = mt[0] + '.' + mt[1] + '.' + mt[2] + '.' + mt[3] + '.' + mt[4] + '.' + mt[5]+ ".MovingTime";
                              log(getState(mt).val)
                              var str = getState("0_userdata.0.Garten.Rasen.Cordula.Aktuell").val
                              setState("0_userdata.0.Garten.Rasen.Cordula.Aktuell", str.replace("Run", 'Von'))
                              var aktuell = getState("0_userdata.0.Garten.Rasen.Cordula.Aktuell").val
                              var start = getState(aktuell).val.split(':');
                              var A_time = 60 * (parseInt(start[0]) + getState(mt).val) + parseInt(start[1]);
                              let h = Math.floor((A_time - (60 * new Date().getHours() + new Date().getMinutes())) / 60);
                              let m = (A_time - (60 * new Date().getHours() + new Date().getMinutes())) - h * 60;
                              log((('00' + h).slice(-2) + ":" + ('00' + m).slice(-2)))
                              setState("0_userdata.0.Garten.Rasen.Cordula.R_Laufzeit", (('00' + h).slice(-2) + ":" + ('00' + m).slice(-2)))
                          }
                      });
                      [/s]
                      
                      Script3:
                      [s=]
                       const ids = $('0_userdata.0.Garten.Rasen.Cordula.*.Run');
                      //schedule("*/1 * * * *", function () {
                          on({ time: { hour: 23, minute: 59 } }, function () {
                          ids.each(function (id, i) {
                              if (getState(id).val == true) 
                              setState(id,false)
                          });
                      });
                      [/s]
                      Script4:
                      /*****Status Gardena *******************************************
                      * April 2024
                      * Adapter: Smartgarden
                      * 
                      * geä:
                      ****************************************************************/
                      
                      //const MOWER_STATE_TEXTS = {
                      //'PAUSED': 'Pausiert',
                      //'OK_CUTTING': 'Mähen (Timer)',
                      //'OK_CUTTING_TIMER_OVERRIDDEN': 'Mähen manuell gestartet',
                      //'OK_SEARCHING': 'Unterwegs zur Station',
                      //'OK_LEAVING': 'Unterwegs zum Startpunkt',
                      //'OK_CHARGING': 'Aufladen',
                      //'PARKED_TIMER': 'Geparkt (Timer)',
                      //'PARKED_PARK_SELECTED': 'Geparkt',
                      //'PARKED_AUTOTIMER': 'Geparkt (Timer)',
                      //'NONE': 'Unbekannt (Fehler)',
                      //'UNKNOWN': 'Unbekannt'
                      //};
                      
                      
                      const id_info = "0_userdata.0.Garten.Rasen.Status" //Deutsche Beschreibung
                      const id_error = "smartgarden.0.LOCATION_xxxxxxxx-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.lastErrorCode_value"
                      const id_Status = "smartgarden.0.LOCATION_xxxxxxx-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.activity_value"
                      const id_regen = "mqtt.1.shellies.Regensensor_CAS.input.1"
                      const id_statusnr = "0_userdata.0.Garten.Rasen.StatusNr"
                      var text
                      on({ id: id_Status, change: 'ne' }, function (dp) {
                          log(dp.state.val)
                          switch (dp.state.val) {
                              case 'PAUSED':
                                  setState(id_info, "Pause")
                                  setState(id_statusnr, 3)
                                  break;
                              case 'OK_CUTTING':
                                  setState(id_info, "Mähen nach Timer")
                                  setState(id_statusnr, 1)
                                  text = "\ud83c\udf33 Mäher gestartet"
                                  sendTo('whatsapp-cmb.0', 'send', { text: text, phone: '+4915253938149' });
                                  break;
                              case 'OK_CUTTING_TIMER_OVERRIDDEN':
                                  setState(id_info, "Mähen manuell gestartet")
                                  setState(id_statusnr, 1)
                                  text = "\ud83c\udf33 Mäher gestartet"
                                  sendTo('whatsapp-cmb.0', 'send', { text: text, phone: '+49152539xxxx49' });
                                  break;
                              case 'OK_SEARCHING':
                                  setState(id_info, "Unterwegs zur Ladestation")
                                  setState(id_statusnr, 2)
                                  break;
                              case 'OK_LEAVING':
                                  setState(id_info, "Verlässt Ladestation")
                                  setState(id_statusnr, 1)
                                  break;
                              case 'OK_CHARGING':
                                  setState(id_info, "Wird in Ladestation geladen")
                                  setState(id_statusnr, 2)
                                  text = "\ud83c\udd7f\ufe0f Mäher laden"
                                  sendTo('whatsapp-cmb.0', 'send', { text: text, phone: '+4915253xxx49' });
                                  break;
                              case 'PARKED_TIMER':
                                  setState(id_info, "Automatisch geparkt")
                                  setState(id_statusnr, 3)
                                  text = "\ud83c\udd7f\ufe0f Mäher geparkt"
                                  sendTo('whatsapp-cmb.0', 'send', { text: text, phone: '+4915253xxxx9' });
                                  break;
                              case 'PARKED_PARK_SELECTED':
                                  setState(id_info, "Geparkt")
                                  setState(id_statusnr, 3)
                                  text = "\ud83c\udd7f\ufe0f Mäher geparkt"
                                  sendTo('whatsapp-cmb.0', 'send', { text: text, phone: '+49152539xxxx9' });
                                  break;
                              case 'PARKED_AUTOTIMER':
                                  setState(id_info, "Geparkt per Timer")
                                  setState(id_statusnr, 3)
                                  break;
                              case 'NONE':
                                  setState(id_info, "Fertig")
                                  setState(id_statusnr, 3)
                                  break;
                              case 'UNKNOWN':
                                  setState(id_info, "Unbekannt")
                                  setState(id_statusnr, 4)
                                  break;
                          }
                      });
                      
                      on({ id: id_error, change: 'ne' }, function (dp) {
                          text = "\u2757 Fehlermeldung"
                          sendTo('whatsapp-cmb.0', 'send', { text: text, phone: '+491525393xxxx' });
                          setState(id_statusnr, 4)
                      });
                      
                      Script5:
                      /*****Cordula Steuerung in Abhängigkeit von Regen ***************************************************************
                      **    Juli 2021
                      **    Smartgarden
                      **    Gardena 
                      **    erstellt: 10.08.21
                      **    geändert: 30.09.21, 03.10.21, 02.06.22, 25.08.23
                      *****************************************************************************************************************/
                      
                      const idsperre = "0_userdata.0.Garten.Rasen.sperre"
                      const idRegen = 'mqtt.1.shellies.shellyuni-34945478EBFD.input.1';
                      const idWorking = 'smartgarden.0.LOCATION_xxxxxxx-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.activity_mowing_i';
                      const idStatus = "smartgarden.0.LOCATION_xxxxxxxx-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.activity_value" //STATUS des Mähers
                      const idParken = 'smartgarden.0.LOCATION_xxxxxxxx-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.activity_control_i';
                      const idLZ = "smartgarden.0.LOCATION_xxxxxxx-2Df6d9-2D4225-2D9481-2Dad62bcd5ae1e.DEVICE_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.activity_mowingTime_remain_i"
                      var text
                      
                      
                      
                      on({ id: idRegen, change: "any" }, async function (obj) {
                          let status = getState(idStatus).val;
                          log("Regen: " + obj.state.val);
                          // Mäher bei aktiven Regen beenden und in die Hütte schicken
                          if (obj.state.val == 0 && getState(idsperre).val == false) {
                              setState(idsperre, true)
                              if ((status == 'OK_CUTTING') || (status == 'OK_CUTTING_TIMER_OVERRIDDEN') || (status == 'OK_LEAVING') || (status == 'PAUSED')) {
                                  setState(idParken, 0);
                                  log("Mähen abbrechen");
                                  text = '\u2602\ufe0f' + "Rasenmähen wird wegen Regen abgebrochen";
                                  createEventlog("Rasenmäher", text);
                                  setState("0_userdata.0.Events.CAS_Status", text)
                                  sendTo('whatsapp-cmb.0', 'send', { text: text, phone: '+491525393xxxxx' });
                              }
                          }
                      });
                      
                      
                      // Mäher bei aktiven Regen in der Hütte lassen
                      on({ id: idRegen, change: "ne" }, async function (obj) {
                          if ((obj.state.val) == true) {
                              setState(idParken, 0);
                          }
                      });
                      1 Reply Last reply
                      0
                      • FenriswolfF Offline
                        FenriswolfF Offline
                        Fenriswolf
                        wrote on last edited by
                        #1045

                        Guten Abend,

                        heute melde ich mich auch mal wieder zu Wort.

                        Heute morgen hat die Bewässerung noch tadellos funktioniert, aber am heutigen Abend hatte ich mit mal wieder folgende Meldungen im Log:

                        2024-05-13 20:27:44.717 - error: smartgarden.0 (99910) Error: request returned 429
                        2024-05-13 20:29:50.679 - warn: admin.0 (99246) smartgarden has an invalid jsonConfig: [{"instancePath":"/items/tab-main/items/gardena_username","schemaPath":"#/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"visible"},"message":"must NOT have additional properties"},{"instancePath":"/items/tab-main/items/gardena_username","schemaPath":"#/patternProperties/%5E.%2B/allOf/21/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"/items/tab-main","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
                        2024-05-13 20:30:56.364 - error: smartgarden.0 (99940) Error: request returned 429
                        

                        Die Admin-Meldung verstehe ich leider nicht ganz, da ich mich gar nicht mehr über Username und Password authentifiziere, sondern über application key.

                        Geht es anderen momentan ähnlich ?

                        mfg
                        Marc

                        Press any key to continue or any other to quit

                        S jpgorganizerJ 2 Replies Last reply
                        0
                        • FenriswolfF Fenriswolf

                          Guten Abend,

                          heute melde ich mich auch mal wieder zu Wort.

                          Heute morgen hat die Bewässerung noch tadellos funktioniert, aber am heutigen Abend hatte ich mit mal wieder folgende Meldungen im Log:

                          2024-05-13 20:27:44.717 - error: smartgarden.0 (99910) Error: request returned 429
                          2024-05-13 20:29:50.679 - warn: admin.0 (99246) smartgarden has an invalid jsonConfig: [{"instancePath":"/items/tab-main/items/gardena_username","schemaPath":"#/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"visible"},"message":"must NOT have additional properties"},{"instancePath":"/items/tab-main/items/gardena_username","schemaPath":"#/patternProperties/%5E.%2B/allOf/21/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"/items/tab-main","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
                          2024-05-13 20:30:56.364 - error: smartgarden.0 (99940) Error: request returned 429
                          

                          Die Admin-Meldung verstehe ich leider nicht ganz, da ich mich gar nicht mehr über Username und Password authentifiziere, sondern über application key.

                          Geht es anderen momentan ähnlich ?

                          mfg
                          Marc

                          S Offline
                          S Offline
                          Sleepwalker
                          wrote on last edited by
                          #1046

                          @fenriswolf Läuft dein Adapter über "Benutzername/Passwort" oder schon über das "application secret"?
                          Hatte eine gleiche / ähnliche (?) Meldung, als ich die Authentifizierung über das von Gardena nicht mehr unterstützte Benutzer/Passwort machen wollte.

                          1 Reply Last reply
                          0
                          • FenriswolfF Fenriswolf

                            Guten Abend,

                            heute melde ich mich auch mal wieder zu Wort.

                            Heute morgen hat die Bewässerung noch tadellos funktioniert, aber am heutigen Abend hatte ich mit mal wieder folgende Meldungen im Log:

                            2024-05-13 20:27:44.717 - error: smartgarden.0 (99910) Error: request returned 429
                            2024-05-13 20:29:50.679 - warn: admin.0 (99246) smartgarden has an invalid jsonConfig: [{"instancePath":"/items/tab-main/items/gardena_username","schemaPath":"#/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"visible"},"message":"must NOT have additional properties"},{"instancePath":"/items/tab-main/items/gardena_username","schemaPath":"#/patternProperties/%5E.%2B/allOf/21/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"/items/tab-main","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
                            2024-05-13 20:30:56.364 - error: smartgarden.0 (99940) Error: request returned 429
                            

                            Die Admin-Meldung verstehe ich leider nicht ganz, da ich mich gar nicht mehr über Username und Password authentifiziere, sondern über application key.

                            Geht es anderen momentan ähnlich ?

                            mfg
                            Marc

                            jpgorganizerJ Offline
                            jpgorganizerJ Offline
                            jpgorganizer
                            wrote on last edited by
                            #1047

                            @fenriswolf Hi, die Warnung habe ich gestern Abend bei mir auch gesehen. Scheint eine Warnung vom ioBroker zu sein. Ich frage mich, warum das jetzt kommt und nicht schon früher? Gab es da eine Änderung - irgendwann mal ???

                            Sei's drum, ich hoffe ich kann mir das über's kommende Wochenende ansehen woran das liegt. Ist eine Warnung und somit keine Eile.

                            Der Fehler kommt vom Gardena Server. Taucht ja immer mal wieder bei irgendwem auf - nur nie bei mir :-(

                            Bitte keine Fragen per PN, die gehören ins Forum!

                            ioBroker
                            smartgarden Adapter für GARDENA smart system
                            Plattform: Raspberry Pi OS Linux 12 (bookworm), Node.js: v18.18.2, NPM: 9.8.1

                            FenriswolfF 1 Reply Last reply
                            0
                            • jpgorganizerJ jpgorganizer

                              @fenriswolf Hi, die Warnung habe ich gestern Abend bei mir auch gesehen. Scheint eine Warnung vom ioBroker zu sein. Ich frage mich, warum das jetzt kommt und nicht schon früher? Gab es da eine Änderung - irgendwann mal ???

                              Sei's drum, ich hoffe ich kann mir das über's kommende Wochenende ansehen woran das liegt. Ist eine Warnung und somit keine Eile.

                              Der Fehler kommt vom Gardena Server. Taucht ja immer mal wieder bei irgendwem auf - nur nie bei mir :-(

                              FenriswolfF Offline
                              FenriswolfF Offline
                              Fenriswolf
                              wrote on last edited by
                              #1048

                              @jpgorganizer sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:

                              @fenriswolf Hi, die Warnung habe ich gestern Abend bei mir auch gesehen. Scheint eine Warnung vom ioBroker zu sein. Ich frage mich, warum das jetzt kommt und nicht schon früher? Gab es da eine Änderung - irgendwann mal ???

                              Sei's drum, ich hoffe ich kann mir das über's kommende Wochenende ansehen woran das liegt. Ist eine Warnung und somit keine Eile.

                              Der Fehler kommt vom Gardena Server. Taucht ja immer mal wieder bei irgendwem auf - nur nie bei mir :-(

                              Guten Morgen,

                              dann weiß ich bescheid..... hoffen wir mal, das es sich wieder beruhigt mit dem Fehler. Hatte den Adapter jetzt über Nacht aus, aber eben beim einschalten kam der Fehler direkt wieder.

                              Press any key to continue or any other to quit

                              1 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                Vippis
                                wrote on last edited by Vippis
                                #1049

                                Hallo,
                                ich bekomme seit heute den Fehler "Error: request returned 429"

                                46b0f0b0-8d61-48bd-a88e-ed4db162349a-grafik.png

                                Das steht im IOBroker Log:
                                9c2b9f3e-cd00-434d-9a0f-f3657801c6fd-grafik.png

                                API-Key und Secret sind korrekt.

                                Bis gestern hat alles funktioniert. Ich habe die IrrigationControl von Gardena und starte mit Javascripts die Ventile für die Bewässerung. Hat auch immer funktioniert bis heute morgen ...

                                Ich hab die Instanz gelöscht und neu eingerichtet. Jetzt bekomme ich keine Verbindung mehr und die Datenpunkte sind alle futsch ...

                                Was genau bedeutet der Error 429?

                                V 1 Reply Last reply
                                0
                                • V Vippis

                                  Hallo,
                                  ich bekomme seit heute den Fehler "Error: request returned 429"

                                  46b0f0b0-8d61-48bd-a88e-ed4db162349a-grafik.png

                                  Das steht im IOBroker Log:
                                  9c2b9f3e-cd00-434d-9a0f-f3657801c6fd-grafik.png

                                  API-Key und Secret sind korrekt.

                                  Bis gestern hat alles funktioniert. Ich habe die IrrigationControl von Gardena und starte mit Javascripts die Ventile für die Bewässerung. Hat auch immer funktioniert bis heute morgen ...

                                  Ich hab die Instanz gelöscht und neu eingerichtet. Jetzt bekomme ich keine Verbindung mehr und die Datenpunkte sind alle futsch ...

                                  Was genau bedeutet der Error 429?

                                  V Offline
                                  V Offline
                                  Vippis
                                  wrote on last edited by
                                  #1050

                                  Error 429 scheint eine Abweisung des Gardena Servers zu sein wegen zu vieler API calls:

                                  https://community.openhab.org/t/gardena-error-429-limit-exceeded/137419/33

                                  Rate Limits

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

                                  Rate limits are in place to prevent malicious use of the API that would impact other users.

                                  Applications share a pool of keys that each are assigned certain quota. An application that behaves as a good citizen of the Gardena eco system should not exceed the following limits:

                                  On average one call every fifteen minutes.
                                  700 requests per week.
                                  10 requests per 10-second interval.
                                  

                                  These are hard limits for every application. If an application exceeds the 700 requests per week or 10 requests within the 10-second timeframe, subsequent requests will be blocked with a 429 "Too Many Requests" response status code.

                                  These limits should not pose a problem if you use REST calls only to update the state of your location once and then use the real time API to stay in sync (see sections below for more information). If you feel your application absolutely cannot adhere to these limits and your use case is interesting for Gardena, please get in touch to see whether we can grant you higher rate limits.

                                  V 1 Reply Last reply
                                  0
                                  • V Vippis

                                    Error 429 scheint eine Abweisung des Gardena Servers zu sein wegen zu vieler API calls:

                                    https://community.openhab.org/t/gardena-error-429-limit-exceeded/137419/33

                                    Rate Limits

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

                                    Rate limits are in place to prevent malicious use of the API that would impact other users.

                                    Applications share a pool of keys that each are assigned certain quota. An application that behaves as a good citizen of the Gardena eco system should not exceed the following limits:

                                    On average one call every fifteen minutes.
                                    700 requests per week.
                                    10 requests per 10-second interval.
                                    

                                    These are hard limits for every application. If an application exceeds the 700 requests per week or 10 requests within the 10-second timeframe, subsequent requests will be blocked with a 429 "Too Many Requests" response status code.

                                    These limits should not pose a problem if you use REST calls only to update the state of your location once and then use the real time API to stay in sync (see sections below for more information). If you feel your application absolutely cannot adhere to these limits and your use case is interesting for Gardena, please get in touch to see whether we can grant you higher rate limits.

                                    V Offline
                                    V Offline
                                    Vippis
                                    wrote on last edited by
                                    #1051

                                    @vippis

                                    Ich werde den smartgarden Adapter erstmal für 24h stoppen und schauen ob Seine Majestät, der Gardena Server, mich wieder gewähren lasst :face_with_rolling_eyes:

                                    1 Reply Last reply
                                    0
                                    • V Offline
                                      V Offline
                                      Vippis
                                      wrote on last edited by
                                      #1052

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

                                      M 1 Reply Last reply
                                      0
                                      • V Vippis

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

                                        M Offline
                                        M Offline
                                        martin_olw
                                        wrote on last edited by martin_olw
                                        #1053

                                        Hallo zusammen,
                                        ich habe mal wieder etwas gebastelt und mir über den Adapter noch einiges gebaut. Unter anderem bekomme ich jetzt über meinen SmartHome-Zentrale die verschiedenen Fehlermeldungen, kann die Kinder per Alexa zur Määähhh-Rettung schicken (wenn ich selbst nicht zu Hause bin), etc...
                                        Eines bekomme ich aber nicht hin - ich will mir gern anzeigen lassen, wie lange der Määähhher heute schon seinen Dienst geleistet hat und habe mir dazu folgendes Blockly erstellt:
                                        0056bde8-6e2d-478d-9fcc-2f00b402e7e9-image.png
                                        Aber leider passiert hier genau nichts. Kann mir jemand sagen, wo mein Fehler liegt?
                                        Danke!
                                        VG Martin

                                        1 Reply Last reply
                                        0
                                        • H Offline
                                          H Offline
                                          higginsd
                                          wrote on last edited by
                                          #1054

                                          Tach Zusammen!

                                          Ich nutze jetzt eine Gardena Beregnung zusammen mit dem neuen SmartSensor über das Gardena Gateway im ioBroker.

                                          Läuft soweit sehr gut, ich steuere alles selber über JS und verzichte auf die Gardena-Automatik in der Gardena App.

                                          Was mich etwas irritiert sind die Feuchtigkeitswerte vom SmartSensor. Ich hatte gehofft, darüber die Bewässerungsdauer steuern zu können. Allerdings bleibt der bei mir fast konstant auf 70% stehen. Egal, ob es ein heisser Tag mit viel Sonne (und dann ja eigentlich abnehmender Rasenfeuchte) ist /war oder ob ich 15-30 Minuten gut beregne und das Wasser auf dem Rasen steht.

                                          Gibt es hier ähnliche Erfahrungen?

                                          dslraserD 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          685

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe