NEWS
SONOFF NSPanel mit Lovelace UI
-
Hi Leutz
Ich bin fleißig am NSPanel einrichten. Sollen insgesamt min 11 Stück werden. Blöderweise ist mir bei Nr.4 ein Fehler passiert. Ich habe mein Skript von Nr.3 kopiert und wollte den ComandSend, den Result und die 0.User Nr. ändern. Hatte aber den 0.User nicht geändert und hab speichern und starten gedrückt. Hatte es zwar sofort gemerkt, aber er scheint sich irgend etwas in den iobroker geschrieben zu haben. Ich habe as NSPanel Nr.4 noch einmal geflasht und es neu eingebunden. Funktioniert auch einwandfrei. Allerdings bekomme ich jetzt von diesem Panel eine Fehlermeldung. Einmal als warn und zeitgleich die gleiche Meldung als error.Ich werde aus der Fehlermeldung nicht schlau. Das NSPanel heist Flur oben. Die Fehlermeldung lautet:
script.js.NSPanel.NSPanel_Flur_oben: AxiosError: getaddrinfo ENOTFOUND undefined at Function.AxiosError.from (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/lib/core/AxiosError.js:89:14) at RedirectableRequest.handleRequestError (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/lib/adapters/http.js:610:25) at RedirectableRequest.emit (node:events:517:28) at RedirectableRequest.emit (node:domain:489:12) at ClientRequest.eventHandlers.<computed> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/follow-redirects/index.js:38:24) at ClientRequest.emit (node:events:529:35) at ClientRequest.emit (node:domain:489:12) at Socket.socketErrorListener (node:_http_client:501:9) at Socket.emit (node:events:517:28) at Socket.emit (node:domain:489:12) 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) at Axios.request (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/lib/core/Axios.js:45:41) at processTicksAndRejections (node:internal/process/task_queues:95:5) { hostname: 'undefined', syscall: 'getaddrinfo', code: 'ENOTFOUND', errno: -3008, config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [ 'xhr', '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, 'User-Agent': 'ioBroker', 'Accept-Encoding': 'gzip, compress, deflate, br' }, method: 'get', url: 'http://undefined/cm?cmnd=Status0', 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: 100, _options: { maxRedirects: 21, maxBodyLength: Infinity, protocol: 'http:', path: '/cm?cmnd=Status0', method: 'GET', headers: [Object: null prototype], agents: [Object], auth: undefined, family: undefined, beforeRedirect: [Function: dispatchBeforeRedirect], beforeRedirects: [Object], hostname: 'undefined', port: '', agent: undefined, nativeProtocols: [Object], pathname: '/cm', search: '?cmnd=Status0' }, _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _onNativeResponse: [Function (anonymous)], _currentRequest: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: 100, 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: [Socket], _header: 'GET /cm?cmnd=Status0 HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: ioBroker\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'sentry-trace: add4a98aab4944a98b3bcaea981f525c-838cdbea701b62b1\r\n' + 'baggage: sentry-environment=production,sentry-release=iobroker.javascript%407.8.0,sentry-public_key=f3b9740caaee4ee69eb68019d71526ff,sentry-trace_id=add4a98aab4944a98b3bcaea981f525c\r\n' + 'Host: undefined\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/cm?cmnd=Status0', _ended: false, res: null, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'undefined', protocol: 'http:', _redirectable: [Circular *1], [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kHighWaterMark)]: 16384, [Symbol(kRejectNonStandardBodyWrites)]: false, [Symbol(kUniqueHeaders)]: null }, _currentUrl: 'http://undefined/cm?cmnd=Status0', [Symbol(kCapture)]: false }, cause: Error: getaddrinfo ENOTFOUND undefined at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'undefined' }}
Was muss ich tun? Kann man das fixen?
LG aus dem Sauerland
Jörg
-
Guten Morgen,
dem Script fehlt die IP Adresse vom Panel.
Bitte prüfen das unter MQTT diese Datenpunkte für das Panel da sind. (entscheidend ist Status0) ggf . den Inhalt mal postenstimmen die Einstellungen der Pfade im Script Punkt 1 und 2, bitte noch einmal prüfen ?
Script neu durch starten, wenn der Fehler immer noch da ist, solltest du die automatisch angelegten Datenpunkte unter 0_userdata.0 und alias.0 noch einmal löschen und das Script dann neu starten.
-
@eierfeile
läuft hier ohne Probleme seit Wochen stabil.schon mal den ioBroker neu gestartet.
wie sieht dein Gesamtsystem aus. bitte mal die Ausgabe von
iob diag
-
@kuckuckmann Ja, habe ich. Welche Datenpunkte genau interessieren dich denn?
-
@armilar Hattest du denn zufällig schon Zeit gehabt es zu testen?
-
nein - meine Emulation hat keine Tasten. Das wäre ein Eingriff in eines meiner Produktiv-Panels
Bekomme demnächst noch ein weiteres NSPanel für derartige Tests mit den Buttons. Daher kann sich das etwas ziehen...
Hatte es aber auch so verstanden, dass sich @Kuckuckmann der Sache annehmen wollte???
-
@lustig29 sagte in SONOFF NSPanel mit Lovelace UI:
@kuckuckmann Ja, habe ich. Welche Datenpunkte genau interessieren dich denn?
Kannst Du mal, wenn Du den Taster betätigst, schauen, wie die Datenpunkte des Shelly im IoBroker reagieren?
Es scheint dort Datenpunkte wie Longpress, Button, etc. zu geben, um eine Steuerung aufzubauen müsste ich wissen, wie die reagieren. Auf der Shelly Oberfläche hast Du ja einen Slider zum Dimmen, was passiert in den Datenpunkten, wenn Du das machst?
Ist das ein Shelly Dimmer 1 oder 2?Noch eine andere Frage: Bestehst Du darauf, das Licht an den Buttons des NSPanels zu steuern oder darf es auch eine Seite auf dem Display sein?
@Armilar das ist dann wohl Arbeitsverteilung, wa?
Ich nehme mich dem an.
LG
-
Also Switch und Longpush 1ändern sich.
-
Wo muss ich denn die Cards einfügen?
-
@lustig29
Hast Du dich schon mal mit unserer Wiki auseinander gesetzt? -
@kuckuckmann Ja, habe ich schon. Aber ich verstehe nicht wo ich die Cards einsetzten muss.
-
@kuckuckmann Ja, habe ich schon. Aber ich verstehe nicht wo ich die Cards einsetzten muss.
-
hier:
-
@kuckuckmann said in SONOFF NSPanel mit Lovelace UI:
Da Du den Advanced Mode des Screensaver nutzt (Ist das an dem Ort notwendig?)
Hab mich jetzt doch entschieden den Screensaver 1 Layout (Alternativ) zu nehmen, da dort tatsächlich der andere garnicht nötig bzw. praktikabel ist.
Ergebnis ist:
funkrioniert also wie gewünscht
Jetzt tauchen allerdings noch Fragen auf:
Die bottomScreensaver Entity 1-3 kann ich ja nur mit 'festen' Werten belegen (wenn ich das richtig verstanden hab), also nicht dynamisch mit z.B. 'open', 'closed' oder sowas ( sowie bei den 'indicatorScreensaverEntity's', richtig ?Wie man auf der linken Seite im Screensaver sieht, hab ich ich auf 'bottomScreeensaverEntity 5' die Funktion gelegt das das WC Frei ist, schöner wäre natürlich wenn das größer wäre, z.B wenn man man die 'Alias Wettervorhersage oben drüber weg machen könnte, aber das geht ja wohl nich so einfach.
Am besten wäre wenn man den unteren Teil, also unterhalb der Linie vom Datum frei belegen könnte, weil z.B. für meinen Anwendungsfall brauche ich da eigentlich überhaupt keine Wetterinformationen.
Gibt es da eine Möglichkeit? Feature Request?
-
dann nutzte den Standard Screensaver und die Datenpunkte unter 0_userdata.0.nspanel......
ScreensaverInfo.popupNotifyHeading
ScreensaverInfo.popupNotifyTextgibt aber kein Icon dort
-
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
dann nutzte den Standard Screensaver und die Datenpunkte unter 0_userdata.0.nspanel......
Nicht falsch verstehen, der popUpnotify Teil ist für mich abgehakt, der funktioniert ja jetzt so wie ich das wollte, es ging mir bei den Fragen um den Screensaver an sich (also wenn kein popUp Fenster offen ist).
-
@icebear
Ich denke @TT-Tom hat da nicht ganz unrecht.Unterhalb der Linie gibt es die beiden Felder popupNotifyHeading und popupNotifyText, die man bestücken kann und die überlagern auch die ganzen WetterIcons.
Leider kann man da kein anderes Icon einfügen, da geht nur Text.
Wenn Du deinen Ursprünglichen Test mit dem Popup auf dem Extended Screensaver mal nimmst und würdest ihn auf dem normalen Screensaver anwenden, verstehst Du vlt. was wir meinen. Zum besseren verstädnis, hier mal wie das ganze in der HMI aussieht:...und hier mal ein Bsp. anhand von deinen bisherigen Bildern zusammengeschnitten:
Was auch immer Dir dann fehlt, wäre in der tat ein Feature Request.
LG
-
Warum drehst du nicht einfach Text und Header in der Screensaver Notifcation und gibst dem Screensaver einen roten Hintergrund, wenn besetzt?
Dann wäre der Text oben mit einem großen "besetzt" und die Farbe signalisiert es ebenfalls ...
-
Ah, verstehe was ihr meint. Das probier ich mal aus.
@Kuckuckmann , kann man bei deinem Beispiel die Textfarbe festlegen? oder müsste ich das so machen wie von @Armilar beschrieben mit dem Hintergrund?
-