NEWS
SONOFF NSPanel mit Lovelace UI
-
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
Sind das alle Meldungen vom Script?? Zeige mal bitte den kompletten Startverlauf.
javascript.0 2024-05-05 09:42:42.348 error at ChildProcess.emit (node:domain:489:12) javascript.0 2024-05-05 09:42:42.348 error at ChildProcess.emit (node:events:517:28) javascript.0 2024-05-05 09:42:42.348 error at ChildProcess.exithandler (node:child_process:414:7) javascript.0 2024-05-05 09:42:42.348 error at script.js.common.NSPANEL_1_3_1_0:992:100 javascript.0 2024-05-05 09:42:42.348 error at __awaiter (script.js.common.NSPANEL_1_3_1_0:4:12) javascript.0 2024-05-05 09:42:42.347 error at new Promise (<anonymous>) javascript.0 2024-05-05 09:42:42.347 error at script.js.common.NSPANEL_1_3_1_0:8:71 javascript.0 2024-05-05 09:42:42.347 error at Object.next (script.js.common.NSPANEL_1_3_1_0:14:53) javascript.0 2024-05-05 09:42:42.346 error at step (script.js.common.NSPANEL_1_3_1_0:33:23) javascript.0 2024-05-05 09:42:42.346 error at script.js.common.NSPANEL_1_3_1_0:1002:84 javascript.0 2024-05-05 09:42:42.346 error script.js.common.NSPANEL_1_3_1_0: TypeError: Cannot read properties of undefined (reading 'substring') javascript.0 2024-05-05 09:42:42.338 info script.js.common.NSPANEL_1_3_1_0: -- sonoff.0 - 1883 javascript.0 2024-05-05 09:42:42.338 info script.js.common.NSPANEL_1_3_1_0: -- simple-api.0 - 8087 javascript.0 2024-05-05 09:42:42.337 info script.js.common.NSPANEL_1_3_1_0: -- sainlogic.0 - 4500 javascript.0 2024-05-05 09:42:42.336 info script.js.common.NSPANEL_1_3_1_0: -- pioneer_sc_vsx.0 - 23 javascript.0 2024-05-05 09:42:42.336 info script.js.common.NSPANEL_1_3_1_0: -- mqtt.3 - 1886 javascript.0 2024-05-05 09:42:42.335 info script.js.common.NSPANEL_1_3_1_0: -- mqtt.1 - 1883 javascript.0 2024-05-05 09:42:42.335 info script.js.common.NSPANEL_1_3_1_0: -- mihome-vacuum.0 - 5432 javascript.0 2024-05-05 09:42:42.334 info script.js.common.NSPANEL_1_3_1_0: -- influxdb.1 - 8086 javascript.0 2024-05-05 09:42:42.334 info script.js.common.NSPANEL_1_3_1_0: -- influxdb.0 - 8086 javascript.0 2024-05-05 09:42:42.334 info script.js.common.NSPANEL_1_3_1_0: -- hm-rpc.3 - 0 javascript.0 2024-05-05 09:42:42.333 info script.js.common.NSPANEL_1_3_1_0: -- hm-rpc.2 - 0 javascript.0 2024-05-05 09:42:42.333 info script.js.common.NSPANEL_1_3_1_0: -- hm-rpc.1 - 0 javascript.0 2024-05-05 09:42:42.332 info script.js.common.NSPANEL_1_3_1_0: -- hm-rpc.0 - 0 javascript.0 2024-05-05 09:42:42.332 info script.js.common.NSPANEL_1_3_1_0: -- admin.0 - 8081 javascript.0 2024-05-05 09:42:42.331 info script.js.common.NSPANEL_1_3_1_0: Start MQTT-Port-Check ------------------------------------- javascript.0 2024-05-05 09:42:42.167 error at ChildProcess.emit (node:domain:489:12) javascript.0 2024-05-05 09:42:42.167 error at ChildProcess.emit (node:events:517:28) javascript.0 2024-05-05 09:42:42.166 error at ChildProcess.exithandler (node:child_process:414:7) javascript.0 2024-05-05 09:42:42.166 error at script.js.common.NsPanelWz:1276:100 javascript.0 2024-05-05 09:42:42.166 error at __awaiter (script.js.common.NsPanelWz:4:12) javascript.0 2024-05-05 09:42:42.166 error at new Promise (<anonymous>) javascript.0 2024-05-05 09:42:42.166 error at script.js.common.NsPanelWz:8:71 javascript.0 2024-05-05 09:42:42.165 error at Object.next (script.js.common.NsPanelWz:14:53) javascript.0 2024-05-05 09:42:42.165 error at step (script.js.common.NsPanelWz:33:23) javascript.0 2024-05-05 09:42:42.165 error at script.js.common.NsPanelWz:1286:84 javascript.0 2024-05-05 09:42:42.163 error script.js.common.NsPanelWz: TypeError: Cannot read properties of undefined (reading 'substring') javascript.0 2024-05-05 09:42:42.150 info script.js.common.NsPanelWz: -- sonoff.0 - 1883 javascript.0 2024-05-05 09:42:42.149 info script.js.common.NsPanelWz: -- simple-api.0 - 8087 javascript.0 2024-05-05 09:42:42.149 info script.js.common.NsPanelWz: -- sainlogic.0 - 4500 javascript.0 2024-05-05 09:42:42.149 info script.js.common.NsPanelWz: -- pioneer_sc_vsx.0 - 23 javascript.0 2024-05-05 09:42:42.149 info script.js.common.NsPanelWz: -- mqtt.3 - 1886 javascript.0 2024-05-05 09:42:42.149 info script.js.common.NsPanelWz: -- mqtt.1 - 1883 javascript.0 2024-05-05 09:42:42.149 info script.js.common.NsPanelWz: -- mihome-vacuum.0 - 5432 javascript.0 2024-05-05 09:42:42.148 info script.js.common.NsPanelWz: -- influxdb.1 - 8086 javascript.0 2024-05-05 09:42:42.148 info script.js.common.NsPanelWz: -- influxdb.0 - 8086 javascript.0 2024-05-05 09:42:42.148 info script.js.common.NsPanelWz: -- hm-rpc.3 - 0 javascript.0 2024-05-05 09:42:42.148 info script.js.common.NsPanelWz: -- hm-rpc.2 - 0 javascript.0 2024-05-05 09:42:42.148 info script.js.common.NsPanelWz: -- hm-rpc.1 - 0 javascript.0 2024-05-05 09:42:42.147 info script.js.common.NsPanelWz: -- hm-rpc.0 - 0 javascript.0 2024-05-05 09:42:42.147 info script.js.common.NsPanelWz: -- admin.0 - 8081 javascript.0 2024-05-05 09:42:42.146 info script.js.common.NsPanelWz: Start MQTT-Port-Check ------------------------------------- javascript.0 2024-05-05 09:42:41.289 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:41.288 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:37.082 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:37.082 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:37.081 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:37.080 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:31.950 info script.js.common.NsPanelWz: Debug mode disabled javascript.0 2024-05-05 09:42:31.800 info script.js.common.NSPANEL_1_3_1_0: Debugmodus deaktiviert javascript.0 2024-05-05 09:42:30.538 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:30.537 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 09:42:30.377 info script.js.common.NSPANEL_1_3_1_0: Installed TFT Firmware: 53 / v4.3.1 javascript.0 2024-05-05 09:42:30.376 info script.js.common.NSPANEL_1_3_1_0: Desired TFT Firmware: 53 / v4.3.1 javascript.0 2024-05-05 09:42:27.561 info script.js.common.NsPanelWz: No Updates for NSPanel available javascript.0 2024-05-05 09:42:27.419 info script.js.Energie.Batterieheizung: registered 3 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2024-05-05 09:42:27.407 info Start javascript script.js.Energie.Batterieheizung javascript.0 2024-05-05 09:42:27.404 info script.js.common.NsPanelWz: registered 32 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2024-05-05 09:42:27.403 info script.js.common.NsPanelWz: No Updates for NSPanel available javascript.0 2024-05-05 09:42:27.343 info script.js.common.NsPanelWz: weather alias for accuweather.0. already exists javascript.0 2024-05-05 09:42:27.319 info script.js.common.NsPanelWz: setObjects enabled - create Alias Channels possible javascript.0 2024-05-05 09:42:26.844 info script.js.common.NsPanelWz: source code did not change, using cached compilation result... javascript.0 2024-05-05 09:42:24.764 info script.js.common.NsPanelWz: compiling TypeScript source...
Hoffe das ist gemeint
-
es sieht so aus das beim MQTT Port check etwas nicht gelesen werden kann, um dies aus zu schliessen, bitte den Check am Panel ausschalten unter Einstellungen -> Script -> Portcheck. starte bitte mal nur ein Script das lässt sich besser dann lesen.
-
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
es sieht so aus das beim MQTT Port check etwas nicht gelesen werden kann, um dies aus zu schliessen, bitte den Check am Panel ausschalten unter Einstellungen -> Script -> Portcheck. starte bitte mal nur ein Script das lässt sich besser dann lesen.
Ist aus Fehler ist auch weg.
javascript.0 2024-05-05 11:09:50.365 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:09:50.364 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:09:49.493 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:09:49.492 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 admin.0 2024-05-05 11:09:49.418 info <== Disconnect system.user.admin from ::ffff:192.168.178.52 javascript javascript.0 2024-05-05 11:09:48.380 info script.js.common.NsPanelWz: Debug mode disabled javascript.0 2024-05-05 11:09:47.981 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:09:47.967 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:09:47.258 info script.js.common.NsPanelWz: No Updates for NSPanel available javascript.0 2024-05-05 11:09:47.232 info script.js.common.NsPanelWz: registered 32 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2024-05-05 11:09:47.229 info script.js.common.NsPanelWz: No Updates for NSPanel available javascript.0 2024-05-05 11:09:47.171 info script.js.common.NsPanelWz: weather alias for accuweather.0. already exists javascript.0 2024-05-05 11:09:47.146 info script.js.common.NsPanelWz: setObjects enabled - create Alias Channels possible javascript.0 2024-05-05 11:09:46.789 info script.js.common.NsPanelWz: source code did not change, using cached compilation result... javascript.0 2024-05-05 11:09:45.078 info script.js.common.NsPanelWz: compiling TypeScript source... javascript.0 2024-05-05 11:09:43.356 info Stop script script.js.common.NsPanelWz
-
5.5.2024, 11:16:56.507 [info ]: javascript.0 (431) Stop script script.js.Abfallscript 5.5.2024, 11:16:56.553 [info ]: javascript.0 (431) script.js.Abfallscript: compiling TypeScript source... 5.5.2024, 11:16:56.573 [info ]: javascript.0 (431) script.js.Abfallscript: source code did not change, using cached compilation result... 5.5.2024, 11:16:56.585 [info ]: javascript.0 (431) script.js.Abfallscript: Datenpunkt 0_userdata.0.Abfallkalender.1 werden angelegt 5.5.2024, 11:16:56.585 [info ]: javascript.0 (431) script.js.Abfallscript: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 5.5.2024, 11:16:56.869 [info ]: javascript.0 (431) script.js.Abfallscript: Fertig 5.5.2024, 11:16:56.869 [info ]: javascript.0 (431) script.js.Abfallscript: Datenpunkt 0_userdata.0.Abfallkalender.2 werden angelegt 5.5.2024, 11:16:57.197 [info ]: javascript.0 (431) script.js.Abfallscript: Fertig 5.5.2024, 11:16:57.197 [info ]: javascript.0 (431) script.js.Abfallscript: Datenpunkt 0_userdata.0.Abfallkalender.3 werden angelegt 5.5.2024, 11:16:57.529 [info ]: javascript.0 (431) script.js.Abfallscript: Fertig 5.5.2024, 11:16:57.529 [info ]: javascript.0 (431) script.js.Abfallscript: Datenpunkt 0_userdata.0.Abfallkalender.4 werden angelegt 5.5.2024, 11:16:57.825 [info ]: javascript.0 (431) script.js.Abfallscript: Fertig 5.5.2024, 11:16:57.825 [info ]: javascript.0 (431) script.js.Abfallscript: Datenpunkt 0_userdata.0.Abfallkalender.5 werden angelegt 5.5.2024, 11:16:58.157 [info ]: javascript.0 (431) script.js.Abfallscript: Fertig 5.5.2024, 11:16:58.157 [info ]: javascript.0 (431) script.js.Abfallscript: Datenpunkt 0_userdata.0.Abfallkalender.6 werden angelegt 5.5.2024, 11:16:58.489 [info ]: javascript.0 (431) script.js.Abfallscript: Fertig 5.5.2024, 11:16:58.489 [info ]: javascript.0 (431) script.js.Abfallscript: Startabfrage der Daten 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Rohdaten von Instanz ical: [{"date":"Übermorgen 11:15-12:15","event":"Ultraschall Schildrüse","_class":"ical_Christoph & Cori ical_dayafter","_date":"2024-05-07T09:15:00.000Z","_end":"2024-05-07T10:15:00.000Z","_IDID":"A75A1075-E69C-4D9C-916F-76FD249430A4","_allDay":false,"_private":false,"_rule":" ","location":"","_calName":"Christoph & Cori","_calColor":"#3fd959","_object":{"type":"VEVENT","params":[],"start":"2024-05-07T09:15:00.000Z","datetype":"date-time","end":"2024-05-07T10:15:00.000Z","dtstamp":"2024-05-05T09:00:05.000Z","uid":"A75A1075-E69C-4D9C-916F-76FD249430A4","created":"2024-04-29T16:34:18.000Z","lastmodified":"2024-04-29T16:34:18.000Z","sequence":"0","status":"CONFIRMED","summary":"Ultraschall Schildrüse","transparency":"OPAQUE","APPLE-CREATOR-IDENTITY":"com.apple.mobilecal","APPLE-CREATOR-TEAM-IDENTITY":"0000000000","method":"PUBLISH"}},{"date":"17.05.2024 ","event":"Biomüll","_class":"ical_Müllkalender ","_date":"2024-05-16T22:00:00.000Z","_end":"2024-05-17T22:00:00.000Z","_IDID":"zvawmk213710","_allDay":true,"_private":false,"_rule":" ","location":"","_calName":"Müllkalender","_calColor":"#9c22b4","_object":{"type":"VEVENT","params":[],"start":"2024-05-16T22:00:00.000Z","datetype":"date","end":"2024-05-17T22:00:00.000Z","dtstamp":"2024-05-05T09:00:05.000Z","uid":"zvawmk213710","class":"PUBLIC","created":"2023-12-24T12:00:00.000Z","lastmodified":"2023-12-24T12:30:44.000Z","sequence":"0","status":"CONFIRMED","summary":"Biomüll","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"23.05.2024 ","event":"Restmüll","_class":"ical_Müllkalender ","_date":"2024-05-22T22:00:00.000Z","_end":"2024-05-23T22:00:00.000Z","_IDID":"zvawmk213711","_allDay":true,"_private":false,"_rule":" ","location":"","_calName":"Müllkalender","_calColor":"#9c22b4","_object":{"type":"VEVENT","params":[],"start":"2024-05-22T22:00:00.000Z","datetype":"date","end":"2024-05-23T22:00:00.000Z","dtstamp":"2024-05-05T09:00:05.000Z","uid":"zvawmk213711","class":"PUBLIC","created":"2023-12-24T12:00:00.000Z","lastmodified":"2023-12-24T12:30:44.000Z","sequence":"0","status":"CONFIRMED","summary":"Restmüll","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"25.05.2024 ","event":"Hans","_class":"ical_Geburtstage ","_date":"2024-05-24T22:00:00.000Z","_end":"2024-05-25T22:00:00.000Z","_section":"1956","_IDID":"66kt43nols8uqn1b11s86tq0dl_R20220525@google.com","_allDay":true,"_private":false,"_rule":" rrule ","location":"","_calName":"Geburtstage","_calColor":"#3156dd","_object":{"type":"VEVENT","params":[],"start":"2024-05-24T22:00:00.000Z","datetype":"date","end":"2024-05-25T22:00:00.000Z","rrule":{"_cache":{"all":false,"before":[],"after":[],"between":[]},"origOptions":{"dtstart":"2022-05-25T00:00:00.000Z","freq":0},"options":{"freq":0,"dtstart":"2022-05-25T00:00:00.000Z","interval":1,"wkst":0,"count":null,"until":null,"bysetpos":null,"bymonth":[5],"bymonthday":[25],"bynmonthday":[],"byyearday":null,"byweekno":null,"byweekday":null,"bynweekday":null,"byhour":[0],"byminute":[0],"bysecond":[0],"byeaster":null}},"dtstamp":"2024-05-05T09:00:05.000Z","uid":"66kt43nols8uqn1b11s86tq0dl_R20220525@google.com","created":"2021-03-14T14:54:15.000Z","description":"1956","lastmodified":"2022-02-18T19:10:20.000Z","sequence":"0","status":"CONFIRMED","summary":"Hans","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"29.05.2024 ","event":"Altpapier","_class":"ical_Müllkalender ","_date":"2024-05-28T22:00:00.000Z","_end":"2024-05-29T22:00:00.000Z","_IDID":"zvawmk213712","_allDay":true,"_private":false,"_rule":" ","location":"","_calName":"Müllkalender","_calColor":"#9c22b4","_object":{"type":"VEVENT","params":[],"start":"2024-05-28T22:00:00.000Z","datetype":"date","end":"2024-05-29T22:00:00.000Z","dtstamp":"2024-05-05T09:00:05.000Z","uid":"zvawmk213712","class":"PUBLIC","created":"2023-12-24T12:00:00.000Z","lastmodified":"2023-12-24T12:30:44.000Z","sequence":"0","status":"CONFIRMED","summary":"Altpapier","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"31.05.2024 ","event":"Christoph","_class":"ical_Geburtstage ","_date":"2024-05-30T22:00:00.000Z","_end":"2024-05-31T22:00:00.000Z","_section":"1983","_IDID":"2hctqq3u0epcju6fvs83slobm7_R20220531@google.com","_allDay":true,"_private":false,"_rule":" rrule ","location":"","_calName":"Geburtstage","_calColor":"#3156dd","_object":{"type":"VEVENT","params":[],"start":"2024-05-30T22:00:00.000Z","datetype":"date","end":"2024-05-31T22:00:00.000Z","rrule":{"_cache":{"all":false,"before":[],"after":[],"between":[]},"origOptions":{"dtstart":"2022-05-31T00:00:00.000Z","freq":0},"options":{"freq":0,"dtstart":"2022-05-31T00:00:00.000Z","interval":1,"wkst":0,"count":null,"until":null,"bysetpos":null,"bymonth":[5],"bymonthday":[31],"bynmonthday":[],"byyearday":null,"byweekno":null,"byweekday":null,"bynweekday":null,"byhour":[0],"byminute":[0],"bysecond":[0],"byeaster":null}},"dtstamp":"2024-05-05T09:00:05.000Z","uid":"2hctqq3u0epcju6fvs83slobm7_R20220531@google.com","created":"2021-03-14T14:54:48.000Z","description":"1983","lastmodified":"2022-02-18T19:10:45.000Z","sequence":"0","status":"CONFIRMED","summary":"Christoph","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"01.06.2024 ","event":"Biomüll","_class":"ical_Müllkalender ","_date":"2024-05-31T22:00:00.000Z","_end":"2024-06-01T22:00:00.000Z","_IDID":"zvawmk213713","_allDay":true,"_private":false,"_rule":" ","location":"","_calName":"Müllkalender","_calColor":"#9c22b4","_object":{"type":"VEVENT","params":[],"start":"2024-05-31T22:00:00.000Z","datetype":"date","end":"2024-06-01T22:00:00.000Z","dtstamp":"2024-05-05T09:00:05.000Z","uid":"zvawmk213713","class":"PUBLIC","created":"2023-12-24T12:00:00.000Z","lastmodified":"2023-12-24T12:30:44.000Z","sequence":"0","status":"CONFIRMED","summary":"Biomüll","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"01.06.2024 ","event":"Gelbe Tonne","_class":"ical_Müllkalender ","_date":"2024-05-31T22:00:00.000Z","_end":"2024-06-01T22:00:00.000Z","_IDID":"zvawmk213714","_allDay":true,"_private":false,"_rule":" ","location":"","_calName":"Müllkalender","_calColor":"#9c22b4","_object":{"type":"VEVENT","params":[],"start":"2024-05-31T22:00:00.000Z","datetype":"date","end":"2024-06-01T22:00:00.000Z","dtstamp":"2024-05-05T09:00:05.000Z","uid":"zvawmk213714","class":"PUBLIC","created":"2023-12-24T12:00:00.000Z","lastmodified":"2023-12-24T12:30:44.000Z","sequence":"0","status":"CONFIRMED","summary":"Gelbe Tonne","transparency":"TRANSPARENT","method":"PUBLISH"}}] 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Anzahl Trash - Daten: 8 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-07T09:15:00.000Z 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: Übermorgen 11:15-12:15 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Ultraschall Schildrüse 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Ultraschall Schildrüse% 5.5.2024, 11:16:58.490 [warn ]: javascript.0 (431) script.js.Abfallscript: Kein Abfalltermin => Event passt mit keinem Abfallnamen überein. 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-16T22:00:00.000Z 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: 17.05.2024 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Biomüll 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Biomüll% 5.5.2024, 11:16:58.490 [warn ]: javascript.0 (431) script.js.Abfallscript: Kein Abfalltermin => Event passt mit keinem Abfallnamen überein. 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.490 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-22T22:00:00.000Z 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: 23.05.2024 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Restmüll 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Restmüll% 5.5.2024, 11:16:58.491 [warn ]: javascript.0 (431) script.js.Abfallscript: Kein Abfalltermin => Event passt mit keinem Abfallnamen überein. 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-24T22:00:00.000Z 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: 25.05.2024 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Hans 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Hans% 5.5.2024, 11:16:58.491 [warn ]: javascript.0 (431) script.js.Abfallscript: Kein Abfalltermin => Event passt mit keinem Abfallnamen überein. 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-28T22:00:00.000Z 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: 29.05.2024 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Altpapier 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Altpapier% 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Event customName: blaue Tonne 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Abfallnummer: 1 5.5.2024, 11:16:58.491 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-30T22:00:00.000Z 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: 31.05.2024 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Christoph 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Christoph% 5.5.2024, 11:16:58.492 [warn ]: javascript.0 (431) script.js.Abfallscript: Kein Abfalltermin => Event passt mit keinem Abfallnamen überein. 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-31T22:00:00.000Z 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: 01.06.2024 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Biomüll 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Biomüll% 5.5.2024, 11:16:58.492 [warn ]: javascript.0 (431) script.js.Abfallscript: Kein Abfalltermin => Event passt mit keinem Abfallnamen überein. 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Daten vom ical Adapter werden ausgewertet 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: --------- Nächster Termin wird geprüft --------- 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Startdatum UTC: 2024-05-31T22:00:00.000Z 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Datum: 01.06.2024 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Event: Gelbe Tonne 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Kontrolle Leerzeichen %Gelbe Tonne% 5.5.2024, 11:16:58.492 [info ]: javascript.0 (431) script.js.Abfallscript: Abfallnummer: 2
-
@lustig29 jetzt sollte unter alias.0.NSPanel.Abfall.1 Daten vorhanden sein bitte mal prüfen und zeigen
-
Blaue und Gelbe Tonne wird jetzt auf dem NsPanel angezeigt. Die anderen 2 leider nicht.
-
Kannst du bitte mal im Script diese Funktion suchen und hinter
if (result != undefined) {
diese Zeile
log(MQTT-PORT-Check Result
+ JSON.stringify(result)); einfügen, siehe unten Zeile 18. dann mal die Ausgabe posten, aber den Portcheck wieder einschalten.async function CheckMQTTPorts() { try { let instanceName: string = config.panelRecvTopic.substring(0, 6); if (isSetOptionActive) { await createStateAsync(NSPanel_Path + 'Config.MQTT.portCheck', true, { type: 'boolean', write: true }); setObject(AliasPath + 'Config.MQTT.portCheck', { type: 'channel', common: { role: 'socket', name: 'mqttPortCheck' }, native: {} }); await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.ACTUAL', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'ACTUAL' }); await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.SET', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'SET' }); } if (getState(NSPanel_Path + 'Config.MQTT.portCheck').val) { let adapterArray: any = []; let portArray: any = []; exec('iob l i --port --enabled', async (error, result, stderr) => { if (error == null) { if (result != undefined) { log(`MQTT-PORT-Check Result ` + JSON.stringify(result)); log('Start MQTT-Port-Check -------------------------------------', 'info'); let resultString1 = result.split('+'); for (let i: number = 1; i < resultString1.length - 1; i++) { let resultString2: any = resultString1[i].split(':') let adapterInstanceName: string = resultString2[0].substring(16); let adapterInstancePort: string = resultString2[3].substring(1, 5); log('-- ' + adapterInstanceName + ' - ' + adapterInstancePort, 'info'); adapterArray[i] = adapterInstanceName.trim(); portArray[i] = adapterInstancePort.trim(); }
-
welche Daten stehen in diesen Parametern??
const jsonEventName1: string = ''; // Vergleichstring für Schwarze Tonne const jsonEventName2: string = ''; // Vergleichstring für Gelbe Tonne / Sack const jsonEventName3: string = ''; // Vergleichstring für Blaue Tonne const jsonEventName4: string = ''; // Vergleichstring für Braune Tonne const jsonEventName5: string = ''; // Vergleichstring für Event 5 const jsonEventName6: string = ''; // Vergleichstring für Event 6
-
const jsonEventName1: string = 'Graue Tonne'; // Vergleichstring für Schwarze Tonne const customEventName1: string = 'schwarze tonne'; // benutzerdefinierter Text für schwarze Tonne const jsonEventName2: string = 'Gelbe Tonne'; // Vergleichstring für Gelbe Tonne / Sack const customEventName2: string = ''; // benutzerdefinierter Text für gelbe Tonne const jsonEventName3: string = 'Altpapier'; // Vergleichstring für Blaue Tonne const customEventName3: string = 'blaue Tonne'; // benutzerdefinierter Text für blaue Tonne const jsonEventName4: string = 'Grüne Tonne'; // Vergleichstring für Braune Tonne const customEventName4: string = ''; // benutzerdefinierter Text für braune Tonne const jsonEventName5: string = 'Treppe'; // Vergleichstring für Event 5 const customEventName5: string = 'Besen schwingen'; // benutzerdefinierter Text für Event 5 const jsonEventName6: string = ''; // Vergleichstring für Event 6 const customEventName6: string = ''; // benutzerdefinierter Text für Event 6
-
in diesen Parametern müssen die Namen aus dem Kalender eingetragen werden, z.B für die Schwarze Tonne 'Restmüll' usw. die Namen findest du in der debug Ausgabe vom Script
-
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
Kannst du bitte mal im Script diese Funktion suchen und hinter
if (result != undefined) {
diese Zeile
log(MQTT-PORT-Check Result
+ JSON.stringify(result)); einfügen, siehe unten Zeile 18. dann mal die Ausgabe posten, aber den Portcheck wieder einschalten.async function CheckMQTTPorts() { try { let instanceName: string = config.panelRecvTopic.substring(0, 6); if (isSetOptionActive) { await createStateAsync(NSPanel_Path + 'Config.MQTT.portCheck', true, { type: 'boolean', write: true }); setObject(AliasPath + 'Config.MQTT.portCheck', { type: 'channel', common: { role: 'socket', name: 'mqttPortCheck' }, native: {} }); await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.ACTUAL', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'ACTUAL' }); await createAliasAsync(AliasPath + 'Config.MQTT.portCheck.SET', NSPanel_Path + 'Config.MQTT.portCheck', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'SET' }); } if (getState(NSPanel_Path + 'Config.MQTT.portCheck').val) { let adapterArray: any = []; let portArray: any = []; exec('iob l i --port --enabled', async (error, result, stderr) => { if (error == null) { if (result != undefined) { log(`MQTT-PORT-Check Result ` + JSON.stringify(result)); log('Start MQTT-Port-Check -------------------------------------', 'info'); let resultString1 = result.split('+'); for (let i: number = 1; i < resultString1.length - 1; i++) { let resultString2: any = resultString1[i].split(':') let adapterInstanceName: string = resultString2[0].substring(16); let adapterInstancePort: string = resultString2[3].substring(1, 5); log('-- ' + adapterInstanceName + ' - ' + adapterInstancePort, 'info'); adapterArray[i] = adapterInstanceName.trim(); portArray[i] = adapterInstancePort.trim(); }
Der Log :
javascript.0 2024-05-05 11:48:51.835 error at ChildProcess.emit (node:domain:489:12) javascript.0 2024-05-05 11:48:51.835 error at ChildProcess.emit (node:events:517:28) javascript.0 2024-05-05 11:48:51.835 error at ChildProcess.exithandler (node:child_process:414:7) javascript.0 2024-05-05 11:48:51.834 error at script.js.common.NsPanelWz:1276:100 javascript.0 2024-05-05 11:48:51.834 error at __awaiter (script.js.common.NsPanelWz:4:12) javascript.0 2024-05-05 11:48:51.834 error at new Promise (<anonymous>) javascript.0 2024-05-05 11:48:51.833 error at script.js.common.NsPanelWz:8:71 javascript.0 2024-05-05 11:48:51.833 error at Object.next (script.js.common.NsPanelWz:14:53) javascript.0 2024-05-05 11:48:51.832 error at step (script.js.common.NsPanelWz:33:23) javascript.0 2024-05-05 11:48:51.832 error at script.js.common.NsPanelWz:1287:84 javascript.0 2024-05-05 11:48:51.831 error script.js.common.NsPanelWz: TypeError: Cannot read properties of undefined (reading 'substring') javascript.0 2024-05-05 11:48:51.820 info script.js.common.NsPanelWz: -- sonoff.0 - 1883 javascript.0 2024-05-05 11:48:51.820 info script.js.common.NsPanelWz: -- simple-api.0 - 8087 javascript.0 2024-05-05 11:48:51.819 info script.js.common.NsPanelWz: -- sainlogic.0 - 4500 javascript.0 2024-05-05 11:48:51.819 info script.js.common.NsPanelWz: -- pioneer_sc_vsx.0 - 23 javascript.0 2024-05-05 11:48:51.818 info script.js.common.NsPanelWz: -- mqtt.3 - 1886 javascript.0 2024-05-05 11:48:51.818 info script.js.common.NsPanelWz: -- mqtt.1 - 1883 javascript.0 2024-05-05 11:48:51.818 info script.js.common.NsPanelWz: -- mihome-vacuum.0 - 5432 javascript.0 2024-05-05 11:48:51.817 info script.js.common.NsPanelWz: -- influxdb.1 - 8086 javascript.0 2024-05-05 11:48:51.817 info script.js.common.NsPanelWz: -- influxdb.0 - 8086 javascript.0 2024-05-05 11:48:51.816 info script.js.common.NsPanelWz: -- hm-rpc.3 - 0 javascript.0 2024-05-05 11:48:51.816 info script.js.common.NsPanelWz: -- hm-rpc.2 - 0 javascript.0 2024-05-05 11:48:51.816 info script.js.common.NsPanelWz: -- hm-rpc.1 - 0 javascript.0 2024-05-05 11:48:51.815 info script.js.common.NsPanelWz: -- hm-rpc.0 - 0 javascript.0 2024-05-05 11:48:51.814 info script.js.common.NsPanelWz: -- admin.0 - 8081 javascript.0 2024-05-05 11:48:51.814 info script.js.common.NsPanelWz: Start MQTT-Port-Check ------------------------------------- javascript.0 2024-05-05 11:48:51.813 info script.js.common.NsPanelWz: MQTT-PORT-Check Result "+ system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0, run as: admin\n+ system.adapter.hm-rpc.0 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.hm-rpc.1 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.hm-rpc.2 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.hm-rpc.3 : hm-rpc : iobroker - enabled, port: 0\n+ system.adapter.influxdb.0 : influxdb : iobroker - enabled, port: 8086\n+ system.adapter.influxdb.1 : influxdb : iobroker - enabled, port: 8086\n+ system.adapter.mihome-vacuum.0 : mihome-vacuum : IoBroker64Bit - enabled, port: 54321\n+ system.adapter.mqtt.1 : mqtt : iobroker - enabled, port: 1883, bind: 0.0.0.0\n+ system.adapter.mqtt.3 : mqtt : iobroker - enabled, port: 1886, bind: 192.168.178.69\n+ system.adapter.pioneer_sc_vsx.0 : pioneer_sc_vsx : iobroker - enabled, port: 23\n+ system.adapter.sainlogic.0 : sainlogic : iobroker - enabled, port: 45000, bind: 192.168.178.69\n+ system.adapter.simple-api.0 : simple-api : iobroker - enabled, port: 8087, bind: 0.0.0.0, run as: admin\n+ system.adapter.sonoff.0 : sonoff : IoBroker64Bit - enabled, port: 1883, bind: 0.0.0.0\n+ system.adapter.sql.0 : sql : iobroker - enabled\n+ system.adapter.synology.0 : synology : iobroker - enabled, port: 5000\n+ system.adapter.synology.1 : synology : iobroker - enabled, port: 5000\n+ system.adapter.telegram.0 : telegram : iobroker - enabled, port: 8443, bind: 0.0.0.0\n+ system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin\n\n+ instance is alive\n" javascript.0 2024-05-05 11:48:45.347 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:48:45.346 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:48:45.332 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:48:45.331 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:48:43.925 info script.js.common.NsPanelWz: Debug mode disabled javascript.0 2024-05-05 11:48:43.577 info script.js.common.NsPanelWz: Installed TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:48:43.576 info script.js.common.NsPanelWz: Desired TFT Firmware: 53 / v4.3.3 javascript.0 2024-05-05 11:48:42.445 info script.js.common.NsPanelWz: No Updates for NSPanel available javascript.0 2024-05-05 11:48:42.437 info script.js.common.NsPanelWz: registered 32 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2024-05-05 11:48:42.436 info script.js.common.NsPanelWz: No Updates for NSPanel available javascript.0 2024-05-05 11:48:42.416 info script.js.common.NsPanelWz: weather alias for accuweather.0. already exists javascript.0 2024-05-05 11:48:42.411 info script.js.common.NsPanelWz: setObjects enabled - create Alias Channels possible javascript.0 2024-05-05 11:48:42.114 info script.js.common.NsPanelWz: source code did not change, using cached compilation result... javascript.0 2024-05-05 11:48:40.470 info script.js.common.NsPanelWz: compiling TypeScript source... admin.0 2024-05-05 11:48:40.046 info <== Disconnect system.user.admin from ::ffff:192.168.178.52 javascript javascript.0 2024-05-05 11:48:38.935 info Stop script script.js.common.NsPanelWz
-
@tt-tom So???
const jsonEventName1: string = 'Graue Tonne'; // Vergleichstring für Schwarze Tonne const customEventName1: string = 'Graue Tonne'; // benutzerdefinierter Text für schwarze Tonne const jsonEventName2: string = 'Gelbe Tonne'; // Vergleichstring für Gelbe Tonne / Sack const customEventName2: string = 'Gelbe Tonne'; // benutzerdefinierter Text für gelbe Tonne const jsonEventName3: string = 'Altpapier'; // Vergleichstring für Blaue Tonne const customEventName3: string = 'Altpapier'; // benutzerdefinierter Text für blaue Tonne const jsonEventName4: string = 'Grüne Tonne'; // Vergleichstring für Braune Tonne const customEventName4: string = 'Grüne Tonne'; // benutzerdefinierter Text für braune Tonne const jsonEventName5: string = 'Treppe'; // Vergleichstring für Event 5 const customEventName5: string = 'Besen schwingen'; // benutzerdefinierter Text für Event 5 const jsonEventName6: string = ''; // Vergleichstring für Event 6 const customEventName6: string = ''; // benutzerdefinierter Text für Event 6
-
der SQL liefert kein Port, darum läuft die Abfrage auf einen Fehler. Werde mal deine Daten nutzen für ein Fix. aktuell hilft da nur den check ausschalten, wir melden uns wenn der fix verfügbar ist.
-
@lustig29
nein, du musst die jsonEventNameX Parameter anpassen.const jsonEventName1: string = 'Restmüll';
Die customEventNameX sind alternativ Texte für die Anzeige auf dem Panel, siehe Event5. Dort wird nach
Treppe
im Kalender gesucht und auf dem PanelBesen schwingen
angezeigt. -
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
der SQL liefert kein Port, darum läuft die Abfrage auf einen Fehler. Werde mal deine Daten nutzen für ein Fix. aktuell hilft da nur den check ausschalten, wir melden uns wenn der fix verfügbar ist.
Super danke.
-
@tt-tom Super, danke. Das war es
-
Ich möchte gerne mein Nuki Türschloss in diese Card intigrieren. Kann mir jemand dabei helfen?
let Garage: PageType = { 'type': 'cardGrid', 'heading': 'Übersicht', 'useColor': true, 'subPage': false, 'items': [ { id: 'alias.0.Garagentor', icon: 'garage', icon2: 'garage-open', offColor: MSRed, onColor: MSGreen, name: 'Garagentor'}, { id: 'alias.0.Alias_Geräte.Alle_Rollos', icon: 'roller-shade', icon2: 'roller-shade-closed', offColor: MSRed, onColor: MSGreen, name: 'Alle Rollos'}, ] };
{ "type": "state", "common": { "name": "Tür auf-/abschließen", "type": "boolean", "write": true, "role": "switch.lock.door" }, "native": {}, "from": "system.adapter.nuki.0", "user": "system.user.admin", "ts": 1714916320263, "_id": "nuki.0.607002684.actions.lockAction", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
Hast du schon einen Alias für den Nuki angelegt.
Hier kannst du nachschauen. https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#verschluss-channel-lock -
probiere bitte mal den Fix der DEV Version, danke.
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/DEV/NSPanelTs.ts
-
@tt-tom Danke. Hat schon mal soweit super geklappt. Schloss schließt und öffnet über das Ns Panel. Jetzt muss ich nur noch den Status (Offen/Geschlossen) im Alias irgendwie angeben.
Kannst du mir da bitte nochmal kurz helfen?
Das ist der Datenpunkt vom Nuki.
{ "type": "state", "common": { "name": "Aktion", "type": "number", "states": { "0": "", "1": "unlock", "2": "lock", "3": "unlatch", "4": "lock‘n’go", "5": "lock‘n’go with unlatch" }, "role": "value" }, "native": {}, "from": "system.adapter.nuki.0", "user": "system.user.admin", "ts": 1714916320263, "_id": "nuki.0.607002684.actions.action", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }