NEWS
Globale Funktionen für Alias Konvertierung?
-
@xelarep
Du meinst, Du hast unterhalb vonalias.0
eine komplette Struktur für das Gerät und willst dort dann alles "zusammenhalten"?
Das kannst Du ja halten wie ein Dachdecker - Deine freie Wahl.
Auch wenn ein Alias auf einen eigenen DP etwas überflüssig ist. -
@codierknecht sagte in Globale Funktionen für Alias Konvertierung?:
@xelarep
Auch wenn ein Alias auf einen eigenen DP etwas überflüssig ist.Verstehe nicht wieso. Wo ist den der Unterschied zwischen einen Skript das für sich zusammengehöre Datenpunkte nicht kreuz und quer durch die Landschaft verteilt und einem Adapter? Ja den Adapter kann man nicht ändern, aber so falsch ist das nicht das Datenpunkt die von X hergestellt werden auch dort liegen wo man sie vermutet.
-
@codierknecht said in Globale Funktionen für Alias Konvertierung?:
Auch wenn ein Alias auf einen eigenen DP etwas überflüssig ist.
Wenn man so argumentiert, dann sind Alias allgemein etwas überflüssig
Eigentlich sollen sie ja nur Gerätetausch erleichtern und für Übersichtlichkeit sorgen. Da ist es doch egal ob die Daten von nem Adapter oder von einem Script kommen.
Das ist doch - aus meiner Sicht - das Schöne an ioBroker dass es verschiedene Wege gibt
-
@ticaki @Blockmove
Aliase benutzt man vermutlich meistens, um den Tausch von Geräten zu erleichtern.
Wenn dahinter aber ein DP aus0_userdata
steckt, muss auf jeden Fall auch ein Script angepasst werden.
Daher finde ich in diesem Fall einen Alias etwas überflüssig.
Vor allem dann, wenn man im Alias nochmal eine Konvertierung vornehmen will, die man genau so gut auch gleich im Script machen kann.Nutzt man Aliase, um DP "zusammenzuhalten", kann das ja jeder halten wie er/sie will.
-
@codierknecht sagte in Globale Funktionen für Alias Konvertierung?:
Nutzt man Aliase, um DP "zusammenzuhalten", kann das ja jeder halten wie er/sie will.
@codierknecht genau deswegen ja meine Eingangsfrage
Ich würde halt gerne die0_userdata
vermeiden und direkt im Alias konvertieren. Dort kann ich aber halt nur Grundrechenarten oder JSON ein/auspackenIch hab die letzten Jahre genügend Hardware gewechselt und wollte deswegen im Zuge der Aufräumarbeiten mir das Leben halt so angenehm wie möglich machen. Dazu gehören für mich dann Aliase - was ja auch schon mal ein Erleichterung ist.
Jetzt könnte ich sogar den flot wieder behalten
-
@xelarep sagte in Globale Funktionen für Alias Konvertierung?:
Ich würde halt gerne die 0_userdata vermeiden und direkt im Alias konvertieren
Wie Du mittlerweile erfahren hast, geht das so nicht.
0_userdata
vermeiden und direkt in einen Alias schreiben geht nicht.
Da in0_userdata
aber mit einem Script geschrieben wird, kannst Du ja dort die Konvertierung vornehmen und den Wert bereits so wegschreiben wie Du ihn gerne hättest.
Den Alias benutzt Du dann nur zum "zusammenhalten".Wenn sich an der Ecke die Hardware ändert, hilft Dir der Alias ja wenig. Das Script muss sowieso angepackt werden.
-
@codierknecht Deswegen habe ich das ja gestern genau so gemacht
-
@codierknecht sagte: hilft Dir der Alias ja wenig. Das Script muss sowieso angepackt werden.
In Skripten solle man nur Alias-DP und eigene DP verwenden: Im Alias kann man (unvollständige) Vorarbeit durch Konvertierung machen, im eigenen Datenpunkt steht dann das endgültige Ergebnis.
-
@xelarep sagte: Restlaufzeit meiner USV in Sekunden angibt. Den habe ich bisher mit einer kleinen JavaScript Funktionen in einen String Aal 'HH:MM:SS' gewandelt.
Beispiel für Javascript-Funktion mit Dauern im Alias und formatiert in eigenen Datenpunkten:
const ids = ['alias.0.abc', 'alias.0.xyz']; // enhalten Dauern in s on(ids, function(dp) { const id = dp.id.replace('alias.0.', '0_userdata.0.'); setState(id, formatDate(1000 * dp.state.val, 'hh:mm:ss'), true); });
Es geht so einfach, wenn man unter "alias.0" und "0_userdata.0" die gleiche ID-Struktur verwendet.
-
@xelarep sagte: 0_userdata vermeiden und direkt im Alias konvertieren.
new Date(1000 * (val + 60 * new Date().getTimezoneOffset())).toLocaleTimeString('de-DE')
... bezieht sich auf Wandlung Sekunden nach "hh:mm:ss".
EDIT(18:15 Uhr): Korrigiert um Zeitzone.