text:
Plugin is crashing entire Homebridge because of tedee Server problems

Hi @lukasroegner
there is a major issue on tedee's server service at the moment. Thursday 17.12.2020 21:45 ongoing
The App also is showing this Issue and I talked to Andrzej from tedee.
However, I only noticed because my entire homebridge crashed.
The Plugin should probably not cause a complete crash and reboot loop just because tedee service is not available?!
Maybe you can take a look at it at the next opportunity so that the plugin can handle it better.
Thanks in advance.
[17.12.2020, 22:14:47] [TedeePlatform] Error while getting locks from API: Error: Request failed with status code 401
Error: Request failed with status code 401
    at createError (/usr/local/lib/node_modules/homebridge-tedee/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/usr/local/lib/node_modules/homebridge-tedee/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/usr/local/lib/node_modules/homebridge-tedee/node_modules/axios/lib/adapters/http.js:236:11)
    at IncomingMessage.emit (events.js:327:22)
    at endReadableNT (internal/streams/readable.js:1327:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
 {
  config: {
    url: 'https://api.tedee.com/api/v1.15/my/lock',
    method: 'get',
    headers: {
      Accept: 'application/json, text/plain, */*',
      Authorization: 'Bearer xxxxxxxxxxxxxxxxxxxxxxxiOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhTmsifQ.eyJpc3MiOiJodHRwczovL3RlZGVlLmIyY2xvZ2luLmNvbS90ZnAvZTMxOTYxN2EtZjMyMi00Y2JhLTgxZWYtNGI1Yjk1MGU5MTcyL2IyY18xX3NpZ25pbl9yb3BjL3YyLjAvIiwiZXhwIjoxNjA4MjUwNDc1LCJuYmYiOjE2MDgyMzk2NzUsImF1ZCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsImlkcCI6IkxvY2FsQWNjb3VudCIsIm9pZCI6ImNiNjY1ZTFiLxxxxxxxxxxxxiNjY1ZTFiLTZmY2QtNGY2Ny05ODQzLTcxN2ZlZWIzMWEzZCIsIm5hbWUiOiJESmF5IiwibmV3VXNlciI6ZmFsc2UsImVtYWlscyI6WyJkamF5QG1lLmNvbSJdLCJ0ZnAiOiJCMkNfMV9TaWduSW5fUm9wYyIsImF6cCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsInZlciI6IjEuMCIsImlhdCI6MTYwODIzOTY3NX0.D1FcynocxrgCekS10JP8lCOteZy-jqiZgwxUCgM7EhtNjk5V9R_Mawq9i0AvXcow0oK5NynKpSMmt2Wp1KY2O9j-vRf-GiF-1xMTo97US6PnthkIyF41AEAcwdJSewBm6LJswa-DiGDAA2Le2nt1yg9hDcYamj1cuYoFqtatQ1YGK8NfnZZfnQzvwKE3EsT_Vby_uUiZgSwPZOwMkMMmYQ2qA0EFP8x0inni6mljwThps6xBBG3RGVCvGhmhn51XjpvYhyUsO7TKyXUANHKSsfi1GvRgNqA_RzSfyZKBLFT-bI2fgiUpyhhwETP5q62TSHWiaYvvcNY19gzXj3wPcg',
      'User-Agent': 'axios/0.19.2'
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus],
    data: undefined
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      socket: [Function (anonymous)],
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      error: [Function (anonymous)],
      timeout: [Function (anonymous)],
      prefinish: [Function: requestOnPrefinish]
    },
    _eventsCount: 6,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: false,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'api.tedee.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 10,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'api.tedee.com',
      _readableState: [ReadableState],
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular *1],
      [Symbol(res)]: [TLSWrap],
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(async_id_symbol)]: 5351,
      [Symbol(kHandle)]: [TLSWrap],
      [Symbol(kSetNoDelay)]: false,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(connect-options)]: [Object],
      [Symbol(RequestTimeout)]: undefined
    },
    _header: 'GET /api/v1.15/my/lock HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxiOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhTmsifQ.eyJpc3MiOiJodHRwczovL3RlZGVlLmIyY2xvZ2luLmNvbS90ZnAvZTMxOTYxN2EtZjMyMi00Y2JhLTgxZWYtNGI1Yjk1MGU5MTcyL2IyY18xX3NpZ25pbl9yb3BjL3YyLjAvIiwiZXhwIjoxNjA4MjUwNDc1LCJuYmYiOjE2MDgyMzk2NzUsImF1ZCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsImlkcCI6IkxvY2FsQWNjb3VudCIsIm9pZCI6ImNiNjY1ZTFiLxxxxxxxxxxxxiNjY1ZTFiLTZmY2QtNGY2Ny05ODQzLTcxN2ZlZWIzMWEzZCIsIm5hbWUiOiJESmF5IiwibmV3VXNlciI6ZmFsc2UsImVtYWlscyI6WyJkamF5QG1lLmNvbSJdLCJ0ZnAiOiJCMkNfMV9TaWduSW5fUm9wYyIsImF6cCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsInZlciI6IjEuMCIsImlhdCI6MTYwODIzOTY3NX0.D1FcynocxrgCekS10JP8lCOteZy-jqiZgwxUCgM7EhtNjk5V9R_Mawq9i0AvXcow0oK5NynKpSMmt2Wp1KY2O9j-vRf-GiF-1xMTo97US6PnthkIyF41AEAcwdJSewBm6LJswa-DiGDAA2Le2nt1yg9hDcYamj1cuYoFqtatQ1YGK8NfnZZfnQzvwKE3EsT_Vby_uUiZgSwPZOwMkMMmYQ2qA0EFP8x0inni6mljwThps6xBBG3RGVCvGhmhn51XjpvYhyUsO7TKyXUANHKSsfi1GvRgNqA_RzSfyZKBLFT-bI2fgiUpyhhwETP5q62TSHWiaYvvcNY19gzXj3wPcg\r\n' +
      'User-Agent: axios/0.19.2\r\n' +
      'Host: api.tedee.com\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: noopPendingOutput],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object],
      requests: {},
      sockets: [Object],
      freeSockets: {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'fifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 4,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    path: '/api/v1.15/my/lock',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      socket: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: true,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'https://api.tedee.com/api/v1.15/my/lock',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(kHeaders)]: [Object],
      [Symbol(kHeadersCount)]: 22,
      [Symbol(kTrailers)]: null,
      [Symbol(kTrailersCount)]: 0,
      [Symbol(RequestTimeout)]: undefined
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'api.tedee.com',
    protocol: 'https:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      _options: [Object],
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://api.tedee.com/api/v1.15/my/lock',
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      authorization: [Array],
      'user-agent': [Array],
      host: [Array]
    }
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: {
      'transfer-encoding': 'chunked',
      'content-type': 'application/json',
      server: 'Microsoft-IIS/10.0',
      'www-authenticate': 'Bearer error="invalid_token", error_description="The signature key was not found", Bearer error="invalid_token", error_description="The signature key was not found"',
      'request-context': 'appId=cid-v1:xxxxxxxxxxxx-bf23-4ab2-b999-bbd05e97fbc2',
      'strict-transport-security': 'max-age=xxxxxxxxxxxx',
      'x-correlation-id': 'xxxxxxxxxxxx-0001-f800-b63f-xxxxxxxxxxxx',
      'x-powered-by': 'ASP.NET',
      date: 'Thu, 17 Dec 2020 21:14:47 GMT',
      connection: 'close'
    },
    config: {
      url: 'https://api.tedee.com/api/v1.15/my/lock',
      method: 'get',
      headers: [Object],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      adapter: [Function: httpAdapter],
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus],
      data: undefined
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [TLSSocket],
      _header: 'GET /api/v1.15/my/lock HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxiOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhTmsifQ.eyJpc3MiOiJodHRwczovL3RlZGVlLmIyY2xvZ2luLmNvbS90ZnAvZTMxOTYxN2EtZjMyMi00Y2JhLTgxZWYtNGI1Yjk1MGU5MTcyL2IyY18xX3NpZ25pbl9yb3BjL3YyLjAvIiwiZXhwIjoxNjA4MjUwNDc1LCJuYmYiOjE2MDgyMzk2NzUsImF1ZCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsImlkcCI6IkxvY2FsQWNjb3VudCIsIm9pZCI6ImNiNjY1ZTFiLxxxxxxxxxxxxiNjY1ZTFiLTZmY2QtNGY2Ny05ODQzLTcxN2ZlZWIzMWEzZCIsIm5hbWUiOiJESmF5IiwibmV3VXNlciI6ZmFsc2UsImVtYWlscyI6WyJkamF5QG1lLmNvbSJdLCJ0ZnAiOiJCMkNfMV9TaWduSW5fUm9wYyIsImF6cCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsInZlciI6IjEuMCIsImlhdCI6MTYwODIzOTY3NX0.D1FcynocxrgCekS10JP8lCOteZy-jqiZgwxUCgM7EhtNjk5V9R_Mawq9i0AvXcow0oK5NynKpSMmt2Wp1KY2O9j-vRf-GiF-1xMTo97US6PnthkIyF41AEAcwdJSewBm6LJswa-DiGDAA2Le2nt1yg9hDcYamj1cuYoFqtatQ1YGK8NfnZZfnQzvwKE3EsT_Vby_uUiZgSwPZOwMkMMmYQ2qA0EFP8x0inni6mljwThps6xBBG3RGVCvGhmhn51XjpvYhyUsO7TKyXUANHKSsfi1GvRgNqA_RzSfyZKBLFT-bI2fgiUpyhhwETP5q62TSHWiaYvvcNY19gzXj3wPcg\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Host: api.tedee.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/api/v1.15/my/lock',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'api.tedee.com',
      protocol: 'https:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    data: { success: false, errorMessages: [Array], statusCode: 401 }
  },
  isAxiosError: true,
  toJSON: [Function (anonymous)]
}
Error: Request failed with status code 401
    at createError (/usr/local/lib/node_modules/homebridge-tedee/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/usr/local/lib/node_modules/homebridge-tedee/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/usr/local/lib/node_modules/homebridge-tedee/node_modules/axios/lib/adapters/http.js:236:11)
    at IncomingMessage.emit (events.js:327:22)
    at endReadableNT (internal/streams/readable.js:1327:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
 {
  config: {
    url: 'https://api.tedee.com/api/v1.15/my/lock',
    method: 'get',
    headers: {
      Accept: 'application/json, text/plain, */*',
      Authorization: 'Bearer xxxxxxxxxxxxxxxxxxxxxxxiOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhTmsifQ.eyJpc3MiOiJodHRwczovL3RlZGVlLmIyY2xvZ2luLmNvbS90ZnAvZTMxOTYxN2EtZjMyMi00Y2JhLTgxZWYtNGI1Yjk1MGU5MTcyL2IyY18xX3NpZ25pbl9yb3BjL3YyLjAvIiwiZXhwIjoxNjA4MjUwNDc1LCJuYmYiOjE2MDgyMzk2NzUsImF1ZCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsImlkcCI6IkxvY2FsQWNjb3VudCIsIm9pZCI6ImNiNjY1ZTFiLxxxxxxxxxxxxiNjY1ZTFiLTZmY2QtNGY2Ny05ODQzLTcxN2ZlZWIzMWEzZCIsIm5hbWUiOiJESmF5IiwibmV3VXNlciI6ZmFsc2UsImVtYWlscyI6WyJkamF5QG1lLmNvbSJdLCJ0ZnAiOiJCMkNfMV9TaWduSW5fUm9wYyIsImF6cCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsInZlciI6IjEuMCIsImlhdCI6MTYwODIzOTY3NX0.D1FcynocxrgCekS10JP8lCOteZy-jqiZgwxUCgM7EhtNjk5V9R_Mawq9i0AvXcow0oK5NynKpSMmt2Wp1KY2O9j-vRf-GiF-1xMTo97US6PnthkIyF41AEAcwdJSewBm6LJswa-DiGDAA2Le2nt1yg9hDcYamj1cuYoFqtatQ1YGK8NfnZZfnQzvwKE3EsT_Vby_uUiZgSwPZOwMkMMmYQ2qA0EFP8x0inni6mljwThps6xBBG3RGVCvGhmhn51XjpvYhyUsO7TKyXUANHKSsfi1GvRgNqA_RzSfyZKBLFT-bI2fgiUpyhhwETP5q62TSHWiaYvvcNY19gzXj3wPcg',
      'User-Agent': 'axios/0.19.2'
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus],
    data: undefined
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      socket: [Function (anonymous)],
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      error: [Function (anonymous)],
      timeout: [Function (anonymous)],
      prefinish: [Function: requestOnPrefinish]
    },
    _eventsCount: 6,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: false,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'api.tedee.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 10,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'api.tedee.com',
      _readableState: [ReadableState],
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular *1],
      [Symbol(res)]: [TLSWrap],
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(async_id_symbol)]: 5351,
      [Symbol(kHandle)]: [TLSWrap],
      [Symbol(kSetNoDelay)]: false,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(connect-options)]: [Object],
      [Symbol(RequestTimeout)]: undefined
    },
    _header: 'GET /api/v1.15/my/lock HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxiOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhTmsifQ.eyJpc3MiOiJodHRwczovL3RlZGVlLmIyY2xvZ2luLmNvbS90ZnAvZTMxOTYxN2EtZjMyMi00Y2JhLTgxZWYtNGI1Yjk1MGU5MTcyL2IyY18xX3NpZ25pbl9yb3BjL3YyLjAvIiwiZXhwIjoxNjA4MjUwNDc1LCJuYmYiOjE2MDgyMzk2NzUsImF1ZCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsImlkcCI6IkxvY2FsQWNjb3VudCIsIm9pZCI6ImNiNjY1ZTFiLxxxxxxxxxxxxiNjY1ZTFiLTZmY2QtNGY2Ny05ODQzLTcxN2ZlZWIzMWEzZCIsIm5hbWUiOiJESmF5IiwibmV3VXNlciI6ZmFsc2UsImVtYWlscyI6WyJkamF5QG1lLmNvbSJdLCJ0ZnAiOiJCMkNfMV9TaWduSW5fUm9wYyIsImF6cCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsInZlciI6IjEuMCIsImlhdCI6MTYwODIzOTY3NX0.D1FcynocxrgCekS10JP8lCOteZy-jqiZgwxUCgM7EhtNjk5V9R_Mawq9i0AvXcow0oK5NynKpSMmt2Wp1KY2O9j-vRf-GiF-1xMTo97US6PnthkIyF41AEAcwdJSewBm6LJswa-DiGDAA2Le2nt1yg9hDcYamj1cuYoFqtatQ1YGK8NfnZZfnQzvwKE3EsT_Vby_uUiZgSwPZOwMkMMmYQ2qA0EFP8x0inni6mljwThps6xBBG3RGVCvGhmhn51XjpvYhyUsO7TKyXUANHKSsfi1GvRgNqA_RzSfyZKBLFT-bI2fgiUpyhhwETP5q62TSHWiaYvvcNY19gzXj3wPcg\r\n' +
      'User-Agent: axios/0.19.2\r\n' +
      'Host: api.tedee.com\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: noopPendingOutput],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object],
      requests: {},
      sockets: [Object],
      freeSockets: {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'fifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 4,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    path: '/api/v1.15/my/lock',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      socket: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: true,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'https://api.tedee.com/api/v1.15/my/lock',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(kHeaders)]: [Object],
      [Symbol(kHeadersCount)]: 22,
      [Symbol(kTrailers)]: null,
      [Symbol(kTrailersCount)]: 0,
      [Symbol(RequestTimeout)]: undefined
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'api.tedee.com',
    protocol: 'https:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      _options: [Object],
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://api.tedee.com/api/v1.15/my/lock',
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      authorization: [Array],
      'user-agent': [Array],
      host: [Array]
    }
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: {
      'transfer-encoding': 'chunked',
      'content-type': 'application/json',
      server: 'Microsoft-IIS/10.0',
      'www-authenticate': 'Bearer error="invalid_token", error_description="The signature key was not found", Bearer error="invalid_token", error_description="The signature key was not found"',
      'request-context': 'appId=cid-v1:xxxxxxxxxxxx-bf23-4ab2-b999-bbd05e97fbc2',
      'strict-transport-security': 'max-age=xxxxxxxxxxxx',
      'x-correlation-id': 'xxxxxxxxxxxx-0001-f800-b63f-xxxxxxxxxxxx',
      'x-powered-by': 'ASP.NET',
      date: 'Thu, 17 Dec 2020 21:14:47 GMT',
      connection: 'close'
    },
    config: {
      url: 'https://api.tedee.com/api/v1.15/my/lock',
      method: 'get',
      headers: [Object],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      adapter: [Function: httpAdapter],
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus],
      data: undefined
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [TLSSocket],
      _header: 'GET /api/v1.15/my/lock HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxiOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhTmsifQ.eyJpc3MiOiJodHRwczovL3RlZGVlLmIyY2xvZ2luLmNvbS90ZnAvZTMxOTYxN2EtZjMyMi00Y2JhLTgxZWYtNGI1Yjk1MGU5MTcyL2IyY18xX3NpZ25pbl9yb3BjL3YyLjAvIiwiZXhwIjoxNjA4MjUwNDc1LCJuYmYiOjE2MDgyMzk2NzUsImF1ZCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsImlkcCI6IkxvY2FsQWNjb3VudCIsIm9pZCI6ImNiNjY1ZTFiLxxxxxxxxxxxxiNjY1ZTFiLTZmY2QtNGY2Ny05ODQzLTcxN2ZlZWIzMWEzZCIsIm5hbWUiOiJESmF5IiwibmV3VXNlciI6ZmFsc2UsImVtYWlscyI6WyJkamF5QG1lLmNvbSJdLCJ0ZnAiOiJCMkNfMV9TaWduSW5fUm9wYyIsImF6cCI6IjAyMTA2YjgyLTA1MjQtNGZkMy1hYzU3LWFmNzc0ZjM0MDk3OSIsInZlciI6IjEuMCIsImlhdCI6MTYwODIzOTY3NX0.D1FcynocxrgCekS10JP8lCOteZy-jqiZgwxUCgM7EhtNjk5V9R_Mawq9i0AvXcow0oK5NynKpSMmt2Wp1KY2O9j-vRf-GiF-1xMTo97US6PnthkIyF41AEAcwdJSewBm6LJswa-DiGDAA2Le2nt1yg9hDcYamj1cuYoFqtatQ1YGK8NfnZZfnQzvwKE3EsT_Vby_uUiZgSwPZOwMkMMmYQ2qA0EFP8x0inni6mljwThps6xBBG3RGVCvGhmhn51XjpvYhyUsO7TKyXUANHKSsfi1GvRgNqA_RzSfyZKBLFT-bI2fgiUpyhhwETP5q62TSHWiaYvvcNY19gzXj3wPcg\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Host: api.tedee.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/api/v1.15/my/lock',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'api.tedee.com',
      protocol: 'https:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    data: { success: false, errorMessages: [Array], statusCode: 401 }
  },
  isAxiosError: true,
  toJSON: [Function (anonymous)]
}
[17.12.2020, 22:14:47] Got SIGTERM, shutting down Homebridge...

@lukasroegner I again had this yesterday 07.01.2021 around 18:00 and 23:00 the last time.
[7.1.2021, 23:05:43] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[7.1.2021, 23:05:48] [HB Supervisor] Restarting Homebridge...
[7.1.2021, 23:05:48] [HB Supervisor] Starting Homebridge with extra flags: -I
[7.1.2021, 23:05:48] [HB Supervisor] Started Homebridge v1.2.5 with PID: 7853
[7.1.2021, 23:05:49] Loaded config.json with 3 accessories and 8 platforms.
[7.1.2021, 23:05:56] ---
[7.1.2021, 23:05:56] Loaded plugin: homebridge-tedee@0.2.1
[7.1.2021, 23:05:56] Registering platform 'homebridge-tedee.TedeePlatform'
[7.1.2021, 23:05:56] ---
[7.1.2021, 23:05:56] Loading 8 platforms...
[7.1.2021, 23:05:56] [TedeePlatform] Initializing TedeePlatform platform...
[7.1.2021, 23:05:56] [TedeePlatform] Initializing platform...
Setup Payload:
X-HM://0023IV4HADIAK
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 032-45-678 │
    └────────────┘

[7.1.2021, 23:05:57] Homebridge v1.2.5 is running on port 51842.
[7.1.2021, 23:06:17] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
[7.1.2021, 23:07:17] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
[7.1.2021, 23:07:57] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
 {
  errno: -3001,
  code: 'EAI_AGAIN',
  syscall: 'getaddrinfo',
  hostname: 'tedee.b2clogin.com',
  config: {
    url: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    method: 'post',
    data: 'grant_type=password&username=xxx%40xxx.com&password=xxxxx-xxxxx-xxxxx&scope=openid%xxx-0524-4fd3-xxx-xxx&client_id=xxx-xxx-xxx-xxx-xxx&response_type=token%20id_token',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/x-www-form-urlencoded',
      'User-Agent': 'axios/0.19.2',
      'Content-Length': 202
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus]
  },
  request: <ref *1> Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      afterWriteTickInfo: null,
      buffered: [],
      bufferedIndex: 0,
      allBuffers: true,
      allNoop: true,
      pendingcb: 0,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: true,
      errored: null,
      closed: false
    },
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError]
    },
    _eventsCount: 2,
    _maxListeners: undefined,
    _options: {
      protocol: 'https:',
      maxRedirects: 21,
      maxBodyLength: 10485760,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      method: 'POST',
      headers: [Object],
      agent: undefined,
      agents: [Object],
      auth: undefined,
      hostname: 'tedee.b2clogin.com',
      port: null,
      nativeProtocols: [Object],
      pathname: '/tedee.onmicrosoft.com/oauth2/v2.0/token',
      search: '?p=B2C_1_SignIn_Ropc'
    },
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 202,
    _requestBodyBuffers: [ [Object] ],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: null,
      _hasBody: true,
      _trailer: '',
      finished: false,
      _headerSent: true,
      socket: [TLSSocket],
      _header: 'POST /tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/x-www-form-urlencoded\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Content-Length: 202\r\n' +
        'Host: tedee.b2clogin.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'tedee.b2clogin.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    _currentUrl: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    [Symbol(kCapture)]: false
  },
  response: undefined,
  isAxiosError: true,
  toJSON: [Function (anonymous)]
}
Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
 {
  errno: -3001,
  code: 'EAI_AGAIN',
  syscall: 'getaddrinfo',
  hostname: 'tedee.b2clogin.com',
  config: {
    url: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    method: 'post',
    data: 'grant_type=password&username=xxx%40xxx.com&password=xxxxx-xxxxx-xxxxx&scope=openid%xxx-xxx-xxx-xxx-xxx&client_id=xxx-xxx-xxx-xxx-xxx&response_type=token%20id_token',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/x-www-form-urlencoded',
      'User-Agent': 'axios/0.19.2',
      'Content-Length': 202
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus]
  },
  request: <ref *1> Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      afterWriteTickInfo: null,
      buffered: [],
      bufferedIndex: 0,
      allBuffers: true,
      allNoop: true,
      pendingcb: 0,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: true,
      errored: null,
      closed: false
    },
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError]
    },
    _eventsCount: 2,
    _maxListeners: undefined,
    _options: {
      protocol: 'https:',
      maxRedirects: 21,
      maxBodyLength: 10485760,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      method: 'POST',
      headers: [Object],
      agent: undefined,
      agents: [Object],
      auth: undefined,
      hostname: 'tedee.b2clogin.com',
      port: null,
      nativeProtocols: [Object],
      pathname: '/tedee.onmicrosoft.com/oauth2/v2.0/token',
      search: '?p=B2C_1_SignIn_Ropc'
    },
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 202,
    _requestBodyBuffers: [ [Object] ],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: null,
      _hasBody: true,
      _trailer: '',
      finished: false,
      _headerSent: true,
      socket: [TLSSocket],
      _header: 'POST /tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/x-www-form-urlencoded\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Content-Length: 202\r\n' +
        'Host: tedee.b2clogin.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'tedee.b2clogin.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    _currentUrl: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    [Symbol(kCapture)]: false
  },
  response: undefined,
  isAxiosError: true,
  toJSON: [Function (anonymous)]
}

After this 23:10 it seemed to work again.
[7.1.2021, 23:08:30] Homebridge v1.2.5 is running on port 51842.
[7.1.2021, 23:08:50] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
��������������������������������������������������������������������������������������������������������������������������������������������������[7.1.2021, 22:17:16] [HB Supervisor] OS: Linux 4.19.66-v7+ arm
[7.1.2021, 22:17:16] [HB Supervisor] Node.js v14.15.4 /usr/local/bin/node
[7.1.2021, 22:17:16] [HB Supervisor] Homebridge Path: /usr/local/lib/node_modules/homebridge/bin/homebridge
[7.1.2021, 22:17:16] [HB Supervisor] UI Path: /usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/standalone.js
[7.1.2021, 22:17:16] [HB Supervisor] Starting Homebridge with extra flags: -I
[7.1.2021, 22:17:16] [HB Supervisor] Started Homebridge v1.2.5 with PID: 725
[7.1.2021, 22:17:19] Loaded config.json with 3 accessories and 8 platforms.
[7.1.2021, 23:10:32] Loaded plugin: homebridge-tedee@0.2.1
[7.1.2021, 23:10:32] Registering platform 'homebridge-tedee.TedeePlatform'
[7.1.2021, 23:10:32] ---
[7.1.2021, 23:10:32] Loading 8 platforms...
[7.1.2021, 23:10:32] [TedeePlatform] Initializing TedeePlatform platform...
[7.1.2021, 23:10:32] Loading 3 accessories...
[7.1.2021, 23:10:33] [TedeePlatform] Initializing platform...
Setup Payload:
X-HM://0023IV4HADIAK
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 032-45-678 │
    └────────────┘

[7.1.2021, 23:10:33] Homebridge v1.2.5 is running on port 51842.
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Initializing...
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Adding lock service
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Adding latch service
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Adding battery service

@lukasroegner I again had this yesterday 07.01.2021 around 18:00 and 23:00 the last time.
[7.1.2021, 23:05:43] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[7.1.2021, 23:05:48] [HB Supervisor] Restarting Homebridge...
[7.1.2021, 23:05:48] [HB Supervisor] Starting Homebridge with extra flags: -I
[7.1.2021, 23:05:48] [HB Supervisor] Started Homebridge v1.2.5 with PID: 7853
[7.1.2021, 23:05:49] Loaded config.json with 3 accessories and 8 platforms.
[7.1.2021, 23:05:56] ---
[7.1.2021, 23:05:56] Loaded plugin: homebridge-tedee@0.2.1
[7.1.2021, 23:05:56] Registering platform 'homebridge-tedee.TedeePlatform'
[7.1.2021, 23:05:56] ---
[7.1.2021, 23:05:56] Loading 8 platforms...
[7.1.2021, 23:05:56] [TedeePlatform] Initializing TedeePlatform platform...
[7.1.2021, 23:05:56] [TedeePlatform] Initializing platform...
Setup Payload:
X-HM://0023IV4HADIAK
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 032-45-678 │
    └────────────┘

[7.1.2021, 23:05:57] Homebridge v1.2.5 is running on port 51842.
[7.1.2021, 23:06:17] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
[7.1.2021, 23:07:17] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
[7.1.2021, 23:07:57] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
 {
  errno: -3001,
  code: 'EAI_AGAIN',
  syscall: 'getaddrinfo',
  hostname: 'tedee.b2clogin.com',
  config: {
    url: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    method: 'post',
    data: 'grant_type=password&username=xxx%40xxx.com&password=xxxxx-xxxxx-xxxxx&scope=openid%xxx-0524-4fd3-xxx-xxx&client_id=xxx-xxx-xxx-xxx-xxx&response_type=token%20id_token',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/x-www-form-urlencoded',
      'User-Agent': 'axios/0.19.2',
      'Content-Length': 202
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus]
  },
  request: <ref *1> Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      afterWriteTickInfo: null,
      buffered: [],
      bufferedIndex: 0,
      allBuffers: true,
      allNoop: true,
      pendingcb: 0,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: true,
      errored: null,
      closed: false
    },
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError]
    },
    _eventsCount: 2,
    _maxListeners: undefined,
    _options: {
      protocol: 'https:',
      maxRedirects: 21,
      maxBodyLength: 10485760,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      method: 'POST',
      headers: [Object],
      agent: undefined,
      agents: [Object],
      auth: undefined,
      hostname: 'tedee.b2clogin.com',
      port: null,
      nativeProtocols: [Object],
      pathname: '/tedee.onmicrosoft.com/oauth2/v2.0/token',
      search: '?p=B2C_1_SignIn_Ropc'
    },
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 202,
    _requestBodyBuffers: [ [Object] ],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: null,
      _hasBody: true,
      _trailer: '',
      finished: false,
      _headerSent: true,
      socket: [TLSSocket],
      _header: 'POST /tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/x-www-form-urlencoded\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Content-Length: 202\r\n' +
        'Host: tedee.b2clogin.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'tedee.b2clogin.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    _currentUrl: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    [Symbol(kCapture)]: false
  },
  response: undefined,
  isAxiosError: true,
  toJSON: [Function (anonymous)]
}
Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
 {
  errno: -3001,
  code: 'EAI_AGAIN',
  syscall: 'getaddrinfo',
  hostname: 'tedee.b2clogin.com',
  config: {
    url: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    method: 'post',
    data: 'grant_type=password&username=xxx%40xxx.com&password=xxxxx-xxxxx-xxxxx&scope=openid%xxx-xxx-xxx-xxx-xxx&client_id=xxx-xxx-xxx-xxx-xxx&response_type=token%20id_token',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/x-www-form-urlencoded',
      'User-Agent': 'axios/0.19.2',
      'Content-Length': 202
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus]
  },
  request: <ref *1> Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      afterWriteTickInfo: null,
      buffered: [],
      bufferedIndex: 0,
      allBuffers: true,
      allNoop: true,
      pendingcb: 0,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: true,
      errored: null,
      closed: false
    },
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError]
    },
    _eventsCount: 2,
    _maxListeners: undefined,
    _options: {
      protocol: 'https:',
      maxRedirects: 21,
      maxBodyLength: 10485760,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      method: 'POST',
      headers: [Object],
      agent: undefined,
      agents: [Object],
      auth: undefined,
      hostname: 'tedee.b2clogin.com',
      port: null,
      nativeProtocols: [Object],
      pathname: '/tedee.onmicrosoft.com/oauth2/v2.0/token',
      search: '?p=B2C_1_SignIn_Ropc'
    },
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 202,
    _requestBodyBuffers: [ [Object] ],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: null,
      _hasBody: true,
      _trailer: '',
      finished: false,
      _headerSent: true,
      socket: [TLSSocket],
      _header: 'POST /tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/x-www-form-urlencoded\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Content-Length: 202\r\n' +
        'Host: tedee.b2clogin.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'tedee.b2clogin.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    _currentUrl: 'https://tedee.b2clogin.com/tedee.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_SignIn_Ropc',
    [Symbol(kCapture)]: false
  },
  response: undefined,
  isAxiosError: true,
  toJSON: [Function (anonymous)]
}

After this 23:10 it seemed to work again.
[7.1.2021, 23:08:30] Homebridge v1.2.5 is running on port 51842.
[7.1.2021, 23:08:50] [TedeePlatform] Error while retrieving access token: Error: getaddrinfo EAI_AGAIN tedee.b2clogin.com
��������������������������������������������������������������������������������������������������������������������������������������������������[7.1.2021, 22:17:16] [HB Supervisor] OS: Linux 4.19.66-v7+ arm
[7.1.2021, 22:17:16] [HB Supervisor] Node.js v14.15.4 /usr/local/bin/node
[7.1.2021, 22:17:16] [HB Supervisor] Homebridge Path: /usr/local/lib/node_modules/homebridge/bin/homebridge
[7.1.2021, 22:17:16] [HB Supervisor] UI Path: /usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/standalone.js
[7.1.2021, 22:17:16] [HB Supervisor] Starting Homebridge with extra flags: -I
[7.1.2021, 22:17:16] [HB Supervisor] Started Homebridge v1.2.5 with PID: 725
[7.1.2021, 22:17:19] Loaded config.json with 3 accessories and 8 platforms.
[7.1.2021, 23:10:32] Loaded plugin: homebridge-tedee@0.2.1
[7.1.2021, 23:10:32] Registering platform 'homebridge-tedee.TedeePlatform'
[7.1.2021, 23:10:32] ---
[7.1.2021, 23:10:32] Loading 8 platforms...
[7.1.2021, 23:10:32] [TedeePlatform] Initializing TedeePlatform platform...
[7.1.2021, 23:10:32] Loading 3 accessories...
[7.1.2021, 23:10:33] [TedeePlatform] Initializing platform...
Setup Payload:
X-HM://0023IV4HADIAK
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 032-45-678 │
    └────────────┘

[7.1.2021, 23:10:33] Homebridge v1.2.5 is running on port 51842.
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Initializing...
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Adding lock service
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Adding latch service
[7.1.2021, 23:10:35] [TedeePlatform] [Wohnungstür] Adding battery service

Do you have scheduled restarts enabled for Homebridge?

No. Not scheduled. But homebridge starts again when a error occurred.
However, since 19 Days there was no such incident again. 🤷🏼♂

Do you have scheduled restarts enabled for Homebridge?

No. Not scheduled. But homebridge starts again when a error occurred.
However, since 19 Days there was no such incident again. 🤷🏼♂

repo: lukasroegner/homebridge-tedee


text:
Documentation plans

Hi Luke, nice to meet you. I'm new to Workers (and still exploring) and found your library from watching an episode of Fauna Live where the guest was Obinna Ekwuno. They used this library to build their application.
In that video, they mentioned setting the type in the wrangler.toml file to webpack, but I cannot find that reference anywhere here so I'm a little confused. I know this library is semi-"just starting out" but was curious if you had plans to do some documentation for other dumb-dumbs like myself who are a little slow and need hand holding.
You have great examples, it's just a little hard for me to visualize going from wrangler init to one of those examples. Would also love to contribute if you're up for it.
Thanks!

People use miniflare with esbuild. I know there's a decent starter out there for that, if not already official one. They should have that straight up in getting started.

Hey, so worktop has no relation or dependence on wrangler actually. You can build a worktop project any number of ways, including the worktop.build package (#94). Wrangler includes a webpack integration which only kicks in if you have type = "webpack" at the top, but my strong personal recommendation is to avoid this as it means you really have no idea what's going into your final worker.
Separately, Wrangler will deploy file(s) to your CF account as the Workers deploy step. There are other tools out there that does this too, including cfw which is what the /examples use. You can read more about Wrangler configuration here though.
An example wranger.toml file may look like this:
name = "example-worker"
type = "javascript"
account_id = "..."
zone_id = "..."

[build]
command = "npm run build"

[build.upload]
format = "service-worker"
# or, format = "modules"
# but "modules" requires addl config

Closing in favor of #61 as there will be a worktop-specific project scaffolder in near future.

source: gharchive/issue

authors: grantholle janat08 lukeed

repo: lukeed/worktop

license: MIT

license_type: permissive

license_source: github-api


text:
vscodium@1.43.0: hash check failed

Updating 'vscodium' (1.42.1 -> 1.43.0)
Downloading new version
VSCodium-win32-x64-1.43.0.zip (82.9 MB) [=========================================================================================] 100%
Checking hash of VSCodium-win32-x64-1.43.0.zip ... ERROR Hash check failed!
App:         extras/vscodium
URL:         https://github.com/VSCodium/vscodium/releases/download/1.43.0/VSCodium-win32-x64-1.43.0.zip
First bytes: 50 4B 03 04 14 00 00 00
Expected:    f81b637f0a680ce2aa2616564b34ff0654609e7a28c1830147d11c685271319c
Actual:      e6d0880abafa2ab94589e61ad880d88d6f6cec34e6e202c66e15f532c4f75b53

Still failed hash checking, local cache has been cleaned.
Updating 'vscodium' (1.42.1 -> 1.43.0)
Downloading new version
VSCodium-win32-x64-1.43.0.zip (82.9 MB) [=========================================================================================] 100%
Checking hash of VSCodium-win32-x64-1.43.0.zip ... ERROR Hash check failed!
App:         extras/vscodium
URL:         https://github.com/VSCodium/vscodium/releases/download/1.43.0/VSCodium-win32-x64-1.43.0.zip
First bytes: 50 4B 03 04 14 00 00 00
Expected:    f81b637f0a680ce2aa2616564b34ff0654609e7a28c1830147d11c685271319c
Actual:      e6d0880abafa2ab94589e61ad880d88d6f6cec34e6e202c66e15f532c4f75b53
Please try again or create a new issue by using the following link and paste your console output:
https://github.com/lukesampson/scoop-extras/issues/new?title=vscodium%401.43.0%3A+hash+check+failed

...
scoop update; scoop update vscodium -f

thanks, update successfully!

repo: lukesampson/scoop-extras

license: Unlicense


text:
Use Windows binary of openssl over mingw binaries

Currently a mingw version of openssl and by default it checks for configuration files in /usr/share/. When openssl is ran programatically (like in https://www.npmjs.com/package/pem) we might run into "path format" issues.
Instead use a windows binary (https://slproweb.com/products/Win32OpenSSL.html)

https://github.com/lukesampson/scoop/blob/master/bucket/openssl-slp.json

Sorry, thanks.

If openssl has issues, perhaps we should rename openssl-slp.json to openssl.json, and rename openssl.json to openssl-mingw.json?

mingw version of openssl is using UNIX pathnames /usr/bin/... and fails immediately (which is a bumer for starters and packages) but the slp version uses the env variable. IDK but the mingw version has any such env features, it's not even much useful in WSL too.
Renaming might break stuff for old users but the slp version is the one everyone should be using.

If no one disagrees, I think we should make the switch. I only use the SLP version.

Can I make a PR then?

Sure, thanks!

repo: lukesampson/scoop

license: unlicense

license_source: bigquery


text:
Installer fails

I'm having trouble installing this server on one of our Windows Server 2008 R2 (64bit) servers. The server appears to only have .Net 4.0 which I'm assuming is the problem. Is there a way to get this app to work on .Net 4.0 instead of 4.5?

Running a transacted installation.
Beginning the Install phase of the installation.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Install phase.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
The Rollback phase of the installation is beginning.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Rollback phase of the System.Configuration.Install.AssemblyInstaller installer.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
An exception occurred during the Rollback phase of the installation. This exception will be ignored and the rollback will continue. However, the machine might not fully revert to its initial state after the rollback is complete.
The Rollback phase completed successfully.
The transacted install has completed.
Running a transacted installation.
Beginning the Install phase of the installation.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Install phase.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
The Rollback phase of the installation is beginning.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Rollback phase of the System.Configuration.Install.AssemblyInstaller installer.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
An exception occurred during the Rollback phase of the installation. This exception will be ignored and the rollback will continue. However, the machine might not fully revert to its initial state after the rollback is complete.
The Rollback phase completed successfully.
The transacted install has completed.

Hi Joe,
Sorry, but the service needs .net 4.5 and upwards to run.
Thanks,
Luke
Sent from my iPhone

On 18 Jan 2015, at 6:03 PM, Joe Phillips notifications@github.com wrote:
I'm having trouble installing this server on one of our Windows Server 2008 R2 (64bit) servers. The server appears to only have .Net 4.0 which I'm assuming is the problem. Is there a way to get this app to work on .Net 4.0 instead of 4.5?
Running a transacted installation.
Beginning the Install phase of the installation.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Install phase.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
The Rollback phase of the installation is beginning.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Rollback phase of the System.Configuration.Install.AssemblyInstaller installer.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
An exception occurred during the Rollback phase of the installation. This exception will be ignored and the rollback will continue. However, the machine might not fully revert to its initial state after the rollback is complete.
The Rollback phase completed successfully.
The transacted install has completed.
Running a transacted installation.
Beginning the Install phase of the installation.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Install phase.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
The Rollback phase of the installation is beginning.
See the contents of the log file for the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly's progress.
The file is located at E:\statsd.net-v1.5.0.0\statsdnet.InstallLog.
An exception occurred during the Rollback phase of the System.Configuration.Install.AssemblyInstaller installer.
System.InvalidOperationException: Unable to get installer types in the E:\statsd.net-v1.5.0.0\statsdnet.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown with the following error message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information..
An exception occurred during the Rollback phase of the installation. This exception will be ignored and the rollback will continue. However, the machine might not fully revert to its initial state after the rollback is complete.
The Rollback phase completed successfully.
The transacted install has completed.
—
Reply to this email directly or view it on GitHub.

authors: lukevenediger phillijw

license: mit


text:
Support for Fiscal Printer

Does this support fiscal printer ?

I’m not sure what a fiscal printer is, could you provide a reference to this please?

https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms884287(v=winembedded.4)

Hi @lukevp ,
A thermal receipt you pass a free text to the sdk. A thermal fiscal receipt there are certain commands that should be passed to the SDK.
It's still ESC/POS commands. How can I pass ESC/POS commands using the SDK ?
LIST OF FISCAL COMMANDS - IN ASCENDING ORDER
HEX	DEC	Function
21h	(33)	Clear the display
23h	(35)	Show text on lower line of display
26h	(38)	Open non-fiscal receipt
27h	(39)	Close non-fiscal receipt
29h	(41)	Setting the memory switches
2Ah	(42)	Printing non-fiscal free text
2Bh	(43)	Set FOOTER and printing options
2Ch	(44)	Advance paper
2Dh	(45)	Paper cut
2Eh	(46)	Set HEADER (Name and address)
2Fh	(47)	Showing text on upper line of display
30h	(48)	Open fiscal receipt
31h	(49)	Register sale
32h	(50)	Tax rates set during selected period
33h	(51)	Subtotal
34h	(52)	Register sale and show on display
35h	(53)	Calculate TOTAL
36h	(54)	Print free fiscal text
38h	(56)	Close fiscal receipt
3Ch	(60)	Cancel fiscal receipt
3Dh	(61)	Set date and hour
3Eh	(62)	Get current date and hour
3Fh	(63)	Show date and hour on display
40h	(64)	Info on last fiscal entry
41h	(65)	Info on daily totals
43h	(67)	Info on daily paid sums
44h	(68)	Number of free fields in fiscal memory
45h	(69)	Daily financial report with/without closure
46h	(70)	Internal debiting/crediting
47h	(71)	Print diagnostic info
48h	(72)	Fiscalization
49h	(73)	Detailed report of the fiscal memory selected by number of entry
4Ah	(74)	Read statuses
4Ch	(76)	Status of the fiscal transaction
4Fh	(79)	Short report of the fiscal memory selected by date of entry
50h	(80)	Sound signal
53h	(83)	Set multiplier, decimals, currency name and disabled taxes
54h	(84)	Print a bar code
55h	(85)	Set additional payment names
56h	(86)	Get last fiscal memory date
59h	(89)	Program production test area
5Ah	(90)	Return diagnostic info
5Bh	(91)	Program serial number, country number and Fiscal memory number
5Eh	(94)	Detailed of fiscal memory (selected by date of entry)
5Fh	(95)	Short report of fiscal memory (selected by entry number)
60h	(96)	Set tax office text
61h	(97)	Return tax rates
62h	(98)	Set tax registration number
63h	(99)	Return set tax registration number
64h	(100)	Show free text on display
65h	(101)	Set operator’s password
66h	(102)	Enter operator’s name
67h	(103)	Info on current receipt
69h	(105)	Operator report
6Ah	(106)	Drawer kick-out
6Bh	(107)	Define items and items info
6Ch	(108)	Detailed daily report
6Dh	(109)	Print duplicate receipt
6Eh	(110)	Additional daily info
6Fh	(111)	Report on groups of items
70h	(112)	Reading info on operator
71h	(113)	Read the number of the last fiscal entry or period
72h	(114)	Read info on fiscal entry or period
73h	(115)	Program graphic logo
74h	(116)	Read fiscal memory block
76h	(118)	Register technical intervention
78h	(120)	Electronic journal support
79H	(121)	Read code memory (firmware)
7Eh	(126)	Erase electronic journal
7Fh	(127)	RAM reset

Hey @dicksonkimeu ,
this is not currently supported, but would be implemented as a FiscalEmitter. We currently only have the Epson emitter. You would not need to use that Fiscal SDK as that’s a different interface (UPOS) vs directly interacting with the printer like this library.
are you open to implementing the Fiscal support? I will assist you as I can but I do not have any hardware that works with this, so we would have to collaborate on a PR.

I've worked with Fiscal Printers here in Brazil 10 years ago (or so), however, I did not use direct command bytes, but rather each manufacture DLL. You will need the whole command to implement it. @dicksonkimeu, the list that you provided is only a summary. You will probably need the parameters info as well, if you provide a handbook I can also assist to implement the commands in a new emitter.

Send me a test email to dicky.tech@gmail.com I will forward you the documentation from Datecs fp300

authors: dicksonkimeu igorocampos lukevp


text:
Add 'latest' option for version

Hi,
you provide two ways of setting up version:
      # Using 'latest' branch, the most recent CMake and ninja are installed.
      uses: lukka/get-cmake@latest       # <--= THIS IS THE ONE LINER YOU NEED

and
    - name: Get specific version CMake, v3.24.3, and Ninja v1.11.1
      uses: lukka/get-cmake@latest
      with:
        cmakeVersion: 3.24.3             # <--= optional, overrides the _latest_ version of CMake
        ninjaVersion: 1.11.1             # <--= optional, overrides the _latest_ version of Ninja

however it makes problem if I would like to use matrix build for different cmake versions, especially if one of them is latest.
I cannot make
jobs:
    strategy:
      matrix:
        cmake: [ 3.9.2, latest ]

    steps:
      - name: Get specific version CMake version 1
        uses: lukka/get-cmake@${{ matrix.cmake }}  # cannot use matrix component in the action name

      - name: Get specific version CMake version 2
        uses: lukka/get-cmake@latest
        with:
          - cmakeVersion: ${{ matrix.cmake }} # 'latest' will not work here

Could you maybe add accepting latest as the valid version which fallbacks to the default?

@rlalik totally agreed, usage like you described should be supported.

@rlalik you may give a try to the version on PR: `get-cmake@dev/any-version

solved in https://github.com/lukka/get-cmake/releases/tag/v3.25.1

authors: lukka rlalik

repo: lukka/get-cmake


text:
feat: FAQ - Add Network and Nodes Chapter

Removes the old Network and Validator pages and sets up the new Network and Nodes folder, including the following pages:

Blockchain Architecture
Network Configuration
Peer Connections
Node Setup
Validators
Security
Staking

Thanks, Johann, for taking the time 🙏🏻😙 I applied your suggestions and clarified the answers. Also added redirects and modified the headings as in the other sections

sadly we now have a few conflicts bc we merged the other PRs :/
should be easy to fi anyway

source: gharchive/pull-request

authors: Hugoo fhildeb

repo: lukso-network/docs


text:
Parser special constructs implementation

Summary
Based on the parser framework, it's important to implement special constructs, like type definitions. These constructs could be in the future implemented using the meta-enso layer, so here we need to use the same layer, but internally.
Value
Correct parsing of all Enso constructs.
Acceptance Criteria & Test Cases
All language constructs should be parsed correctly.

Is there a PR @wdanilo ? If so, please connect it to the issue.

@wdanilo how can I test it?

authors: sylwiabr wdanilo

repo: luna/enso


text:
trace viewer

almost certainly depends on #173
timeline view like sublime text minimap with memory/register activity highlighted in color
colorized memory blocks based on the basic block that "owns" them, or which blocks touched them
navigate memory based on which basic blocks touched them, kinda like xrefs in ida but for memory access
also select memory/syscalls and visually see the taint flow and highlight the blocks in a graph view

time decayed memory
memory diffing

text tracing should be a driver that parses the binary trace

run actual emulator from state - if syscalls are reduced to operational transforms, we can forward/rewind

repo: lunixbochs/usercorn


text:
On duplication in LEM integration

I think there are two factors of duplication in #629:
Misuse of genericity
This is essentially explained in a PR comment. That is, the types that depend on a generic C: Coprocessor<F> are redefined in #629 because the LEM logic cannot for now accomodate any coprocessor other than DummyCoproc<F>. However, for any GenericType<Foo, Bar>, there is nothing in Rust that prevents you from defining methods for type GenericType<Foo, usize>.
I have a branch that starts working out the deduplication in https://github.com/huitseeker/lurk-rs/tree/lem-integration-experiment
The reason I think it's important to resolve this is that the methods we'd define today on Foo<F, DummyCoproc<F>> will eventually be able to be defined on Foo<F, C: Coproc<F>>, which is going to be much easier to adapt to if they're not distinct types.
Not abstracting the Multiframe, and failing to define provers in terms of that abstraction
The MultiFrame is the fundamental type that's defined starkly differently in LEM and Lurk:

in LEM
in Lurk

This struct appears in the APIs of the prover:
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/mod.rs#L20
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/mod.rs#L33-L34
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/mod.rs#L107-L110
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/nova.rs#L121
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/nova.rs#L131-L141
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/nova.rs#L172-L181
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/nova.rs#L421-L428
morally speaking, the only thing we need (that is, the only thing Nova requires) in the position of this MultiFrame in the prover is some instance of StepCircuit. I suspect we could implement:

a trait MultiFrame that abstracts over both types of Multiframe (LEM, non-Lurk). The main APIs to provide there are associated types fixing the local notion of Store and Ptr, blank, from_frames and synthesize_frames (the later being expressed in terms of those associated types:
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/proof/nova.rs#L421-L428
https://github.com/lurk-lab/lurk-rs/blob/9aa8b75247066b70972f2806a1537c359f47c2c6/src/circuit/circuit_frame.rs#L183-L192
Note the apparent difference between the instances of this backend function are not key, since their only usage is in the
impl nova::StepCircuit for MultiFrame and impl bellpepper_core::Circuit for MultiFrame. Whatever abstraction that allows implementing those two callsites on top of what the MultiFrame trait offers should be enough.
an implementation of the Nova prover that works on top of the Multiframe trait, rather than introspecting into the details of the two instances of their implementations above

Summarizing the story:

#629 was a meaty PR,
we worked out how to prove through an interface in #642 and #633
#663 committed isolated changes from #629
the blocker was then a pattern of genericity + mutability of the store which could make interleaving evaluation and proving really hard,
we moved to an interior mutability store in #680,
this allowed for the sought after genericity in #709
this paved the way for #717 and #718 which offer apples-to-apples guarantees of feature parity for evaluation and proving,

The present should close as soon as #717 and #718 are merged, because while we are indeed taking some duplication with those PRs, this is better than the alternative (worked out in #729) due to a lower complexity.
The missing pieces are NIVC support from #677 and #725, which should also resolve soon.

Closed with the merge of #717, #718.

repo: lurk-lab/lurk-rs


text:
auto update

how to disable automatic update？

This is not supported.

how to disable automatic update？

You can Install netron with pip: pip install netron which won't update automatically

authors: handw-github lutzroeder oxygen-dioxide

repo: lutzroeder/netron


text:
Problema com o acesso aos dados do OMIE spot do dia seguinte

A minha instalação HA recebeu esta mensagem.  Há algum problema com o acesso aos dados do OMIE spot do dia seguinte?
This error originated from a custom integration.

Logger: custom_components.omie.coordinator
Source: helpers/update_coordinator.py:328
integration: OMIE - electricity market operator for the Iberian Peninsula (documentation, issues)
First occurred: 12:30:01 PM (1 occurrences)
Last logged: 12:30:01 PM

Error requesting omie.spot_next data: Cannot connect to host www.omie.es:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]

No meu caso, com o HA versão 2024.3.2 não há problema nenhum e o omie tem os valores de hoje e amanhã
Noutro HA com a versão 2024.4.3 deixou de apresentar o preço para amanhã, entretanto tentei reiniciar a integração e o HA e agora não apresenta nenhuma informação, nem atual, nem de hoje nem amanhã.
O erro apresentado é o mesmo:
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host www.omie.es:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]

Desde a semana passada, tenho o HA com a versão 2024.4.3, mas o problema só começou hoje.  Infelizmente, pouco depois de publicar este problema, reiniciei a integração e agora também não recebo os preços à vista de hoje.

Desde a semana passada, tenho o HA com a versão 2024.4.3, mas o problema só começou hoje. Infelizmente, pouco depois de publicar este problema, reiniciei a integração e agora também não recebo os preços à vista de hoje.

Estranho, a minha instalação com 2024.3.2, agora mesmo, está a funcionar bem, e mesmo depois de reiniciar o HA não deixa de funcionar. Parece-me de algum modo relacionado com a nova versão do HA.

Tentei remover, reboot, adicionar e permanece sem dados.

erro nos logs
Logger: homeassistant.helpers.event
Source: helpers/template.py:588
First occurred: 16:22:26 (16 occurrences)
Last logged: 16:22:26

Error while processing template: Template<template=({% set CG = 0.20 -%} {% set PM = state_attr('sensor.omie_spot_price_pt', 'tomorrow_average') -%} {% set ns = namespace(hourly_data=[]) %} {% for h, _ in state_attr('sensor.omie_spot_price_pt', 'tomorrow_hours').items() -%} {% if PM == None or MAJ == None %} {% set price=PM %} {% else %} {% set price=(PM*(1-CG)) | round(2) %} {% endif %} {% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %} {% endfor -%} {{ dict(ns.hourly_data) }}) renders=2>
Error while processing template: Template<template=({% set K1 = 10 -%} {% set POMIEh = states('sensor.omie_spot_price_pt')|float -%} {{ [POMIEh - K1, 0] | max | round(2) }}) renders=2>
Error while processing template: Template<template=({{ state('sensor.omie_spot_price_pt') }}) renders=2>
Error while processing template: Template<template=({% set K1 = 10 -%} {% set ns = namespace(hourly_data=[]) %} {% for h, POMIEh in state_attr('sensor.omie_spot_price_pt', 'today_hours').items() -%} {% if POMIEh == None %} {% set price=POMIEh %} {% else %} {% set price=[(POMIEh - K1), 0] | max | round(2) %} {% endif %} {% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %} {% endfor -%} {{ dict(ns.hourly_data) }}) renders=2>
Error while processing template: Template<template=({% set K1 = 10 -%} {% set ns = namespace(hourly_data=[]) %} {% for h, POMIEh in state_attr('sensor.omie_spot_price_pt', 'tomorrow_hours').items() -%} {% if POMIEh == None %} {% set price=POMIEh %} {% else %} {% set price=[(POMIEh - K1), 0] | max | round(2) %} {% endif %} {% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %} {% endfor -%} {{ dict(ns.hourly_data) }}) renders=2>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 586, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2545, in _render_with_context
    return template.render(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.12/site-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2237, in forgiving_int_filter
    raise_no_default("int", value)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1849, in raise_no_default
    raise ValueError(
ValueError: Template error: int got invalid input 'None' when rendering template '{{ (state_attr('sensor.omie_spot_price_pt','today_average') | int /1000) | round (2) }}' but no default was specified

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 712, in async_render_to_info
    render_info._result = self.async_render(
                          ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 588, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: ValueError: Template error: int got invalid input 'None' when rendering template '{{ (state_attr('sensor.omie_spot_price_pt','today_average') | int /1000) | round (2) }}' but no default was specified

Também já tentei reboot, verificar ligação, etc... e aqui deixou mesmo de funcionar  e dá o erro que apresentam nos primeiros posts:
Core 2024.4.3
Supervisor 2024.04.0
Operating System 12.2
Frontend 20240404.2

deve ter havido alguma alteração no que toca a ssl verification.
client_exceptions.ClientConnectorCertificateError: Cannot connect to host www.omie.es:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]

Pela minha ultima análise parece-me que estará relacionado com a HA OS, fiz restore do HA para a versão anterior e continua sem funcionar, mas o OS ficou na mesma o 12.2.
Numa outra instalação com o OS 12.1 está a funcionar normalmente.

o Luis acabou de fazer release de uma versão temporária que faz disable ao ssl verify, confirmo que já funciona.

Pela minha ultima análise parece-me que estará relacionado com a HA OS, fiz restore do HA para a versão anterior e continua sem funcionar, mas o OS ficou na mesma o 12.2.
Numa outra instalação com o OS 12.1 está a funcionar normalmente.

Fiz downgrade da 12.2 para 12.1 e continua a não funcionar.
Já agora, a integração scrape para o omie.es também deixou de funcionar, mas se desligar a verificação de ssl já funciona.

Estive a investigar e o problema deriva da forma como o omie.es está a reportar os certificados HTTPS, não tem a ver com versões de HA, HA OS ou desta integração. Pode acontecer mais ou menos esporadicamente dependendo da forma como o omie.es responde a cada pedido (pode haver certificados diferentes em uso, cada pedido é um caso).
Infelizmente tive de desactivar a validação HTTPS para desbloquear a integração até perceber se há alguma solução melhor.
https://github.com/luuuis/hass_omie/releases/tag/v1.0.9

Estive a investigar e o problema deriva da forma como o omie.es está a reportar os certificados HTTPS, não tem a ver com versões de HA, HA OS ou desta integração. Pode acontecer mais ou menos esporadicamente dependendo da forma como o omie.es responde a cada pedido (pode haver certificados diferentes em uso, cada pedido é um caso).
Infelizmente tive de desactivar a validação HTTPS para desbloquear a integração até perceber se há alguma solução melhor.
https://github.com/luuuis/hass_omie/releases/tag/v1.0.9

Coincidência ou não, o addon nginx proxy manager começou a falhar ao renovar os certificados let's encrypt que tinha. o HTTP-01 challenge não funciona, tive de configurar um novo certificado usando o DNS-01 challenge.

O OMIE.es não está a enviar a cadeia completa de certificados necessária para a verificação, daí a falha na verificação.

https://www.ssllabs.com/ssltest/analyze.html?d=www.omie.es
Abri uma ocorrência no suporte técnico do OMIE e eles dizem que vão analisar. Entretanto vou manter este ticket aberto.

Deparei-me com este problema hoje e após algum debug cheguei à conclusão que o pacote ca-certificates não inclui o certificado intermédio GlobalSign GCC R3 DV TLS CA 2020 e que o servidor do OMIE não o está a devolver.
No meu caso, não é só o HA que está a dar erro com pedidos para https://www.omie.es, o curl também se queixa:
$ curl -I https://www.omie.es
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

A solução que pareceu mais óbvia foi fazer o download do certificado intermédio em falta GlobalSign GCC R3 DV TLS CA 2020 e instalá-lo na "TrustStore" do sistema e do Python.
O certificado intermédio pode ser obtido facilmente, abrindo a página OMIE no browser (Chrome por exemplo), e depois:

clicar no ícone à esquerda do URL
seleccionar "Connection is secure"
seleccionar "Certificate is valid"
seleccionar tab "Details" em cima
escolher o "Global GCC R3 DV TLS CA 2020" na caixa de cima, chamada "Certificate Hierarchy"
clicar no botão "Export" e guardar o ficheiro com extensão .crt

Para quem confiar e não quiser ter trabalho, o certificado é este:
-----BEGIN CERTIFICATE-----
MIIEsDCCA5igAwIBAgIQd70OB0LV2enQSdd00CpvmjANBgkqhkiG9w0BAQsFADBM
MSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xv
YmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0yMDA3MjgwMDAwMDBaFw0y
OTAzMTgwMDAwMDBaMFMxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu
IG52LXNhMSkwJwYDVQQDEyBHbG9iYWxTaWduIEdDQyBSMyBEViBUTFMgQ0EgMjAy
MDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxnlJV/de+OpwyvCXAJ
IcxPCqkFPh1lttW2oljS3oUqPKq8qX6m7K0OVKaKG3GXi4CJ4fHVUgZYE6HRdjqj
hhnuHY6EBCBegcUFgPG0scB12Wi8BHm9zKjWxo3Y2bwhO8Fvr8R42pW0eINc6OTb
QXC0VWFCMVzpcqgz6X49KMZowAMFV6XqtItcG0cMS//9dOJs4oBlpuqX9INxMTGp
6EASAF9cnlAGy/RXkVS9nOLCCa7pCYV+WgDKLTF+OK2Vxw3RUJ/p8009lQeUARv2
UCcNNPCifYX1xIspvarkdjzLwzOdLahDdQbJON58zN4V+lMj0msg+c0KnywPIRp3
BMkCAwEAAaOCAYUwggGBMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUDZjA
c3+rvb3ZR0tJrQpKDKw+x3wwHwYDVR0jBBgwFoAUj/BLf6guRSSuTVD6Y5qL3uLd
G7wwewYIKwYBBQUHAQEEbzBtMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcDIuZ2xv
YmFsc2lnbi5jb20vcm9vdHIzMDsGCCsGAQUFBzAChi9odHRwOi8vc2VjdXJlLmds
b2JhbHNpZ24uY29tL2NhY2VydC9yb290LXIzLmNydDA2BgNVHR8ELzAtMCugKaAn
hiVodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL3Jvb3QtcjMuY3JsMEcGA1UdIARA
MD4wPAYEVR0gADA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWdu
LmNvbS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAy8j/c550ea86oCkf
r2W+ptTCYe6iVzvo7H0V1vUEADJOWelTv07Obf+YkEatdN1Jg09ctgSNv2h+LMTk
KRZdAXmsE3N5ve+z1Oa9kuiu7284LjeS09zHJQB4DJJJkvtIbjL/ylMK1fbMHhAW
i0O194TWvH3XWZGXZ6ByxTUIv1+kAIql/Mt29PmKraTT5jrzcVzQ5A9jw16yysuR
XRrLODlkS1hyBjsfyTNZrmL1h117IFgntBA5SQNVl9ckedq5r4RSAU85jV8XK5UL
REjRZt2I6M9Po9QL7guFLu4sPFJpwR1sPJvubS2THeo7SxYoNDtdyBHs7euaGcMa
D/fayQ==
-----END CERTIFICATE-----

Posteriormente é necessário colocar o ficheiro na máquina do HA, em /usr/local/share/ca-certificates/GlobalSign_GCC_R3_DV_TLS_CA_2020.crt e também copiar o certificado para o cacert.pem do Python. A localização deste ficheiro muda dependendo do tipo de instalação mas pode ser obtido perguntando ao Python qual é com python -m certifi. No meu caso o HA corre em venv e o ficheiro está em /home/hassuser/homeassistant-green-3-11-0/lib/python3.11/site-packages/certifi/cacert.pem
É ainda necessário correr o comando sudo update-ca-certificates para o sistema saber que tem um novo certificado disponível e reiniciar o HA.
$ sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

Posteriomente o curl já não se queixa e os erros de SSL nos logs do HA desapareceram:
$ curl -I https://www.omie.es
HTTP/2 200
date: Wed, 17 Apr 2024 13:08:10 GMT
content-type: text/html; charset=UTF-8
set-cookie: apgwCORS=1fe9e05987a1818347b021e7a21c81fe; Path=/; SameSite=None; Secure
set-cookie: apgw=1fe9e05987a1818347b021e7a21c81fe; Path=/
server: Apache/2.4.41 (Ubuntu)
cache-control: must-revalidate, no-cache, private
x-drupal-dynamic-cache: MISS
link: <https://www.omie.es/es>; rel="canonical", <https://www.omie.es/es>; rel="shortlink"
x-ua-compatible: IE=edge
content-language: es
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
permissions-policy: interest-cohort=()
expires: Sun, 19 Nov 1978 05:00:00 GMT
x-generator: Drupal 9 (https://www.drupal.org)
balancer_worker_route: 02
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-xss-protection: 1; mode=block
referrer-policy: same-origin
feature-policy: autoplay 'self'; camera 'none'; document-domain 'self'; encrypted-media 'self'; fullscreen 'self'; geolocation 'self'; microphone 'none'; midi 'none'; payment 'none'; xr-spatial-tracking 'none'
content-security-policy: default-src https: data: 'self' 'unsafe-inline' 'unsafe-eval' https://www.google-analytics.com https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/
content-security-policy: frame-src https://www.google.com/recaptcha/ https://cdnjs.cloudflare.com/ https://www.youtube.com/
content-security-policy: object-src 'self'

A solução que pareceu mais óbvia foi fazer o download do certificado intermédio em falta GlobalSign GCC R3 DV TLS CA 2020 e instalá-lo na "TrustStore" do sistema e do Python.

Não recomendo, pois toda a "confiança" deve advir dos Root CAs do sistema. Estás de certa forma a adulterar o processo de verificação para o sistema inteiro. O certificado intermédio pode ser descarregado automaticamente ou manualmente para usar na verificação mas não deve ser considerado um Root CA.

Exemplo verificação com openssl
$ openssl x509 -noout -subject -in cert.pem
subject=CN=www.omie.es
$ openssl verify cert.pem
CN=www.omie.es
error 20 at 0 depth lookup: unable to get local issuer certificate
error cert.pem: verification failed
C0FA22F101000000:error:80000002:system library:file_open:No such file or directory:providers/implementations/storemgmt/file_store.c:263:calling stat(/opt/homebrew/etc/openssl@3/certs)
$ openssl x509 -noout -text -in cert.pem | grep -A1 "Authority Information Access"
            Authority Information Access:
                CA Issuers - URI:http://secure.globalsign.com/cacert/gsgccr3dvtlsca2020.crt
$ wget -q http://secure.globalsign.com/cacert/gsgccr3dvtlsca2020.crt
$ openssl verify -untrusted gsgccr3dvtlsca2020.crt cert.pem
cert.pem: OK

O mais correcto será o OMIE corrigir a configuração do servidor. Nota: quem actualizar para o https://github.com/luuuis/hass_omie/releases/tag/v1.0.9 não precisa de se preocupar com nada disto.

A configuração já foi corrigida no www.omie.es, já não é necessário recorrer à v1.0.9.
https://www.ssllabs.com/ssltest/analyze.html?d=www.omie.es

authors: Gusimelo JeffersM1 abacao filipecaldeira frankesousa joaocbatista jpedrofigueiredo luuuis


text:
Add DDRNet model for semantic segmentation

This PR integrates the DDRNet model to enhance semantic segmentation performance.
Comparison with Current Model (MicroNet + Segmentation Head)
Parameters: DDRNet has 5.7M, compared to 2.1M for MicroNet.
Training Time: Both models have similar single-epoch training times.
Metrics After 1 Epoch
MicroNet + Segmentation Head:

Jaccard Index: 0.00873
F1 Score: 0.69811

DDRNet-23-slim:

Jaccard Index: 0.00952
F1 Score: 0.70069

Possible improvements

Compute Jaccard Index every n epochs to increase training speed.
Improve handling of auxiliary heads for export.
Use pretrained weights.
Add Online Hard Example Mining (OHEM) with Cross Entropy Loss.
Add EMA (Exponential Moving Average).

Would it make sense to have auxiliary segmentaion head part of the backbone (if use_aux_head=True) so we could then easily remove it from graph if needed (e.g. durgin export)? Because now user has to change use_aux_head=False in the config if they want to export optimally. CC: @kozlov721 also for thoughts

Yeah I think this would be a better solution. We could later add some more general support for train-only heads, but I think there's not gonna be many use-cases and they will mostly be solvable by making the head part of the backbone anyways.
Also, let's first merge #69, then sync this one and add a test case for the new predefined model to tests.integration.test_simple.test_predefined_models

repo: luxonis/luxonis-train


text:
LVGL v8 status ? Animation with Square Line Studio

We use GitHub issues for development related discussions.
Please use the forum to ask questions.
Describe the issue
Hi All,
I'm starting a nexw project based on Lilygo T display ESP32S3 and LVGL.
I'm able to create a screen with the nice and usefull tool SquareLine Studio. I can display it on the devkit.
I tried to add an animation  on my image. I export the ui from sqaure line studio and tried to build on vscode. But call to function "" refer to undifined function.
After comparing v8 to v7 , i saw tat this function were not present in v7. So i need to go on v8 to benefit of it.
I tried to create a blank project, and add lvgl as a submodule to have v8 ready to use. But it seems that KConfig of lv_port_esp32 and last v8 lvgl are different. I don't find all the same options in menuconfig.
So should I only modify the Kconfig and add the missing options present in the lv_port_esp32 version may be? Or is there also other changes to do and it is more complex than that?
I saw the first ticket on this topics that exist for one year now but still open.
Thank you !
Code to reproduce the issue
Expected Results
Actual Results
ESP32 Chip version
ESP32S3
ESP-IDF version
v4.4.2
Development kit used
Lilygo T display ESP32S3
Development machine OS
Visual studio code
Compilation warnings/errors (if available)
implicit declaration of function 'lv_obj_get_x_aligned'; did you mean 'lv_obj_set_align'? [-Werror=implicit-function-declaration]
implicit declaration of function 'lv_obj_get_y_aligned'; did you mean 'lv_obj_set_align'? [-Werror=implicit-function-declaration]
implicit declaration of function 'lv_anim_set_user_data'; did you mean 'lv_obj_set_user_data'? [-Werror=implicit-function-declaration]
If possible, copy the compilation log into a file and attach it here

+1 for official LVGL v8.x support

+1 from me as well.
Still trying to get LVGL running with lvgl and regular drivers library

I also got some customer request for ESP32-LVGLv8 support and I really like to have this and lvgl_esp32_drivers repos updated.
As v7 and v8 differ only in some minor API changes in the drivers I think it's not that difficult to update them.
Unfortunately, I don't have enough hardware for a deep enough testing, however you might have already seen our sponsorship program. From our donations I'd be happy to give 300 USD for updating these repos to v8. Does it sound like a fair offer?
Would you be interested it?
cc @C47D

With some help from @sukesh-ak I have changed to use LGFX Master with LVGL v8. Have a look at https://github.com/sukesh-ak/ESP32-TUX
So far that has worked very well with ESP-IDF v5.x but I have only tried it with ESP-WROVER-Kit v4.1 and the Makerfabs 16bit parallel+touch devkits.
The only changes I have had to make to get a clean compile are:
lv_demo_stress.c: lIne 77 change first %d to %lu
lv_example_table_2.c: line 95 change first %"LV_PRIu32" to %d
So the burning need from our side is gone and the $300 can be saved by using LGFX

Hi @kisvegabor, thanks for CCing me but I'm pretty busy with day job in this days. Happy to see yall got it working!


text:
lxc remote add cannot take certificate fingerprint as command line argument

Security problem / feature request
Required information

Distribution: Ubuntu
Distribution version: 20.04
The output of "lxc info" or if that fails:

Kernel version:
LXC version:
LXD version: 4.24-c92c0b2
Storage backend in use: zfs

Issue description
It is not possible (or not documented how) to add a remote source in an automated and secure way.
When doing a
lxc remote add someserver somelocation --public
lxc displays the certificate fingerprint and asks for confirmation. This is secure, but requires interaction.
From within a script or automated installation system this is not possible. There you could do a
lxc remote add someserver somelocation --public --accept-certificate
which works automated, but insecure, since it accepts any certificate.
There should be a command line argument for the fingerprint, to add a remote server in an automated, but still secure way.
Steps to reproduce

Invite some evil hacker in your network or the common internet to fake the image server and polute it with dirty images.
lxc remote add someserver somelocation --public --accept-certificate   from within a script, e.g. automated installation with cloud-iniit or similar.
Be doomed.

stgraber@dakara:~$ lxc config trust add --name blah
Client blah certificate add token: eyJjbGllbnRfbmFtZSI6ImJsYWgiLCJmaW5nZXJwcmludCI6IjQwMDI1MTc4N2Q2NzA0ZmY4OTdkYmZkOGQ0Mzg3OTcwYTJkOTVkOWRjOTA1MzAzYTI4OTM3MzE0YWE0YjhhODEiLCJhZGRyZXNzZXMiOlsiMTcyLjE3LjAuMjMyOjg0NDMiLCJbMjYwMjpmYzYyOmI6MTAwMDo1NDM2OjViMjU6NjRlNDpkODFhXTo4NDQzIiwiMTcyLjE3LjI1MC4xOjg0NDMiLCJbMjYwMjpmYzYyOmI6MjUwOjoxXTo4NDQzIiwiWzIwMDE6NDcwOmIyYjU6MTAzNzo6MTAwMF06ODQ0MyJdLCJzZWNyZXQiOiIzOTllY2M1MWMzYjdjZTc5Yjg1MTFmNGZiYzAxZTJjMjJjMGQyNzlkODA2NzZjYjUzMDM5M2JjNDMxNWE2MzFlIn0=
stgraber@dakara:~$ lxc remote add foo eyJjbGllbnRfbmFtZSI6ImJsYWgiLCJmaW5nZXJwcmludCI6IjQwMDI1MTc4N2Q2NzA0ZmY4OTdkYmZkOGQ0Mzg3OTcwYTJkOTVkOWRjOTA1MzAzYTI4OTM3MzE0YWE0YjhhODEiLCJhZGRyZXNzZXMiOlsiMTcyLjE3LjAuMjMyOjg0NDMiLCJbMjYwMjpmYzYyOmI6MTAwMDo1NDM2OjViMjU6NjRlNDpkODFhXTo4NDQzIiwiMTcyLjE3LjI1MC4xOjg0NDMiLCJbMjYwMjpmYzYyOmI6MjUwOjoxXTo4NDQzIiwiWzIwMDE6NDcwOmIyYjU6MTAzNzo6MTAwMF06ODQ0MyJdLCJzZWNyZXQiOiIzOTllY2M1MWMzYjdjZTc5Yjg1MTFmNGZiYzAxZTJjMjJjMGQyNzlkODA2NzZjYjUzMDM5M2JjNDMxNWE2MzFlIn0=

authors: hadmut stgraber

repo: lxc/lxd


text:
Support operation cancellation in the client (and make more operations support it)

As evidenced by #2293, users rightly expect ctrl-c to cancel things.
This is not the case with LXD, with most operations not being cancel-able over the API anyway.
We should investigate making the following cancel-able and having them canceled on user interrupt:

Image transfer
Container transfer
Container publication

The rest of the time we probably should catch ctrl-c, show a warning message that this will NOT interrupt what's going on in the background, and after repeated ctrl-c (lets say 3 times), actually exit.

Per #3059 when fixing the daemon side of this issue we should add a hook that will automatically cancel all operations during daemon shutdown, ensuring a cleaner daemon shutdown and returning a clear message to clients about the daemon going down.

So I think it's time to look into this one again. I expect this is going to be a bit of ongoing work until we get all the existing operations to support cancellation.
Looking at the current code in operations.go, it looks like all the bits are in place to support cancellation for all operation types. We "just" need to have them define a onCancel function.
My guess is that the onCancel function will typically share a channel with the onRun function and will be limited to writing a value to the channel and then block on it. The onRun function can then select on that channel and if it notices the cancellation, it can do whatever's needed to cancel and then close the channel to have LXD consider the operation cancelled.
Anyway, I'd recommend you pick something easy to cancel and just try to get onCancel to behave, then test this manually through the API. No need to do client side plumbing for this right now. The new client library has proper support for cancellation so we should only do the client side of this once the port to the new library is complete (I'm really really close now :)).

We've got the initial pass of the server side of this implemented. I'll take the issue over to get the initial pass of the client integration done. We should be able to get that done with a helper in lxc/utils.go that wraps around a lxd.Operation struct and effectively calls Wait() + support cancellation through SIGHUP/SIGKILL.