Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 272 Kommentatoren 6.7m Aufrufe 254 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ArmilarA Armilar

    @tomsport2022 😊

    Ist glaube ich auch noch nicht in der Wiki --> also "Top Secret" 😉

    Ich schreibe es demnächst mal rein.

    T Offline
    T Offline
    tomsport2022
    schrieb am zuletzt editiert von tomsport2022
    #650

    @armilar said in SONOFF NSPanel mit Lovelace UI:

    @tomsport2022 😊

    Ist glaube ich auch noch nicht in der Wiki --> also "Top Secret" 😉

    Ich schreibe es demnächst mal rein.

    Ich weiß natürlich von nichts 😊 😁 !

    @armilar said in SONOFF NSPanel mit Lovelace UI:

    @tomsport2022 sagte in SONOFF NSPanel mit Lovelace UI:

    Dann sollte dein externes Script eine solche Zeile zusammenbauen (JSON), wobei die 14 im Beispiel eine pageID ist.

    {"pagetype": "subpage","pageId": 2}
    

    Funktioniert im Übrigen auch für die SubPages...

    Danke habs schon erfolgreich ausprobiert 😀

    1 Antwort Letzte Antwort
    1
    • PeoplesP Offline
      PeoplesP Offline
      Peoples
      schrieb am zuletzt editiert von
      #651

      Hi,

      zuerst mal muss ich sagen dass das ein Super Projekt ist.

      Auch auf die Gefahr hin dass das schon gefragt wurde, ist es möglich bspw. bei Licht zwei verschiedene Symbole für On und Off zu verwenden?

      Und weil ich immer den Fehler bekam:

      
      javascript.0
      2022-11-11 12:30:37.089	warn	at processImmediate (internal/timers.js:437:9)
      
      javascript.0
      2022-11-11 12:30:37.089	warn	at runNextTicks (internal/process/task_queues.js:60:5)
      
      javascript.0
      2022-11-11 12:30:37.089	warn	at runMicrotasks (<anonymous>:null:null)
      
      javascript.0
      2022-11-11 12:30:37.089	warn	at fulfilled (script.js.NS-Panel1:5:58)
      
      javascript.0
      2022-11-11 12:30:37.089	warn	at Object.next (script.js.NS-Panel1:14:53)
      
      javascript.0
      2022-11-11 12:30:37.089	warn	at step (script.js.NS-Panel1:33:23)
      
      javascript.0
      2022-11-11 12:30:37.089	warn	at script.js.NS-Panel1:1314:46
      
      javascript.0
      2022-11-11 12:30:37.088	warn	at /opt/iobroker/node_modules/iobroker.javascript/lib/tools.js:81:16
      
      javascript.0
      2022-11-11 12:30:37.088	warn	at new Promise (<anonymous>:null:null)
      
      javascript.0
      2022-11-11 12:30:37.088	warn	at /opt/iobroker/node_modules/iobroker.javascript/lib/tools.js:82:16
      
      javascript.0
      2022-11-11 12:30:37.087	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1719:20)
      
      javascript.0
      2022-11-11 12:30:37.084	warn	You are assigning a string to the state "0_userdata.0.NSPanel.1.Berry_Driver.currentVersion" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
      

      habe ich die Zeile:

      await setStateAsync(NSPanel_Path + 'Berry_Driver.currentVersion', <iobJS.State>{ val: JSON.parse(result).nlui_driver_version, ack: true });
      

      um ein parseInt erweitert dann wars weg:

      await setStateAsync(NSPanel_Path + 'Berry_Driver.currentVersion', <iobJS.State>{ val: parseInt(JSON.parse(result).nlui_driver_version), ack: true });
      

      Ich beantworte keine Fragen zu Themen via PN

      ArmilarA 2 Antworten Letzte Antwort
      0
      • PeoplesP Peoples

        Hi,

        zuerst mal muss ich sagen dass das ein Super Projekt ist.

        Auch auf die Gefahr hin dass das schon gefragt wurde, ist es möglich bspw. bei Licht zwei verschiedene Symbole für On und Off zu verwenden?

        Und weil ich immer den Fehler bekam:

        
        javascript.0
        2022-11-11 12:30:37.089	warn	at processImmediate (internal/timers.js:437:9)
        
        javascript.0
        2022-11-11 12:30:37.089	warn	at runNextTicks (internal/process/task_queues.js:60:5)
        
        javascript.0
        2022-11-11 12:30:37.089	warn	at runMicrotasks (<anonymous>:null:null)
        
        javascript.0
        2022-11-11 12:30:37.089	warn	at fulfilled (script.js.NS-Panel1:5:58)
        
        javascript.0
        2022-11-11 12:30:37.089	warn	at Object.next (script.js.NS-Panel1:14:53)
        
        javascript.0
        2022-11-11 12:30:37.089	warn	at step (script.js.NS-Panel1:33:23)
        
        javascript.0
        2022-11-11 12:30:37.089	warn	at script.js.NS-Panel1:1314:46
        
        javascript.0
        2022-11-11 12:30:37.088	warn	at /opt/iobroker/node_modules/iobroker.javascript/lib/tools.js:81:16
        
        javascript.0
        2022-11-11 12:30:37.088	warn	at new Promise (<anonymous>:null:null)
        
        javascript.0
        2022-11-11 12:30:37.088	warn	at /opt/iobroker/node_modules/iobroker.javascript/lib/tools.js:82:16
        
        javascript.0
        2022-11-11 12:30:37.087	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1719:20)
        
        javascript.0
        2022-11-11 12:30:37.084	warn	You are assigning a string to the state "0_userdata.0.NSPanel.1.Berry_Driver.currentVersion" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
        

        habe ich die Zeile:

        await setStateAsync(NSPanel_Path + 'Berry_Driver.currentVersion', <iobJS.State>{ val: JSON.parse(result).nlui_driver_version, ack: true });
        

        um ein parseInt erweitert dann wars weg:

        await setStateAsync(NSPanel_Path + 'Berry_Driver.currentVersion', <iobJS.State>{ val: parseInt(JSON.parse(result).nlui_driver_version), ack: true });
        
        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        schrieb am zuletzt editiert von
        #652

        @peoples sagte in SONOFF NSPanel mit Lovelace UI:

        um ein parseInt erweitert dann wars weg:

        await setStateAsync(NSPanel_Path + 'Berry_Driver.currentVersion', <iobJS.State>{ val: parseInt(JSON.parse(result).nlui_driver_version), ack: true });
        

        Werde ich mal für die nächste Version einbauen. Kommt irgendwie immer zustande, wenn das github-Limit bereits überschritten war. Ich sammele immer ein wenig und dann kommt das nächste Release.

        • CIE (d.h, XY als Gerätetyp ) kommt ebenfalls in die nächste Version 3.5.0.6

        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        1 Antwort Letzte Antwort
        0
        • PeoplesP Peoples

          Hi,

          zuerst mal muss ich sagen dass das ein Super Projekt ist.

          Auch auf die Gefahr hin dass das schon gefragt wurde, ist es möglich bspw. bei Licht zwei verschiedene Symbole für On und Off zu verwenden?

          Und weil ich immer den Fehler bekam:

          
          javascript.0
          2022-11-11 12:30:37.089	warn	at processImmediate (internal/timers.js:437:9)
          
          javascript.0
          2022-11-11 12:30:37.089	warn	at runNextTicks (internal/process/task_queues.js:60:5)
          
          javascript.0
          2022-11-11 12:30:37.089	warn	at runMicrotasks (<anonymous>:null:null)
          
          javascript.0
          2022-11-11 12:30:37.089	warn	at fulfilled (script.js.NS-Panel1:5:58)
          
          javascript.0
          2022-11-11 12:30:37.089	warn	at Object.next (script.js.NS-Panel1:14:53)
          
          javascript.0
          2022-11-11 12:30:37.089	warn	at step (script.js.NS-Panel1:33:23)
          
          javascript.0
          2022-11-11 12:30:37.089	warn	at script.js.NS-Panel1:1314:46
          
          javascript.0
          2022-11-11 12:30:37.088	warn	at /opt/iobroker/node_modules/iobroker.javascript/lib/tools.js:81:16
          
          javascript.0
          2022-11-11 12:30:37.088	warn	at new Promise (<anonymous>:null:null)
          
          javascript.0
          2022-11-11 12:30:37.088	warn	at /opt/iobroker/node_modules/iobroker.javascript/lib/tools.js:82:16
          
          javascript.0
          2022-11-11 12:30:37.087	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1719:20)
          
          javascript.0
          2022-11-11 12:30:37.084	warn	You are assigning a string to the state "0_userdata.0.NSPanel.1.Berry_Driver.currentVersion" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
          

          habe ich die Zeile:

          await setStateAsync(NSPanel_Path + 'Berry_Driver.currentVersion', <iobJS.State>{ val: JSON.parse(result).nlui_driver_version, ack: true });
          

          um ein parseInt erweitert dann wars weg:

          await setStateAsync(NSPanel_Path + 'Berry_Driver.currentVersion', <iobJS.State>{ val: parseInt(JSON.parse(result).nlui_driver_version), ack: true });
          
          ArmilarA Offline
          ArmilarA Offline
          Armilar
          Most Active Forum Testing
          schrieb am zuletzt editiert von Armilar
          #653

          @peoples sagte in SONOFF NSPanel mit Lovelace UI:

          ist es möglich bspw. bei Licht zwei verschiedene Symbole für On und Off zu verwenden?

          Bei den Gerätetypen Steckdose und Licht kannst du auch ein icon2 im pageItem mitgeben. Für die anderen Licht-Gerätetypen habe ich es noch nicht übernommen, wäre aber ebenfalls sinnvoll...

          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
          https://github.com/joBr99/nspanel-lovelace-ui/wiki

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          1 Antwort Letzte Antwort
          0
          • ArmilarA Armilar

            @matrose65

            Gleiches Problem... Du hast den JS-Adapter nicht auf v6.1.3 upgedatet. Es sind aktuell im Skript neue Alias-Funktionen drin und die gibt es erst seit dem 3.11.2022

            siehe auch: https://forum.iobroker.net/post/888302 von gestern (und die nachfolgenden 2 Posts)

            2 Möglichkeiten:

            • Version 3.5.0.5 mit einem aktualisierten JavaScript-Adapter auf v6.1.3
            • Version 3.5.0.4 ohne Update JS-Adapter.

            Die 6.1.3 läuft prima. Falls du auch noch ein veraltetes node.js hast, solltest du das vorher upgraden. Die empfohlene node.js Version ist 16.18.1 (empfohlen). Die 18er hat noch Fehler und "nein" - ist nicht besser

            also wenn node-v im Linux-Terminal kleiner als 16.X.X ist, dann
            https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debian

            J Offline
            J Offline
            Julez318
            schrieb am zuletzt editiert von
            #654

            @armilar
            wollte gerade meinen javascript Adapter auch auf die 6.1.3 updaten. Nur leider ist bei mir seit der installierten Version 6.0.3 kein Update mehr verfügbar.

            Hat das Problem hier auch schon jemand gehabt?

            VumerV Thomas BraunT 2 Antworten Letzte Antwort
            0
            • J Julez318

              @armilar
              wollte gerade meinen javascript Adapter auch auf die 6.1.3 updaten. Nur leider ist bei mir seit der installierten Version 6.0.3 kein Update mehr verfügbar.

              Hat das Problem hier auch schon jemand gehabt?

              VumerV Offline
              VumerV Offline
              Vumer
              schrieb am zuletzt editiert von Vumer
              #655

              @julez318
              fdc4ae1a-6f29-41bf-970b-14a5f54075af-grafik.png
              9918737e-3b76-4562-b330-4390dcf1dc15-grafik.png

              1 Antwort Letzte Antwort
              1
              • J Offline
                J Offline
                jprisum.de
                schrieb am zuletzt editiert von
                #656

                wie kann ich Berry-Driver Update durchführen?
                NSPanel-Update.jpg
                Ein Click auf ja langt nicht, es verschwindet zwar die Anzeige aber ein paar Std später ist es wieder da.

                ArmilarA 1 Antwort Letzte Antwort
                0
                • J Julez318

                  @armilar
                  wollte gerade meinen javascript Adapter auch auf die 6.1.3 updaten. Nur leider ist bei mir seit der installierten Version 6.0.3 kein Update mehr verfügbar.

                  Hat das Problem hier auch schon jemand gehabt?

                  Thomas BraunT Online
                  Thomas BraunT Online
                  Thomas Braun
                  Most Active
                  schrieb am zuletzt editiert von
                  #657

                  @julez318 sagte in SONOFF NSPanel mit Lovelace UI:

                  Hat das Problem hier auch schon jemand gehabt?

                  Das ist kein Problem, das sind einfach die zur Zeit in den einzelnen Repos verfübaren Versionen.

                  javascript
                  github:	6.1.3
                  latest:	6.1.3 for 7 days
                  stable:	6.0.3 for 58 days
                  

                  Linux-Werkzeugkasten:
                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                  NodeJS Fixer Skript:
                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                  D 1 Antwort Letzte Antwort
                  0
                  • Thomas BraunT Thomas Braun

                    @julez318 sagte in SONOFF NSPanel mit Lovelace UI:

                    Hat das Problem hier auch schon jemand gehabt?

                    Das ist kein Problem, das sind einfach die zur Zeit in den einzelnen Repos verfübaren Versionen.

                    javascript
                    github:	6.1.3
                    latest:	6.1.3 for 7 days
                    stable:	6.0.3 for 58 days
                    
                    D Offline
                    D Offline
                    danny_v1
                    schrieb am zuletzt editiert von
                    #658

                    So ich habe gerade alles nach Anleitung installiert. Ich habe das PanelTs ohne Beispiele verwendet und bekomme beim Start des Skriptes folgende Fehlermeldung:

                    javascript.0 (13719) script.js.common.NSPanel_DEV.NSPanelTs: TypeScript compilation failed: 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'. 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'.
                    

                    leigt bestimmt am anlegen der Wetterdatenpunkte.

                    ArmilarA 1 Antwort Letzte Antwort
                    0
                    • D danny_v1

                      So ich habe gerade alles nach Anleitung installiert. Ich habe das PanelTs ohne Beispiele verwendet und bekomme beim Start des Skriptes folgende Fehlermeldung:

                      javascript.0 (13719) script.js.common.NSPanel_DEV.NSPanelTs: TypeScript compilation failed: 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'. 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'.
                      

                      leigt bestimmt am anlegen der Wetterdatenpunkte.

                      ArmilarA Offline
                      ArmilarA Offline
                      Armilar
                      Most Active Forum Testing
                      schrieb am zuletzt editiert von
                      #659

                      @danny_v1

                      Nein, liegt daran, dass du die TS-Version 3.5.0.5 benutzt, aber nicht den JavaScript-Adapter in der Version 6.1.3

                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      1 Antwort Letzte Antwort
                      0
                      • J jprisum.de

                        wie kann ich Berry-Driver Update durchführen?
                        NSPanel-Update.jpg
                        Ein Click auf ja langt nicht, es verschwindet zwar die Anzeige aber ein paar Std später ist es wieder da.

                        ArmilarA Offline
                        ArmilarA Offline
                        Armilar
                        Most Active Forum Testing
                        schrieb am zuletzt editiert von
                        #660

                        @jprisum-de

                        Manuelle Updates auf false stellen (oben im Script) oder in der 0_userdata.0. eine 4 eintragen...

                        4666709e-8e5e-44a4-882c-338c68480d69-image.png

                        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        D J 2 Antworten Letzte Antwort
                        0
                        • ArmilarA Armilar

                          @jprisum-de

                          Manuelle Updates auf false stellen (oben im Script) oder in der 0_userdata.0. eine 4 eintragen...

                          4666709e-8e5e-44a4-882c-338c68480d69-image.png

                          D Offline
                          D Offline
                          danny_v1
                          schrieb am zuletzt editiert von
                          #661

                          @armilar ich hab javaskript 6.0.3. Zeigt mir auch keine Aktualisierung an.

                          denk manuelle updates sind aus

                          let manually_Update = false;
                          

                          aber die Datenpunkte aus deinem Bild existieren bei mir nicht.

                          ArmilarA 1 Antwort Letzte Antwort
                          0
                          • D danny_v1

                            @armilar ich hab javaskript 6.0.3. Zeigt mir auch keine Aktualisierung an.

                            denk manuelle updates sind aus

                            let manually_Update = false;
                            

                            aber die Datenpunkte aus deinem Bild existieren bei mir nicht.

                            ArmilarA Offline
                            ArmilarA Offline
                            Armilar
                            Most Active Forum Testing
                            schrieb am zuletzt editiert von Armilar
                            #662

                            @danny_v1 nee, für dich war nicht der Post mit den manuellen Updates

                            Sie mal ein paar Posts zurück. Da steht was über das Beta-Repository

                            https://forum.iobroker.net/post/890251

                            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                            https://github.com/joBr99/nspanel-lovelace-ui/wiki

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            D 1 Antwort Letzte Antwort
                            0
                            • ArmilarA Armilar

                              @danny_v1 nee, für dich war nicht der Post mit den manuellen Updates

                              Sie mal ein paar Posts zurück. Da steht was über das Beta-Repository

                              https://forum.iobroker.net/post/890251

                              D Offline
                              D Offline
                              danny_v1
                              schrieb am zuletzt editiert von danny_v1
                              #663

                              @armilar ok mit dem update vom skriptadapter läufts! Aber der Nextion editor warte immer noch auf content

                              Edit: hab gerade gemerkt mit fehlt der Datenpunkt customSend.

                              Edit2: Datenpunkt ist jetzt angelegt, jetzt kommt der Berry-Driver Update Bildschirm aber agal was ich mache "ja", "nein" oder "x" nichts passiert

                              Edit3: Nextion Editor neu gestartet jetzt hab ich wieder Waiting for content und im CustomSend steht Timeout 20

                              ArmilarA 1 Antwort Letzte Antwort
                              0
                              • D danny_v1

                                @armilar ok mit dem update vom skriptadapter läufts! Aber der Nextion editor warte immer noch auf content

                                Edit: hab gerade gemerkt mit fehlt der Datenpunkt customSend.

                                Edit2: Datenpunkt ist jetzt angelegt, jetzt kommt der Berry-Driver Update Bildschirm aber agal was ich mache "ja", "nein" oder "x" nichts passiert

                                Edit3: Nextion Editor neu gestartet jetzt hab ich wieder Waiting for content und im CustomSend steht Timeout 20

                                ArmilarA Offline
                                ArmilarA Offline
                                Armilar
                                Most Active Forum Testing
                                schrieb am zuletzt editiert von
                                #664

                                @danny_v1 diese Lösung steht 4 Posts zurück

                                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                D 1 Antwort Letzte Antwort
                                0
                                • ArmilarA Armilar

                                  @danny_v1 diese Lösung steht 4 Posts zurück

                                  D Offline
                                  D Offline
                                  danny_v1
                                  schrieb am zuletzt editiert von
                                  #665

                                  @armilar ok 4 ist eingetragen, aber ich hänge mal wieder im waiting for content

                                  ArmilarA 1 Antwort Letzte Antwort
                                  0
                                  • D danny_v1

                                    @armilar ok 4 ist eingetragen, aber ich hänge mal wieder im waiting for content

                                    ArmilarA Offline
                                    ArmilarA Offline
                                    Armilar
                                    Most Active Forum Testing
                                    schrieb am zuletzt editiert von
                                    #666

                                    @danny_v1

                                    Ich habe die Vermutung, dass deine autoexec.be im Tasmota auf 0 kb steht. Sieh mal nach und wenn es so ist, dann erneuere sie nochmals

                                    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    D 1 Antwort Letzte Antwort
                                    0
                                    • ArmilarA Armilar

                                      @danny_v1

                                      Ich habe die Vermutung, dass deine autoexec.be im Tasmota auf 0 kb steht. Sieh mal nach und wenn es so ist, dann erneuere sie nochmals

                                      D Offline
                                      D Offline
                                      danny_v1
                                      schrieb am zuletzt editiert von
                                      #667

                                      @armilar autoexec.be steht auf 3720 aber ich spiel sie noch mal neu ein

                                      ArmilarA 1 Antwort Letzte Antwort
                                      0
                                      • D danny_v1

                                        @armilar autoexec.be steht auf 3720 aber ich spiel sie noch mal neu ein

                                        ArmilarA Offline
                                        ArmilarA Offline
                                        Armilar
                                        Most Active Forum Testing
                                        schrieb am zuletzt editiert von Armilar
                                        #668

                                        @danny_v1

                                        Moment bist du mit der Emu unterwegs oder mit dem Original-Panel? Das sind zwei unterschiedliche Berry Treiber

                                        Der wäre für das Original-Panel
                                        https://github.com/joBr99/nspanel-lovelace-ui/blob/main/tasmota/autoexec.be

                                        Der nachfolgende für die Emulation:

                                        # Nextion Serial Protocol driver by joBr99 + nextion upload protocol 1.2 (the fast one yay) implementation using http range and tcpclient
                                        # based on;
                                        # Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
                                         
                                        class Nextion : Driver
                                         
                                            var ser
                                        	var flash_size
                                        	var flash_mode
                                        	var flash_skip
                                        	var flash_current_byte
                                        	var tftd
                                        	var progress_percentage_last
                                        	static header = bytes('55BB')
                                         
                                            def init()
                                                log("NSP: Initializing Driver")
                                                self.ser = serial(3, 1, 115200, serial.SERIAL_8N1)
                                                self.flash_mode = 0
                                        		self.flash_skip = false
                                        		tasmota.add_driver(self)
                                            end
                                        	
                                            def crc16(data, poly)
                                              if !poly  poly = 0xA001 end
                                              # CRC-16 MODBUS HASHING ALGORITHM
                                              var crc = 0xFFFF
                                              for i:0..size(data)-1
                                                crc = crc ^ data[i]
                                                for j:0..7
                                                  if crc & 1
                                                    crc = (crc >> 1) ^ poly
                                                  else
                                                    crc = crc >> 1
                                                  end
                                                end
                                              end
                                              return crc
                                            end
                                        	
                                            def split_55(b)
                                              var ret = []
                                              var s = size(b)   
                                              var i = s-2   # start from last
                                              while i > 0
                                                if b[i] == 0x55 && b[i+1] == 0xBB           
                                                  ret.push(b[i..s-1]) # push last msg to list
                                                  b = b[(0..i-1)]   # write the rest back to b
                                                end
                                                i -= 1
                                              end
                                              ret.push(b)
                                              return ret
                                            end
                                         
                                        	# encode using custom protocol 55 BB [payload length] [payload] [crc] [crc]
                                            def encode(payload)
                                              var b = bytes()
                                              b += self.header
                                              b.add(size(payload), 2)   # add size as 1 byte
                                              b += bytes().fromstring(payload)
                                              var msg_crc = self.crc16(b)
                                              b.add(msg_crc, 2)       # crc 2 bytes, little endian
                                              return b
                                            end
                                        	
                                        	# send a nextion payload
                                        	def encodenx(payload)
                                        		var b = bytes().fromstring(payload)
                                        		b += bytes('FFFFFF')
                                        		return b
                                        	end
                                        	
                                        	def sendnx(payload)
                                        		var payload_bin = self.encodenx(payload)
                                        		self.ser.write(payload_bin)
                                        		 print("NSP: Sent =", payload_bin)
                                        		log("NSP: Nextion command sent = " + str(payload_bin), 3)
                                        	end
                                          
                                            def send(payload)
                                                var payload_bin = self.encode(payload)
                                                if self.flash_mode==1
                                                    log("NSP: skipped command becuase still flashing", 3)
                                                else 
                                                    self.ser.write(payload_bin)
                                                    log("NSP: payload sent = " + str(payload_bin), 3)
                                                end
                                            end
                                        		
                                        	def every_100ms()
                                                import string
                                                if self.ser.available() > 0
                                                    var msg = self.ser.read()
                                                    if size(msg) > 0
                                                        print("NSP: Received Raw =", msg)
                                                        if self.flash_mode==1
                                                            log("no flashing in this version")
                                                        else
                                        					# Recive messages using custom protocol 55 BB [payload length] [payload length] [payload] [crc] [crc]
                                        					if msg[0..1] == self.header
                                        						var lst = self.split_55(msg)
                                        						for i:0..size(lst)-1
                                        							msg = lst[i]
                                        							#var j = msg[2]+2
                                        							var j = size(msg) - 3
                                        							msg = msg[4..j]
                                        							if size(msg) > 2
                                        								var jm = string.format("{\"CustomRecv\":\"%s\"}",msg.asstring())
                                        								tasmota.publish_result(jm, "RESULT")
                                        							end
                                        						end
                                        					elif msg == bytes('000000FFFFFF88FFFFFF')
                                        						log("NSP: Screen Initialized")
                                        					else
                                                                var jm = string.format("{\"nextion\":\"%s\"}",str(msg[0..-4]))
                                        						tasmota.publish_result(jm, "RESULT")
                                        					end       			
                                                        end
                                                    end
                                                end
                                            end
                                        end
                                         
                                        var nextion = Nextion()
                                         
                                        def send_cmd(cmd, idx, payload, payload_json)
                                            nextion.sendnx(payload)
                                            tasmota.resp_cmnd_done()
                                        end
                                         
                                        tasmota.add_cmd('Nextion', send_cmd)
                                         
                                        def send_cmd2(cmd, idx, payload, payload_json)
                                            nextion.send(payload)
                                            tasmota.resp_cmnd_done()
                                        end
                                         
                                        tasmota.add_cmd('CustomSend', send_cmd2)
                                        

                                        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        D 1 Antwort Letzte Antwort
                                        0
                                        • ArmilarA Armilar

                                          @danny_v1

                                          Moment bist du mit der Emu unterwegs oder mit dem Original-Panel? Das sind zwei unterschiedliche Berry Treiber

                                          Der wäre für das Original-Panel
                                          https://github.com/joBr99/nspanel-lovelace-ui/blob/main/tasmota/autoexec.be

                                          Der nachfolgende für die Emulation:

                                          # Nextion Serial Protocol driver by joBr99 + nextion upload protocol 1.2 (the fast one yay) implementation using http range and tcpclient
                                          # based on;
                                          # Sonoff NSPanel Tasmota driver v0.47 | code by blakadder and s-hadinger
                                           
                                          class Nextion : Driver
                                           
                                              var ser
                                          	var flash_size
                                          	var flash_mode
                                          	var flash_skip
                                          	var flash_current_byte
                                          	var tftd
                                          	var progress_percentage_last
                                          	static header = bytes('55BB')
                                           
                                              def init()
                                                  log("NSP: Initializing Driver")
                                                  self.ser = serial(3, 1, 115200, serial.SERIAL_8N1)
                                                  self.flash_mode = 0
                                          		self.flash_skip = false
                                          		tasmota.add_driver(self)
                                              end
                                          	
                                              def crc16(data, poly)
                                                if !poly  poly = 0xA001 end
                                                # CRC-16 MODBUS HASHING ALGORITHM
                                                var crc = 0xFFFF
                                                for i:0..size(data)-1
                                                  crc = crc ^ data[i]
                                                  for j:0..7
                                                    if crc & 1
                                                      crc = (crc >> 1) ^ poly
                                                    else
                                                      crc = crc >> 1
                                                    end
                                                  end
                                                end
                                                return crc
                                              end
                                          	
                                              def split_55(b)
                                                var ret = []
                                                var s = size(b)   
                                                var i = s-2   # start from last
                                                while i > 0
                                                  if b[i] == 0x55 && b[i+1] == 0xBB           
                                                    ret.push(b[i..s-1]) # push last msg to list
                                                    b = b[(0..i-1)]   # write the rest back to b
                                                  end
                                                  i -= 1
                                                end
                                                ret.push(b)
                                                return ret
                                              end
                                           
                                          	# encode using custom protocol 55 BB [payload length] [payload] [crc] [crc]
                                              def encode(payload)
                                                var b = bytes()
                                                b += self.header
                                                b.add(size(payload), 2)   # add size as 1 byte
                                                b += bytes().fromstring(payload)
                                                var msg_crc = self.crc16(b)
                                                b.add(msg_crc, 2)       # crc 2 bytes, little endian
                                                return b
                                              end
                                          	
                                          	# send a nextion payload
                                          	def encodenx(payload)
                                          		var b = bytes().fromstring(payload)
                                          		b += bytes('FFFFFF')
                                          		return b
                                          	end
                                          	
                                          	def sendnx(payload)
                                          		var payload_bin = self.encodenx(payload)
                                          		self.ser.write(payload_bin)
                                          		 print("NSP: Sent =", payload_bin)
                                          		log("NSP: Nextion command sent = " + str(payload_bin), 3)
                                          	end
                                            
                                              def send(payload)
                                                  var payload_bin = self.encode(payload)
                                                  if self.flash_mode==1
                                                      log("NSP: skipped command becuase still flashing", 3)
                                                  else 
                                                      self.ser.write(payload_bin)
                                                      log("NSP: payload sent = " + str(payload_bin), 3)
                                                  end
                                              end
                                          		
                                          	def every_100ms()
                                                  import string
                                                  if self.ser.available() > 0
                                                      var msg = self.ser.read()
                                                      if size(msg) > 0
                                                          print("NSP: Received Raw =", msg)
                                                          if self.flash_mode==1
                                                              log("no flashing in this version")
                                                          else
                                          					# Recive messages using custom protocol 55 BB [payload length] [payload length] [payload] [crc] [crc]
                                          					if msg[0..1] == self.header
                                          						var lst = self.split_55(msg)
                                          						for i:0..size(lst)-1
                                          							msg = lst[i]
                                          							#var j = msg[2]+2
                                          							var j = size(msg) - 3
                                          							msg = msg[4..j]
                                          							if size(msg) > 2
                                          								var jm = string.format("{\"CustomRecv\":\"%s\"}",msg.asstring())
                                          								tasmota.publish_result(jm, "RESULT")
                                          							end
                                          						end
                                          					elif msg == bytes('000000FFFFFF88FFFFFF')
                                          						log("NSP: Screen Initialized")
                                          					else
                                                                  var jm = string.format("{\"nextion\":\"%s\"}",str(msg[0..-4]))
                                          						tasmota.publish_result(jm, "RESULT")
                                          					end       			
                                                          end
                                                      end
                                                  end
                                              end
                                          end
                                           
                                          var nextion = Nextion()
                                           
                                          def send_cmd(cmd, idx, payload, payload_json)
                                              nextion.sendnx(payload)
                                              tasmota.resp_cmnd_done()
                                          end
                                           
                                          tasmota.add_cmd('Nextion', send_cmd)
                                           
                                          def send_cmd2(cmd, idx, payload, payload_json)
                                              nextion.send(payload)
                                              tasmota.resp_cmnd_done()
                                          end
                                           
                                          tasmota.add_cmd('CustomSend', send_cmd2)
                                          

                                          D Offline
                                          D Offline
                                          danny_v1
                                          schrieb am zuletzt editiert von
                                          #669

                                          @armilar ne bin noch im emu

                                          ArmilarA 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          717

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe