Allow empty Thingsplex credentials (#3)

This commit is contained in:
Adrian Jagielak 2025-09-24 21:15:54 +02:00
parent d57edc66b2
commit 57124f6b4c
No known key found for this signature in database
GPG Key ID: 0818CF7AF6C62BFB
29 changed files with 83 additions and 5 deletions

View File

@ -21,6 +21,7 @@ options:
fh_password: ''
tp_username: ''
tp_password: ''
tp_allow_empty: false
demo_mode: false
show_debug_log: false
@ -30,6 +31,7 @@ schema:
fh_password: 'password?'
tp_username: 'str?'
tp_password: 'password?'
tp_allow_empty: 'bool?'
demo_mode: 'bool?'
show_debug_log: 'bool?'

View File

@ -10,6 +10,7 @@ export FH_USERNAME=$(bashio::config 'fh_username')
export FH_PASSWORD=$(bashio::config 'fh_password')
export TP_USERNAME=$(bashio::config 'tp_username')
export TP_PASSWORD=$(bashio::config 'tp_password')
export TP_ALLOW_EMPTY=$(bashio::config 'tp_allow_empty')
export DEMO_MODE=$(bashio::config 'demo_mode')
export SHOW_DEBUG_LOG=$(bashio::config 'show_debug_log')

View File

@ -208,6 +208,7 @@ export function haPublishDevice(parameters: {
deviceInclusionReport: InclusionReport | undefined;
thingsplexUsername: string;
thingsplexPassword: string;
thingsplexAllowEmpty: boolean;
}): { commandHandlers: CommandHandlers } {
const components: { [key: string]: HaMqttComponent } = {};
const handlers: CommandHandlers = {};
@ -261,8 +262,8 @@ export function haPublishDevice(parameters: {
}
if (
parameters.thingsplexUsername &&
parameters.thingsplexPassword &&
(parameters.thingsplexAllowEmpty ||
(parameters.thingsplexUsername && parameters.thingsplexPassword)) &&
parameters.vinculumDeviceData.fimp?.address &&
parameters.vinculumDeviceData.fimp?.adapter
) {

View File

@ -22,6 +22,7 @@ import { pollVinculum } from './fimp/vinculum';
const localApiPassword = process.env.FH_PASSWORD || '';
const thingsplexUsername = process.env.TP_USERNAME || '';
const thingsplexPassword = process.env.TP_PASSWORD || '';
const thingsplexAllowEmpty = (process.env.TP_ALLOW_EMPTY || '').toLowerCase().includes('true');
const demoMode = (process.env.DEMO_MODE || '').toLowerCase().includes('true');
const showDebugLog = (process.env.SHOW_DEBUG_LOG || '')
.toLowerCase()
@ -166,6 +167,7 @@ import { pollVinculum } from './fimp/vinculum';
deviceInclusionReport,
thingsplexUsername,
thingsplexPassword,
thingsplexAllowEmpty,
});
await delay(50);
@ -189,7 +191,7 @@ import { pollVinculum } from './fimp/vinculum';
log.error('Failed publishing device', device, e);
}
}
if (demoMode || (thingsplexUsername && thingsplexPassword)) {
if (demoMode || thingsplexAllowEmpty || (thingsplexUsername && thingsplexPassword)) {
Object.assign(
commandHandlers,
exposeSmarthubTools({

View File

@ -20,7 +20,7 @@ export function parameters__components(
const commandHandlers: CommandHandlers = {};
const stateTopic = `${topicPrefix}/state`;
// Fetch cached state for this service to discover known parameters :contentReference[oaicite:2]{index=2}
// Fetch cached state for this service to discover known parameters
const currentState = haGetCachedState({ topic: stateTopic })?.[svc.addr];
const paramMap = currentState?.param;
if (!paramMap) {
@ -31,7 +31,7 @@ export function parameters__components(
// Single MQTT topic for setting any parameter
const setParamTopic = `${topicPrefix}${svc.addr}/set_param/command`;
// Iterate over each parameter in the cached state :contentReference[oaicite:3]{index=3}
// Iterate over each parameter in the cached state
for (const [paramId, param] of Object.entries(paramMap)) {
const valueType = (param as any).value_type as string;
const uniqueId = `${svc.addr}_${paramId}`;

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Пароль Thingsplex (неабавязкова)
description: Ваш пароль для Thingsplex.
tp_allow_empty:
name: Дазволіць пустыя ўліковыя дадзеныя Thingsplex
description: Дазволіць пустое імя карыстальніка і/або пароль Thingsplex.
demo_mode:
name: Дэманстрацыйны рэжым
description: Выкарыстоўвайце запісаны стан з рэальнага Futurehome Smarthub для мадэлявання прылад.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Пароль Thingsplex (неабавязкова)
description: Ваш пароль для Thingsplex.
tp_allow_empty:
name: Дазволіць пустыя ўліковыя дадзеныя Thingsplex
description: Дазволіць пустое імя карыстальніка і/або пароль Thingsplex.
demo_mode:
name: Дэманстрацыйны рэжым
description: Выкарыстоўвайце запісаны стан з рэальнага Futurehome Smarthub для мадэлявання прылад.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Heslo Thingsplex (volitelné)
description: Vaše heslo pro Thingsplex.
tp_allow_empty:
name: Povolit prázdné přihlašovací údaje Thingsplex
description: Povolit prázdné uživatelské jméno a/nebo heslo Thingsplex.
demo_mode:
name: Demo režim
description: Použijte uložený stav ze skutečného Futurehome Smarthubu pro simulaci zařízení.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Heslo Thingsplex (volitelné)
description: Vaše heslo pro Thingsplex.
tp_allow_empty:
name: Povolit prázdné přihlašovací údaje Thingsplex
description: Povolit prázdné uživatelské jméno a/nebo heslo Thingsplex.
demo_mode:
name: Demo režim
description: Použijte uložený stav ze skutečného Futurehome Smarthubu pro simulaci zařízení.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-adgangskode (valgfri)
description: Din Thingsplex-adgangskode.
tp_allow_empty:
name: Tillad tomme Thingsplex-legitimationsoplysninger
description: Tillad tomt Thingsplex-brugernavn og/eller adgangskode.
demo_mode:
name: Demotilstand
description: Brug en optaget prøvetilstand fra en rigtig Futurehome Smarthub til at simulere enheder.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-Passwort (optional)
description: Dein Thingsplex-Passwort.
tp_allow_empty:
name: Leere Thingsplex-Anmeldedaten zulassen
description: Leeren Thingsplex-Benutzernamen und/oder Passwort zulassen.
demo_mode:
name: Demo-Modus
description: Verwende einen aufgezeichneten Beispielzustand eines echten Futurehome Smarthubs, um Geräte zu simulieren.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-adgangskode (valgfri)
description: Din Thingsplex-adgangskode.
tp_allow_empty:
name: Tillad tomme Thingsplex-legitimationsoplysninger
description: Tillad tomt Thingsplex-brugernavn og/eller adgangskode.
demo_mode:
name: Demotilstand
description: Brug en optaget prøvetilstand fra en rigtig Futurehome Smarthub til at simulere enheder.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplexi parool (valikuline)
description: Sinu Thingsplexi parool.
tp_allow_empty:
name: Luba tühjad Thingsplexi mandaadid
description: Luba tühi Thingsplexi kasutajanimi ja/või parool.
demo_mode:
name: Demorežiim
description: Kasuta päris Futurehome Smarthubist salvestatud näidisseisu seadmete simuleerimiseks.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex Password (Optional)
description: Your Thingsplex password.
tp_allow_empty:
name: Allow Empty Thingsplex Credentials
description: Allow empty Thingsplex username and/or password.
demo_mode:
name: Demo Mode
description: Use a sample recorded state from a real Futurehome Smarthub to simulate devices.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplexi parool (valikuline)
description: Sinu Thingsplexi parool.
tp_allow_empty:
name: Luba tühjad Thingsplexi mandaadid
description: Luba tühi Thingsplexi kasutajanimi ja/või parool.
demo_mode:
name: Demorežiim
description: Kasuta päris Futurehome Smarthubist salvestatud näidisseisu seadmete simuleerimiseks.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-salasana (valinnainen)
description: Thingsplex-salasanasi.
tp_allow_empty:
name: Salli tyhjät Thingsplex-tunnistetiedot
description: Salli tyhjä Thingsplex-käyttäjätunnus ja/tai salasana.
demo_mode:
name: Demotila
description: Käytä tallennettua tilanäytettä oikeasta Futurehome Smarthubista laitteiden simuloimiseen.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex lykilorð (valkvætt)
description: Lykilorðið þitt fyrir Thingsplex.
tp_allow_empty:
name: Leyfa tómar Thingsplex-auðkenningar
description: Leyfa tómt Thingsplex-notandanafn og/eða lykilorð.
demo_mode:
name: Sýnishamur
description: Notaðu upptaka af raunverulegu ástandi úr Futurehome Smarthub til að herma eftir tækjum.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex slaptažodis (pasirinktinai)
description: Jūsų Thingsplex slaptažodis.
tp_allow_empty:
name: Leisti tuščius „Thingsplex“ prisijungimo duomenis
description: Leisti tuščią „Thingsplex“ vartotojo vardą ir (arba) slaptažodį.
demo_mode:
name: Demonstracinis režimas
description: Naudokite įrašytą būsena iš tikro Futurehome Smarthub, kad imituotumėte įrenginius.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex parole (pēc izvēles)
description: Tava Thingsplex parole.
tp_allow_empty:
name: Atļaut tukšus Thingsplex akreditācijas datus
description: Atļaut tukšu Thingsplex lietotājvārdu un/vai paroli.
demo_mode:
name: Demonstrācijas režīms
description: Izmanto ierakstītu stāvokli no īsta Futurehome Smarthub, lai simulētu ierīces.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-passord (valgfritt)
description: Ditt passord for Thingsplex.
tp_allow_empty:
name: Tillat tomme Thingsplex-legitimasjoner
description: Tillat tomt Thingsplex-brukernavn og/eller passord.
demo_mode:
name: Demomodus
description: Bruk en forhåndsopptatt tilstand fra en ekte Futurehome Smarthub for å simulere enheter.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-passord (valfritt)
description: Ditt passord for Thingsplex.
tp_allow_empty:
name: Tillat tomme Thingsplex-legitimasjonar
description: Tillat tomt Thingsplex-brukarnamn og/eller passord.
demo_mode:
name: Demomodus
description: Bruk ein førehandsopptak frå ein ekte Futurehome Smarthub for å simulere einingar.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-passord (valgfritt)
description: Ditt passord for Thingsplex.
tp_allow_empty:
name: Tillat tomme Thingsplex-legitimasjoner
description: Tillat tomt Thingsplex-brukernavn og/eller passord.
demo_mode:
name: Demomodus
description: Bruk en forhåndsopptatt tilstand fra en ekte Futurehome Smarthub for å simulere enheter.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Hasło do Thingsplex (opcjonalne)
description: Twoje hasło do Thingsplex.
tp_allow_empty:
name: Zezwól na puste dane logowania Thingsplex
description: Zezwól na puste nazwy użytkownika i/lub hasła Thingsplex.
demo_mode:
name: Tryb demonstracyjny
description: Użyj zapisanego stanu z prawdziwego Futurehome Smarthub, aby symulować urządzenia.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Пароль Thingsplex (необязательно)
description: Ваш пароль Thingsplex.
tp_allow_empty:
name: Разрешить пустые учетные данные Thingsplex
description: Разрешить пустое имя пользователя и/или пароль Thingsplex.
demo_mode:
name: Демонстрационный режим
description: Используйте сохранённое состояние от настоящего Futurehome Smarthub для имитации устройств.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-lösenord (valfritt)
description: Ditt lösenord för Thingsplex.
tp_allow_empty:
name: Tillåt tomma Thingsplex-uppgifter
description: Tillåt tomt Thingsplex-användarnamn och/eller lösenord.
demo_mode:
name: Demoläge
description: Använd ett inspelat exempel från en riktig Futurehome Smarthub för att simulera enheter.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Heslo Thingsplex (voliteľné)
description: Vaše heslo pre Thingsplex.
tp_allow_empty:
name: Povoliť prázdne prihlasovacie údaje Thingsplex
description: Povoliť prázdne používateľské meno a/alebo heslo Thingsplex.
demo_mode:
name: Demo režim
description: Použite uložený stav zo skutočného Futurehome Smarthubu na simuláciu zariadení.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Thingsplex-lösenord (valfritt)
description: Ditt lösenord för Thingsplex.
tp_allow_empty:
name: Tillåt tomma Thingsplex-uppgifter
description: Tillåt tomt Thingsplex-användarnamn och/eller lösenord.
demo_mode:
name: Demoläge
description: Använd ett inspelat exempel från en riktig Futurehome Smarthub för att simulera enheter.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Пароль Thingsplex (необов’язково)
description: Ваш пароль для Thingsplex.
tp_allow_empty:
name: Дозволити порожні облікові дані Thingsplex
description: Дозволити порожнє ім’я користувача та/або пароль Thingsplex.
demo_mode:
name: Демонстраційний режим
description: Використовуйте записаний стан із реального Futurehome Smarthub для імітації пристроїв.

View File

@ -14,6 +14,9 @@ configuration:
tp_password:
name: Пароль Thingsplex (необов’язково)
description: Ваш пароль для Thingsplex.
tp_allow_empty:
name: Дозволити порожні облікові дані Thingsplex
description: Дозволити порожнє ім’я користувача та/або пароль Thingsplex.
demo_mode:
name: Демонстраційний режим
description: Використовуйте записаний стан із реального Futurehome Smarthub для імітації пристроїв.