NEWS
SONOFF NSPanel mit Lovelace UI
-
@armilar Sorry, dauert was.
Nachdem ich den Rechner aus gemacht hatte und den ESP dadurch natürlich Stromlos bekomme ich es jetzt überhaupt nicht mehr zum laufen. Auch die WLAN Verbindung zum ESP bricht ständig ab. Da ich neu im ESP Thema bin muss ich da erstmal probieren.
-
Lasse dir Zeit...
-
@armilar Ich hoffe du meinst das aus CustomSend:
weatherUpdate~~~~19017~~1 °C~~~~65168~Leistung~1090 W~~~~34351~Wind~3.3km/h~~~~26095~UV~0~~~~64750~Luft~93%~
Bei dem echten Panel sieht das so aus:
statusUpdate~~17299~梅20.4°~65504~~~
Ich habe diese zwei Unterschiede im Script: Links echtes Panel, Rechts Emulator
Hier habe ich lediglich den Namen in der Anzeige geändert:
-
Ich meinte tatsächlich die Infos aus dem mittleren Screenshot. Also alles da...
Das DEV-Emu-Panel dürfte keine Analog Temperatur bekommen, da es keinen Temperatursensor hat. Also funktioniert die Suche vom
NSPanel_Path + 'Sensor.ANALOG.Temperature'
nicht. Trage bitte in den Datenpunkt unter Objekte des DEV-Panels mal eine fiktive Temperatur (z.B. 22,1) ein.
-
@armilar OK.
Teste ich morgen früh.
Danke abermals für deine schnelle Hilfe.
Habe ich das in der Anleitung eigentlich überlesen?
-
Hat sich viel getan in der Zwischenzeit. Und der 2. Datenpunkt in den MRIcons ist neu... Wird also nicht explizit drin stehen.
Fakt ist: der EMU-ESP32 hat keine Relais und keine Sensoren. Bis auf die ESP-Temperatur mit
setOption146 1
Demnach bleibt die Temperatur im Datenpunkt auch ungefüllt. Wenn du jetzt auf den Datenpunkt zugreifst und mit toFixed() eine Nachkommastelle mitgibst, dann hast du 2 Fehler auf einmal.
- Der Datenpunkt ist null
- Die Nachommastelle von null ist nicht da
Also: einmal unter:
0_userdate.0.NSPanel.Dev.Sensor.ANALOG.Temperature
irgendeine Zahl für irgendeine Sensortemperatur reinschreiben und der Spuk sollte ein Ende haben.
-
@armilar ok.
Wie geschrieben mache ich morgen früh.
Habe die Anleitung so oft gelesen das ich schon sorge hatte ich habe das überlesen.
EDIT: Object angelegt, Wert eingetragen und ruhe ist im Log.
DANKE!
-
@wendy2702 sagte in SONOFF NSPanel mit Lovelace UI:
Habe die Anleitung so oft gelesen das ich schon sorge hatte ich habe das überlesen.
So habe die Wiki für den Emulator mal kurz an den aktuellen Stand angepasst.
-
@armilar sagte in SONOFF NSPanel mit Lovelace UI:
Fehlermeldung im Editor:
Error:Invalid number of arguments:qrcode m1.x,m1.y,200,defaultBcoColor,65535,-1,vaQR.txt( Double click to jump to code) Error:Invalid number of arguments:qrcode m0.x,m0.y,200,defaultBcoColor,65535,-1,vaQR.txt( Double click to jump to code) Error:Compile failed! 2 Errors, 1 Warnings,
Kommt vom letzten Update des Nextion Editor's
https://nextion.tech/download/nextion-setup-v1-63-3.exe
https://nextion.tech/download/nextion-setup-v1-63-3.zip
Installiert mal die Version... Die aber dann nicht uppen...Wie ist denn dann die Syntax mit der aktuellen Version des Nextion Editor's ?
-
Es gibt keine Syntax für einen Bug im Nextion Editor...
Deinstallieren und die 1.63.3 installieren.
-
qrcode 8,m1.x,m1.y,200,defaultBcoColor,65535,-1,vaQR.txt qrcode 8,m0.x,m0.y,200,defaultBcoColor,65535,-1,vaQR.txt
Diese Änderung ist seitens Nextion aber nirgends dokumentiert und da neue Editor Versionen in der Vergangenheit lustige Seiteneffekte hatten werde ich mit dem Update von dem Editor noch etwas warten, die Version .1 mit Bugfixes kam ja auch schon, erstmal abwarten, was da sonst noch so kommt.
-
Hallo Zusammen,
ich bin gerade dabei meine Aliase etwas aufzuräumen. Dabei möchte ich die NSPanel Aliase in eine höhere Ebene bringen.
Da die notwenidgen Aliase selbstständig angelegt werden, habe ich einfach nur den Alias Pfad geändert.
Jedoch werden nicht Aliase automatisch angelegt. Anbei zwei Bilder:
Alter Pfad
Neuer Pfad
Als Beispiel hier der Alias Config. Es wird nur ein Bruchteil von dem angelegt was vorher da war.
Woran liegt das?
Skriptversion 3.9.0.2
VG
Nico -
@niiccooo1 Lösche mal die entsprechenden Datenpunkte unter 0_userdata. Im Skript wird oftmals abgefragt ob userdata existiert, falls nein wird der Datenpunkt dort erzeugt und anschließend das Alias angelegt.
-
Hallo zusammen, ich komme leider nicht weiter .
Aktuell sieht mein Screensaver so aus und ich weiß leider nicht warum?
Könnt ihr mir eventuell weiter helfen.
-
@venice Sieht aus, als ob die verwendete Skriptversion und TFT Firmware nicht zusammenpasst. Kannst du mal deine verwendeten Versionen posten?
-
@ravenst0ne Super Danke dir es hat geklappt.
-
@ravenst0ne
Hat geklappt! -
Hallo,
ich hatte bis zur aktuellen Version (V3.9.0.2) den weatherForecast immer variabel eingestellt.
Bis Mittag: den aktuellen Tag + 4 Tage (let i = 1 ; i < 5;) und
Nachmittag: Morgen + 4 Tage (let i = 2 ; i < 6;).
Das hat bis zur V3.9.0.2 immer funktioniert.
Dies funktioniert leider nicht mehr. Gibt es eine Möglichkeit, das es wieder funktioniert?// AccuWeather Forecast Tag 1 - Tag 5 -- Wenn weatherForecast = true for (let i = getState(NSPanel_Path + "ScreensaverInfo.weatherDayStart").val; i < getState(NSPanel_Path + "ScreensaverInfo.weatherDayEnd").val; i++) { //for (let i = 2 ; i < 6; i++) {
-
@bumbum said in SONOFF NSPanel mit Lovelace UI:
Hallo zusammen, ich verwende das NSPanel mit ioBroker und hab auch die Aktuelle Version des TFT Treibers und auch die aktuelle Verson des Skripts (TypeScript v3.9.0.1).
Ich habe das Problem, dass bei mir einige Datenpunkte nicht angezeigt werden. Beispielsweise ist die Seite "Dimmode (1)" (NSPanel_ScreensaverDimmode), komplett leer. Die Aliase und die Datenpunkte sind aber da. Auch fehlt die Anzeige der SSID auf der Seite NSPanel_Wifi_Info_2. Wie kann das sein? Hab ich was übersehen? Alle anderen Seiten funktionieren soweit.Schon mal danke für die Hilfe.
Hi, konnte das Problem schon jemand lösen, habe heute das Update gemacht und habe genau das gleich Problem.async function InitDimmode() { try { // Screensaver nachts auf dunkel ("brightnessNight: z.B. 2") oder aus ("brightnessNight:0") if (!existsState(NSPanel_Path + 'NSPanel_Dimmode_brightnessDay')) { await createStateAsync(NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', <iobJS.StateCommon>{ type: 'number' }); await setStateAsync(NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', <iobJS.State>{ val: 8, ack: true }); setObject(AliasPath + 'Dimmode.brightnessDay', {type: 'channel', common: {role: 'slider', name:'brightnessDay'}, native: {}}); await createAliasAsync(AliasPath + 'Dimmode.brightnessDay.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); await createAliasAsync(AliasPath + 'Dimmode.brightnessDay.SET', NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); } if (!existsState(NSPanel_Path + 'NSPanel_Dimmode_hourDay')) { await createStateAsync(NSPanel_Path + 'NSPanel_Dimmode_hourDay', <iobJS.StateCommon>{ type: 'number' }); await setStateAsync(NSPanel_Path + 'NSPanel_Dimmode_hourDay', <iobJS.State>{ val: 7, ack: true }); setObject(AliasPath + 'Dimmode.hourDay', {type: 'channel', common: {role: 'slider', name:'hourDay'}, native: {}}); await createAliasAsync(AliasPath + 'Dimmode.hourDay.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_hourDay', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); await createAliasAsync(AliasPath + 'Dimmode.hourDay.SET', NSPanel_Path + 'NSPanel_Dimmode_hourDay', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); } if (!existsState(NSPanel_Path + 'NSPanel_Dimmode_brightnessNight')) { await createStateAsync(NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', <iobJS.StateCommon>{ type: 'number' }); await setStateAsync(NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', <iobJS.State>{ val: 1, ack: true }); setObject(AliasPath + 'Dimmode.brightnessNight', {type: 'channel', common: {role: 'slider', name:'brightnessNight'}, native: {}}); await createAliasAsync(AliasPath + 'Dimmode.brightnessNight.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); await createAliasAsync(AliasPath + 'Dimmode.brightnessNight.SET', NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); } if (!existsState(NSPanel_Path + 'NSPanel_Dimmode_hourNight')) { await createStateAsync(NSPanel_Path + 'NSPanel_Dimmode_hourNight', <iobJS.StateCommon>{ type: 'number' }); await setStateAsync(NSPanel_Path + 'NSPanel_Dimmode_hourNight', <iobJS.State>{ val: 22, ack: true }); setObject(AliasPath + 'Dimmode.hourNight', {type: 'channel', common: {role: 'slider', name:'hourNight'}, native: {}}); await createAliasAsync(AliasPath + 'Dimmode.hourNight.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_hourNight', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); await createAliasAsync(AliasPath + 'Dimmode.hourNight.SET', NSPanel_Path + 'NSPanel_Dimmode_hourNight', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); } const vTimeDay = getState(NSPanel_Path + 'NSPanel_Dimmode_hourDay').val; const vTimeNight = getState(NSPanel_Path + 'NSPanel_Dimmode_hourNight').val; const timeDimMode = <DimMode>{ dimmodeOn: true, brightnessDay: getState(NSPanel_Path + 'NSPanel_Dimmode_brightnessDay').val, brightnessNight: getState(NSPanel_Path + 'NSPanel_Dimmode_brightnessNight').val, timeDay: (vTimeDay < 10) ? `0${vTimeDay}:00` : `${vTimeDay}:00`, timeNight: (vTimeNight < 10) ? `0${vTimeNight}:00` : `${vTimeNight}:00` }; // timeDimMode Day schedule({ hour: getState(NSPanel_Path + 'NSPanel_Dimmode_hourDay').val, minute: 0 }, () => { ScreensaverDimmode(timeDimMode); }); // timeDimMode Night schedule({ hour: getState(NSPanel_Path + 'NSPanel_Dimmode_hourNight').val, minute: 0 }, () => { ScreensaverDimmode(timeDimMode); }); ScreensaverDimmode(timeDimMode); } catch (err) { console.warn('function InitDimmode: ' + err.message); } }
Im Code wird zwar der Pfad abgefragt aber nie angelegt => muss man die Datenpunkte manuell anlegen?
AliasPath + 'Dimmode.brightnessDay' AliasPath + 'Dimmode.hourDay' AliasPath + 'Dimmode.brightnessNight' AliasPath + 'Dimmode.hourNight'
EDIT: Ich habe ein hinbekommen, habe nochmal alle vom Script erzeugten Alias gelöscht und dann wurden sie auch angelegt.~~
Aber ein Frage habe ich noch => mit der neuen Version funktioniert der Touch Display nur noch ruckelhaft, man muss übel oft klicken damit überhaupt was passiert teilweise landet man im Debug Menü. Wie bekomme ich das weg?
EDIT2: Ich wollte heute das nächste Panel umstellen, bei diesem werden einfach die Alias nicht erzeugt, irgendwie ist der Wurm drin
Dimmode wird nicht erzeugt, der Reboot Button fehlt unter Service fehlt, der Config.xxx Alias wird auch nicht erzeugt, bitte um Hilfe -
das Script prüft die Pfade unter 0_userdata.0., wenn sie da sind, wird nix angelegt. Soll heißen du solltest unter 0_userdata und unter Alias die Objekte löschen, dann sollten auch alle neu angelegt werden.
Edit2 : hast du dafür ein separates Script mit einer eigenen Objektstruktur?