Verbindung zu MELcloud

Hallo zusammen,

Ich bin neuer Nutzer von Gladys und habe versucht, MELcloud zu konfigurieren. Aber wenn ich Benutzername und Passwort eingebe, wird keine Verbindung hergestellt (Benutzername und Passwort wurden durch direkte Anmeldung bei MELCloud überprüft).
Die MELCloud-Dokumentation leitet mich zu einer nicht auffindbaren Seite auf der Gladys-Website weiter, und ich finde MELcloud nicht in der Liste der Integrationen auf der Gladys-Website.
Habe ich einen Schritt übersehen? Muss ich etwas vorher tun?
Vielen Dank für eure Hilfe.

Romain

Hallo @manoredge :slight_smile:

Willkommen bei Gladys!

Hast du weitere Informationen, damit wir dir helfen können?

Welche Seite wurde nicht gefunden? :slight_smile:

Hallo, ja natürlich,

Auf der Konfigurationsseite: dashboard/integration/device/melcloud/setup: Ich gebe meine Melcloud-ID und mein Melcloud-Passwort ein, es läuft 1 Sekunde und kehrt dann zur gleichen Seite zurück, auf der meine ID und mein Passwort angezeigt werden, aber es passiert nichts. Ich habe keine Informationen, weder über eine Verbindung noch über einen Fehler.
Wenn ich auf « MELcloud-Dokumentation » (4. Reiter unten links) klicke, werde ich zu einer nicht auffindbaren Seite weitergeleitet: Intégration MELCloud pour Gladys Assistant | Gladys Assistant
Schließlich finde ich MELcloud auf der Integrationsseite: https://gladysassistant.com/fr/integrations/ nicht.
Muss ich eine Manipulation durchführen, bevor ich meine Melcloud-ID und mein Melcloud-Passwort eingebe? Sollte ich eine Verbindungsmeldung erhalten, nachdem ich meine ID und mein Passwort eingegeben habe?

@manoredge Danke für die Infos, würdest du mir bitte deine Zugangsdaten/ dein Passwort geben, damit ich den Test durchführen und das Problem auf meiner Seite debuggen kann? (Ändere das Passwort temporär für diesen Test)

Ich habe kein MELCloud zu Hause, und der Entwickler, der diese Integration entwickelt hat, ist leider nicht mehr in der Community aktiv, also keine große Wahl :smiley:

(Falls ja, schick mir alles per PN)

Danke @manoredge für deine Anmeldedaten, ich habe einen PR erstellt, der das Problem behebt:

Ich stehe dir zur Verfügung, um einen echten Test mit dem Ein- und Ausschalten der Klimaanlage durchzuführen, sobald du zu Hause bist.

Danke für den schnellen Anruf @manoredge, das behebt das Problem tatsächlich. Ich werde den Fix in der nächsten Version von Gladys veröffentlichen, wahrscheinlich nächste Woche :slight_smile:

Danke dir @pierre-gilles, hyper effizient, Test erfolgreich

Das ist in Gladys Assistant 4.42 verfügbar:

Hallo,
ich grabe das Thema wieder aus, denn seit heute habe ich PACs von Mitsubishi :cold_face: :hot_face: :grimacing:

Also gebe ich meine ID/Kennwort ein, klicke auf Konfiguration speichern und .. nichts. Nichts passiert und wenn ich zu MELCloud-Erkennung gehe, wird mir gesagt, dass ich nicht verbunden bin :frowning:

Ich möchte darauf hinweisen, dass in meiner E-Mail ein + ist und mein Login in der Melcloud Home-App und auch über das Web funktioniert.
Parallel dazu habe ich auch den matterbridge-Plugin getestet und das funktioniert auch nicht.

Hier sind die Gladys-Logs:

2026-05-21T18:29:47+0200 <info> index.js:27 (Object.start) Starten des MELCloud-Dienstes 52848819-9e44-4ed8-a74d-4f6cfdcc6023

2026-05-21T18:29:47+0200 <error> melcloud.connect.js:44 (MELCloudHandler.connect) Fehler beim Verbinden mit Tuya: null

2026-05-21T18:29:47+0200 <warn> service.start.js:44 (Service.start) Dienst melcloud kann nicht gestartet werden AxiosError: Anfrage fehlgeschlagen mit Statuscode 401

    at settle (/src/server/services/melcloud/node_modules/axios/lib/core/settle.js:19:12)

    at IncomingMessage.handleStreamEnd (/src/server/services/melcloud/node_modules/axios/lib/adapters/http.js:570:11)

    at IncomingMessage.emit (node:events:531:35)

    at endReadableNT (node:internal/streams/readable:1698:12)

    at processTicksAndRejections (node:internal/process/task_queues:89:21) {

  code: 'ERR_BAD_REQUEST',

  config: {

    transitional: {

      silentJSONParsing: true,

      forcedJSONParsing: true,

      clarifyTimeoutError: false

    },

    adapter: [ 'xhr', 'http' ],

    transformRequest: [ [Function: transformRequest] ],

    transformResponse: [ [Function: transformResponse] ],

    timeout: 5000,

    xsrfCookieName: 'XSRF-TOKEN',

    xsrfHeaderName: 'X-XSRF-TOKEN',

    maxContentLength: -1,

    maxBodyLength: -1,

    env: { FormData: [Function], Blob: [class Blob] },

    validateStatus: [Function: validateStatus],

    headers: AxiosHeaders {

      Accept: 'application/json, text/javascript, */*; q=0.01',

      'Content-Type': 'application/json',

      'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:73.0) ',

      'Accept-Language': 'en-US,en;q=0.5',

      'Accept-Encoding': 'gzip, deflate, br',

      'X-MitsContextKey': null,

      'X-Requested-With': 'XMLHttpRequest',

      Cookie: 'policyaccepted=true'

    },

    baseURL: 'https://app.melcloud.com/Mitsubishi.Wifi.Client/',

    method: 'get',

    url: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

    data: undefined

  },

  request: <ref *1> ClientRequest {

    _events: [Object: null prototype] {

      abort: [Function (anonymous)],

      aborted: [Function (anonymous)],

      connect: [Function (anonymous)],

      error: [Function (anonymous)],

      socket: [Function (anonymous)],

      timeout: [Function (anonymous)],

      finish: [Function: requestOnFinish]

    },

    _eventsCount: 7,

    _maxListeners: undefined,

    outputData: [],

    outputSize: 0,

    writable: true,

    destroyed: true,

    _last: true,

    chunkedEncoding: false,

    shouldKeepAlive: true,

    maxRequestsOnConnectionReached: false,

    _defaultKeepAlive: true,

    useChunkedEncodingByDefault: false,

    sendDate: false,

    _removedConnection: false,

    _removedContLen: false,

    _removedTE: false,

    strictContentLength: false,

    _contentLength: 0,

    _hasBody: true,

    _trailer: '',

    finished: true,

    _headerSent: true,

    _closed: true,

    _header: 'GET /Mitsubishi.Wifi.Client//User/ListDevices HTTP/1.1\r\n' +

      'Accept: application/json, text/javascript, */*; q=0.01\r\n' +

      'Content-Type: application/json\r\n' +

      'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:73.0) \r\n' +

      'Accept-Language: en-US,en;q=0.5\r\n' +

      'Accept-Encoding: gzip, deflate, br\r\n' +

      'X-Requested-With: XMLHttpRequest\r\n' +

      'Cookie: policyaccepted=true\r\n' +

      'Host: app.melcloud.com\r\n' +

      'Connection: keep-alive\r\n' +

      '\r\n',

    _keepAliveTimeout: 0,

    _onPendingData: [Function: nop],

    agent: Agent {

      _events: [Object: null prototype],

      _eventsCount: 2,

      _maxListeners: undefined,

      options: [Object: null prototype],

      defaultPort: 443,

      protocol: 'https:',

      requests: [Object: null prototype] {},

      sockets: [Object: null prototype] {},

      freeSockets: [Object: null prototype],

      keepAliveMsecs: 1000,

      keepAlive: true,

      maxSockets: Infinity,

      maxFreeSockets: 256,

      scheduling: 'lifo',

      maxTotalSockets: Infinity,

      totalSocketCount: 1,

      agentKeepAliveTimeoutBuffer: 1000,

      maxCachedSessions: 100,

      _sessionCache: [Object],

      [Symbol(shapeMode)]: false,

      [Symbol(kCapture)]: false

    },

    socketPath: undefined,

    method: 'GET',

    maxHeaderSize: undefined,

    insecureHTTPParser: undefined,

    joinDuplicateHeaders: undefined,

    path: '/Mitsubishi.Wifi.Client//User/ListDevices',

    _ended: true,

    res: IncomingMessage {

      _events: [Object],

      _readableState: [ReadableState],

      _maxListeners: undefined,

      socket: null,

      httpVersionMajor: 1,

      httpVersionMinor: 1,

      httpVersion: '1.1',

      complete: true,

      rawHeaders: [Array],

      rawTrailers: [],

      joinDuplicateHeaders: undefined,

      aborted: false,

      upgrade: false,

      url: '',

      method: null,

      statusCode: 401,

      statusMessage: 'Unauthorized',

      client: [TLSSocket],

      _consuming: false,

      _dumped: false,

      req: [Circular *1],

      _eventsCount: 4,

      responseUrl: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

      redirects: [],

      [Symbol(shapeMode)]: true,

      [Symbol(kCapture)]: false,

      [Symbol(kHeaders)]: [Object],

      [Symbol(kHeadersCount)]: 24,

      [Symbol(kTrailers)]: null,

      [Symbol(kTrailersCount)]: 0

    },

    aborted: false,

    timeoutCb: null,

    upgradeOrConnect: false,

    parser: null,

    maxHeadersCount: null,

    reusedSocket: true,

    host: 'app.melcloud.com',

    protocol: 'https:',

    _redirectable: Writable {

      _events: [Object],

      _writableState: [WritableState],

      _maxListeners: undefined,

      _options: [Object],

      _ended: true,

      _ending: true,

      _redirectCount: 0,

      _redirects: [],

      _requestBodyLength: 0,

      _requestBodyBuffers: [],

      _eventsCount: 3,

      _onNativeResponse: [Function (anonymous)],

      _currentRequest: [Circular *1],

      _currentUrl: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

      _timeout: null,

      [Symbol(shapeMode)]: true,

      [Symbol(kCapture)]: false

    },

    [Symbol(shapeMode)]: false,

    [Symbol(kCapture)]: false,

    [Symbol(kBytesWritten)]: 0,

    [Symbol(kNeedDrain)]: false,

    [Symbol(corked)]: 0,

    [Symbol(kChunkedBuffer)]: [],

    [Symbol(kChunkedLength)]: 0,

    [Symbol(kSocket)]: TLSSocket {

      _tlsOptions: [Object],

      _secureEstablished: true,

      _securePending: false,

      _newSessionPending: false,

      _controlReleased: true,

      secureConnecting: false,

      _SNICallback: null,

      servername: 'app.melcloud.com',

      alpnProtocol: false,

      authorized: true,

      authorizationError: null,

      encrypted: true,

      _events: [Object: null prototype],

      _eventsCount: 9,

      connecting: false,

      _hadError: false,

      _parent: null,

      _host: 'app.melcloud.com',

      _closeAfterHandlingError: false,

      _readableState: [ReadableState],

      _writableState: [WritableState],

      allowHalfOpen: false,

      _maxListeners: undefined,

      _sockname: null,

      _pendingData: null,

      _pendingEncoding: '',

      server: undefined,

      _server: null,

      ssl: [TLSWrap],

      _requestCert: true,

      _rejectUnauthorized: true,

      timeout: 5000,

      parser: null,

      _httpMessage: null,

      autoSelectFamilyAttemptedAddresses: [Array],

      [Symbol(alpncallback)]: null,

      [Symbol(res)]: [TLSWrap],

      [Symbol(verified)]: true,

      [Symbol(pendingSession)]: null,

      [Symbol(async_id_symbol)]: -1,

      [Symbol(kHandle)]: [TLSWrap],

      [Symbol(lastWriteQueueSize)]: 0,

      [Symbol(timeout)]: Timeout {

        _idleTimeout: 5000,

        _idlePrev: [TimersList],

        _idleNext: [Timeout],

        _idleStart: 269871797,

        _onTimeout: [Function: bound ],

        _timerArgs: undefined,

        _repeat: null,

        _destroyed: false,

        [Symbol(refed)]: false,

        [Symbol(kHasPrimitive)]: false,

        [Symbol(kCapture)]: false

      },

      [Symbol(kCapture)]: false

    },

    [Symbol(kCapture)]: false

  },

  [Symbol(kCapture)]: false

}[Symbol(asyncId)]: 15098503,

        [Symbol(triggerId)]: 15098501,

        [Symbol(kAsyncContextFrame)]: undefined

      },

      [Symbol(kBuffer)]: null,

      [Symbol(kBufferCb)]: null,

      [Symbol(kBufferGen)]: null,

      [Symbol(shapeMode)]: true,

      [Symbol(kCapture)]: false,

      [Symbol(kSetNoDelay)]: false,

      [Symbol(kSetKeepAlive)]: true,

      [Symbol(kSetKeepAliveInitialDelay)]: 1,

      [Symbol(kBytesRead)]: 0,

      [Symbol(kBytesWritten)]: 0,

      [Symbol(connect-options)]: [Object]

    },

    [Symbol(kOutHeaders)]: [Object: null prototype] {

      accept: [Array],

      'content-type': [Array],

      'user-agent': [Array],

      'accept-language': [Array],

      'accept-encoding': [Array],

      'x-requested-with': [Array],

      cookie: [Array],

      host: [Array]

    },

    [Symbol(errored)]: null,

    [Symbol(kHighWaterMark)]: 65536,

    [Symbol(kRejectNonStandardBodyWrites)]: false,

    [Symbol(kUniqueHeaders)]: null

  },

  response: {

    status: 401,

    statusText: 'Unauthorized',

    headers: AxiosHeaders {

      date: 'Thu, 21 May 2026 16:29:47 GMT',

      'content-type': 'text/html',

      'content-length': '1293',

      connection: 'keep-alive',

      'cache-control': 'no-cache, no-store, must-revalidate',

      pragma: 'no-cache',

      expires: '-1',

      server: 'Microsoft-IIS/10.0',

      'strict-transport-security': 'max-age=63072000; includeSubDomains',

      'x-robots-tag': 'noindex, nofollow, noimageindex',

      'x-content-type-options': 'nosniff',

      'access-control-allow-origin': '*'

    },

    config: {

      transitional: [Object],

      adapter: [Array],

      transformRequest: [Array],

      transformResponse: [Array],

      timeout: 5000,

      xsrfCookieName: 'XSRF-TOKEN',

      xsrfHeaderName: 'X-XSRF-TOKEN',

      maxContentLength: -1,

      maxBodyLength: -1,

      env: [Object],

      validateStatus: [Function: validateStatus],

      headers: [AxiosHeaders],

      baseURL: 'https://app.melcloud.com/Mitsubishi.Wifi.Client/',

      method: 'get',

      url: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

      data: undefined

    },

    request: <ref *1> ClientRequest {

      _events: [Object: null prototype],

      _eventsCount: 7,

      _maxListeners: undefined,

      outputData: [],

      outputSize: 0,

      writable: true,

      destroyed: true,

      _last: true,

      chunkedEncoding: false,

      shouldKeepAlive: true,

      maxRequestsOnConnectionReached: false,

      _defaultKeepAlive: true,

      useChunkedEncodingByDefault: false,

      sendDate: false,

      _removedConnection: false,

      _removedContLen: false,

      _removedTE: false,

      strictContentLength: false,

      _contentLength: 0,

      _hasBody: true,

      _trailer: '',

      finished: true,

      _headerSent: true,

      _closed: true,

      _header: 'GET /Mitsubishi.Wifi.Client//User/ListDevices HTTP/1.1\r\n' +

        'Accept: application/json, text/javascript, */*; q=0.01\r\n' +

        'Content-Type: application/json\r\n' +

        'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:73.0) \r\n' +

        'Accept-Language: en-US,en;q=0.5\r\n' +

        'Accept-Encoding: gzip, deflate, br\r\n' +

        'X-Requested-With: XMLHttpRequest\r\n' +

        'Cookie: policyaccepted=true\r\n' +

        'Host: app.melcloud.com\r\n' +

        'Connection: keep-alive\r\n' +

        '\r\n',

      _keepAliveTimeout: 0,

      _onPendingData: [Function: nop],

      agent: [Agent],

      socketPath: undefined,

      method: 'GET',

      maxHeaderSize: undefined,

      insecureHTTPParser: undefined,

      joinDuplicateHeaders: undefined,

      path: '/Mitsubishi.Wifi.Client//User/ListDevices',

      _ended: true,

      res: [IncomingMessage],

      aborted: false,

      timeoutCb: null,

      upgradeOrConnect: false,

      parser: null,

      maxHeadersCount: null,

      reusedSocket: true,

      host: 'app.melcloud.com',

      protocol: 'https:',

      _redirectable: [Writable],

      [Symbol(shapeMode)]: false,

      [Symbol(kCapture)]: false,

      [Symbol(kBytesWritten)]: 0,

      [Symbol(kNeedDrain)]: false,

      [Symbol(corked)]: 0,

      [Symbol(kChunkedBuffer)]: [],

      [Symbol(kChunkedLength)]: 0,

      [Symbol(kSocket)]: [TLSSocket],

      [Symbol(kOutHeaders)]: [Object: null prototype],

      [Symbol(errored)]: null,

      [Symbol(kHighWaterMark)]: 65536,

      [Symbol(kRejectNonStandardBodyWrites)]: false,

      [Symbol(kUniqueHeaders)]: null

    },

    data: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n' +

      '<html xmlns="http://www.w3.org/1999/xhtml">\r\n' +

      '<head>\r\n' +

      '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>\r\n' +

      '<title>401 - Unauthorized: Zugriff verweigert aufgrund ungültiger Anmeldedaten.</title>\r\n' +

      '<style type="text/css">\r\n' +

      '<!--\r\n' +

      'body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}\r\n' +

      'fieldset{padding:0 15px 10px 15px;} \r\n' +

      'h1{font-size:2.4em;margin:0;color:#FFF;}\r\n' +

      'h2{font-size:1.7em;margin:0;color:#CC0000;} \r\n' +

      'h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} \r\n' +

      '#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;\r\n' +

      'background-color:#555555;}\r\n' +

      '#content{margin:0 0 0 2%;position:relative;}\r\n' +

      '.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}\r\n' +

      '-->\r\n' +

      '</style>\r\n' +

      '</head>\r\n' +

      '<body>\r\n' +

      '<div id="header"><h1>Serverfehler</h1></div>\r\n' +

      '<div id="content">\r\n' +

      ' <div class="content-container"><fieldset>\r\n' +

      '  <h2>401 - Unauthorized: Zugriff verweigert aufgrund ungültiger Anmeldedaten.</h2>\r\n' +

      '  <h3>Sie haben keine Berechtigung, diesen Ordner oder diese Seite mit den von Ihnen angegebenen Anmeldedaten zu betrachten.</h3>\r\n' +

      ' </fieldset></div>\r\n' +

      '</div>\r\n' +

      '</body>\r\n' +

      '</html>\r\n'

  }

}

2026-05-21T18:30:00+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:27 (EnergyMonitoringHandler.calculateConsumptionFromIndex) Berechnung des Verbrauchs aus dem Index in der Zeitzone Europe/Paris für das Fenster Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit)

2026-05-21T18:30:00+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:34 (EnergyMonitoringHandler.calculateConsumptionFromIndex) 50 Energiegeräte gefunden

2026-05-21T18:30:00+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:65 (EnergyMonitoringHandler.calculateConsumptionFromIndex) 16 Geräte mit sowohl INDEX als auch THIRTY_MINUTES_CONSUMPTION-Funktionen gefunden

2026-05-21T18:30:00+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Borne VE am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:00+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Clim mobile am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:00+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Climatisation am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Leds cuisine am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0.07999999999992724 für Gerät Prise congélateur am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Prise lave-linge am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Téléinformation am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0.7830000000000006 für Gerät Téléinformation am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Téléinformation am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Téléinformation am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Téléinformation am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät Téléinformation am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0.010000000000005116 für Gerät ampli freebox am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät prise compresseur am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät prise_04 am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateConsumptionFromIndex.js:149 () Verbrauch 0 für Gerät relais_fp_01 am Do 21. Mai 2026 18:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) gespeichert

2026-05-21T18:30:01+0200<info> energy-monitoring.calculateConsumptionFromIndex.js:160 (EnergyMonitoringHandler.calculateConsumptionFromIndex) Berechnung des Verbrauchs aus dem Index für 16 Geräte abgeschlossen

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateCostFrom.js:34 (EnergyMonitoringHandler.calculateCostFrom) Berechnung der Kosten in der Zeitzone Europe/Paris

2026-05-21T18:30:01+0200 <info> energy-monitoring.calculateCostFrom.js:38 (EnergyMonitoringHandler.calculateCostFrom) 21 Energiegeräte gefunden

2026-05-21T18:30:02+0200 <info> energy-monitoring.calculateCostFrom.js:126 () Gerät 2b993985-4690-47e0-89ab-523e35ade901 hat Tempo-Preise und die Map ist leer, hole EDF-Tempo-Historie

2026-05-21T18:30:02+0200 <info> contracts.buildEdfTempoDayMap.js:19 (buildEdfTempoDayMap) Bauen der EDF-Tempo-Historie-Karte ab 2026-05-20

2026-05-21T18:30:02+0200 <info> contracts.buildEdfTempoDayMap.js:52 (buildEdfTempoDayMap) Alle 2 EDF-Tempo-Tage im Cache gefunden (von 2026-05-20 bis 2026-05-21)

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = 7393b8a6-31cd-484f-a6a5-4748b897820b ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = b17ed9a0-bb8f-4eab-aa18-49e1e360322c ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = 7647d3f1-2e5c-4773-94dc-d53ddcc24b32 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = 2dea3c15-23d8-4a9e-a9b6-90f0c0d5593f ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = 0883c4ae-66b7-475d-a8ca-7ab3ef09dadb ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = bdb4a7d1-bb27-4132-96c2-e09e4f40f381 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = c7ab8f9e-0f99-4927-b8f3-de864b85e9c3 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = edff3d91-ae7c-4599-aea2-216d2e442786 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = a1e3f62f-5cd2-4c73-b0e8-b988bfed5d3f ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = c9a07104-f362-404f-bac4-7fc4a7f79f3e ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = 8c223390-c8ad-4bfe-ad28-644baf931376 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = d5684fbf-a0f8-414f-b45c-ef28555fe7f1 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = f8b9c646-7fe2-4e86-8aaa-b49e3aa0f910 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = a5113c01-711c-4552-9e06-dfe03819d4a8 ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = 27d71bd3-11f9-48d2-b59d-c6257bf5177e ein.

2026-05-21T18:30:02+0200 <info> index.js:156 () DuckDB: Füge Chunk 0 für deviceFeature = e1c91792-0b39-4b09-b583-1003d9ab50a0 ein.

2026-05-21T18:30:07+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature „zwavejs-ui:41:0:binary_sensor:general_purpose“ nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.

2026-05-21T18:30:12+0200 <info> netatmo.loadDevices.js:155 (NetatmoHandler.loadDevices) Netatmo-Geräte nicht unterstützt: 0

2026-05-21T18:30:37+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature „zwavejs-ui:41:0:binary_sensor:general_purpose“ nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.

2026-05-21T18:30:40+0200 <error> handleMqttMessage.js:123 () Fehler beim Konvertieren des Werts für Gerät capteur_humidite: Error: Zigbee2mqqt expose nicht auf Gerät „capteur_humidite“ mit Eigenschaft „soil_moisture“ gefunden.

    at Zigbee2mqttManager.readValue (/src/server/services/zigbee2mqtt/lib/readValue.js:16:11)

    at /src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:119:31

    at Array.forEach (<anonymous>)

    at Zigbee2mqttManager.handleMqttMessage (/src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:111:41)

    at MqttClient.<anonymous> (/src/server/services/zigbee2mqtt/lib/connect.js:60:12)

    at MqttClient.emit (node:events:519:28)

    at MqttClient._handlePublish (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:1277:12)

    at MqttClient._handlePacket (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:410:12)

    at work (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:321:12)

    at Writable.writable._write (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:335:5)

    at doWrite (/src/server/services/zigbee2mqtt/node_modules/readable-stream/lib/_stream_writable.js:409:139)

    at writeOrBuffer (/src/server/services/zigbee2mqtt/node_modules/readable-stream/lib/_stream_writable.js:398:5)

    at Writable.write (/src/server/services/zigbee2mqtt/node_modules/readable-stream/lib/_stream_writable.js:307:11)

    at Socket.ondata (node:internal/streams/readable:1009:22)

    at Socket.emit (node:events:519:28)

    at addChunk (node:internal/streams/readable:561:12)

    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)

    at Socket.Readable.push (node:internal/streams/readable:392:5)

    at TCP.onStreamRead (node:internal/stream_base_commons:189:23)

2026-05-21T18:31:09+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature „zwavejs-ui:41:0:binary_sensor:general_purpose“ nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.

2026-05-21T18:31:10+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature „zwavejs-ui:41:0:binary_sensor:general_purpose“ nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.

2026-05-21T18:31:10+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature „zwavejs-ui:41:0:binary_sensor:general_purpose“ nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.

2026-05-21T18:31:10+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature „zwavejs-ui:41:0:binary_sensor:general_purpose“ nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.

2026-05-21T18:31:10+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature „zwavejs-ui:41:0:binary_sensor:general_purpose“ nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.

2026-05-21T18:31:13+0200 <info> index.js:27 (Object.start) Starte MELCloud-Dienst 52848819-9e44-4ed8-a74d-4f6cfdcc6023

2026-05-21T18:31:13+0200 <error> melcloud.connect.js:44 (MELCloudHandler.connect) Fehler beim Verbinden mit Tuya: null

2026-05-21T18:31:13+0200 <warn> service.start.js:44 (Service.start) Dienst melcloud konnte nicht gestartet werden AxiosError: Anfrage fehlgeschlagen mit Statuscode 401

    at settle (/src/server/services/melcloud/node_modules/axios/lib/core/settle.js:19:12)

    at IncomingMessage.handleStreamEnd (/src/server/services/melcloud/node_modules/axios/lib/adapters/http.js:570:11)

    at IncomingMessage.emit (node:events:531:35)

    at endReadableNT (node:internal/streams/readable:1698:12)

    at processTicksAndRejections (node:internal/process/task_queues:89:21) {

  code: 'ERR_BAD_REQUEST',

  config: {

    transitional: {

      silentJSONParsing: true,

      forcedJSONParsing: true,

      clarifyTimeoutError: false

    },

    adapter: [ 'xhr', 'http' ],

    transformRequest: [ [Function: transformRequest] ],

    transformResponse: [ [Function: transformResponse] ],

    timeout: 5000,

    xsrfCookieName: 'XSRF-TOKEN',

    xsrfHeaderName: 'X-XSRF-TOKEN',

    maxContentLength: -1,

    maxBodyLength: -1,

    env: { FormData: [Function], Blob: [class Blob] },

    validateStatus: [Function: validateStatus],

    headers: AxiosHeaders {

      Accept: 'application/json, text/javascript, */*; q=0.01',

      'Content-Type': 'application/json',

      'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:73.0) ',

      'Accept-Language': 'en-US,en;q=0.5',

      'Accept-Encoding': 'gzip, deflate, br',

      'X-MitsContextKey': null,

      'X-Requested-With': 'XMLHttpRequest',

      Cookie: 'policyaccepted=true'

    },

    baseURL: 'https://app.melcloud.com/Mitsubishi.Wifi.Client/',

    method: 'get',

    url: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

    data: undefined

  },

  request: <ref *1> ClientRequest {

    _events: [Object: null prototype] {

      abort: [Function (anonymous)],

      aborted: [Function (anonymous)],

      connect: [Function (anonymous)],

      error: [Function (anonymous)],

      socket: [Function (anonymous)],

      timeout: [Function (anonymous)],

      finish: [Function: requestOnFinish]

    },

    _eventsCount: 7,

    _maxListeners: undefined,

    outputData: [],

    outputSize: 0,

    writable: true,

    destroyed: true,

    _last: true,

    chunkedEncoding: false,

    shouldKeepAlive: true,

    maxRequestsOnConnectionReached: false,

    _defaultKeepAlive: true,

    useChunkedEncodingByDefault: false,

    sendDate: false,

    _removedConnection: false,

    _removedContLen: false,

    _removedTE: false,

    strictContentLength: false,

    _contentLength: 0,

    _hasBody: true,

    _trailer: '',

    finished: true,

    _headerSent: true,

    _closed: true,

    _header: 'GET /Mitsubishi.Wifi.Client//User/ListDevices HTTP/1.1\r\n' +

      'Accept: application/json, text/javascript, */*; q=0.01\r\n' +

      'Content-Type: application/json\r\n' +

      'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:73.0) \r\n' +

      'Accept-Language: en-US,en;q=0.5\r\n' +

      'Accept-Encoding: gzip, deflate, br\r\n' +

      'X-Requested-With: XMLHttpRequest\r\n' +

      'Cookie: policyaccepted=true\r\n' +

      'Host: app.melcloud.com\r\n' +

      'Connection: keep-alive\r\n' +

      '\r\n',

    _keepAliveTimeout: 0,

    _onPendingData: [Function: nop],

    agent: Agent {

      _events: [Object: null prototype],

      _eventsCount: 2,

      _maxListeners: undefined,

      options: [Object: null prototype],

      defaultPort: 443,

      protocol: 'https:',

      requests: [Object: null prototype] {},

      sockets: [Object: null prototype] {},

      freeSockets: [Object: null prototype],

      keepAliveMsecs: 1000,

      keepAlive: true,

      maxSockets: Infinity,

      maxFreeSockets: 256,

      scheduling: 'lifo',

      maxTotalSockets: Infinity,

      totalSocketCount: 1,

      agentKeepAliveTimeoutBuffer: 1000,

      maxCachedSessions: 100,

      _sessionCache: [Object],

      [Symbol(shapeMode)]: false,

      [Symbol(kCapture)]: false

    },

    socketPath: undefined,

    method: 'GET',

    maxHeaderSize: undefined,

    insecureHTTPParser: undefined,

    joinDuplicateHeaders: undefined,

    path: '/Mitsubishi.Wifi.Client//User/ListDevices',

    _ended: true,

    res: IncomingMessage {

      _events: [Object],

      _readableState: [ReadableState],

      _maxListeners: undefined,

      socket: null,

      httpVersionMajor: 1,

      httpVersionMinor: 1,

      httpVersion: '1.1',

      complete: true,

      rawHeaders: [Array],

      rawTrailers: [],

      joinDuplicateHeaders: undefined,

      aborted: false,

      upgrade: false,

      url: '',

      method: null,

      statusCode: 401,

      statusMessage: 'Unauthorized',

      client: [TLSSocket],

      _consuming: false,

      _dumped: false,

      req: [Circular *1],

      _eventsCount: 4,

      responseUrl: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

      redirects: [],

      [Symbol(shapeMode)]: true,

      [Symbol(kCapture)]: false,

      [Symbol(kHeaders)]: [Object],

      [Symbol(kHeadersCount)]: 24,

      [Symbol(kTrailers)]: null,

      [Symbol(kTrailersCount)]: 0

    },

    aborted: false,

    timeoutCb: null,

    upgradeOrConnect: false,

    parser: null,

    maxHeadersCount: null,

    reusedSocket: true,

    host: 'app.melcloud.com',

    protocol: 'https:',

    _redirectable: Writable {

      _events: [Object],

      _writableState: [WritableState],

      _maxListeners: undefined,

      _options: [Object],

      _ended: true,

      _ending: true,

      _redirectCount: 0,

      _redirects: [],

      _requestBodyLength: 0,

      _requestBodyBuffers: [],

      _eventsCount: 3,

      _onNativeResponse: [Function (anonymous)],

      _currentRequest: [Circular *1],

      _currentUrl: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

      _timeout: null,

      [Symbol(shapeMode)]: true,

      [Symbol(kCapture)]: false

    },

    [Symbol(shapeMode)]: false,

    [Symbol(kCapture)]: false,

    [Symbol(kBytesWritten)]: 0,

    [Symbol(kNeedDrain)]: false,

    [Symbol(corked)]: 0,

    [Symbol(kChunkedBuffer)]: [],

    [Symbol(kChunkedLength)]: 0,

    [Symbol(kSocket)]: TLSSocket {

      _tlsOptions: [Object],

      _secureEstablished: true,

      _securePending: false,

      _newSessionPending: false,

      _controlReleased: true,

      secureConnecting: false,

      _SNICallback: null,

      servername: 'app.melcloud.com',

      alpnProtocol: false,

      authorized: true,

      authorizationError: null,

      encrypted: true,

      _events: [Object: null prototype],

      _eventsCount: 9,

      connecting: false,

      _hadError: false,

      _parent: null,

      _host: 'app.melcloud.com',

      _closeAfterHandlingError: false,

      _readableState: [ReadableState],

      _writableState: [WritableState],

      allowHalfOpen: false,

      _maxListeners: undefined,

      _sockname: null,

      _pendingData: null,

      _pendingEncoding: '',

      server: undefined,

      _server: null,

      ssl: [TLSWrap],

      _requestCert: true,

      _rejectUnauthorized: true,

      timeout: 5000,

      parser: null,

      _httpMessage: null,

      autoSelectFamilyAttemptedAddresses: [Array],

      [Symbol(alpncallback)]: null,

      [Symbol(res)]: [TLSWrap],

      [Symbol(verified)]: true,

      [Symbol(pendingSession)]: null,

      [Symbol(async_id_symbol)]: -1,

      [Symbol(kHandle)]: [TLSWrap],

      [Symbol(lastWriteQueueSize)]: 0,

      [Symbol(timeout)]: Timeout {

        _idleTimeout: 5000,

        _idlePrev: [TimersList],

        _idleNext: [Timeout],

        _idleStart: 269958086,

        _onTimeout: [Function: bound ],

        _timerArgs: undefined,

        _repeat: null,

        _destroyed: false,

        [Symbol(refed)]: false,

        [Symbol(kHasPrimitive)]: false,

        [Symbol(asyncId)]: 15104056,

        [Symbol(triggerId)]: 15104054,

        [Symbol(kAsyncContextFrame)]: undefined

      },

      [Symbol(kBuffer)]: null,

      [Symbol(kBufferCb)]: null,

      [Symbol(kBufferGen)]: null,

      [Symbol(shapeMode)]: true,

      [Symbol(kCapture)]: false,

      [Symbol(kSetNoDelay)]: false,

      [Symbol(kSetKeepAlive)]: true,

      [Symbol(kSetKeepAliveInitialDelay)]: 1,

      [Symbol(kBytesRead)]: 0,

      [Symbol(kBytesWritten)]: 0,

      [Symbol(connect-options)]: [Object]

    },

    [Symbol(kOutHeaders)]: [Object: null prototype] {

      accept: [Array],

      'content-type': [Array],

      'user-agent': [Array],

      'accept-language': [Array],

      'accept-encoding': [Array],

      'x-requested-with': [Array],

      cookie: [Array],

      host: [Array]

    },

    [Symbol(errored)]: null,

    [Symbol(kHighWaterMark)]: 65536,

    [Symbol(kRejectNonStandardBodyWrites)]: false,

    [Symbol(kUniqueHeaders)]: null

  },

  response: {

    status: 401,

    statusText: 'Unauthorized',

    headers: AxiosHeaders {

      date: 'Thu, 21 May 2026 16:31:13 GMT',

      'content-type': 'text/html',

      'content-length': '1293',

      connection: 'keep-alive',

      'cache-control': 'no-cache, no-store, must-revalidate',

      pragma: 'no-cache',

      expires: '-1',

      server: 'Microsoft-IIS/10.0',

      'strict-transport-security': 'max-age=63072000; includeSubDomains',

      'x-robots-tag': 'noindex, nofollow, noimageindex',

      'x-content-type-options': 'nosniff',

      'access-control-allow-origin': '*'

    },

    config: {

      transitional: [Object],

      adapter: [Array],

      transformRequest: [Array],

      transformResponse: [Array],

      timeout: 5000,

      xsrfCookieName: 'XSRF-TOKEN',

      xsrfHeaderName: 'X-XSRF-TOKEN',

      maxContentLength: -1,

      maxBodyLength: -1,

      env: [Object],

      validateStatus: [Function: validateStatus],

      headers: [AxiosHeaders],

      baseURL: 'https://app.melcloud.com/Mitsubishi.Wifi.Client/',

      method: 'get',

      url: 'https://app.melcloud.com/Mitsubishi.Wifi.Client//User/ListDevices',

      data: undefined

    },

    request: <ref *1> ClientRequest {

      _events: [Object: null prototype],

      _eventsCount: 7,

      _maxListeners: undefined,

      outputData: [],

      outputSize: 0,

      writable: true,

      destroyed: true,

      _last: true,

      chunkedEncoding: false,

      shouldKeepAlive: true,

      maxRequestsOnConnectionReached: false,

      _defaultKeepAlive: true,

      useChunkedEncodingByDefault: false,

      sendDate: false,

      _removedConnection: false,

      _removedContLen: false,

      _removedTE: false,

      strictContentLength: false,

      _contentLength: 0,

      _hasBody: true,

      _trailer: '',

      finished: true,

      _headerSent: true,

      _closed: true,

      _header: 'GET /Mitsubishi.Wifi.Client//User/ListDevices HTTP/1.1\r\n' +

        'Accept: application/json, text/javascript, */*; q=0.01\r\n' +

        'Content-Type: application/json\r\n' +

        'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:73.0) \r\n' +

        'Accept-Language: en-US,en;q=0.5\r\n' +

        'Accept-Encoding: gzip, deflate, br\r\n' +

        'X-Requested-With: XMLHttpRequest\r\n' +

        'Cookie: policyaccepted=true\r\n' +

        'Host: app.melcloud.com\r\n' +

        'Connection: keep-alive\r\n' +

        '\r\n',

      _keepAliveTimeout: 0,

      _onPendingData: [Function: nop],

      agent: [Agent],

      socketPath: undefined,

      method: 'GET',

      maxHeaderSize: undefined,

      insecureHTTPParser: undefined,

      joinDuplicateHeaders: undefined,

      path: '/Mitsubishi.Wifi.Client//User/ListDevices',

      _ended: true,

      res: [IncomingMessage],

      aborted: false,

      timeoutCb: null,

      upgradeOrConnect: false,

      parser: null,

      maxHeadersCount: null,

      reusedSocket: true,

      host: 'app.melcloud.com',

      protocol: 'https:',

      _redirectable: [Writable],

      [Symbol(shapeMode)]: false,

      [Symbol(kCapture)]: false,

      [Symbol(kBytesWritten)]: 0,

      [Symbol(kNeedDrain)]: false,

      [Symbol(corked)]: 0,

      [Symbol(kChunkedBuffer)]: [],

      [Symbol(kChunkedLength)]: 0,

      [Symbol(kSocket)]: [TLSSocket],

      [Symbol(kOutHeaders)]: [Object: null prototype],

      [Symbol(errored)]: null,

      [Symbol(kHighWaterMark)]: 65536,

      [Symbol(kRejectNonStandardBodyWrites)]: false,

      [Symbol(kUniqueHeaders)]: null

    },

    data: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n' +

      '<html xmlns="http://www.w3.org/1999/xhtml">\r\n' +

      '<head>\r\n' +

      '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>\r\n' +

      '<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>\r\n' +

      '<style type="text/css">\r\n' +

      '<!--\r\n' +

      'body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}\r\n' +

      'fieldset{padding:0 15px 10px 15px;} \r\n' +

      'h1{font-size:2.4em;margin:0;color:#FFF;}\r\n' +

      'h2{font-size:1.7em;margin:0;color:#CC0000;} \r\n' +

      'h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} \r\n' +

      '#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;\r\n' +

      'background-color:#555555;}\r\n' +

      '#content{margin:0 0 0 2%;position:relative;}\r\n' +

      '.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}\r\n' +

      '-->\r\n' +

      '</style>\r\n' +

      '</head>\r\n' +

      '<body>\r\n' +

      '<div id="header"><h1>Server Error</h1></div>\r\n' +

      '<div id="content">\r\n' +

      ' <div class="content-container"><fieldset>\r\n' +

      '  <h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>\r\n' +

      '  <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>\r\n' +

      ' </fieldset></div>\r\n' +

      '</div>\r\n' +

      '</body>\r\n' +

      '</html>\r\n'

  }

}

Und eine kleine Frage, aber warum gibt es eine Verbindung mit Tuya und Axios (das ich nicht kenne)?

EDIT: kleine Präzisierung, ich verwende Melcloud Home und nicht das alte Melcloud.
EDIT 2: laut Claude ist das das Problem, weil Gladys app.melcloud.com verwendet und ich bin auf melcloudhome.com. Argh :frowning:
EDIT 3: Ich habe gerade ein Issue auf GitHub mit Claude erstellt: MELCloud integration incompatible with MELCloud Home (melcloudhome.com) · Issue #2532 · GladysAssistant/Gladys · GitHub

Mal sehen, was die Fabrik dazu sagt, aber ich frage mich, ob es nicht ein neues Plugin geben sollte :slight_smile:

Guten Abend @mutmut. Ich habe seit Januar eine Mitsubishi PaC installiert. Ich konnte sie nicht mit der Integration in Gladys verbinden, und Pierre-Gilles hatte mir gesagt, dass das an der Differenz zwischen PaC Luft-Luft und Luft-Wasser liegt. Seitdem habe ich es mit Node-Red geschafft. Es geht um dieses Thema: Intégration MELCloud : PaC non prise en charge. A ajouter?

Und ich habe wie du am Anfang meine PaC auf das neue MEL Cloud verbunden, da mir die Oberfläche der App vollständiger oder zumindest moderner (= weniger hässlich) erschien. Aber mit diesem Cloud-Mail gibt es keine verfügbare API! Zumindest noch nicht… Also zurück zum alten MEL Cloud, das über eine API verfügt. Und damit zur hässlichen App, die ich aber eigentlich nicht benutze, da ich von Gladys aus steuere.

Danke @StephaneB! Ich denke, ich werde zum alten System zurückkehren.

Es ist trotzdem verrückt, wie diese Hersteller alles tun, um ihre Systeme zu verriegeln. Man braucht nur Daikin anzusehen, das man früher lokal steuern konnte, bevor ihre Cloud-Lösung Onecta kam.
Das ist wirklich eine Plage :weary_face:

Eine andere Lösung, die ich mir ansehen werde, aber etwas technischer, ist, alles lokal mit einem ESP zu betreiben. Ich muss die Informationen dazu allerdings erst wiederfinden.

Zur Info, das Melcloud-Plugin stammt aus den Anfängen der Plugin-Fabrik, und seitdem hat sich diese stark weiterentwickelt.
Daher basierte das Plugin auf alten Mechanismen, die bereits behobene Fehler wieder einführen konnten.

Ich habe das Ticket geschlossen, um mit etwas Saubererem neu zu beginnen. Ich denke, es wäre am besten, ein neues zu erstellen :+1:

Es gibt auch viele Melcloud-Plugins auf der Homebridge-Seite, die als interessante Inspiration dienen können. Allerdings sind sie noch nicht für Matter angepasst :slight_smile: