Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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.8k

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

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.7k Posts 271 Posters 6.7m Views 253 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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
    wrote on last edited by
    #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 Reply Last reply
    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
      wrote on last edited by
      #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 Replies Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by 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 Reply Last reply
          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
            wrote on last edited by 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 Reply Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              0
              • ArmilarA Armilar

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

                D Offline
                D Offline
                danny_v1
                wrote on last edited by
                #665

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

                ArmilarA 1 Reply Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #667

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

                    ArmilarA 1 Reply Last reply
                    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
                      wrote on last edited by 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 Reply Last reply
                      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
                        wrote on last edited by
                        #669

                        @armilar ne bin noch im emu

                        ArmilarA 1 Reply Last reply
                        0
                        • D danny_v1

                          @armilar ne bin noch im emu

                          ArmilarA Offline
                          ArmilarA Offline
                          Armilar
                          Most Active Forum Testing
                          wrote on last edited by
                          #670

                          @danny_v1

                          Emu im Nextion-Editor?

                          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 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            danny_v1
                            wrote on last edited by
                            #671

                            @armilar richtig. Autoexec.be passt hab deine noch mal kopiert und komme wieder auf 3720

                            1 Reply Last reply
                            0
                            • ArmilarA Offline
                              ArmilarA Offline
                              Armilar
                              Most Active Forum Testing
                              wrote on last edited by
                              #672

                              @danny_v1

                              Im Nextion-Editor unter Debug:
                              Dort unten links von Keyboard Input auf User MCU Input umstellen, den COM-Port des ESP auswählen und die Baud-Rate auf 115200 stellen. Mit Start verbindet man sich nun zum ESP.

                              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 Reply Last reply
                              0
                              • ArmilarA Armilar

                                @danny_v1

                                Im Nextion-Editor unter Debug:
                                Dort unten links von Keyboard Input auf User MCU Input umstellen, den COM-Port des ESP auswählen und die Baud-Rate auf 115200 stellen. Mit Start verbindet man sich nun zum ESP.

                                D Offline
                                D Offline
                                danny_v1
                                wrote on last edited by
                                #673

                                @armilar ja hab ich es kommt auch event startup 44 an

                                ArmilarA 1 Reply Last reply
                                0
                                • D danny_v1

                                  @armilar ja hab ich es kommt auch event startup 44 an

                                  ArmilarA Offline
                                  ArmilarA Offline
                                  Armilar
                                  Most Active Forum Testing
                                  wrote on last edited by
                                  #674

                                  @danny_v1

                                  Läuft also?

                                  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 Reply Last reply
                                  0
                                  • ArmilarA Armilar

                                    @danny_v1

                                    Läuft also?

                                    D Offline
                                    D Offline
                                    danny_v1
                                    wrote on last edited by
                                    #675

                                    @armilar Verbindung ja aber steht immernoch auf waiting for content. Hab das Skript ohne Beispiele aber sollte ja zumindest in den Screensaver mit dem Wetter gehen oder?

                                    ArmilarA 1 Reply Last reply
                                    0
                                    • D danny_v1

                                      @armilar Verbindung ja aber steht immernoch auf waiting for content. Hab das Skript ohne Beispiele aber sollte ja zumindest in den Screensaver mit dem Wetter gehen oder?

                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      wrote on last edited by
                                      #676

                                      @danny_v1

                                      ESP ist über USB verbunden und MQTT korrekt eingerichtet?

                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---Basisinstallation#4-mqtt-tasmota-config

                                      Punkt 4 und 6.

                                      Liegt häufig daran, dass die MQTT-Verbindung zwischen CustomSend (häufig noch über Mosquitto) zum NSPanel nicht korrekt konfiguriert ist. Das Panel kommuniziert in beide Richtungen

                                      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 Reply Last reply
                                      0
                                      • ArmilarA Armilar

                                        @danny_v1

                                        ESP ist über USB verbunden und MQTT korrekt eingerichtet?

                                        https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---Basisinstallation#4-mqtt-tasmota-config

                                        Punkt 4 und 6.

                                        Liegt häufig daran, dass die MQTT-Verbindung zwischen CustomSend (häufig noch über Mosquitto) zum NSPanel nicht korrekt konfiguriert ist. Das Panel kommuniziert in beide Richtungen

                                        D Offline
                                        D Offline
                                        danny_v1
                                        wrote on last edited by
                                        #677

                                        @armilar ja kofig hab ich genauso gemacht, hab in der mqtt instanz den timeout mal hoch gesetzt. aber ansonsten so wie beschrieben, der adapter sagt auch verbunden mit NSPanel_DEV

                                        ArmilarA 1 Reply Last reply
                                        0
                                        • D danny_v1

                                          @armilar ja kofig hab ich genauso gemacht, hab in der mqtt instanz den timeout mal hoch gesetzt. aber ansonsten so wie beschrieben, der adapter sagt auch verbunden mit NSPanel_DEV

                                          ArmilarA Offline
                                          ArmilarA Offline
                                          Armilar
                                          Most Active Forum Testing
                                          wrote on last edited by
                                          #678

                                          @danny_v1

                                          Dann zeige mal den CustomSend im MQTT und in der Script-Config

                                          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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          535

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe