NxPanel - Replacement Firmware for Sonoff NSPanel

I´m back at trying to solve the charset issue I have.
Last time I have up and uses english instead, but now I have another NSPanel that the chilrden will use, so need to get it to work in swedish this time :slight_smile:

I got this help from Mike, so looks like it should be possible.

This is the json received på NSPanel (from Tasmota console on the Panel)

11:04:51.498 CMD: Grp 0, Cmd ‘NXPANEL’, Idx 1, Len 278, Pld -99, Data ‘{“refresh”:{“pid”:22,“name”:“Status”,“format”:15,buttons:[“status”:[{“id”:1,“text”:“Ytterdörr”:,“value”:,“ON”,“color”:2},{“id”:2,“text”:“Garage”:,“value”:,“true”,“color”:3},{“id”:3,“text”:“Förråd”:,“value”:,“CLOSED”,“color”:3},{“id”:5,“text”:“Room Temp”:,“value”:,“20°C”}]}}’

So far the text is looking fine. But below is an image of the result on sceen.

I have spent a few hours on googling and trying out things. I wounder if it has something to do with Nextion driver not getting the characters as double bytes? Similar to this issue here:

I have looked in the Barry driver, and been styding this part. But its above my skill level.

def encode(payload)
var b = bytes()
b += self.header
var nsp_type = 0 # not used
b.add(nsp_type) # add a single byte
var b1 = bytes().fromstring(payload)
var b2 = bytes()
for i: 0…size(b1)-1
if (b1[i]!=0xC2)
b2.add(b1[i])
end
end
b.add(size(b2), 2) # add size as 2 bytes, little endian
b += b2
log(msg_crc)
var msg_crc = self.crc16(b)
b.add(msg_crc, 2) # crc 2 bytes, little endian
return b
end

@InTim Can you link your map file again?
And if you have changed the script share the latest version?

Hi there,
impressive work @m-home. especially on the install part which is flawless. Also thanks @Alf for the comprehensive guide!

Are there any plans to make the HMI public? I would love to customize the heater panel for my fridge which has a fill percentage and Temperature values to display. No need for this to go into mainline for all.

Also regarding aforementioned Memory Problems. How much is left? I wonder if the frequently used pages like 8 Button and 6 Button could be duplicated to circumvent “if you use e.g., a four-button panel twice, but it then the panel needs to be re-rendered each time it’s called – an in comparison slow process”?

1 Like

Hi Mike, I’m Patrick and I thought your work was great. I’m using your build (hmi) with a script (dzvent) on Domoticz, and so far everything works. I just noticed a bug on the thermostat display! A color deviation of the thermos current and required. An 8° deviation, so that the levels and colors are identical. But I don’t know if you’re still developing the HMI…
If you give up on the evolution project, you would be nice to make your HMI available. Thank you for your reply.