mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-26 01:14:25 +01:00
Add support for Unicode over serial (#122)
* added utf8 fonts with multi lang charset * removed icon substring stuff * synced US-L version
This commit is contained in:
@@ -1,100 +1,25 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
icons = [
|
||||
"alert-circle-outline",
|
||||
"lightbulb",
|
||||
"thermometer",
|
||||
"gesture-tap-button",
|
||||
"flash",
|
||||
"music",
|
||||
"check-circle-outline",
|
||||
"close-circle-outline",
|
||||
"pause",
|
||||
"play",
|
||||
"palette",
|
||||
"window-open",
|
||||
"weather-cloudy",
|
||||
"weather-fog",
|
||||
"weather-hail",
|
||||
"weather-lightning",
|
||||
"weather-lightning-rainy",
|
||||
"weather-night",
|
||||
"weather-partly-cloudy",
|
||||
"weather-pouring",
|
||||
"weather-rainy",
|
||||
"weather-snowy",
|
||||
"weather-snowy-rainy",
|
||||
"weather-sunny",
|
||||
"weather-windy",
|
||||
"weather-windy-variant",
|
||||
"water-percent",
|
||||
"power",
|
||||
"fire",
|
||||
"calendar-sync",
|
||||
"fan",
|
||||
"snowflake",
|
||||
"solar-power",
|
||||
"battery-charging-medium",
|
||||
"battery-medium",
|
||||
"shield-home",
|
||||
"door-open",
|
||||
"door-closed",
|
||||
"window-closed",
|
||||
"shield-off",
|
||||
"shield",
|
||||
"shield-lock",
|
||||
"shield-airplane",
|
||||
"bell-ring",
|
||||
"ray-vertex",
|
||||
"script-text",
|
||||
"home-import-outline",
|
||||
"home-export-outline",
|
||||
"arrow-up-bold",
|
||||
"arrow-down-bold",
|
||||
"cast-audio",
|
||||
"cast",
|
||||
"radio",
|
||||
"fireplace",
|
||||
"arrow-left-bold",
|
||||
"arrow-right-bold",
|
||||
"sofa",
|
||||
"garage-variant",
|
||||
"bed",
|
||||
"soccer",
|
||||
"silverware-variant"
|
||||
]
|
||||
|
||||
|
||||
__location__ = os.path.realpath(
|
||||
os.path.join(os.getcwd(), os.path.dirname(__file__)))
|
||||
|
||||
with open(os.path.join(__location__, "icons.json"),'r') as f:
|
||||
icon_metadata = json.load(f)
|
||||
|
||||
icon_nextion_string = ""
|
||||
icon_name_list = []
|
||||
|
||||
for icon_name in icons:
|
||||
#print(icon_name)
|
||||
icon = next((item for item in icon_metadata if item["name"] == icon_name), None)
|
||||
if icon is None:
|
||||
print(f"WARNING ICON NOT FOUND: {icon_name}")
|
||||
else:
|
||||
hex = icon['hex']
|
||||
s = int(hex, 16)
|
||||
#print(chr(s), end = '')
|
||||
icon_nextion_string += chr(s)
|
||||
icon_name_list.append(icon_name)
|
||||
|
||||
# write mapping lib for python
|
||||
with open(os.path.join(__location__, "../../../apps/nspanel-lovelace-ui/luibackend", "icon_mapping.py"), 'w') as f:
|
||||
f.write("icons = {\n")
|
||||
for idx, val in enumerate(icon_name_list):
|
||||
f.write(f" '{val}': {idx},\n")
|
||||
for icon in icon_metadata:
|
||||
iconchar = chr(int(icon['hex'], 16))
|
||||
name = icon["name"]
|
||||
f.write(f" '{name}': '{iconchar}',\n")
|
||||
f.write("}\n")
|
||||
f.write("""
|
||||
def get_icon_id(ma_name):
|
||||
ma_name = ma_name.replace("mdi:","")
|
||||
if ma_name in icons:
|
||||
return icons[ma_name]
|
||||
else:
|
||||
@@ -107,13 +32,9 @@ with open(os.path.join(__location__, "../..","icons.md"), 'w') as f:
|
||||
# Icons IDs
|
||||
This file contains the Icons IDs included in the display firmware, addressable via serial.
|
||||
|
||||
ID | MD Icon Name | Icon
|
||||
-- | ------------ | ----
|
||||
MD Icon Name | Icon
|
||||
------------ | ----
|
||||
""")
|
||||
for idx, val in enumerate(icon_name_list):
|
||||
f.write(f"{idx} | {val} | \n")
|
||||
|
||||
|
||||
print("=== STRING for HMI Project ===")
|
||||
print("=== Put the following string into the txt field in nextion ===")
|
||||
print(icon_nextion_string)
|
||||
for icon in icon_metadata:
|
||||
val = icon["name"]
|
||||
f.write(f"mdi:{val} | \n")
|
||||
|
||||
@@ -7,7 +7,7 @@ head = sharedhead + """
|
||||
""" + navigation
|
||||
print(head)
|
||||
start = 3
|
||||
for i in range(1,7):
|
||||
for i in range(1,5):
|
||||
idxstart = start + (i-1)*6
|
||||
item = f"""
|
||||
// get Type
|
||||
@@ -28,9 +28,7 @@ for i in range(1,7):
|
||||
}}else
|
||||
{{
|
||||
// change icon
|
||||
spstr strCommand.txt,tTmp.txt,"~",{idxstart+2}
|
||||
covx tTmp.txt,sys0,0,0
|
||||
substr pageIcons.tIcons.txt,tIcon{i}.txt,sys0,1
|
||||
spstr strCommand.txt,tIcon{i}.txt,"~",{idxstart+2}
|
||||
vis tIcon{i},1
|
||||
// change icon color
|
||||
spstr strCommand.txt,tTmp.txt,"~",{idxstart+3}
|
||||
|
||||
@@ -21,9 +21,7 @@ for i in range(1,7):
|
||||
}}else
|
||||
{{
|
||||
// change icon
|
||||
spstr strCommand.txt,tTmp.txt,",",{idxstart+2}
|
||||
covx tTmp.txt,sys0,0,0
|
||||
substr pageIcons.tIcons.txt,bEntity{i}.txt,sys0,1
|
||||
spstr strCommand.txt,bEntity{i}.txt,",",{idxstart+2}
|
||||
vis bEntity{i},1
|
||||
// change icon color
|
||||
spstr strCommand.txt,tTmp.txt,",",{idxstart+3}
|
||||
|
||||
@@ -46,8 +46,7 @@ for i in range(0,9):
|
||||
if(tTmp.txt!="")
|
||||
{{
|
||||
// set icon
|
||||
covx tTmp.txt,sys0,0,0
|
||||
substr pageIcons.tIcons.txt,bt{i}.txt,sys0,1
|
||||
bt{i}.txt=tTmp.txt
|
||||
// set text color on active state
|
||||
spstr strCommand.txt,tTmp.txt,",",{idxstart+1}
|
||||
covx tTmp.txt,bt{i}.pco2,0,0
|
||||
|
||||
Reference in New Issue
Block a user