NEWS
SONOFF NSPanel mit Lovelace UI
-
@kerschte_de sagte in SONOFF NSPanel mit Lovelace UI:
Das Partitionierungs-Thema bei den Fehlerbehebungen würde sich darin äußern, dass sich das TFT nicht hätte flashen lassen? Oder kann es auch für das Konnektivitätsproblem sorgen?
Es sei denn der Berry-Driver ist nicht sauber installiert...
Da das Panel auf "Waiting for Content" steht und die Daten über den CustomSend über den BerryDriver in das Display gelangen, wäre das noch eine Option...
Lösche nochmal "alle" Files (Feuersymbol) aus dem
Dann in die Konsole und folgendes ausführen:
Backlog UrlFetch https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be; SetOption151 0;Restart 1
Diese Option installiert den Berry automatisch.
-
@armilar ... getan. Hier der Auszug aus der console:
00:00:00.001 HDW: ESP32-D0WD-V3 v3.0 00:00:00.064 UFS: FlashFS mounted with 288 kB free 00:00:00.102 CFG: Loaded from File, Count 245 00:00:00.113 QPC: Count 1 00:00:00.168 BRY: Berry initialized, RAM used 3904 bytes 00:00:00.182 Project tasmota - Tasmota Version 14.1.0(release-nspanel)-3_0_0(2024-06-03T11:56:09) 00:00:00.348 NXP: Initializing Driver 00:00:00.351 BRY: Successfully loaded 'autoexec.be' 00:00:00.357 NXP: Screen Initialized 00:00:00.468 RSL: RESULT = {"CustomRecv":"event,startup,53,eu"} 00:00:01.000 WIF: Connecting to AP1 GlasRepThiel Channel 1 BSSId 74:42:7F:B9:EC:1B in mode HT20 as NSPanel-85C180-0384... 00:00:03.483 WIF: Connected 00:00:03.738 HTP: Web server active on NSPanel-85C180-0384 with IP address 192.168.188.230 17:57:39.734 MQT: Attempting connection... 17:57:39.753 MQT: Connected 17:57:39.755 MQT: RagowSmartHome/NSPanel_85C180/tele/LWT = Online (retained) 17:57:39.757 MQT: RagowSmartHome/NSPanel_85C180/cmnd/POWER = 17:57:39.761 MQT: RagowSmartHome/NSPanel_85C180/tele/INFO1 = {"Info1":{"Module":"NSPanel","Version":"14.1.0(release-nspanel)","FallbackTopic":"cmnd/DVES_85C180_fb/","GroupTopic":"RagowSmartHome/tasmotas/cmnd/"}} 17:57:39.785 MQT: RagowSmartHome/NSPanel_85C180/tele/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"NSPanel-85C180-0384","IPAddress":"192.168.188.230","IP6Global":"","IP6Local":"fe80::3ee9:eff:fe85:c180%st1"}} 17:57:39.797 MQT: RagowSmartHome/NSPanel_85C180/tele/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":80}} 17:57:39.810 MQT: RagowSmartHome/NSPanel_85C180/stat/RESULT = {"POWER1":"OFF"} 17:57:39.822 MQT: RagowSmartHome/NSPanel_85C180/stat/POWER1 = OFF 17:57:39.823 MQT: RagowSmartHome/NSPanel_85C180/stat/RESULT = {"POWER2":"OFF"} 17:57:39.835 MQT: RagowSmartHome/NSPanel_85C180/stat/POWER2 = OFF 17:57:39.890 MQT: RagowSmartHome/NSPanel_85C180/stat/RESULT = {"Command":"Unknown"} 17:57:39.943 MQT: RagowSmartHome/NSPanel_85C180/stat/RESULT = {"CustomSend":"Done"} 17:57:41.139 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:57:42.871 QPC: Reset 17:57:43.868 MQT: RagowSmartHome/NSPanel_85C180/tele/STATE = {"Time":"2024-09-05T17:57:43","Uptime":"0T00:00:08","UptimeSec":8,"Heap":133,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":200,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"GlasRepThiel","BSSId":"74:42:7F:B9:EC:1B","Channel":1,"Mode":"HT20","RSSI":100,"Signal":-44,"LinkCount":1,"Downtime":"0T00:00:03"}} 17:57:43.905 MQT: RagowSmartHome/NSPanel_85C180/tele/SENSOR = {"Time":"2024-09-05T17:57:43","ANALOG":{"Temperature1":29.3},"ESP32":{"Temperature":53.9},"TempUnit":"C"} 17:57:47.121 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:57:53.521 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:57:59.422 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:58:05.421 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:58:11.321 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:58:17.320 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:58:23.321 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:58:29.222 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 17:58:35.221 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"}
Danach reboot des Displays. Leider kreiselt es weiter.
Mir fällt noch ein. Der Beispiel-Datensatz für das Template habe ich aufgrund der vielen Versuche noch aus der englischen Anleitung übernommen. Der weicht ja etwas ggü der deutschen Anleitung ab:
englische Anleitung:
{"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1,"CMND":"ADCParam 2,11200,10000,3950 | Sleep 0 | BuzzerPWM 1"}
deutsche Anleitung:
{"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1}
Ist bei mir gerade "stochern im Nebel" --> tut mir leid
-
@kerschte_de sagte in SONOFF NSPanel mit Lovelace UI:
event,startup,53,eu
Was passiert, wenn du in der Console
CustomSend time~18:00
eingibst
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
CustomSend time~18:00
Dann wird in der console so darauf reagiert:
18:04:19.608 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 18:04:25.508 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 18:04:31.508 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 18:04:35.939 MQT: RagowSmartHome/NSPanel_85C180/tele/STATE = {"Time":"2024-09-05T18:04:35","Uptime":"0T00:05:09","UptimeSec":309,"Heap":126,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":526,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":213},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"GlasRepThiel","BSSId":"74:42:7F:B9:EC:1B","Channel":1,"Mode":"HT20","RSSI":100,"Signal":-42,"LinkCount":1,"Downtime":"0T00:00:04"}} 18:04:35.977 MQT: RagowSmartHome/NSPanel_85C180/tele/SENSOR = {"Time":"2024-09-05T18:04:35","ANALOG":{"Temperature1":29.3},"ESP32":{"Temperature":54.4},"TempUnit":"C"} 18:04:37.408 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 18:04:43.408 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 18:04:47.058 CMD: CustomSend time~18:00 18:04:47.069 MQT: RagowSmartHome/NSPanel_85C180/stat/RESULT = {"CustomSend":"Done"} 18:04:49.408 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"} 18:04:55.308 MQT: RagowSmartHome/NSPanel_85C180/tele/RESULT = {"CustomRecv":"event,startup,53,eu"}
-
Welche Daten kommen bei
Mqtt-Client……Tele.Result an. -
Wahrscheinlich nur
event,startup,53,eu
Der CustomSend funktioniert nicht. Könnte man evtl. mal vom mqtt-client.0 auf den mqtt.0 umsteigen?
-
@armilar genau das passiert. Die Eingabe kommt nicht an.
-
Hier die Daten der beiden Datenpunkte:
0^17:00+60+120+180+240^21:00+300+360+420+480^01:00+540+600+660+720^05:00+780+840+900+960^09:00+1020+1080+1140+1200^13:00+1260+1320+1380~0:262~21:259~62:250~103:243~144:235~185:230~226:231~267:235~309:237~391:236~473:234~597:232~679:232~802:232~843:237~885:243~967:246~1008:246~1090:249~1214:252~1337:254~1419:255
Aber die Seite müsste doch angezeigt werden, oder?
-
Zeige mal bitte alle Einstellungen von der mqtt Instanz.
-
Ich habe den Client jedoch schon gelöscht und richte gerade den Broker/Client-Adapter als Client ein. Ziel: Instanz soll mqtt.0 werden.
-
@kerschte_de
Okay so läuft es bei mir auch. -
@gregors
Du musst den Alias nochmal neu anlegen. Der Datenpunkt heißt ACTUAL, mehr nicht. -
Das Script habe ich nun angepasst und MQTT läuft wieder auf dem ioB.
javascript.0 2024-09-05 18:31:20.888 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Icon1 else false ~17299~ javascript.0 2024-09-05 18:31:20.887 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Entity ist kein String javascript.0 2024-09-05 18:31:20.887 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Icon1 else false javascript.0 2024-09-05 18:31:20.887 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Entity ist kein String javascript.0 2024-09-05 18:31:20.886 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: HandleScreensaverUpdate payload: weatherUpdate~~~~65504~~29.8 °C~~~~65363~Sonne~06:24~~~~34351~Wind~6.1m/s~~~~34351~Böen~9.0m/s~~~~65535~Windr.~O~ javascript.0 2024-09-05 18:31:20.886 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: moments.js --> Datum O valid?: false javascript.0 2024-09-05 18:31:20.866 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: moments.js --> Datum 2024-09-05T06:24:00+02:00 valid?: true javascript.0 2024-09-05 18:31:04.386 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: renderCurrentPage javascript.0 2024-09-05 18:31:04.151 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: HandleMessage -> sleepReached javascript.0 2024-09-05 18:31:04.151 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Icon1 else false ~17299~ javascript.0 2024-09-05 18:31:04.150 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Entity ist kein String javascript.0 2024-09-05 18:31:04.150 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Icon1 else false javascript.0 2024-09-05 18:31:04.150 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Entity ist kein String javascript.0 2024-09-05 18:31:04.149 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Icon1 else false ~17299~ javascript.0 2024-09-05 18:31:04.149 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Entity ist kein String javascript.0 2024-09-05 18:31:04.149 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Icon1 else false javascript.0 2024-09-05 18:31:04.149 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: Entity ist kein String javascript.0 2024-09-05 18:31:04.147 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: HandleScreensaverUpdate payload: weatherUpdate~~~~65504~~29.8 °C~~~~63878~Do~15° 33°~~~~65504~Fr~14° 30°~~~~38066~Sa~17° 32°~~~~65504~So~17° 32°~ javascript.0 2024-09-05 18:30:55.808 error script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: AxiosError: getaddrinfo ENOTFOUND undefined at Function.AxiosError.from (file:///opt/iobroker/node_modules/@iobroker-javascript.0/axios/lib/core/AxiosError.js:92:14) at RedirectableRequest.handleRequestError (file:///opt/iobroker/node_modules/@iobroker-javascript.0/axios/lib/adapters/http.js:620:25) at RedirectableRequest.emit (node:events:519:28) at RedirectableRequest.emit (node:domain:488:12) at ClientRequest.eventHandlers.<computed> (/opt/iobroker/node_modules/follow-redirects/index.js:38:24) at ClientRequest.emit (node:events:531:35) at ClientRequest.emit (node:domain:488:12) at emitErrorEvent (node:_http_client:108:11) at Socket.socketErrorListener (node:_http_client:511:5) at Socket.emit (node:events:519:28) at Axios.request (file:///opt/iobroker/node_modules/@iobroker-javascript.0/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', 'fetch' ], 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 { _events: { close: undefined, error: [Function: handleRequestError], prefinish: undefined, finish: undefined, drain: undefined, response: [Function: handleResponse], socket: [Function: handleRequestSocket] }, _writableState: WritableState { highWaterMark: 16384, length: 0, corked: 0, onwrite: [Function: bound onwrite], writelen: 0, bufferedIndex: 0, pendingcb: 0, [Symbol(kState)]: 17580812, [Symbol(kBufferedValue)]: null }, _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: [], _eventsCount: 3, _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: true, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: 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: 0ab3228bdcbf4434805cb5f56bb6a367-b33093e5bdb0da64\r\n' + 'baggage: sentry-environment=production,sentry-release=iobroker.javascript%408.7.6,sentry-public_key=f3b9740caaee4ee69eb68019d71526ff,sentry-trace_id=0ab3228bdcbf4434805cb5f56bb6a367\r\n' + 'Host: undefined\r\n' + 'Connection: keep-alive\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/cm?cmnd=Status0', _ended: false, res: null, aborted: false, timeoutCb: [Function: emitRequestTimeout], upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'undefined', protocol: 'http:', _redirectable: [Circular *1], [Symbol(shapeMode)]: false, [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(shapeMode)]: true, [Symbol(kCapture)]: false }, cause: Error: getaddrinfo ENOTFOUND undefined at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:120:26) { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'undefined' }} javascript.0 2024-09-05 18:30:54.117 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: renderCurrentPage javascript.0 2024-09-05 18:30:53.858 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: renderCurrentPage javascript.0 2024-09-05 18:30:53.231 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: online tasmota firmware version => 14.2.0 javascript.0 2024-09-05 18:30:53.230 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: online tasmota firmware version => 14.2.0 javascript.0 2024-09-05 18:30:53.226 info script.js.common.NSPanel.NSPANEL_WZ_4_4_0_1: renderCurrentPage
--> Das Display ist ERWACHT !!! <--
-
@kerschte_de
Na dann kann es ja weiter gehen, viel Spaß noch. -
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
@lustig29
Ist ganz normaler Auslieferungszustand ohne SetOption x
Das heißt SetOption73 und SetOption114 sind auch aus. Was Du auch in der Tasmota-Konsole eingestellt hast, mach es rückgängig und du hörst die Relais auch schalten…Wie genau mache ich das rückgängig?
Über den userdata_Datenpunkt kann ich die Relais an und aus schalten. Per Taste am Gerät passiert aber nichts. -
@lustig29
In dem du die Option auf 0 setzt.SetOption73 0
-
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
SetOption73 0
Perfekt. Danke für die schnelle Hilfe.
-
@lustig29
Musst du mit allen Optionen machen, die du gesetzt hast. -
Wollte es alleine versuchen, aber es klappt einfach nicht.
Ich habe 3 elektrische Rolläden.
Dazu wollte ich eine Seite bauen, wo der Zustand der einzelnen Rolläden dargestellt wird.
Die Idee war das "blinds-horizontal" Icon zu nutzen. Daneben der Stellwert der Rollade. Dazu noch 2 Pfeile "hoch" und "runter". Das Icon sollte die Farbe wechseln, Grün bei Wert <10%, Rot >75%.
Als Alias habe ich 4 Werte angelegt.
// Rolläden let Rolladen: PageType = { 'type': 'cardEntities', 'heading': 'Rolläden', 'useColor': true, 'subPage': false, 'items': [ // <PageItem>{ id: 'alias.0.NSPanel.Rolläden.AZ.ACTUAL', icon: 'window-shutter', name: 'Rolladen test', interpolateColor: true}, // <PageItem>{ id: 'alias.0.NSPanel.Rolläden.AZ.CLOSE', icon: "'button1Page', name: 'runter'}, // <PageItem>{ id: 'alias.0.NSPanel.Rolläden.AZ.OPEN', icon: 'button2Page', name: 'hoch'}, <PageItem>{ id: 'alias.0.NSPanel.Rolläden.AZ.ACTUAL', icon: 'blinds-horizontal', name: 'Büro'}, ] };
Es wird nur die leere Page mit der Überschrift angezeigt.