Ich habe das Gefühl, wir hatten diese Diskussion schon einmal, dass der Sonoff-Dongle Probleme hatte, aber dass er mit deinem anderen Dongle sehr gut funktioniert.
Das stimmt, ich bestätige, was ich in anderen Beiträgen gesagt habe, aber ich möchte wissen, ob ich der Einzige in diesem Fall bin. Ich habe keine anderen Nachrichten in diesem Sinne gesehen.
Ich werde es noch einmal testen. Ich habe das Gefühl, dass die Zuordnung meines drahtlosen Xiaomi-Knopfes anders ist, da meine Szene, mit der ich meine Lampe ein- und ausschalten kann, nicht mehr funktioniert hat.
Ich versuche es noch einmal, um zu überprüfen und zu vertiefen, sobald ich etwas Zeit habe, und halte euch auf dem Laufenden!
Hallo @lmilcent, hast du es nochmal getestet? ![]()
Entschuldige für die lange Verzögerung, es ist gerade richtig stressig bei der Arbeit. Ich installiere gerade einen Dell OptiPlex 3070 Micro (3RC7K) - PC de bureau - LDLC | Muséericorde neu, den ich kostenlos bekommen habe, um daraus meinen Smart-Home-Server (Gladys, VPN und andere Dienste) zu machen. Natürlich habe ich dabei ein bisschen vergessen, den Dev-Build nochmal zu testen ![]()
Also, ich versuche, das so schnell wie möglich zu erledigen ![]()
Ich bestätige @pierre-gilles, es gibt Änderungen, die meine Installation kaputt machen.
Was kaputt ist (auf den ersten Blick)
- Ich habe Fehler, die mit Gladys Plus (Abonnement entfernt) zusammenhängen und regelmäßig auftreten.
Logs
2022-04-14T10:07:09+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät PriseSupp, Feature power_outage_memory nicht in Gladys konfiguriert.
2022-04-14T10:07:12+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementEntree, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-04-14T10:07:12+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementEntree, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:07:12+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementEntree, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-04-14T10:07:12+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementEntree, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:07:16+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-04-14T10:07:16+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:07:17+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-04-14T10:07:17+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:07:46+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalleAManger, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-04-14T10:07:46+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalleAManger, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:08:00+0200 <info> scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Überprüfe Kalender-Trigger am Do, 14. Apr. 2022 08:08:00 GMT
2022-04-14T10:08:09+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät PriseBureau, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:08:09+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät PriseBureau, Feature power_outage_memory nicht in Gladys konfiguriert.
2022-04-14T10:08:09+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät PriseSupp, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:08:09+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät PriseSupp, Feature power_outage_memory nicht in Gladys konfiguriert.
2022-04-14T10:08:23+0200 <warn> index.js:828 (Socket.<anonymous>) Socket durch den Server getrennt. Versuche, neu zu verbinden...
2022-04-14T10:08:23+0200 <warn> index.js:794 (Socket.<anonymous>) Gladys Gateway: Kein neuer Zugriffstoken oder Benutzerliste aktualisieren möglich.
2022-04-14T10:08:23+0200 <warn> index.js:795 (Socket.<anonymous>) Fehler: Anfrage fehlgeschlagen mit Statuscode 403
bei createError (/src/server/node_modules/axios/lib/core/createError.js:16:15)
bei settle (/src/server/node_modules/axios/lib/core/settle.js:17:12)
bei IncomingMessage.handleStreamEnd (/src/server/node_modules/axios/lib/adapters/http.js:269:11)
bei IncomingMessage.emit (events.js:412:35)
bei endReadableNT (internal/streams/readable.js:1334:12)
bei processTicksAndRejections (internal/process/task_queues.js:82:21) {
config: {
url: 'https://api.gladysgateway.com/instances/access-token',
method: 'get',
headers: {
Accept: 'application/json, text/plain, */*',
authorization: 'xxxxxxxxxxxxxx',
'User-Agent': 'axios/0.21.4'
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: [Function: validateStatus],
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
data: undefined
},
request: <ref *1> ClientRequest {
_events: [Object: null prototype] {
abort: [Function (anonymous)],
aborted: [Function (anonymous)],
connect: [Function (anonymous)],
error: [Function (anonymous)],
socket: [Function (anonymous)],
timeout: [Function (anonymous)],
prefinish: [Function: requestOnPrefinish]
},
_eventsCount: 7,
_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.gladysgateway.com',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype],
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: 'api.gladysgateway.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)]: 14971,
[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 /instances/access-token HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'authorization: xxxxxxxxxxxxxxxxxxxxxxx1Z1yLZZRvktInSYpXxNRoDcQx3vYNIviy7b9M\r\n' +
'User-Agent: axios/0.21.4\r\n' +
'Host: api.gladysgateway.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: 'lifo',
maxTotalSockets: Infinity,
totalSocketCount: 1,
maxCachedSessions: 100,
_sessionCache: [Object],
[Symbol(kCapture)]: false
},
socketPath: undefined,
method: 'GET',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/instances/access-token',
_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,
headers: [Object],
rawHeaders: [Array],
trailers: {},
rawTrailers: [],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 403,
statusMessage: 'Forbidden',
client: [TLSSocket],
_consuming: false,
_dumped: false,
req: [Circular *1],
responseUrl: 'https://api.gladysgateway.com/instances/access-token',
redirects: [],
[Symbol(kCapture)]: false,
[Symbol(RequestTimeout)]: undefined
},
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'api.gladysgateway.com',
protocol: 'https:',
_redirectable: Writable {
_writableState: [WritableState],
_events: [Object: null prototype],
_eventsCount: 2,
_maxListeners: undefined,
_options: [Object],
_ended: true,
_ending: true,
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 0,
_requestBodyBuffers: [],
_onNativeResponse: [Function (anonymous)],
_currentRequest: [Circular *1],
_currentUrl: 'https://api.gladysgateway.com/instances/access-token',
[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: 403,
statusText: 'Forbidden',
headers: {
server: 'nginx/1.19.3',
date: 'Thu, 14 Apr 2022 08:08:23 GMT',
'content-type': 'application/json; charset=utf-8',
'content-length': '67',
connection: 'close',
'x-powered-by': 'Express',
'access-control-allow-origin': '*',
'access-control-allow-methods': 'GET,PUT,POST,PATCH,DELETE,OPTIONS',
'access-control-allow-headers': 'Content-Type, Authorization, Content-Length, X-Requested-With',
etag: 'W/"43-cmA3lePMVRz8mAO0r30P2lM8MEc"',
'strict-transport-security': 'max-age=31536000'
},
config: {
url: 'https://api.gladysgateway.com/instances/access-token',
method: 'get',
headers: [Object],
transformRequest: [Array],
transformResponse: [Array],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: [Function: validateStatus],
transitional: [Object],
data: undefined
},
request: <ref *1> ClientRequest {
_events: [Object: null prototype],
_eventsCount: 7,
_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 /instances/access-token HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'authorization: xxxx xxxxxxxxxxxx xx xxxRvktInSYpXxNRoDcQx3vYNIviy7b9M\r\n' +
'User-Agent: axios/0.21.4\r\n' +
'Host: api.gladysgateway.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: '/instances/access-token',
_ended: true,
res: [IncomingMessage],
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'api.gladysgateway.com',
protocol: 'https:',
_redirectable: [Writable],
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype]
},
data: {
status: 403,
error_code: 'FORBIDDEN',
error_message: 'Forbidden'
}
},
isAxiosError: true,
toJSON: [Function: toJSON]
}
2022-04-14T10:08:28+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-04-14T10:08:28+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:08:28+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-04-14T10:08:28+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät CapteurMouvementSalon, Feature linkquality nicht in Gladys konfiguriert.
- Wenn ich auf meinen Funkschalter klicke, erhalte ich zwei Warnungen und mein Schalter funktioniert nicht, daher wird meine Szene nicht ausgeführt.
2022-04-14T10:09:02+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät InterrupteurSansFil, Feature linkquality nicht in Gladys konfiguriert.
2022-04-14T10:09:02+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt-Gerät InterrupteurSansFil, Feature temperature nicht in Gladys konfiguriert.
Untersuchungen
-
Der Knopf wird jedoch erkannt:
-
Beim Löschen/Neuerstellen des Funkschalters (was das System meines Raspberry Pi extrem verlangsamt hat):
- Man sieht, dass
nodeden größten Teil der Festplatte verwendet (und der Überwachungsagentnetdata, der noch etwas hinzufügt, aber das ist persönlich, außerhalb von gladys)
- Man sieht, dass
Lösung
Ich denke, meine vorherigen Tests haben nichts geändert. Was passiert ist, dass der einfache Klick nicht mehr gleich 1 ist, sondern jetzt gleich 0.
Meine Szene verwendete die 1, was sie mechanisch veraltet machte.
Wenn ich den Wert meiner Szene auf = 0 ändere, funktioniert es wieder. Hier muss man vorsichtig sein, denn das könnte viele Szenen auf den verschiedenen Klicktypen (einfach, doppelt, lang) kaputt machen.
MOD Edit :
Ich habe mir erlaubt, deinen Beitrag zu bearbeiten, um die Autorisierungstoken zu entfernen… man kann nie wissen!!
Danke für dein Feedback @lmilcent!
Okay, das ist nicht ideal.
Allerdings habe ich nicht verstanden, ob diese PR dein Problem gelöst hat? Könntest du mit @AlexTrovato sprechen, um zu sehen, wie wir diese PR zum Laufen bringen könnten?
Aber die Schlussfolgerung ist, dass ich zu schnell war, ich habe diese PR zu früh in master gemerged, und jetzt haben wir einen master, der nicht mehr deploybar ist. Ich würde die PR bei Bedarf zurücksetzen, wenn ich die anderen Fixes zuerst deployen will, ich habe seit 2 Wochen keine Gladys-Releases mehr gemacht ![]()
Ich antworte auf deine anderen Kommentare, aber sie haben nichts mit dieser PR zu tun:
Das ist eine bekannte Einschränkung der aktuellen Implementierung des Device-Löschens, die alle Zustände kaskadierend löscht, was die Disk-Bandbreite bis zum Abschluss der Löschung auslastet ![]()
Siehe:
Hast du Gladys Plus in den Einstellungen deaktiviert?
Okay, tatsächlich sehe ich, dass ich beim « button click » etwas voreilig war.
Ich korrigiere die Zuordnung, um der Gladys-Click-Zuordnung zu entsprechen.
In Bezug auf die Warnungsprotokolle:
- linkquality betrifft die Signalqualität, noch nicht zugeordnet
- temperature sollte ein Feature auf deinem betroffenen Gerät generieren, obwohl ich etwas überrascht bin, so ein Feature auf einem Schalter zu sehen
@lmilcent weißt du, welches Docker-Image (Gladys-Version) du verwendest?
Ich erstelle gerade ein neues Image (aktualisiert auf dem Gladys-Stamm), das die Mapping-Korrektur enthält: atrovato/gladys:zigbee2mqtt (verfügbar in 2 Stunden).
Du musst deine Szene also wieder so einstellen, wie sie vorher war, um zu testen, dass nichts mehr kaputt ist.
@pierre-gilles der Fix ist ziemlich einfach, da der Code isoliert ist.
Wenn ihr noch andere Dinge feststellt, bin ich aufmerksam!
Ich denke, diese Änderungen sind für z2m notwendig, wir dürfen nicht nachlassen!!!
Danke ![]()
Wenn du noch etwas feststellst, ich bin ganz Ohr!
Ich denke, diese Änderungen sind für z2m notwendig, wir dürfen nicht locker lassen!!!
Danke ![]()
Hallo @AlexTrovato
Ich nutze dein Angebot, ich weiß nicht, ob meine Anfrage in den Rahmen deines Vorschlags fällt, aber wenn du das Problem des Xiaomi LLKZMK11LM (Doppelrelais) anschauen könntest
ich danke dir jetzt schon.
@Psoy, auf welcher Version bist du aktuell? Denn ich sehe zwei Dinge für dein Problem:
- Ursprünglich (vor meinen Änderungen) wurde nur der erste Schalter (state) in Gladys als Aktuator verwaltet
- Die Anzeige und Verwaltung des Multi-Schalters für ein Gerät im Dashboard, was einen anderen, globaleren Punkt betrifft, den ich hier nicht behandeln werde
Welche Version verwendest du aktuell? Denn ich sehe zwei Lösungen für dein Problem:
Version von Gladys 4.8.3 (Installation Image Pierre-Gilles).
Für mich ist das Problem immer noch das Gleiche, keine Entwicklung.
Tatsächlich funktioniert der erste Schalter normal
Schade, ich werde warten, danke, dass du mir geantwortet hast
Guten Tag
Ok, das funktioniert!
Genau, ich hatte den Eindruck, dass es mit der Nachricht von @lmilcent ernster war, aber wenn es nur Details am Ende des PRs sind, ist das super;)
Ja, ich denke auch! Vielen Dank nochmal für deine Verfügbarkeit und für diesen PR!! ![]()
Für den Teil Gladys Plus @pierre-gilles, habe ich alles, soweit ich weiß, deaktiviert!
Und für die Container-Version war es die :dev Version, die zum Zeitpunkt meines Tests die aktuellste war. Ich mache immer ein pull, bevor ich den Container erstelle.
Ansonsten scheint der Rest funktionsfähig zu sein, ich habe nichts anderes bemerkt.
@lmilcent, behebt der PR von @AlexTrovato das Problem?
Die anderen bei Zigbee2mqtt, funktioniert dieses Bild bei euch?
Es läuft jetzt schon eine Woche und ich habe nichts weiter bemerkt. Meine Szenen funktionieren immer noch (nach den erwähnten Änderungen).
Und keine Fehlermeldungen mehr, außer solche, die mit Gladys Plus zusammenhängen.
Genau, normalerweise sollte der PR von @AlexTrovato verhindern, dass Änderungen nötig sind. Ist das der Fall?
Ich merke gerade, dass mein aktuelles Image der dev-Tag von Gladys ist, nicht das von @AlexTrovato. Ich starte es und halte euch auf dem Laufenden!
Ich habe gerade festgestellt, dass ich während der Tests ein Backup wiederherstellen musste, weil Gladys Plus nicht mehr „deaktiviert“ war. Deshalb hatte ich Fehler in den Logs.
Dank des aktuellen Angebots habe ich gerade Gladys Plus erworben, was es mir ermöglicht, die Wiederherstellung aller meiner Szenen, des Zigbee-Dienstes und des Dashboards zu testen. Ich werde euch in einem separaten Post dazu berichten.


