Freebox Delta Integration

Fehler, entschuldige, ich habe meine MQTT-Geräte (MQTT devices) statt der Freebox-Integrationsgeräte verwendet.

Hast du es also geschafft, deine Rollläden zu steuern?

Ja, danke für diese Integration

Cool, wenn das funktioniert. Aber danach habe ich noch ein bisschen Arbeit, bevor die Integration offiziell in Gladys ist.
Schon beruhigend, dass es bei dir funktioniert.
Also muss ich eine Doku (einfach) erstellen und alle Code-Tests durchführen, aber das habe ich noch nie gemacht.

Und danach auch noch, um die anderen Komponenten zu integrieren.
Unten die Liste aller noch nicht erkannten Geräte, aber das wird später sein.

Das ist ja schon super, ich kann persönlich beim Code nicht helfen (auch wenn ich es gerne würde, aber ich habe nicht die Kompetenzen).
Aber ich kann dir ein bisschen bei der Dokumentation helfen, je nach meiner freien Zeit, falls das dir etwas Zeit spart.

Ja, sehr gerne, jede Teilnahme ist willkommen.

Hallo @Will_71,
Hier sind meine ersten Rückmeldungen zu dieser Integration (bisher nur Rollläden getestet). Ich weiß nicht, ob das an meiner VM liegt, aber manchmal können die Rollläden nicht gesteuert werden.
Ich habe 2 Szenen erstellt, eine zum Öffnen der Rollläden zu einer festgelegten Uhrzeit und eine zum Schließen bei Sonnenuntergang. Ich habe auch seltsames Verhalten, die Rollläden öffnen und schließen nicht immer.
Beispiel: Gestern haben sich nur 3 geschlossen und heute Morgen und heute Abend haben sich keine geöffnet und ich konnte sie manuell nicht steuern.

Ich habe dir die letzten Logs angehängt, die ich heute beim Nachhausekommen gemacht habe. Es gibt einen Fehler und er stoppt am 20/10???
Nach einem Neustart der VM bleiben die Logs am 22/10 hängen und es gibt denselben Fehler am Ende und es wird nicht besser nach einem Neustart von Gladys.
Wenn ich auf einen Knopf oder den Positionsbalken klicke, bewegt er sich und kehrt zu seiner Ausgangsposition zurück.

Ich frage mich, ob ich es auf einem Pi testen soll.

image

2023-10-20T20:12:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:12:00 GMT überprüft
2023-10-20T20:13:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:13:00 GMT überprüft
2023-10-20T20:14:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:14:00 GMT überprüft
2023-10-20T20:15:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:15:00 GMT überprüft
2023-10-20T20:16:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:16:00 GMT überprüft
2023-10-20T20:17:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:17:00 GMT überprüft
2023-10-20T20:18:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:18:00 GMT überprüft
2023-10-20T20:19:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:19:00 GMT überprüft
2023-10-20T20:20:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:20:00 GMT überprüft
2023-10-20T20:21:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:21:00 GMT überprüft
2023-10-20T20:22:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:22:00 GMT überprüft
2023-10-20T20:23:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:23:00 GMT überprüft
2023-10-20T20:24:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:24:00 GMT überprüft
2023-10-20T20:25:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:25:00 GMT überprüft
2023-10-20T20:26:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:26:00 GMT überprüft
2023-10-20T20:27:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:27:00 GMT überprüft
2023-10-20T20:28:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:28:00 GMT überprüft
2023-10-20T20:29:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:29:00 GMT überprüft
2023-10-20T20:30:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:30:00 GMT überprüft
2023-10-20T20:30:00+0200 device.purgeStates.js:29 (DeviceManager.purgeStates) Gerätezustände der letzten 90 Tage werden gelöscht. Zustände, die älter als Sa, 22. Jul. 2023 20:30:00 GMT+0200 (Mitteleuropäische Sommerzeit) sind, werden gelöscht.
2023-10-20T20:31:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:31:00 GMT überprüft
2023-10-20T20:32:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:32:00 GMT überprüft
2023-10-20T20:33:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:33:00 GMT überprüft
2023-10-20T20:34:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:34:00 GMT überprüft
2023-10-20T20:35:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:35:00 GMT überprüft
2023-10-20T20:36:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:36:00 GMT überprüft
2023-10-20T20:37:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:37:00 GMT überprüft
2023-10-20T20:38:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:38:00 GMT überprüft
2023-10-20T20:39:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:39:00 GMT überprüft
2023-10-20T20:40:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:40:00 GMT überprüft
2023-10-20T20:41:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:41:00 GMT überprüft
2023-10-20T20:42:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:42:00 GMT überprüft
2023-10-20T20:43:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:43:00 GMT überprüft
2023-10-20T20:44:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:44:00 GMT überprüft
2023-10-20T20:45:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:45:00 GMT überprüft
2023-10-20T20:46:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:46:00 GMT überprüft
2023-10-20T20:47:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:47:00 GMT überprüft
2023-10-20T20:48:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:48:00 GMT überprüft
2023-10-20T20:49:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:49:00 GMT überprüft
2023-10-20T20:50:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:50:00 GMT überprüft
2023-10-20T20:51:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:51:00 GMT überprüft
2023-10-20T20:52:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:52:00 GMT überprüft
2023-10-20T20:53:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:53:00 GMT überprüft
2023-10-20T20:54:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:54:00 GMT überprüft
2023-10-20T20:55:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:55:00 GMT überprüft
2023-10-20T20:56:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Kalenderauslöser werden am Fr, 20. Okt. 2023 18:56:00 GMT überprüft
error from daemon in stream: Fehler beim Abrufen der Protokolle: ungültiges Zeichen ‹ \x00 › beim Suchen nach Beginn des Wertes

Hallo @gaelbillon, wenn es blockiert, kannst du die Freebox neu starten und es noch einmal versuchen?

Funktioniert es auch über die Freebox-Home-App?

Ich habe das Problem oft mit Node-Red und nach einem Neustart der Box gibt es keine Probleme mehr. Eigentlich ist das das große Problem dieser Freebox-API. Ich habe das Problem auch in den HA-Foren gefunden.

Danke für deine Antwort, tatsächlich funktioniert es auch in freeboxHome nicht?? Das war mir vorher nie aufgefallen, nicht gerade praktisch!!
Ich starte neu, sobald es möglich ist (Installation einer VM läuft gerade, um die Alarmanlagen-Integration zu testen!) und melde mich dann wieder.

Ja, das ist ein Schwachpunkt der Free-API. Hoffentlich wird es irgendwann behoben, aber nach dem, was ich in den HA-Foren gelesen habe, gibt es nicht viel Hoffnung.

Okay, ich bestätige, nach dem Neustart funktioniert es normal.
Allerdings erscheinen mir die Logs trotzdem seltsam?

2023-10-20T14:40:54+0200 index.js:15 (Object.start) Tasmota-Dienst wird gestartet
2023-10-20T14:40:54+0200 subscribe.js:12 (MqttHandler.subscribe) Abonnieren des MQTT-Themas stat/+/+
2023-10-20T14:40:54+0200 subscribe.js:12 (MqttHandler.subscribe) Abonnieren des MQTT-Themas tele/+/+
2023-10-20T14:40:54+0200 index.js:14 (Object.start) Xiaomi-Dienst wird gestartet
2023-10-20T14:40:55+0200 index.js:13 (Object.start) USB-Dienst wird gestartet
2023-10-20T14:40:55+0200 index.js:19 (Object.start) Telegram-Dienst wird gestartet
2023-10-20T14:40:55+0200 service.start.js:40 (Service.start) Der Dienst telegram ist nicht konfiguriert, daher wurde er nicht gestartet.
2023-10-20T14:40:55+0200 index.js:18 (Object.start) RTSP-Dienst wird gestartet
2023-10-20T14:40:55+0200 index.js:20 (Object.start) Open Weather-Dienst wird gestartet
2023-10-20T14:40:55+0200 service.start.js:40 (Service.start) Der Dienst openweather ist nicht konfiguriert, daher wurde er nicht gestartet.
2023-10-20T14:40:55+0200 index.js:15 (Object.start) Enedis-Dienst wird gestartet
2023-10-20T14:40:56+0200 index.js:88 (Object.start) CalDAV-Dienst wird gestartet
2023-10-20T14:40:56+0200 scene.dailyUpdate.js:58 () Heute geht die Sonne um 8:16 Uhr in Ihrer Zeitzone (Europe/Paris) auf
2023-10-20T14:40:56+0200 scene.dailyUpdate.js:59 () Heute geht die Sonne um 18:57 Uhr in Ihrer Zeitzone (Europe/Paris) unter
2023-10-20T14:40:56+0200 scene.dailyUpdate.js:70 () Die Sonne ging heute Morgen auf. Heute nicht planen.
2023-10-20T14:40:56+0200 scene.dailyUpdate.js:81 () Sonnenuntergang ist in 4 Stunden geplant.
2023-10-20T14:40:56+0200 device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Aggregatberechnung des Gerätezustands für das Intervall stündlich
2023-10-20T14:40:56+0200 index.js:64 (Server.<an)onymous>) Server hört auf Port 80
2023-10-20T14:41:00+0200 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Überprüfe Kalenderauslöser am Fr, 20. Okt. 2023 12:41:00 GMT
2023-10-20T14:41:02+0200 device.calculateAggregate.js:105 (ChildProcess.<an)onymous>) device.calculateAggregate: Verarbeitung für Intervall hourly abgeschlossen
2023-10-20T14:41:02+0200 device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung der Aggregatgerätezustände für das Intervall täglich
2023-10-20T14:41:08+0200 device.calculateAggregate.js:105 (ChildProcess.) device.calculateAggregate: Verarbeitung für Intervall täglich abgeschlossen
2023-10-20T14:41:08+0200 device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung der Aggregatgerätezustände für das Intervall monatlich
2023-10-20T14:41:14+0200 device.calculateAggregate.js:105 (ChildProcess.) device.calculateAggregate: Verarbeitung für Intervall monatlich abgeschlossen
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « state » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « alarm1 » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « alarm2 » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « off » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « skip » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « pin » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « error » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « cover » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « alarm1 » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « alarm2 » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « cam » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « cover » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « alarm1 » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « alarm2 » wird nicht verwaltet
2023-10-20T14:41:15+0200 convertFeature.js:36 (convertFeature) Freebox-Funktion mit « pushed » wird nicht verwaltet
2023-10-20T14:41:25+0200 connect.js:60 (MqttClient.) Verbindung zum MQTT-Server getrennt
2023-10-20T14:41:31+0200 device.poll.js:23 (DeviceManager.poll) Es ist ein Fehler beim Abfragen des Geräts freebox-29 aufgetreten
2023-10-20T14:41:31+0200 device.poll.js:24 (DeviceManager.poll) AxiosError: getaddrinfo EAI_AGAIN mafreebox.freebox.fr
at Function.AxiosError.from (/src/server/services/freebox/node_modules/axios/lib/core/AxiosError.js:89:14)
at RedirectableRequest.handleRequestError (/src/server/services/freebox/node_modules/axios/lib/adapters/http.js:593:25)
at RedirectableRequest.emit (node:events:517:28)
at ClientRequest.eventHandlers. (/src/server/services/freebox/node_modules/follow-redirects/index.js:14:24)
at ClientRequest.emit (node:events:517:28)
at TLSSocket.socketErrorListener (node:_http_client:501:9)
at TLSSocket.emit (node:events:517:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at processTicksAndRejections (node:internal/process/task_queues:82:21) {
hostname: ‹ mafreebox.freebox.fr ›,
syscall: ‹ getaddrinfo ›,
code: ‹ EAI_AGAIN ›,
errno: -3001,
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: ‹ http ›,
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
xsrfCookieName: ‹ XSRF-TOKEN ›,
xsrfHeaderName: ‹ X-XSRF-TOKEN ›,
maxContentLength: -1,
maxBodyLength: -1,
env: { FormData: [Function], Blob: [class Blob] },
validateStatus: [Function: validateStatus],
headers: Object [AxiosHeaders] {
Accept: ‹ application/json, text/plain, / ›,
‹ Content-Type ›: undefined,
‹ X-Fbx-App-Auth ›: ‹ VSbhir0AsMRlEH+5OIfGFVkAe7twIVC/YXUepVHfxdguzsCUN8Grrl/7A7h1eAIf ›,
‹ User-Agent ›: ‹ axios/1.5.0 ›,
‹ Accept-Encoding ›: ‹ gzip, compress, deflate, br ›
},
httpsAgent: Agent {
_events: [Object: null prototype],
_eventsCount: 2,
_maxListeners: undefined,
defaultPort: 443,
protocol: ‹ https: ›,
options: [Object: null prototype],
requests: [Object: null prototype] {},
sockets: [Object: null prototype],
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: ‹ lifo ›,
maxTotalSockets: Infinity,
totalSocketCount: 1,
maxCachedSessions: 100,
_sessionCache: [Object],
[Symbol(kCapture)]: false
},
method: ‹ get ›,
baseURL: ‹ https://mafreebox.freebox.fr/api/v10 ›,
url: ‹ /home/tileset/29 ›,
data: undefined
},
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,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]:
},
_events: [Object: null prototype] {
response: [Function: handleResponse],
error: [Function: handleRequestError],
socket: [Function: handleRequestSocket]
},
_eventsCount: 3,
_maxListeners: undefined,
_options: {
maxRedirects: 21,
maxBodyLength: Infinity,
protocol: ‹ https: ›,
path: ‹ /api/v10/home/tileset/29 ›,
method: ‹ GET ›,
headers: [Object: null prototype],
agents: [Object],
auth: undefined,
family: undefined,
beforeRedirect: [Function: dispatchBeforeRedirect],
beforeRedirects: [Object],
hostname: ‹ mafreebox.freebox.fr ›,
port: ‹  ›,
agent: [Agent],
nativeProtocols: [Object],
pathname: ‹ /api/v10/home/tileset/29 ›
},
_ended: true,
_ending: true,
_redirectCount: 0,
_redirects: ,
_requestBodyLength: 0,
_requestBodyBuffers: ,
_onNativeResponse: [Function (anonymous)],
_currentRequest: ClientRequest {
_events: [Object: null prototype],
_eventsCount: 7,
_maxListeners: undefined,
outputData: ,
outputSize: 0,
writable: true,
destroyed: false,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
maxRequestsOnConnectionReached: false,
_defaultKeepAlive: true,
useChunkedEncodingByDefault: false,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
strictContentLength: false,
_contentLength: 0,
_hasBody: true,
_trailer: ‹  ›,
finished: true,
_headerSent: true,
_closed: false,
socket: [TLSSocket],
_header: ‹ GET /api/v10/home/tileset/29 HTTP/1.1\r\n › +
‹ Accept: application/json, text/plain, /\r\n › +
‹ X-Fbx-App-Auth: VSbhir0AsMRlEH+5OIfGFVkAe7twIVC/YXUepVHfxdguzsCUN8Grrl/7A7h1eAIf\r\n › +
‹ User-Agent: axios/1.5.0\r\n › +
‹ Accept-Encoding: gzip, compress, deflate, br\r\n › +
‹ Host: mafreebox.freebox.fr\r\n › +
‹ Connection: close\r\n › +
‹ \r\n ›,
_keepAliveTimeout: 0,
_onPendingData: [Function: noopPendingOutput],
agent: [Agent],
socketPath: undefined,
timeout: undefined,
method: ‹ GET ›,
path: ‹ /api/v10/home/tileset/29 ›,
_ended: true,
res: null,
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
_redirectCount: 0,
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype],
[Symbol(kUniqueHeaders)]: null,
[Symbol(kHeaders): Map(13) {
‹ accept › => [Array],
‹ x-fbx-app-auth › => [Array],
‹ user-agent › => [Array],
‹ accept-encoding › => [Array],
‹ host › => [Array],
‹ connection › => [Array]
}],
[Symbol(kHeadersCount)]: 13,
[Symbol(kSockets)]: [Object],
[Symbol(kSocket)]:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: undefined,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype],
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: ‹ mafreebox.freebox.fr ›,
_readableState: [ReadableState],
_maxListeners: undefined,
_writableState: [WritableState],
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: ‹  ›,
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_reuseSession: true,
_session: [TLSSession],
_hostnodename: ‹ mafreebox.freebox.fr ›,
_updateOutgoing: [Function: updateOutgoing],
parser: null,
_httpMessage: [Circular],
[Symbol(res)]: [Circular],
[Symbol(verification error)]: undefined,
[Symbol(pending sessions)]: [Map],
[Symbol(async_id_symbol)]: 105,
[Symbol(kHandle)]: [TCP],
[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)]: {
port: 443,
host: ‹ mafreebox.freebox.fr ›,
localAddress: undefined,
localPort: undefined,
noDelay: false,
keepAlive: false,
keepAliveInitialDelay: 1000,
family: ‹ IPv4 ›,
hints: [Array],
lookup: undefined,
app: undefined,
agent: [Agent],
socketPath: undefined,
_defaultKeepAlive: true
},
[Symbol(kSetHost)]: true,
[Symbol(kInitiateDestroy)]: false,
[Symbol(kOutData)]: ,
[Symbol(kTimeout)]: null,
[Symbol(kClosing)]: null,
[Symbol(kTimer)]: ‹ Timeout ›,
[Symbol(kBufferFirstChunk)]: ,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0
},
[Symbol(kSocketHead)]: TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: undefined,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype],
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: ‹ mafreebox.freebox.fr ›,
_readableState: [ReadableState],
_maxListeners: undefined,
_writableState: [WritableState],
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: ‹  ›,
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_reuseSession: true,
_session: [TLSSession],
_hostnodename: ‹ mafreebox.freebox.fr ›,
_updateOutgoing: [Function: updateOutgoing],
parser: null,
_httpMessage: [Circular],
[Symbol(res)]: [Circular],
[Symbol(verification error)]: undefined,
[Symbol(pending sessions)]: [Map],
[Symbol(async_id_symbol)]: 105,
[Symbol(kHandle)]: [TCP],
[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)]: {
port: 443,
host: ‹ mafreebox.freebox.fr ›,
localAddress: undefined,
localPort: undefined,
noDelay: false,
keepAlive: false,
keepAliveInitialDelay: 1000,
family: ‹ IPv4 ›,
hints: [Array],
lookup: undefined,
app: undefined,
agent: [Agent],
socketPath: undefined,
_defaultKeepAlive: true
},
[Symbol(kSetHost)]: true,
[Symbol(kInitiateDestroy)]: false,
[Symbol(kOutData)]: ,
[Symbol(kTimeout)]: null,
[Symbol(kClosing)]: null,
[Symbol(kTimer)]: ‹ Timeout ›,
[Symbol(kBufferFirstChunk)]: ,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0
},
[Symbol(request)]: [Circular],
[Symbol(kCapture)]: false
},
[Symbol(kCapture)]: false
},
[Symbol(kCapture)]: false
}error from daemon in stream: Error grabbing logs: invalid character ‹ \x00 › looking for beginning of value

Ok, danke für deine Rückmeldung.
Bei den Logs ist das normal, weil Gladys weiterhin Anfragen an die Freebox gesendet hat, aber da diese nicht verfügbar war, gab es Fehler.
Ich werde schauen, ob ich etwas hinzufügen kann, falls die Freebox nicht verfügbar ist, um so unnötige Anfragen zu vermeiden.

Daher frage ich mich, ob es wirklich noch sinnvoll ist, mit der Entwicklung fortzufahren, wenn es Probleme mit der API gibt.

Ja, ich bin einverstanden, es wäre nicht sinnvoll, Szenen mit einer instabilen API zu erstellen.
Schade, es sei denn, er verbessert sie in der Zukunft.

Naja, ich werde nicht aufgeben, ich werde trotzdem alle Unit-Tests durchführen und Verbesserungen vornehmen, in der Hoffnung, dass die API eines Tages stabiler wird.

Jedenfalls übe ich damit Programmieren.

Gute Neuigkeiten,
Persönlich würde ich gerne programmieren lernen, um helfen zu können. Ich versuche, ein bisschen in meiner Freizeit zu lernen.
Daher werde ich Node-Red ein bisschen mehr erkunden, um mit meinen Rollläden zu interagieren und vielleicht noch mehr in der Zukunft.

Eine Frage bezüglich Node-Red, hast du Node-Red mit dem aktiviert, was ich dir für die Rollläden gegeben habe, gleichzeitig mit der Freebox-Integration.

Vielleicht liegt es daran, dass die API ab einer bestimmten Anzahl von Anfragen abstürzt (oder absichtlich von Free blockiert wird).
Falls das der Fall ist, könntest du den Test nochmal ohne den Node-Red-Teil durchführen.

Du kannst einfach den Knoten deines Rollladens deaktivieren, der Anfragen an die Freebox sendet, indem du auf enable in den Eigenschaften unten links klickst, und er wird dann deaktiviert und sendet keine Anfragen mehr.

Danach wird der Knoten durchsichtig mit gestrichelten Linien
image

Hallo @Will_71,
Ich habe den betroffenen Stream deaktiviert und die Box neu gestartet.

Okay, halte mich auf dem Laufenden. Danke.

Na toll, die Rollläden sind gerade zugegangen.
Mal sehen morgen früh beim Öffnen und in den folgenden Tagen.

Hallo @Will_71,
Also die Rollläden scheinen seit dem letzten Mal wieder richtig zu funktionieren (Also die Rollläden, die sich um 17:30 Uhr schließen, ist früh, dieser Zeitumstellung sei Dank!), nur zur Info, ich habe die „Aktualisierungsfrequenz“ wieder auf 30 s gestellt, die ich auf 10 s gesetzt hatte, daher vielleicht zu viele Anfragen + die wiederholten Tests!! Mal sehen.

Ich habe die Bewegungs- und Öffnungssensoren noch nicht getestet, aber ich habe keine Rückmeldung über den Batteriestand des Bewegungssensors.