Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. JSON aus diesem Link - Ist das machbar ? MELCLOUD

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

JSON aus diesem Link - Ist das machbar ? MELCLOUD

Geplant Angeheftet Gesperrt Verschoben JavaScript
17 Beiträge 3 Kommentatoren 983 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    meicker
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      meicker
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #8

                @paul53
                Argument :-)

                paul53P 1 Antwort Letzte Antwort
                0
                • M meicker

                  @paul53
                  Argument :-)

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @Lenny-CB sagte:

                        keine Übersicht gefunden

                        Übersicht

                        Lenny.CBL Offline
                        Lenny.CBL Offline
                        Lenny.CB
                        Most Active
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • M Offline
                                  M Offline
                                  meicker
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  688

                                  Online

                                  32.4k

                                  Benutzer

                                  81.6k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe