Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. SONOFF NSPanel mit Lovelace UI

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • Armilar
      Armilar Most Active Forum Testing @danny_v1 last edited by

      @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

      1 Reply Last reply Reply Quote 0
      • Armilar
        Armilar Most Active Forum Testing @jprisum.de last edited by

        @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 J 2 Replies Last reply Reply Quote 0
        • D
          danny_v1 @Armilar last edited by

          @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.

          Armilar 1 Reply Last reply Reply Quote 0
          • Armilar
            Armilar Most Active Forum Testing @danny_v1 last edited by 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 1 Reply Last reply Reply Quote 0
            • D
              danny_v1 @Armilar last edited by 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

              Armilar 1 Reply Last reply Reply Quote 0
              • Armilar
                Armilar Most Active Forum Testing @danny_v1 last edited by

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

                D 1 Reply Last reply Reply Quote 0
                • D
                  danny_v1 @Armilar last edited by

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

                  Armilar 1 Reply Last reply Reply Quote 0
                  • Armilar
                    Armilar Most Active Forum Testing @danny_v1 last edited by

                    @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 1 Reply Last reply Reply Quote 0
                    • D
                      danny_v1 @Armilar last edited by

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

                      Armilar 1 Reply Last reply Reply Quote 0
                      • Armilar
                        Armilar Most Active Forum Testing @danny_v1 last edited by 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 1 Reply Last reply Reply Quote 0
                        • D
                          danny_v1 @Armilar last edited by

                          @armilar ne bin noch im emu

                          Armilar 1 Reply Last reply Reply Quote 0
                          • Armilar
                            Armilar Most Active Forum Testing @danny_v1 last edited by

                            @danny_v1

                            Emu im Nextion-Editor?

                            1 Reply Last reply Reply Quote 0
                            • D
                              danny_v1 last edited by

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

                              1 Reply Last reply Reply Quote 0
                              • Armilar
                                Armilar Most Active Forum Testing last edited by

                                @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 1 Reply Last reply Reply Quote 0
                                • D
                                  danny_v1 @Armilar last edited by

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

                                  Armilar 1 Reply Last reply Reply Quote 0
                                  • Armilar
                                    Armilar Most Active Forum Testing @danny_v1 last edited by

                                    @danny_v1

                                    Läuft also?

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      danny_v1 @Armilar last edited by

                                      @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?

                                      Armilar 1 Reply Last reply Reply Quote 0
                                      • Armilar
                                        Armilar Most Active Forum Testing @danny_v1 last edited by

                                        @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 1 Reply Last reply Reply Quote 0
                                        • D
                                          danny_v1 @Armilar last edited by

                                          @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

                                          Armilar 1 Reply Last reply Reply Quote 0
                                          • Armilar
                                            Armilar Most Active Forum Testing @danny_v1 last edited by

                                            @danny_v1

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

                                            D 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            976
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            260
                                            7128
                                            4355388
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo