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. JSON aus diesem Link - Ist das machbar ? MELCLOUD

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    13
    1
    147

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

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

JSON aus diesem Link - Ist das machbar ? MELCLOUD

Scheduled Pinned Locked Moved JavaScript
17 Posts 3 Posters 1.1k Views 2 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 Offline
    M Offline
    meicker
    wrote on last edited by
    #2

    Ich habe folgendes noch gefunden - Aber das kann ich ja auch nicht auf dem IOBroker laufen lassen. Aber vielleicht hilft es weiter ?

    email = 'test@test.com'
    password = '123456'
    
    https = require('ssl.https')
    json = require('json')
    ltn12 = require('ltn12')
    
    function encodepost(t)
      local res = {}
      local esc = require('socket.url').escape
    
      for k, v in pairs(t) do
        res[ #res + 1 ] = esc(k) .. '=' .. esc(v)
      end
    
      return table.concat(res, '&')
    end
    
    function login(email, password)
      local url = 'https://app.melcloud.com/Mitsubishi.Wifi.Client/Login/ClientLogin'
      local data = encodepost({
        AppVersion = '1.9.3.0',
        Language = '7',
        CaptchaChallenge = '',
        CaptchaResponse = '',
        Persist = 'true',
        Email = email,
        Password = password,
      })
    
      local res, code = https.request(url, data)
    
      if res then
        resp = json.pdecode(res)
    
        if type(resp) ~= 'table' then
          return nil, 'failed to decode reply data'
        elseif resp.ErrorId ~= json.null then
          return nil, 'cloud login failed'
        else
          return resp.LoginData.ContextKey
        end
      else
        return nil, 'login request failed'
      end
    end
    
    function getdevices(key)
      local url = 'https://app.melcloud.com/Mitsubishi.Wifi.Client/User/ListDevices'
      local tbl = {}
    
      local res, code = https.request({
        url = url,
        headers = {
          ['X-MitsContextKey'] = key
        },
        sink = ltn12.sink.table(tbl),
      })
    
      if res then
        local data = table.concat(tbl)
        return json.pdecode(data)
      else
        return nil, 'get devices request failed'
      end
    end
    
    key, err = login(email, password)
    if key then
      items, err = getdevices(key)
    
      if items then
        for _, item in ipairs(items) do
          local devs = item.Structure.Devices
          for _, dev in ipairs(devs) do
            log(dev)
          end
        end
      else
        log(err)
      end
    else
      log(err)
    end
    
    1 Reply Last reply
    0
    • M Offline
      M Offline
      meicker
      wrote on last edited by
      #3

      Hallo zusammen,

      hat wirklich niemand eine Idee ? :-(

      @paul53 - Hey Paul, Du weißt doch so gut wie alles :-)

      Viele Grüße,
      Marc

      paul53P 1 Reply Last reply
      0
      • M meicker

        Hallo zusammen,

        hat wirklich niemand eine Idee ? :-(

        @paul53 - Hey Paul, Du weißt doch so gut wie alles :-)

        Viele Grüße,
        Marc

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by paul53
        #4

        @meicker sagte:

        Paul, Du weißt doch so gut wie alles

        Danke für die Lorbeeren, aber so ist es leider nicht (französisch verstehe ich auch nicht). Ich kann Dich nur auf das bereits im Javascript-Adapter enthaltene Modul request verweisen. Du findest dazu auch einige Beispiele im Forum.

        P.S. Ich verwende grundsätzlich keine Lösungen auf Cloud-Basis, folglich kenne ich mich damit nicht aus.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        M 1 Reply Last reply
        0
        • paul53P paul53

          @meicker sagte:

          Paul, Du weißt doch so gut wie alles

          Danke für die Lorbeeren, aber so ist es leider nicht (französisch verstehe ich auch nicht). Ich kann Dich nur auf das bereits im Javascript-Adapter enthaltene Modul request verweisen. Du findest dazu auch einige Beispiele im Forum.

          P.S. Ich verwende grundsätzlich keine Lösungen auf Cloud-Basis, folglich kenne ich mich damit nicht aus.

          M Offline
          M Offline
          meicker
          wrote on last edited by
          #5

          @paul53
          :-) Du bekommst gerne die Lorbeeren :-) Du hast mir bisher immer den richtigen Weg zeigen können :-) Request schaue ich mir mal an. Vielleicht hilft es ja. Danke :-)

          Viele grüße,
          Marc

          M 1 Reply Last reply
          0
          • M meicker

            @paul53
            :-) Du bekommst gerne die Lorbeeren :-) Du hast mir bisher immer den richtigen Weg zeigen können :-) Request schaue ich mir mal an. Vielleicht hilft es ja. Danke :-)

            Viele grüße,
            Marc

            M Offline
            M Offline
            meicker
            wrote on last edited by
            #6

            @paul53
            Warum funktioniert eigentlich das script nicht was ich da oben gepostet habe ? Das wirft einen Fehler aus ... ist das nicht schon irgendwie ein Anfang der für iobroker umgestrickt werden müsste ?

            vg
            Marc

            paul53P 1 Reply Last reply
            0
            • M meicker

              @paul53
              Warum funktioniert eigentlich das script nicht was ich da oben gepostet habe ? Das wirft einen Fehler aus ... ist das nicht schon irgendwie ein Anfang der für iobroker umgestrickt werden müsste ?

              vg
              Marc

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #7

              @meicker sagte:

              Warum funktioniert eigentlich das script nicht was ich da oben gepostet habe ?

              Weil das kein Javascript ist.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              M 1 Reply Last reply
              0
              • paul53P paul53

                @meicker sagte:

                Warum funktioniert eigentlich das script nicht was ich da oben gepostet habe ?

                Weil das kein Javascript ist.

                M Offline
                M Offline
                meicker
                wrote on last edited by
                #8

                @paul53
                Argument :-)

                paul53P 1 Reply Last reply
                0
                • M meicker

                  @paul53
                  Argument :-)

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by paul53
                  #9

                  @meicker
                  Hier gibt es Javascript für Melcloud-Zugriff, allerdings nicht für ioBroker, sondern für Homebridge.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  Lenny.CBL 1 Reply Last reply
                  0
                  • paul53P paul53

                    @meicker
                    Hier gibt es Javascript für Melcloud-Zugriff, allerdings nicht für ioBroker, sondern für Homebridge.

                    Lenny.CBL Offline
                    Lenny.CBL Offline
                    Lenny.CB
                    Most Active
                    wrote on last edited by Lenny.CB
                    #10

                    @meicker kannste damit vielleicht was anfangen? response.body bleibt leer, da ich keine Geräte habe die in der App registriert werden können.

                    @paul53 siehst du auf Anhieb was, wie man das "Script" besser schreiben könnte? Bin ja auch noch am lernen.

                    LogIn();
                    
                    
                    function LogIn () {
                        var url = "https://app.melcloud.com/Mitsubishi.Wifi.Client/Login/ClientLogin";
                    	var form = {
                    			AppVersion: "1.9.3.0",
                    			CaptchaChallenge: "",
                    			CaptchaResponse: "",
                    			Email: "hier deine email aus der Registrierung",
                    			Language: "4",  //hier kann man Zahlen für verschiedene Sprachen eingeben eingeben --> keine Übersicht gefunden
                    			Password: "hier dein Passwort",
                    			Persist: "true"
                    	};
                        var method = "post";
                        request({  
                            url: url,
                            form: form,
                            method: method
                        },
                            function (error, response) {
                                if (!error && response.statusCode == 200) {
                                    log('Device_statusCode: ' + response.statusCode);
                                    let obj = JSON.parse(response.body);
                                    log('ContextKey: ' + obj.LoginData.ContextKey);
                                    let ContextKey = obj.LoginData.ContextKey;
                                    getDevices (ContextKey);
                                } else {
                                    log('Geräteabfrage fehlgeschlagen ==> StatusCode: ' + response.statusCode);
                                    log('Geräteabfrage fehlgeschlagen ==> Error: ' + error);
                                }
                            });    
                    }
                    
                    function getDevices(ContextKey) {
                        var url = "https://app.melcloud.com/Mitsubishi.Wifi.Client/User/ListDevices";
                     	var method = "get";
                            request({
                                url: url,
                                method: method,
                                headers: {"X-MitsContextKey" : ContextKey}
                            },
                            function(error, response) {
                     	        if (!error && response.statusCode == 200) {
                                    log('Device_statusCode: ' + response.statusCode);
                                    log('response: ' + JSON.stringify(response));
                     	        } else {
                                    log('Geräteabfrage fehlgeschlagen ==> StatusCode: ' + response.statusCode);
                                    log('Geräteabfrage fehlgeschlagen ==> Error: ' + error);
                     	        }
                     	    });
                    }
                    
                    paul53P 2 Replies Last reply
                    0
                    • Lenny.CBL Lenny.CB

                      @meicker kannste damit vielleicht was anfangen? response.body bleibt leer, da ich keine Geräte habe die in der App registriert werden können.

                      @paul53 siehst du auf Anhieb was, wie man das "Script" besser schreiben könnte? Bin ja auch noch am lernen.

                      LogIn();
                      
                      
                      function LogIn () {
                          var url = "https://app.melcloud.com/Mitsubishi.Wifi.Client/Login/ClientLogin";
                      	var form = {
                      			AppVersion: "1.9.3.0",
                      			CaptchaChallenge: "",
                      			CaptchaResponse: "",
                      			Email: "hier deine email aus der Registrierung",
                      			Language: "4",  //hier kann man Zahlen für verschiedene Sprachen eingeben eingeben --> keine Übersicht gefunden
                      			Password: "hier dein Passwort",
                      			Persist: "true"
                      	};
                          var method = "post";
                          request({  
                              url: url,
                              form: form,
                              method: method
                          },
                              function (error, response) {
                                  if (!error && response.statusCode == 200) {
                                      log('Device_statusCode: ' + response.statusCode);
                                      let obj = JSON.parse(response.body);
                                      log('ContextKey: ' + obj.LoginData.ContextKey);
                                      let ContextKey = obj.LoginData.ContextKey;
                                      getDevices (ContextKey);
                                  } else {
                                      log('Geräteabfrage fehlgeschlagen ==> StatusCode: ' + response.statusCode);
                                      log('Geräteabfrage fehlgeschlagen ==> Error: ' + error);
                                  }
                              });    
                      }
                      
                      function getDevices(ContextKey) {
                          var url = "https://app.melcloud.com/Mitsubishi.Wifi.Client/User/ListDevices";
                       	var method = "get";
                              request({
                                  url: url,
                                  method: method,
                                  headers: {"X-MitsContextKey" : ContextKey}
                              },
                              function(error, response) {
                       	        if (!error && response.statusCode == 200) {
                                      log('Device_statusCode: ' + response.statusCode);
                                      log('response: ' + JSON.stringify(response));
                       	        } else {
                                      log('Geräteabfrage fehlgeschlagen ==> StatusCode: ' + response.statusCode);
                                      log('Geräteabfrage fehlgeschlagen ==> Error: ' + error);
                       	        }
                       	    });
                      }
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #11

                      @Lenny-CB sagte:

                      keine Übersicht gefunden

                      Übersicht

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      Lenny.CBL 1 Reply Last reply
                      0
                      • paul53P paul53

                        @Lenny-CB sagte:

                        keine Übersicht gefunden

                        Übersicht

                        Lenny.CBL Offline
                        Lenny.CBL Offline
                        Lenny.CB
                        Most Active
                        wrote on last edited by
                        #12

                        @paul53 sagte in JSON aus diesem Link - Ist das machbar ? MELCLOUD:

                        @Lenny-CB sagte:

                        keine Übersicht gefunden

                        Übersicht

                        :+1:
                        man man man, du hast deine Augen auch überall oder kannst einfach Google besser bedienen als ich. :joy:

                        1 Reply Last reply
                        0
                        • Lenny.CBL Lenny.CB

                          @meicker kannste damit vielleicht was anfangen? response.body bleibt leer, da ich keine Geräte habe die in der App registriert werden können.

                          @paul53 siehst du auf Anhieb was, wie man das "Script" besser schreiben könnte? Bin ja auch noch am lernen.

                          LogIn();
                          
                          
                          function LogIn () {
                              var url = "https://app.melcloud.com/Mitsubishi.Wifi.Client/Login/ClientLogin";
                          	var form = {
                          			AppVersion: "1.9.3.0",
                          			CaptchaChallenge: "",
                          			CaptchaResponse: "",
                          			Email: "hier deine email aus der Registrierung",
                          			Language: "4",  //hier kann man Zahlen für verschiedene Sprachen eingeben eingeben --> keine Übersicht gefunden
                          			Password: "hier dein Passwort",
                          			Persist: "true"
                          	};
                              var method = "post";
                              request({  
                                  url: url,
                                  form: form,
                                  method: method
                              },
                                  function (error, response) {
                                      if (!error && response.statusCode == 200) {
                                          log('Device_statusCode: ' + response.statusCode);
                                          let obj = JSON.parse(response.body);
                                          log('ContextKey: ' + obj.LoginData.ContextKey);
                                          let ContextKey = obj.LoginData.ContextKey;
                                          getDevices (ContextKey);
                                      } else {
                                          log('Geräteabfrage fehlgeschlagen ==> StatusCode: ' + response.statusCode);
                                          log('Geräteabfrage fehlgeschlagen ==> Error: ' + error);
                                      }
                                  });    
                          }
                          
                          function getDevices(ContextKey) {
                              var url = "https://app.melcloud.com/Mitsubishi.Wifi.Client/User/ListDevices";
                           	var method = "get";
                                  request({
                                      url: url,
                                      method: method,
                                      headers: {"X-MitsContextKey" : ContextKey}
                                  },
                                  function(error, response) {
                           	        if (!error && response.statusCode == 200) {
                                          log('Device_statusCode: ' + response.statusCode);
                                          log('response: ' + JSON.stringify(response));
                           	        } else {
                                          log('Geräteabfrage fehlgeschlagen ==> StatusCode: ' + response.statusCode);
                                          log('Geräteabfrage fehlgeschlagen ==> Error: ' + error);
                           	        }
                           	    });
                          }
                          
                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by
                          #13

                          @Lenny-CB sagte:

                              function (error, response) {       
                          

                          an die Callback-Funktion von request() werden doch 3 Parameter übergeben ?

                          request(options, function (error, response, body) {
                          

                          wobei das gewünschte Ergebnis in body übergeben wird.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          Lenny.CBL 1 Reply Last reply
                          0
                          • paul53P paul53

                            @Lenny-CB sagte:

                                function (error, response) {       
                            

                            an die Callback-Funktion von request() werden doch 3 Parameter übergeben ?

                            request(options, function (error, response, body) {
                            

                            wobei das gewünschte Ergebnis in body übergeben wird.

                            Lenny.CBL Offline
                            Lenny.CBL Offline
                            Lenny.CB
                            Most Active
                            wrote on last edited by
                            #14

                            @paul53 sagte in JSON aus diesem Link - Ist das machbar ? MELCLOUD:

                            wobei das gewünschte Ergebnis in body übergeben wird.

                            stimmt, da habe ich mich wohl von deinem Homebridge-Link verleiten lassen. Das war die Grundlage meiner "Script-Schmiererei". :grin:
                            Was wäre hier richtiger? Es aus dem body oder aus dem response zu nehmen? (steht ja in beidem drin)

                            paul53P 1 Reply Last reply
                            0
                            • Lenny.CBL Lenny.CB

                              @paul53 sagte in JSON aus diesem Link - Ist das machbar ? MELCLOUD:

                              wobei das gewünschte Ergebnis in body übergeben wird.

                              stimmt, da habe ich mich wohl von deinem Homebridge-Link verleiten lassen. Das war die Grundlage meiner "Script-Schmiererei". :grin:
                              Was wäre hier richtiger? Es aus dem body oder aus dem response zu nehmen? (steht ja in beidem drin)

                              paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by
                              #15

                              @Lenny-CB sagt:

                              body oder aus dem response zu nehmen? (steht ja in beidem drin)

                              Wenn das Ergebnis sowohl in body als auch in response.body übergeben wird, ist es egal, wie man es macht (die Variante mit response.body war mir nicht geläufig).

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              Lenny.CBL 1 Reply Last reply
                              0
                              • paul53P paul53

                                @Lenny-CB sagt:

                                body oder aus dem response zu nehmen? (steht ja in beidem drin)

                                Wenn das Ergebnis sowohl in body als auch in response.body übergeben wird, ist es egal, wie man es macht (die Variante mit response.body war mir nicht geläufig).

                                Lenny.CBL Offline
                                Lenny.CBL Offline
                                Lenny.CB
                                Most Active
                                wrote on last edited by
                                #16

                                @paul53 naja sagen wir mal so, ich bin ja der letzte der sagen kann ob es eine Variante ist oder nicht. Bei response kam ein JSON raus in dem ein body mit dem gesuchten Ausdruck enthalten war. Dann habe ich das da "raus gefummelt" und nicht weiter im "richtigen" body geschaut.
                                Mal schauen was @meicker draus macht.

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  meicker
                                  wrote on last edited by
                                  #17

                                  @Lenny-CB
                                  ich bin gar nicht so weit das ich bei euch mitreden könnte :-) Ich könnte aus einer fast funktionierenden Lösung was umbauen aber selber bekomme ich das leider nicht hin. Für Melcloud bin ich jetzt einen anderen Weg gegangen und habe mit die Daten über Openhab reingeholt. Schöner wäre es natürlich wenn man das mit Java hinbekommen würde und richtig schick wäre ein Adapter. Aber ich kann da, außer das ich die Hardware habe zum testen, nicht weiter helfen ... :-( Leider ... Ich würde es so gerne können ...

                                  vg Marc

                                  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

                                  515

                                  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