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. Skripten / Logik
  4. JavaScript
  5. Hilfe bei Gardena API

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Hilfe bei Gardena API

Scheduled Pinned Locked Moved JavaScript
javascript
59 Posts 6 Posters 11.6k Views 6 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.
  • J.A.R.V.I.S.J J.A.R.V.I.S.

    @dslraser hast du das benötigte Modul im Javascript Adapter hinterlegt?

    dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    wrote on last edited by
    #5

    @J-A-R-V-I-S

    Diese Module habe ich im Javascript Adapter

    Bildschirmfoto 2020-01-11 um 23.33.33.png

    J.A.R.V.I.S.J 1 Reply Last reply
    0
    • dslraserD dslraser

      @J-A-R-V-I-S

      Diese Module habe ich im Javascript Adapter

      Bildschirmfoto 2020-01-11 um 23.33.33.png

      J.A.R.V.I.S.J Offline
      J.A.R.V.I.S.J Offline
      J.A.R.V.I.S.
      Developer
      wrote on last edited by
      #6

      @dslraser dann fehlt dort das 'url' Modul.

      dslraserD 1 Reply Last reply
      0
      • J.A.R.V.I.S.J J.A.R.V.I.S.

        @dslraser dann fehlt dort das 'url' Modul.

        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        wrote on last edited by
        #7

        @J-A-R-V-I-S
        okay, jetzt kommt schon mal kein Fehler mehr. Wie kann ich jetzt Daten abrufen ?
        Dabei brauche ich Hilfe.

        J.A.R.V.I.S.J Jey CeeJ 2 Replies Last reply
        0
        • dslraserD dslraser

          @J-A-R-V-I-S
          okay, jetzt kommt schon mal kein Fehler mehr. Wie kann ich jetzt Daten abrufen ?
          Dabei brauche ich Hilfe.

          J.A.R.V.I.S.J Offline
          J.A.R.V.I.S.J Offline
          J.A.R.V.I.S.
          Developer
          wrote on last edited by
          #8

          @dslraser welche möchtest du denn abrufen?

          dslraserD 1 Reply Last reply
          0
          • dslraserD dslraser

            @J-A-R-V-I-S
            okay, jetzt kommt schon mal kein Fehler mehr. Wie kann ich jetzt Daten abrufen ?
            Dabei brauche ich Hilfe.

            Jey CeeJ Online
            Jey CeeJ Online
            Jey Cee
            Developer
            wrote on last edited by
            #9

            @dslraser du musst die Funktion login Ausführen:

            let token = login();
            

            So bekommst du den Token in deine Variable.

            Persönlicher Support
            Spenden -> paypal.me/J3YC33

            1 Reply Last reply
            0
            • J.A.R.V.I.S.J J.A.R.V.I.S.

              @dslraser welche möchtest du denn abrufen?

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              wrote on last edited by dslraser
              #10

              @J-A-R-V-I-S
              im Grund die von meinem Gateway bzw. vom Irrigation Control zur Bewässerung.

              https://developer.1689.cloud/apis/GARDENA+smart+system+API#/readme

              J.A.R.V.I.S.J 1 Reply Last reply
              0
              • dslraserD dslraser

                @J-A-R-V-I-S
                im Grund die von meinem Gateway bzw. vom Irrigation Control zur Bewässerung.

                https://developer.1689.cloud/apis/GARDENA+smart+system+API#/readme

                J.A.R.V.I.S.J Offline
                J.A.R.V.I.S.J Offline
                J.A.R.V.I.S.
                Developer
                wrote on last edited by J.A.R.V.I.S.
                #11

                @dslraser dann versuch mal folgendes mit deinen Daten.

                const request = require('request');
                
                function requestLocations(token, key) {
                    const options = {
                        url: 'https://api.smart.gardena.dev/v1/locations',
                        method: 'GET',
                        headers: {
                            'Authorization': 'Bearer ' + token,
                            'Authorization-Provider': 'husqvarna',
                            'X-Api-Key': key
                        }
                    }
                
                    request(options, (error, response, body) => {
                        console.log(body);
                    });
                }
                
                dslraserD 1 Reply Last reply
                0
                • J.A.R.V.I.S.J J.A.R.V.I.S.

                  @dslraser dann versuch mal folgendes mit deinen Daten.

                  const request = require('request');
                  
                  function requestLocations(token, key) {
                      const options = {
                          url: 'https://api.smart.gardena.dev/v1/locations',
                          method: 'GET',
                          headers: {
                              'Authorization': 'Bearer ' + token,
                              'Authorization-Provider': 'husqvarna',
                              'X-Api-Key': key
                          }
                      }
                  
                      request(options, (error, response, body) => {
                          console.log(body);
                      });
                  }
                  
                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  wrote on last edited by
                  #12

                  @J-A-R-V-I-S
                  Das ist die andere Methode, oder ?

                  J.A.R.V.I.S.J Jey CeeJ 2 Replies Last reply
                  0
                  • dslraserD dslraser

                    @J-A-R-V-I-S
                    Das ist die andere Methode, oder ?

                    J.A.R.V.I.S.J Offline
                    J.A.R.V.I.S.J Offline
                    J.A.R.V.I.S.
                    Developer
                    wrote on last edited by J.A.R.V.I.S.
                    #13

                    @dslraser das wäre das Abfragen der Locations. Du kannst da natürlich auch eine Funktion draus machen. Habe es oben geändert.

                    1 Reply Last reply
                    0
                    • dslraserD dslraser

                      @J-A-R-V-I-S
                      Das ist die andere Methode, oder ?

                      Jey CeeJ Online
                      Jey CeeJ Online
                      Jey Cee
                      Developer
                      wrote on last edited by
                      #14

                      @dslraser Die erste API ist für die Anmeldung, die Zweite zur Steuerung der Gardena Geräte. Du brauchst also beides.
                      In Zeile 8 muss der Token aus Skript eins rein.

                      Persönlicher Support
                      Spenden -> paypal.me/J3YC33

                      dslraserD 1 Reply Last reply
                      0
                      • Jey CeeJ Jey Cee

                        @dslraser Die erste API ist für die Anmeldung, die Zweite zur Steuerung der Gardena Geräte. Du brauchst also beides.
                        In Zeile 8 muss der Token aus Skript eins rein.

                        dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        wrote on last edited by dslraser
                        #15

                        @Jey-Cee sagte in Hilfe bei Gardena API:

                        In Zeile 8 muss der Token aus Skript eins rein.

                        Den habe ich noch nicht und auch noch nicht genau verstanden wie ich den ins Log oder in eine Variable bekomme.

                        J.A.R.V.I.S.J 1 Reply Last reply
                        0
                        • dslraserD dslraser

                          @Jey-Cee sagte in Hilfe bei Gardena API:

                          In Zeile 8 muss der Token aus Skript eins rein.

                          Den habe ich noch nicht und auch noch nicht genau verstanden wie ich den ins Log oder in eine Variable bekomme.

                          J.A.R.V.I.S.J Offline
                          J.A.R.V.I.S.J Offline
                          J.A.R.V.I.S.
                          Developer
                          wrote on last edited by J.A.R.V.I.S.
                          #16

                          @dslraser

                          @Jey-Cee sagte in Hilfe bei Gardena API:

                          let token = login();

                          Damit bekommst du den Token. Und dann rufst du die zweite Funktion auf.

                          requestLocations(token, appKey);
                          

                          Meine Funktion ist ungetestet, da ich dort keine Zugangsdaten habe. Laut der Doku sollte die Abfrage aber so vonstattengehen.

                          dslraserD 1 Reply Last reply
                          0
                          • J.A.R.V.I.S.J J.A.R.V.I.S.

                            @dslraser

                            @Jey-Cee sagte in Hilfe bei Gardena API:

                            let token = login();

                            Damit bekommst du den Token. Und dann rufst du die zweite Funktion auf.

                            requestLocations(token, appKey);
                            

                            Meine Funktion ist ungetestet, da ich dort keine Zugangsdaten habe. Laut der Doku sollte die Abfrage aber so vonstattengehen.

                            dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            wrote on last edited by
                            #17

                            @J-A-R-V-I-S
                            @Jey-Cee

                            So ?

                            const fetch = require('node-fetch');
                            const { URLSearchParams } = require('url');
                            
                            const username = 'xxx@xxx.de';
                            const password = 'xxxxx';
                            const appKey   = 'xxxxx';
                            
                            async function login() {
                              const params = new URLSearchParams();
                              params.set('grant_type', 'password');
                              params.set('client_id', appKey);
                              params.set('username', username);
                              params.set('password', password);
                            
                              const res = await fetch('https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', { 
                                method: 'POST',
                                body: params
                              });
                            
                              if (!res.ok) {
                                throw new Error(res.statusText);
                              }
                            
                              return res.json();
                            }
                            let token = login();
                            
                            const request = require('request');
                             
                            function requestLocations(token, key) {
                                const options = {
                                    url: 'https://api.smart.gardena.dev/v1/locations',
                                    method: 'GET',
                                    headers: {
                                        'Authorization': 'Bearer ' + token,
                                        'Authorization-Provider': 'husqvarna',
                                        'X-Api-Key': '6dc5b7d9-d426-4b58-84c8-c3733e08e9cb'
                                    }
                                }
                             
                                request(options, (error, response, body) => {
                                    console.log(body);
                                });
                            }
                            
                            
                            J.A.R.V.I.S.J 1 Reply Last reply
                            0
                            • dslraserD dslraser

                              @J-A-R-V-I-S
                              @Jey-Cee

                              So ?

                              const fetch = require('node-fetch');
                              const { URLSearchParams } = require('url');
                              
                              const username = 'xxx@xxx.de';
                              const password = 'xxxxx';
                              const appKey   = 'xxxxx';
                              
                              async function login() {
                                const params = new URLSearchParams();
                                params.set('grant_type', 'password');
                                params.set('client_id', appKey);
                                params.set('username', username);
                                params.set('password', password);
                              
                                const res = await fetch('https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', { 
                                  method: 'POST',
                                  body: params
                                });
                              
                                if (!res.ok) {
                                  throw new Error(res.statusText);
                                }
                              
                                return res.json();
                              }
                              let token = login();
                              
                              const request = require('request');
                               
                              function requestLocations(token, key) {
                                  const options = {
                                      url: 'https://api.smart.gardena.dev/v1/locations',
                                      method: 'GET',
                                      headers: {
                                          'Authorization': 'Bearer ' + token,
                                          'Authorization-Provider': 'husqvarna',
                                          'X-Api-Key': '6dc5b7d9-d426-4b58-84c8-c3733e08e9cb'
                                      }
                                  }
                               
                                  request(options, (error, response, body) => {
                                      console.log(body);
                                  });
                              }
                              
                              
                              J.A.R.V.I.S.J Offline
                              J.A.R.V.I.S.J Offline
                              J.A.R.V.I.S.
                              Developer
                              wrote on last edited by
                              #18

                              @dslraser

                              const fetch = require('node-fetch');
                              const { URLSearchParams } = require('url');
                              const request = require('request');
                              
                              const username = 'xxx@xxx.de';
                              const password = 'xxxxx';
                              const appKey   = 'xxxxx';
                              
                              async function login() {
                              
                                  const params = new URLSearchParams();
                                  params.set('grant_type', 'password');
                                  params.set('client_id', appKey);
                                  params.set('username', username);
                                  params.set('password', password);
                              
                                  const res = await fetch('https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', { 
                                      method: 'POST',
                                      body: params
                                  });
                              
                                  if (!res.ok) {
                                      throw new Error(res.statusText);
                                  }
                              
                                  return res.json();
                              }
                              
                              function requestLocations(token, key) {
                                  const options = {
                                      url: 'https://api.smart.gardena.dev/v1/locations',
                                      method: 'GET',
                                      headers: {
                                          'Authorization': 'Bearer ' + token,
                                          'Authorization-Provider': 'husqvarna',
                                          'X-Api-Key': '6dc5b7d9-d426-4b58-84c8-c3733e08e9cb'
                                      }
                                  }
                               
                                  request(options, (error, response, body) => {
                                      console.log(body);
                                  });
                              }
                              
                              let token = login();
                              
                              requestLocations(token, appKey);
                              
                              J.A.R.V.I.S.J dslraserD 2 Replies Last reply
                              0
                              • J.A.R.V.I.S.J J.A.R.V.I.S.

                                @dslraser

                                const fetch = require('node-fetch');
                                const { URLSearchParams } = require('url');
                                const request = require('request');
                                
                                const username = 'xxx@xxx.de';
                                const password = 'xxxxx';
                                const appKey   = 'xxxxx';
                                
                                async function login() {
                                
                                    const params = new URLSearchParams();
                                    params.set('grant_type', 'password');
                                    params.set('client_id', appKey);
                                    params.set('username', username);
                                    params.set('password', password);
                                
                                    const res = await fetch('https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', { 
                                        method: 'POST',
                                        body: params
                                    });
                                
                                    if (!res.ok) {
                                        throw new Error(res.statusText);
                                    }
                                
                                    return res.json();
                                }
                                
                                function requestLocations(token, key) {
                                    const options = {
                                        url: 'https://api.smart.gardena.dev/v1/locations',
                                        method: 'GET',
                                        headers: {
                                            'Authorization': 'Bearer ' + token,
                                            'Authorization-Provider': 'husqvarna',
                                            'X-Api-Key': '6dc5b7d9-d426-4b58-84c8-c3733e08e9cb'
                                        }
                                    }
                                 
                                    request(options, (error, response, body) => {
                                        console.log(body);
                                    });
                                }
                                
                                let token = login();
                                
                                requestLocations(token, appKey);
                                
                                J.A.R.V.I.S.J Offline
                                J.A.R.V.I.S.J Offline
                                J.A.R.V.I.S.
                                Developer
                                wrote on last edited by
                                #19

                                bzw. unten anders, da das sonst asyncron ausgeführt wird und du keinen Token erhälst:

                                let token = await login();
                                
                                requestLocations(token, appKey);
                                

                                das untere

                                async function getData(appKey) {
                                    let token = await login();
                                
                                    requestLocations(token, appKey);
                                }
                                
                                getData(appKey);
                                
                                dslraserD 1 Reply Last reply
                                0
                                • J.A.R.V.I.S.J J.A.R.V.I.S.

                                  @dslraser

                                  const fetch = require('node-fetch');
                                  const { URLSearchParams } = require('url');
                                  const request = require('request');
                                  
                                  const username = 'xxx@xxx.de';
                                  const password = 'xxxxx';
                                  const appKey   = 'xxxxx';
                                  
                                  async function login() {
                                  
                                      const params = new URLSearchParams();
                                      params.set('grant_type', 'password');
                                      params.set('client_id', appKey);
                                      params.set('username', username);
                                      params.set('password', password);
                                  
                                      const res = await fetch('https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', { 
                                          method: 'POST',
                                          body: params
                                      });
                                  
                                      if (!res.ok) {
                                          throw new Error(res.statusText);
                                      }
                                  
                                      return res.json();
                                  }
                                  
                                  function requestLocations(token, key) {
                                      const options = {
                                          url: 'https://api.smart.gardena.dev/v1/locations',
                                          method: 'GET',
                                          headers: {
                                              'Authorization': 'Bearer ' + token,
                                              'Authorization-Provider': 'husqvarna',
                                              'X-Api-Key': '6dc5b7d9-d426-4b58-84c8-c3733e08e9cb'
                                          }
                                      }
                                   
                                      request(options, (error, response, body) => {
                                          console.log(body);
                                      });
                                  }
                                  
                                  let token = login();
                                  
                                  requestLocations(token, appKey);
                                  
                                  dslraserD Offline
                                  dslraserD Offline
                                  dslraser
                                  Forum Testing Most Active
                                  wrote on last edited by
                                  #20

                                  @J-A-R-V-I-S
                                  damit bekam ich

                                  {"message":"Forbidden"}
                                  
                                  1 Reply Last reply
                                  0
                                  • J.A.R.V.I.S.J J.A.R.V.I.S.

                                    bzw. unten anders, da das sonst asyncron ausgeführt wird und du keinen Token erhälst:

                                    let token = await login();
                                    
                                    requestLocations(token, appKey);
                                    

                                    das untere

                                    async function getData(appKey) {
                                        let token = await login();
                                    
                                        requestLocations(token, appKey);
                                    }
                                    
                                    getData(appKey);
                                    
                                    dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    wrote on last edited by dslraser
                                    #21

                                    @J-A-R-V-I-S

                                    async function getData(appKey) {
                                        let token = await login();
                                     
                                        requestLocations(token, appKey);
                                    }
                                     
                                    getData(appKey);
                                    
                                    

                                    Damit habe ich nichts mehr im Log

                                    J.A.R.V.I.S.J 1 Reply Last reply
                                    0
                                    • dslraserD dslraser

                                      @J-A-R-V-I-S

                                      async function getData(appKey) {
                                          let token = await login();
                                       
                                          requestLocations(token, appKey);
                                      }
                                       
                                      getData(appKey);
                                      
                                      

                                      Damit habe ich nichts mehr im Log

                                      J.A.R.V.I.S.J Offline
                                      J.A.R.V.I.S.J Offline
                                      J.A.R.V.I.S.
                                      Developer
                                      wrote on last edited by J.A.R.V.I.S.
                                      #22

                                      @dslraser sagte in Hilfe bei Gardena API:

                                      async function getData(appKey) {

                                      dann bau mal bitte in dieser Funktion eine Consolenausgabe ein, die den Token ausgibt.

                                      console.log(token);
                                      

                                      und verwende sonst einmal in der anderen Ausgabe anstatt body response.

                                      dslraserD 1 Reply Last reply
                                      0
                                      • J.A.R.V.I.S.J J.A.R.V.I.S.

                                        @dslraser sagte in Hilfe bei Gardena API:

                                        async function getData(appKey) {

                                        dann bau mal bitte in dieser Funktion eine Consolenausgabe ein, die den Token ausgibt.

                                        console.log(token);
                                        

                                        und verwende sonst einmal in der anderen Ausgabe anstatt body response.

                                        dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        wrote on last edited by
                                        #23

                                        @J-A-R-V-I-S
                                        kommt kein Token im Log

                                        const fetch = require('node-fetch');
                                        const { URLSearchParams } = require('url');
                                        const request = require('request');
                                         
                                        const username = 'xxx.xxx@xxx.de';
                                        const password = 'xxx';
                                        const appKey   = 'xxx';
                                         
                                        async function login() {
                                         
                                            const params = new URLSearchParams();
                                            params.set('grant_type', 'password');
                                            params.set('client_id', appKey);
                                            params.set('username', username);
                                            params.set('password', password);
                                         
                                            const res = await fetch('https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', { 
                                                method: 'POST',
                                                body: params
                                            });
                                         
                                            if (!res.ok) {
                                                throw new Error(res.statusText);
                                            }
                                         
                                            return res.json();
                                            
                                        }
                                         
                                        function requestLocations(token, key) {
                                            const options = {
                                                url: 'https://api.smart.gardena.dev/v1/locations',
                                                method: 'GET',
                                                headers: {
                                                    'Authorization': 'Bearer ' + token,
                                                    'Authorization-Provider': 'husqvarna',
                                                    'X-Api-Key': 'xxx'
                                                }
                                            }
                                         
                                            request(options, (error, response, body) => {
                                                console.log(response);
                                            });
                                        }
                                         
                                        async function getData(appKey) {
                                            let token = await login();
                                            requestLocations(token, appKey);
                                            console.log(token);
                                        }
                                        
                                        getData(appKey);
                                        
                                        
                                        
                                        1 Reply Last reply
                                        0
                                        • J.A.R.V.I.S.J Offline
                                          J.A.R.V.I.S.J Offline
                                          J.A.R.V.I.S.
                                          Developer
                                          wrote on last edited by
                                          #24

                                          @dslraser probier einfach nur mal folgenden Code in einem eigenen Skrip aus:

                                          const request = require('request');
                                          
                                          const username = 'xxx@xxx.de';
                                          const password = 'xxxxx';
                                          const appKey   = 'xxxxx';
                                          
                                          const options = {
                                              url: 'https://api.authentication.husqvarnagroup.dev/v1/oauth2/token',
                                              method: 'POST',
                                              body: {
                                                  grant_type: 'password',
                                                  client_id: appKey,
                                                  username: username,
                                                  password: password
                                              }
                                          }
                                          
                                          request(options, (err, response, body) => {
                                              console.log(body);
                                          });
                                          
                                          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

                                          340

                                          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