NEWS
SONOFF NSPanel mit Lovelace UI
-
@markus-s Irgendwann geht es einfach so weiter...
-
-
-
Habe den Fehler gefunden und bereits im github ein Bugfix angelegt.
War ein - "ich sag es mal so" - selten dämlicher Fehler von mir in der bExit...
Einfach den Code im unteren Teil ab:
// _________________________________ Ab hier keine Konfiguration mehr ________
komplett austauschen. Dann sollte es wieder laufen.
-
Leg mal das komplette Tasmota-Log (ab Neustart und FlashNextion...) vom in Code-Tags . Nur der Screenshot hilft hier nicht viel...
-
00:00:00.003 HDW: ESP32-D0WD-V3 00:00:00.106 UFS: FlashFS mounted with 280 kB free 00:00:00.189 CFG: Loaded from File, Count 27 00:00:00.205 QPC: Count 1 00:00:00.473 BRY: Berry initialized, RAM used=4041 bytes 00:00:00.504 Project tasmota - Tasmota Version 12.2.0(nspanel)-2_0_5(2022-10-17T08:40:00) 00:00:00.016 NXP: Initializing Driver 00:00:00.023 BRY: Successfully loaded 'autoexec.be' 00:00:01.616 WIF: Connecting to AP1 DeepSpaceNine Channel 1 BSSId B4:FB:E4:11:92:60 in mode 11n as tasmota-D3CE24-3620... 00:00:06.332 WIF: Connected 00:00:06.594 HTP: Web server active on tasmota-D3CE24-3620 with IP address 10.1.1.185 16:51:52.585 RSL: INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.2.0(nspanel)","FallbackTopic":"cmnd/DVES_D3CE24_fb/","GroupTopic":"cmnd/tasmotas/"}} 16:51:52.600 RSL: INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-D3CE24-3620","IPAddress":"10.1.1.185"}} 16:51:52.604 RSL: INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":10}} 16:51:52.618 RSL: RESULT = {"POWER1":"OFF"} 16:51:52.620 RSL: POWER1 = OFF 16:51:52.623 RSL: RESULT = {"POWER2":"OFF"} 16:51:52.625 RSL: POWER2 = OFF 16:51:52.769 QPC: Reset 16:51:56.765 RSL: STATE = {"Time":"2022-11-28T16:51:56","Uptime":"0T00:00:12","UptimeSec":12,"Heap":137,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":313,"MqttCount":0,"Berry":{"HeapUsed":14,"Objects":223},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"DeepSpaceNine","BSSId":"B4:FB:E4:11:92:60","Channel":1,"Mode":"11n","RSSI":82,"Signal":-59,"LinkCount":1,"Downtime":"0T00:00:06"}} 16:51:56.806 RSL: SENSOR = {"Time":"2022-11-28T16:51:56","ANALOG":{"Temperature1":29.2},"TempUnit":"C"} 16:53:00.551 CMD: FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.6.0.tft 16:53:00.562 RSL: RESULT = {"FlashNextion":"Done"} 16:53:00.603 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.6.0.tft
-
bist du sicher, dass das Subnetz 10.1.1. in das Internet darf oder kommt?
-
Ja - sehr sicher!
-
Lass uns auf @joBr99 warten. Bei den Unwegsamkeiten beim Flashen kennt er sich besser aus. Ich transportiere nur die Daten zum Tasmota.
Ist aber dennoch, merkwürdig, dass nicht einmal das Flashen startet. Geht bei korrekter Installation des Berry-Driver eigentlich sehr schnell und kann auch wiederholt werden. Auch wenn es nervt, es ist "keine" Komponente im Router an, die der IP 10.1.1.185 untersagt, sich mit der Außenwelt zu verbinden?
-
Mit
weblog 3
in der tasmota konsole kannst du etwas mehr log output bekommen.17:53:33.461 CMD: weblog 3 17:53:33.472 MQT: stat/tasmota_nspwohn/RESULT = {"WebLog":3} 17:53:49.603 CMD: FlashNextion http://nspanel.pky.eu/lui.tft 17:53:49.606 SRC: WebConsole from 192.168.62.152 17:53:49.609 CMD: Grp 0, Cmd 'FLASHNEXTION', Idx 1, Len 29, Pld -99, Data 'http://nspanel.pky.eu/lui.tft' 17:53:49.623 MQT: stat/tasmota_nspwohn/RESULT = {"FlashNextion":"Done"} 17:53:49.670 FLH: host: nspanel.pky.eu, port: 80, get: /lui.tft 17:53:49.732 FLH: Connected:true 17:53:49.840 FLH: Retry 2 17:53:50.871 FLH: HTTP Respose is 200 OK or 206 Partial Content 17:53:50.882 FLH: Flash file size: 7957460 17:53:50.887 NXP: Nextion command sent = bytes('4452414B4A485355594447424E434A48474A4B534842444EFFFFFF') 17:53:50.892 NXP: Nextion command sent = bytes('7265636D6F643D30FFFFFF') 17:53:50.897 NXP: Nextion command sent = bytes('7265636D6F643D30FFFFFF') 17:53:50.904 NXP: Nextion command sent = bytes('636F6E6E656374FFFFFF') 17:53:50.917 NXP: Received Raw = bytes('23FFFFFF636F6D6F6B20322C33303631342D302C4E5834383332463033355F30...') 17:53:50.924 FLH: Send (High Speed) flash start 17:53:50.932 NXP: Nextion command sent = bytes('77686D692D7772697320373935373436302C3932313630302C72657330FFFFFF') 17:53:51.318 NXP: Received Raw = bytes('05') 17:53:51.323 FLH: Read block 17:53:51.326 FLH: Buff size 4990 17:53:51.333 FLH: Writing 4096 17:53:51.344 MQT: tele/tasmota_nspwohn/RESULT = {"Flashing":{"complete": 0, "time_elapsed": 0}} 17:53:51.457 FLH: Total 4096 17:53:51.614 NXP: Received Raw = bytes('08') 17:53:51.618 FLH: Waiting offset... 17:53:54.916 NXP: Received Raw = bytes('00000000') 17:53:54.920 FLH: Flash offset marker 0 17:53:54.924 FLH: Read block 17:53:54.957 FLH: Buff size 6638 17:53:54.964 FLH: Writing 4096 17:53:55.074 FLH: Total 8192 17:53:55.096 NXP: Received Raw = bytes('05') 17:53:55.101 FLH: Read block 17:53:55.121 FLH: Buff size 8286 17:53:55.130 FLH: Writing 4096 17:53:55.240 FLH: Total 12288
-
Bei mir hört der da einfach auf...
00:00:00.002 HDW: ESP32-D0WD-V3 00:00:00.003 HDW: FoundPSRAM=0 CanUsePSRAM=0 00:00:00.137 UFS: FlashFS mounted with 280 kB free 00:00:00.248 CFG: Loaded from File, Count 42 00:00:00.263 QPC: Count 1 00:00:00.265 CFG: CR 427/699, Busy 0 00:00:00.275 CFG: CR 427/699, Busy 0 00:00:00.278 ROT: Mode 1 00:00:00.597 CFG: No '*.autoconf' file found 00:00:00.604 BRY: Berry initialized, RAM used=4041 bytes 00:00:00.628 BRY: No 'preinit.be' 00:00:00.633 SRC: Restart 00:00:00.640 Project tasmota - NSPanel Version 12.2.0(nspanel)-2_0_5(2022-10-17T08:40:00) 00:00:00.641 ETH: No ETH MDC and/or ETH MDIO GPIO defined 00:00:01.051 NXP: Initializing Driver 00:00:01.059 BRY: Successfully loaded 'autoexec.be' 00:00:01.447 WIF: Attempting connection... 00:00:01.943 WIF: Connecting to AP1 DeepSpaceNine Channel 1 BSSId F0:9F:C2:F1:5F:C2 in mode 11n as tasmota-D3CE24-3620... 00:00:01.974 WIF: Attempting connection... 00:00:03.638 WIF: Connected 00:00:04.240 HTP: Web server active on tasmota-D3CE24-3620 with IP address 10.1.1.185 00:00:04.921 RTC: UTC 2022-11-28T16:59:26, DST 2022-03-27T02:00:00, STD 2022-10-30T03:00:00 17:59:26.000 RTC: Synced by NTP 17:59:27.227 RSL: INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.2.0(nspanel)","FallbackTopic":"cmnd/DVES_D3CE24_fb/","GroupTopic":"cmnd/tasmotas/"}} 17:59:27.243 RSL: INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-D3CE24-3620","IPAddress":"10.1.1.185"}} 17:59:27.247 RSL: INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":15}} 17:59:27.261 RSL: RESULT = {"POWER1":"OFF"} 17:59:27.263 RSL: POWER1 = OFF 17:59:27.265 RSL: RESULT = {"POWER2":"OFF"} 17:59:27.268 RSL: POWER2 = OFF 17:59:27.280 TFS: File 'autoexec.bat' not found 17:59:29.711 QPC: Reset 17:59:30.286 HTP: Main Menu 17:59:31.703 APP: Boot Count 15 17:59:31.711 RSL: STATE = {"Time":"2022-11-28T17:59:31","Uptime":"0T00:00:10","UptimeSec":10,"Heap":136,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":210,"MqttCount":0,"Berry":{"HeapUsed":14,"Objects":223},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"DeepSpaceNine","BSSId":"F0:9F:C2:F1:5F:C2","Channel":1,"Mode":"11n","RSSI":58,"Signal":-71,"LinkCount":1,"Downtime":"0T00:00:04"}} 17:59:31.753 RSL: SENSOR = {"Time":"2022-11-28T17:59:31","ANALOG":{"Temperature1":28.5},"TempUnit":"C"} 17:59:32.021 CFG: Saved, Count 43, Bytes 4096 17:59:32.211 HTP: Consoles 17:59:34.107 HTP: Console 18:00:31.329 CMD: FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.6.0.tft 18:00:31.332 SRC: WebConsole from 10.1.1.101 18:00:31.334 CMD: Grp 0, Cmd 'FLASHNEXTION', Idx 1, Len 59, Pld -99, Data 'http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.6.0.tft' 18:00:31.345 RSL: RESULT = {"FlashNextion":"Done"} 18:00:31.396 FLH: host: nspanel.pky.eu, port: 80, get: /lovelace-ui/github/nspanel-v3.6.0.tft 18:00:31.482 FLH: Connected:true 18:00:31.591 FLH: Retry 2 18:00:31.792 FLH: Retry 3 18:00:32.819 FLH: HTTP Respose is 200 OK or 206 Partial Content 18:00:32.830 FLH: Flash file size: 7925436 18:00:32.835 NXP: Nextion command sent = bytes('4452414B4A485355594447424E434A48474A4B534842444EFFFFFF') 18:00:32.839 NXP: Nextion command sent = bytes('7265636D6F643D30FFFFFF') 18:00:32.843 NXP: Nextion command sent = bytes('7265636D6F643D30FFFFFF') 18:00:32.847 NXP: Nextion command sent = bytes('636F6E6E656374FFFFFF')
-
-
@Armilar
Sorry das ich nochmal hier rein schreibe
Da du ja jetzt die Hintergrundfarben implementiert hast, wollte ich gleich ans Werk gehen, aber das updaten der .ts...
Gibt es eine Anleitung fürs Updaten? Habe in der Wiki nichts gefunden... -
In diesem Fall ist es leicht...
Den unteren Teil ab
// _________________________________ Ab hier keine Konfiguration mehr ____________ ....
einfach ersetzten und die 3 Farbkonstanten (nachfolgend Zeile 3 - 5) hinzufügen.
//Screensaver Default Theme Colors const scbackground: RGB = { red: 0, green: 0, blue: 0}; const scbackgroundInd1: RGB = { red: 255, green: 0, blue: 0}; const scbackgroundInd2: RGB = { red: 121, green: 222, blue: 121}; const scbackgroundInd3: RGB = { red: 255, green: 255, blue: 0};
Den Rest macht das TS-Script mit dem ersten Start selbst.
Ach ja und
FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.6.0.tft
in der Tasmota-Console ausführen.
Das wäre dann schon alles...
-
Link vom TS-Script 3.6.0.1 vergessen. Aber die meisten hätten es auch so gefunden:
https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
-
@markus-s said in SONOFF NSPanel mit Lovelace UI:
FlashNextion http://nspanel.pky.eu/lui-release.tft
Probier mal das
FlashNextion http://nspanel.pky.eu/lui.tftIch hatte letztens auch ein Panel das sich nicht flashen lies, funktionierte aber dann mit nem anderen Link. Weiß nur nicht ob es dieser war. Den hatte @Armilar in seiner Anleitung stehen. Ich finde Ihn aber leider nicht mehr.
Oder dieser
FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.1.0.tft -
@armilar said in SONOFF NSPanel mit Lovelace UI:
FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.6.0.tft
Ok dann mache ich es schon richtig, bekomme aber einen riesen Haufen Fehler
javascript.0 (689) script.js.NSPanel.Panel_1_3_5: TypeScript compilation failed: "yAxis": "Gas [kWh]", ^ ERROR: Type '{ type: "cardChart"; heading: string; useColor: true; subPage: false; parent: undefined; yAxis: string; yAxisTicks: number[]; items: PageItem[]; }' is not assignable to type 'PageChart'. Object literal may only specify known properties, and '"yAxis"' does not exist in type 'PageChart'. await createAliasAsync(config.weatherEntity + '.ICON', 'accuweather.0.Current.WeatherIcon', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ICON' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(config.weatherEntity + '.TEMP', 'accuweather.0.Current.Temperature', true, <iobJS.StateCommon>{ type: 'number', role: 'value.temperature', name: 'TEMP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(config.weatherEntity + '.TEMP_MIN', 'accuweather.0.Daily.Day1.Temperature.Minimum', true, <iobJS.StateCommon>{ type: 'number', role: 'value.temperature.forecast.0', name: 'TEMP_MIN' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(config.weatherEntity + '.TEMP_MAX', 'accuweather.0.Daily.Day1.Temperature.Maximum', true, <iobJS.StateCommon>{ type: 'number', role: 'value.temperature.max.forecast.0', name: 'TEMP_MAX' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessDay.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessDay.SET', NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourDay.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_hourDay', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourDay.SET', NSPanel_Path + 'NSPanel_Dimmode_hourDay', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessNight.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessNight.SET', NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourNight.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_hourNight', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourNight.SET', NSPanel_Path + 'NSPanel_Dimmode_hourNight', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'autoUpdate.ACTUAL', NSPanel_Path + 'NSPanel_autoUpdate', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'autoUpdate.SET', NSPanel_Path + 'NSPanel_autoUpdate', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'ipAddress.ACTUAL', NSPanel_Path + 'NSPanel_ipAddress', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Display.BerryDriver.ACTUAL', NSPanel_Path + 'Berry_Driver.currentVersion', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Uptime.ACTUAL', NSPanel_Path + 'Tasmota.Uptime', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Version.ACTUAL', NSPanel_Path + 'Tasmota.Version', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Hardware.ACTUAL', NSPanel_Path + 'Tasmota.Hardware', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.AP.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.AP', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.SSId.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.SSId', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.BSSId.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.BSSId', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.Channel.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.Channel', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.Mode.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.Mode', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.RSSI.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.RSSI', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.Signal.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.Signal', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Display.TFTVersion.ACTUAL', NSPanel_Path + 'Display_Firmware.currentVersion', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Display.Model.ACTUAL', NSPanel_Path + 'NSPanel_Version', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ACTUAL', dpPath + '.Player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'value.volume', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ALBUM', dpPath + '.Player.currentAlbum', true, <iobJS.StateCommon>{ type: 'string', role: 'media.album', name: 'ALBUM' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ARTIST', dpPath + '.Player.currentArtist', true, <iobJS.StateCommon>{ type: 'string', role: 'media.artist', name: 'ARTIST' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.TITLE', dpPath + '.Player.currentTitle', true, <iobJS.StateCommon>{ type: 'string', role: 'media.title', name: 'TITLE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.NEXT', dpPath + '.Player.controlNext', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.next', name: 'NEXT' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PREV', dpPath + '.Player.controlPrevious', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.prev', name: 'PREV' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PLAY', dpPath + '.Player.controlPlay', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.play', name: 'PLAY' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PAUSE', dpPath + '.Player.controlPause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.pause', name: 'PAUSE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STOP', dpPath + '.Commands.deviceStop', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.stop', name: 'STOP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STATE', dpPath + '.Player.currentState', true, <iobJS.StateCommon>{ type: 'boolean', role: 'media.state', name: 'STATE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.VOLUME', dpPath + '.Player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'level.volume', name: 'VOLUME' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ACTUAL', dpPath + 'player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'value.volume', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ALBUM', dpPath + 'player.album', true, <iobJS.StateCommon>{ type: 'string', role: 'media.album', name: 'ALBUM' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ARTIST', dpPath + 'player.artistName', true, <iobJS.StateCommon>{ type: 'string', role: 'media.artist', name: 'ARTIST' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.TITLE', dpPath + 'player.trackName', true, <iobJS.StateCommon>{ type: 'string', role: 'media.title', name: 'TITLE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.CONTEXT_DESCRIPTION', dpPath + 'player.contextDescription', true, <iobJS.StateCommon>{ type: 'string', role: 'media.station', name: 'CONTEXT_DESCRIPTION' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.NEXT', dpPath + 'player.skipPlus', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.next', name: 'NEXT' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PREV', dpPath + 'player.skipMinus', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.prev', name: 'PREV' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PLAY', dpPath + 'player.play', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.play', name: 'PLAY' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PAUSE', dpPath + 'player.pause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.pause', name: 'PAUSE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STOP', dpPath + 'player.pause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.stop', name: 'STOP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STATE', dpPath + 'player.isPlaying', true, <iobJS.StateCommon>{ type: 'boolean', role: 'media.state', name: 'STATE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.VOLUME', dpPath + 'player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'level.volume', name: 'VOLUME' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ACTUAL', dpPath + '.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'value.volume', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ALBUM', dpPath + '.current_album', true, <iobJS.StateCommon>{ type: 'string', role: 'media.album', name: 'ALBUM' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ARTIST', dpPath + '.current_artist', true, <iobJS.StateCommon>{ type: 'string', role: 'media.artist', name: 'ARTIST' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.TITLE', dpPath + '.current_title', true, <iobJS.StateCommon>{ type: 'string', role: 'media.title', name: 'TITLE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.CONTEXT_DESCRIPTION', dpPath + '.current_station', true, <iobJS.StateCommon>{ type: 'string', role: 'media.station', name: 'CONTEXT_DESCRIPTION' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.NEXT', dpPath + '.next', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.next', name: 'NEXT' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PREV', dpPath + '.prev', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.prev', name: 'PREV' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PLAY', dpPath + '.play', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.play', name: 'PLAY' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PAUSE', dpPath + '.pause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.pause', name: 'PAUSE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STOP', dpPath + '.stop', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.stop', name: 'STOP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STATE', dpPath + '.state_simple', true, <iobJS.StateCommon>{ type: 'boolean', role: 'media.state', name: 'STATE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.VOLUME', dpPath + '.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'level.volume', name: 'VOLUME' }); ^ ERROR: Cannot find name 'createAliasAsync'. scrSvrBGCol = rgb_dec565(scbackgroundInd1); ^ ERROR: Cannot find name 'scbackgroundInd1'. scrSvrBGCol = rgb_dec565(scbackgroundInd2); ^ ERROR: Cannot find name 'scbackgroundInd2'. scrSvrBGCol = rgb_dec565(scbackgroundInd3); ^ ERROR: Cannot find name 'scbackgroundInd3'. await createAliasAsync(AliasPath + 'Sensor.ANALOG.Temperature.ACTUAL', NSPanel_Path + 'Sensor.ANALOG.Temperature', true, <iobJS.StateCommon>{ type: 'number', 'unit': '°C' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Sensor.ESP32.Temperature.ACTUAL', NSPanel_Path + 'Sensor.ESP32.Temperature', true, <iobJS.StateCommon>{ type: 'number', 'unit': '°C' }); ^ ERROR: Cannot find name 'createAliasAsync'.
-
Ja perfekt. Das Beispiel ist zwar schon drin, aber die cardChart ist noch nicht in der TFT-Firmware. Daher mit der cardChart noch ein wenig warten. Das TS-Script kann das schon, aber das NSPanel ist noch nicht so weit.
Mit anderen Worten. Die cardChart darf aktuell noch nicht in den Seiten aufgerufen werden.
-
@armilar ah, ok. Es läuft aber so erstmal?!
-
Ja, sollte alles wie gewohnt, auch erst abwärtskompatibel laufen.
Alle anderen beschriebenen Funktionen kannst du natürlich einbauen oder testen. Nur halt die Charts noch nicht.
In der HMI-DEV ist die schon drin, aber in dem aktuellen TFT-Release noch nicht...
Kann aber nicht mehr lang dauern.