Compare commits

..

11 Commits

Author SHA1 Message Date
Johannes
1400ef039b bump version to 3.8.2 2023-01-06 14:44:44 +01:00
Johannes
ef83c45267 Merge branch 'main' of https://github.com/joBr99/nspanel-lovelace-ui 2023-01-06 14:43:53 +01:00
Johannes
5fb4e57cd1 hide 6th entity 2023-01-06 14:43:48 +01:00
Johannes
cbc256bbf9 fixes #670 2023-01-06 14:38:48 +01:00
Armilar
a5e60ac313 v3.8.1 - New Release (Breaking Changes)
- Add New HMI-Navi (Breaking Changes)
- Add Tasmota "Web Admin Password" (Breaking Changes)
- Add Navigation bSubPrev and bSubNext and Subpages for bHome
- Bugfix for cardThermostat - Payload (Minor)
- Add Volumio-Player to cardMedia by @egal
- Upgrade TFT 47
- Add Volumio-Tracklist to cardMedia by @egal
- HMI Hotfix
2023-01-06 12:15:53 +01:00
Armilar
d634ca1bac v3.8.1 - New Release (Breaking Changes)
- Add New HMI-Navi (Breaking Changes)
- Add Tasmota "Web Admin Password" (Breaking Changes)
- Add Navigation bSubPrev and bSubNext and Subpages for bHome
- Bugfix for cardThermostat - Payload (Minor)
- Add Volumio-Player to cardMedia by @egal
- Upgrade TFT 47
- Add Volumio-Tracklist to cardMedia by @egal
- HMI Hotfix
2023-01-06 12:12:17 +01:00
Armilar
0a6236b3e0 v3.8.0 - New Release (Breaking Changes)
- Add New HMI-Navi (Breaking Changes)
- Add Tasmota "Web Admin Password" (Breaking Changes)
- Add Navigation bSubPrev and bSubNext and Subpages for bHome
- Bugfix for cardThermostat - Payload (Minor)
- Add Volumio-Player to cardMedia by @egal
- Upgrade TFT 47
- Add Volumio-Tracklist to cardMedia by @egal
2023-01-06 11:56:00 +01:00
Armilar
183e4d03cb v3.8.0 - New Release (Breaking Changes)
- Add New HMI-Navi (Breaking Changes)
- Add Tasmota "Web Admin Password" (Breaking Changes)
- Add Navigation bSubPrev and bSubNext and Subpages for bHome
- Bugfix for cardThermostat - Payload (Minor)
- Add Volumio-Player to cardMedia by @egal
- Upgrade TFT 47
- Add Volumio-Tracklist to cardMedia by @egal
2023-01-06 11:53:45 +01:00
Armilar
8eb80af744 v3.8.0 - New Release (Breaking Changes)
- Add New HMI-Navi (Breaking Changes)
- Add Tasmota "Web Admin Password" (Breaking Changes)
- Add Navigation bSubPrev and bSubNext and Subpages for bHome
- Bugfix for cardThermostat - Payload (Minor)
- Add Volumio-Player to cardMedia by @egal
- Upgrade TFT 47
- Add Volumio-Tracklist to cardMedia by @egal
2023-01-06 11:52:01 +01:00
Armilar
393ef7d322 v3.8.0 - New Release (Breaking Changes)
- Add New HMI-Navi (Breaking Changes)
- Add Tasmota "Web Admin Password" (Breaking Changes)
- Add Navigation bSubPrev and bSubNext and Subpages for bHome
- Bugfix for cardThermostat - Payload (Minor)
- Add Volumio-Player to cardMedia by @egal
- Upgrade TFT 47
- Add Volumio-Tracklist to cardMedia by @egal
2023-01-06 11:46:52 +01:00
Armilar
42e715c6b5 v3.8.0 - New Release (Breaking Changes)
- Add New HMI-Navi (Breaking Changes)
- Add Tasmota "Web Admin Password" (Breaking Changes)
- Add Navigation bSubPrev and bSubNext and Subpages for bHome
- Bugfix for cardThermostat - Payload (Minor)
- Add Volumio-Player to cardMedia by @egal
- Upgrade TFT 47
- Add Volumio-Tracklist to cardMedia by @egal
2023-01-06 11:42:38 +01:00
6 changed files with 540 additions and 321 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -489,7 +489,7 @@ class LuiPagesGen(object):
detailPage = ""
if any(x in ["preset_modes", "swing_modes", "fan_modes"] for x in entity.attributes):
detailPage = "1"
detailPage = "0"
command = f"entityUpd~{heading}~{navigation}~{item}~{current_temp} {temperature_unit}~{dest_temp}~{state_value}~{min_temp}~{max_temp}~{step_temp}{icon_res}~{currently_translation}~{state_translation}~{action_translation}~{temperature_unit_icon}~{dest_temp2}~{detailPage}"
self._send_mqtt_msg(command)

View File

@@ -28,7 +28,7 @@ class NsPanelLovelaceUIManager(hass.Hass):
desired_tasmota_driver_version = 8
desired_display_firmware_version = 47
version = "v3.8.0"
version = "v3.8.2"
model = cfg.get("model")
if model == "us-l":

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
/*-----------------------------------------------------------------------
TypeScript v3.8.0 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar/@Sternmiere/@Britzelpuf
- abgestimmt auf TFT 47 / v3.8.0 / BerryDriver 8 / Tasmota 12.3.1
TypeScript v3.8.1 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar/@Sternmiere/@Britzelpuf
- abgestimmt auf TFT 47 / v3.8.1 / BerryDriver 8 / Tasmota 12.3.1
@joBr99 Projekt: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
NsPanelTs.ts (dieses TypeScript in ioBroker) Stable: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
icon_mapping.ts: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts (TypeScript muss in global liegen)
@@ -112,6 +112,8 @@ ReleaseNotes:
- 03.01.2023 - v3.8.0 Bugfix for cardThermostat - Payload (Minor)
- 04.01.2023 - v3.8.0 Add Volumio-Player to cardMedia
- 05.01.2023 - v3.8.0 Upgrade TFT 47
- 06.01.2023 - v3.8.0 Add Volumio Tracklist
- 06.01.2023 - v3.8.1 HMI-Hotfix
*****************************************************************************************************************
* Falls Aliase durch das Skript erstellt werden sollen, muss in der JavaScript Instanz "setObect" gesetzt sein! *
@@ -185,7 +187,7 @@ Erforderliche Adapter:
Upgrades in Konsole:
Tasmota BerryDriver : Backlog UpdateDriverVersion https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be; Restart 1
TFT EU STABLE Version : FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.8.0.tft
TFT EU STABLE Version : FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.8.1.tft
---------------------------------------------------------------------------------------
*/
let Icons = new IconsSelector();
@@ -380,7 +382,6 @@ export const config: Config = {
panelSendTopic: 'mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend', // anpassen
firstScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability', ScreensaverEntityIcon: 'weather-pouring', ScreensaverEntityText: 'Regen', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} },
secondScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', ScreensaverEntityIcon: 'weather-windy', ScreensaverEntityText: "Wind", ScreensaverEntityUnitText: 'km/h', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120} },
//secondScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', ScreensaverEntityIcon: 'weather-windy', ScreensaverEntityText: "Wind", ScreensaverEntityUnitText: 'km/h', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120} },
thirdScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.UVIndex', ScreensaverEntityIcon: 'solar-power', ScreensaverEntityText: 'UV', ScreensaverEntityUnitText: '', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 9} },
fourthScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.RelativeHumidity', ScreensaverEntityIcon: 'water-percent', ScreensaverEntityText: 'Luft', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65} },
alternativeScreensaverLayout: false,
@@ -390,96 +391,25 @@ export const config: Config = {
timeoutScreensaver: 20,
screenSaverDoubleClick: true,
locale: 'de-DE', // en-US, de-DE, nl-NL, da-DK, es-ES, fr-FR, it-IT, ru-RU, etc.
weatherEntity: 'alias.0.DasWetter', // Dieser Alias muss erstellt werden, damit die 4 kleineren Icons (Wetter oder DP) angezeigt werden können
weatherEntity: 'alias.0.Wetter', // Dieser Alias muss erstellt werden, damit die 4 kleineren Icons (Wetter oder DP) angezeigt werden können
defaultOffColor: Off,
defaultOnColor: On,
defaultColor: Off,
defaultBackgroundColor: HMIDark, //New Parameter
temperatureUnit: '°C',
pages: [
Level_0_Grundstueck,
Buero_Seite_1, //Beispiel-Seite
WLED, //Beispiel-Seite
Radiosender, //Beispiel-Seite
SensorGrid, //Beispiel-Seite
CardChartExample, //Beispiel-Seite
CardPowerExample, //Beispiel-Seite
//SqueezeboxRPC, //Beispiel-Seite
Sonos, //Beispiel-Seite
SpotifyPremium, //Beispiel-Seite
Alexa, //Beispiel-Seite
Buero_Seite_2, //Beispiel-Seite
Buero_Klimaanlage, //Beispiel-Seite
Button_1, //Beispiel-Seite
Test_Licht1, //Beispiel-Seite
Test_Licht2, //Beispiel-Seite
Test_Funktionen, //Beispiel-Seite
Fenster_1, //Beispiel-Seite
Subpages_1, //Beispiel-Seite
Buero_Themostat, //Beispiel-Seite
Buero_Alarm, //Beispiel-Seite
Service //Auto-Alias Service Page
],
subPages: [
Abfall, //Beispiel-Unterseite
WLAN, //Beispiel-Unterseite
NSPanel_Infos, //Auto-Alias Service Page
NSPanel_Einstellungen, //Auto-Alias Service Page
NSPanel_Firmware_Info, //Auto-Alias Service Page
Level_1_Haus,
Level_2_Erdgeschoss_1,
Level_3_Wohnzimmer,
Level_4_Wohnzimmer_Licht_1,
Level_4_Wohnzimmer_Licht_2,
Level_4_Wohnzimmer_Sensoren_1,
Level_4_Wohnzimmer_Aktoren,
Level_4_Wohnzimmer_Thermostat,
Level_3_Esszimmer,
Level_3_Buero,
Level_4_Buero_Licht,
Level_4_Buero_Sensoren_1,
Level_4_Buero_Sensoren_2,
Level_4_Buero_Aktoren,
Level_4_Buero_Thermostat,
Level_3_Kueche,
Level_3_Bad,
Level_2_Erdgeschoss_2,
Level_3_Kaminzimmer,
Level_3_GaesteWC,
Level_3_Hauswirtschaftsraum,
Level_3_FlurVorne,
Level_3_FlurHinten,
Level_1_Gartenhaus,
Level_2_GH_Licht,
Level_3_GH_Lampen_1,
Level_3_GH_Lampen_2,
Level_3_GH_Lampen_3,
Level_3_GH_Lampen_4,
Level_3_GH_LED_Stripes,
Level_3_GH_WLED,
Level_3_GH_Aussenlampen,
Level_2_GH_Sensoren_1,
Level_2_GH_Sensoren_2,
Level_2_GH_Aktoren_1,
Level_2_GH_Aktoren_2,
Level_2_GH_Heizkoerper,
Level_1_Aussen,
Level_1_Garage
],
button1Page: button1Page, //Beispiel-Seite auf Button 1, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null,
button2Page: button2Page //Beispiel-Seite auf Button 2, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null,
button1Page: null, //Beispiel-Seite auf Button 1, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null,
button2Page: null //Beispiel-Seite auf Button 2, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null,
};
// _________________________________ Ab hier keine Konfiguration mehr _____________________________________
@@ -1510,7 +1440,7 @@ function update_berry_driver_version() {
}
function update_tft_firmware() {
const tft_version: string = 'v3.8.0';
const tft_version: string = 'v3.8.1';
const desired_display_firmware_url = `http://nspanel.pky.eu/lovelace-ui/github/nspanel-${tft_version}.tft`;
try {
@@ -3969,6 +3899,19 @@ function HandleButtonEvent(words): void {
let strDevicePL = pageItemPL.playList[words[4]];
request({ url:`${getState(adapterInstancePL+'info.host').val}/api/commands/?cmd=playplaylist&name=${strDevicePL}`, headers: {'User-Agent': 'ioBroker'} },
async (error, response, result)=>{}); /* nothing todo @ error */
setTimeout(async function () {
request({ url: `${getState(adapterInstancePL+'info.host').val}/api/getQueue`, headers: {'User-Agent': 'ioBroker'} },
async (error, response, result) => {
try {
const QUEUELIST = JSON.parse(result);
globalTracklist = QUEUELIST.queue;
if (Debug) { for (let i_index in QUEUELIST.queue) console.log(QUEUELIST.queue[i_index]); }
} catch (err) {
console.log('get_volumio-queue: ' + err.message);
}
}
);
}, 2000);
break;
}
break;
@@ -3986,6 +3929,10 @@ function HandleButtonEvent(words): void {
case 'alexa2':
console.log('Aktuell hat alexa2 keine Tracklist')
break;
case 'volumio':
request({ url:`${getState(adapterInstanceTL+'info.host').val}/api/commands/?cmd=play&N=${words[4]}`, headers: {'User-Agent': 'ioBroker'} },
async (error, response, result)=>{}); /* nothing todo @ error */
break;
}
break;
case 'mode-repeat':
@@ -4230,13 +4177,6 @@ function GetNavigationString(pageId: number): string {
console.log(pageId);
}
// left navigation arrow | right navigation arrow
// X|X
// 0 = no arrow
// 1|1 = right and left navigation arrow
// 2|0 = (right) up navigation arrow
// 2|2 = (right) up navigation arrow | (left) home navigation icon
if (activePage.subPage && activePage.prev == undefined && activePage.next == undefined) {
return 'button~bUp~' + Icons.GetIcon('arrow-up-bold') + '~' + rgb_dec565(White) + '~~~button~bHome~' + Icons.GetIcon('home') + '~' + rgb_dec565(White) + '~~';
} else if (activePage.subPage && activePage.prev == undefined && activePage.next != undefined) {
@@ -4902,16 +4842,27 @@ function GenerateDetailPage(type: string, optional: string, pageItem: PageItem):
} /**/
mode = 'playlist';
} else if (optional == 'tracklist') {
actualState = ''
actualState = '';
/* Volumio: works for files */
if (vAdapter == 'volumio') {
actualState = getState(pageItem.id + '.TITLE').val;
} else {
actualState = getState(pageItem.adapterPlayerInstance + 'player.trackName').val;
}
actualState = getState(pageItem.adapterPlayerInstance + 'player.trackName').val;
actualState = (actualState.replace('?','')).split(' -');
actualState = actualState[0].split(" (");
actualState = formatInSelText(actualState[0]);
//Limit 900 Zeichen, danach Speicherüberlauf --> Soweit kürzen wie möglich
//Limit 900 Zeichen, danach Speicherüberlauf --> Soweit kürzen wie möglich
let temp_array = [];
//let trackArray = (function () { try {return JSON.parse(getState(pageItem.adapterPlayerInstance + 'player.playlist.trackListArray').val);} catch(e) {return {};}})();
for (let track_index=0; track_index < 45; track_index++) {
let temp_cut_array = getAttr(globalTracklist, track_index + '.title');
/* Volumio: @local/NAS no title -> name */
if (temp_cut_array == undefined) {
temp_cut_array = getAttr(globalTracklist, track_index + '.name');
}
if (Debug) console.log(temp_cut_array);
if (temp_cut_array != undefined) {
temp_cut_array = (temp_cut_array.replace('?','')).split(' -');
temp_cut_array = temp_cut_array[0].split(" (");
@@ -6121,6 +6072,7 @@ type PageItem = {
playList: (string[] | undefined),
equalizerList: (string[] | undefined),
repeatList: (string[] | undefined),
globalTracklist: (string[] | undefined),
modeList: (string[] | undefined),
hidePassword: (boolean | undefined),
autoCreateALias: (boolean | undefined)