NEWS
Zeit aus dem Datenpunkt anzeigenlassen
-
@homoran sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@dr-pie sagte in Zeit aus dem Datenpunkt anzeigenlassen:
Als Textfeld in der Vis mit dem Inhalt des Wertes.
und warum nicht per Time-Widget?
Meinetwegen auch als Widget.
Das hatte ich ja probiert und hatte so nicht funktioniert.als was liegt denn die Zeit in dem Datenpunkt vor?
Das muss nicht das selbe sein, was angezeigt wirdIch kann die diese Frage nicht beantworten ... ich weiß es nicht ... keine Ahnung.
-
@homoran sagte: als was liegt denn die Zeit in dem Datenpunkt vor?
Bei der Rolle "value.time" sollte es ein Zahlenwert sein.
-
@paul53 sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@homoran sagte: als was liegt denn die Zeit in dem Datenpunkt vor?
Bei der Rolle "value.time" sollte es ein Zahlenwert sein.
ok ...Wie es aussieht ist es nicht so.
Wie ändere ich denn das in einen Zahlenwert ? -
@dr-pie sagte: Wie ändere ich denn das in einen Zahlenwert ?
Zeige uns erst einmal die OBJEKTDATEN (Bleistift rechts im Expertenmodus) des DP in Code tags.
-
"type": "state", "common": { "modify": "", "name": "Expected Finish Time of current print", "type": "number", "role": "value.time", "read": true, "write": false }, "_id": "bambulab.0.03919D4B3001030.finishTime", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1739549023409 }
Ich sehe gerade im Protokoll das hier
State value to set for "bambulab.0.03919D4B3001030.finishTime" has to be type "number" but received type "string"
-
@dr-pie sagte: Wie es aussieht ist es nicht so.
Doch, es ist so. Wenn es die Zeit in ms ist, sollte das Time-Widget es anzeigen können.
Ändere mal die Rolle von "value.time" in "value" und schaue, welche Zahl angezeigt wird. Sind hinten 3 Nullen dran, dann sind es ms.
Anschließend wieder in "value.time" zurück ändern. -
@paul53 sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@dr-pie sagte: Wie es aussieht ist es nicht so.
Doch, es ist so. Wenn es die Zeit in ms ist, sollte das Time-Widget es anzeigen können.
Ändere mal die Rolle von "value.time" in "value" und schaue, welche Zahl angezeigt wird. Sind hinten 3 Nullen dran, dann sind es ms.
Anschließend wieder in "value.time" zurück ändern.Ändere ich das in "value" wird auch das aktuelle Datum angezeigt und nicht die Endzeit
-
@dr-pie sagte: finishTime" has to be type "number" but received type "string"
Es existiert bereits ein Issue auf Github.
Ändere den DP-Typ in "string" und die Rolle in "state".
-
@dr-pie sagte: Ändere ich das in "value" wird auch das aktuelle Datum angezeigt und nicht die Endzeit
Dann erstelle einen Alias vom Typ "Zahl", Rolle "value.time", mit Lesekonvertierung:
new Date(val).getTime()
-
@paul53 sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@dr-pie sagte: Ändere ich das in "value" wird auch das aktuelle Datum angezeigt und nicht die Endzeit
mit Lesekonvertierung:
-
@dr-pie
Unter alias.0 ein Gerät (printer) erstellen. Darunter einen Datenpunkt (finishTime) vom Ty "Zahl", Rolle "value.time" erstellen und dann im Tab ALIAS: -
@paul53 sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@dr-pie
Unter alias.0 ein Gerät (printer) erstellen. Darunter einen Datenpunkt (finishTime) erstellen und dann im Tab ALIAS:das bekomme ich soooo nicht hin ... nachher verwurschle ich noch was ...
-
@paul53 ich habe es mal versucht. Geht natürlich nicht.
{ "common": { "read": true, "write": true, "name": "finishTime", "type": "number", "def": false, "role": "value.time", "alias": { "id": "bambulab.0.03919D4B3001030.finishTime", "read": "new Date(val).getTime()" } }, "native": {}, "type": "state", "_id": "alias.0.finishTime", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1740396192237 }
-
@dr-pie sagte: ich habe es mal versucht.
Welchen Wert enthält "bambulab.0.03919D4B3001030.finishTime"? Prüfe es mittels Testskript:
const time = getState("bambulab.0.03919D4B3001030.finishTime").val; log(time + ': ' + typeof time);
Ändere Zeile 7:
"def": 0,
und "write" auf false.
Versuche es mal mit Zeile 11 so:"read": "parseInt(val)"
-
@dr-pie sagte: State value to set for "bambulab.0.03919D4B3001030.finishTime" has to be type "number" but received type "string"
In der Adapter-Version 0.3.4 muss es type "mixed" sein!
-
@paul53 sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@dr-pie sagte: ich habe es mal versucht.
Welchen Wert enthält "bambulab.0.03919D4B3001030.finishTime"? Prüfe es mittels Testskript:
const time = getState("bambulab.0.03919D4B3001030.finishTime").val; log(time + ': ' + typeof time);
javascript.0 08:07:19.390 info Stopping script script.js.common.3d
javascript.0 08:07:24.797 info Start JavaScript script.js.common.3d (Javascript/js)
javascript.0 08:07:24.822 info script.js.common.3d: 2025-02-25T11:40:05.157Z: string
javascript.0 08:07:24.822 info script.js.common.3d: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsAlle anderen Einstellungen habe ich geändert
Mit
Versuche es mal mit Zeile 11 so:
"read": "parseInt(val)"
Kommt
Thu Jan 01 1970 01:00:02 GMT+0100 (Mitteleuropäische Normalzeit) -
@paul53 sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@dr-pie sagte: State value to set for "bambulab.0.03919D4B3001030.finishTime" has to be type "number" but received type "string"
In der Adapter-Version 0.3.4 muss es type "mixed" sein!
{ "type": "state", "common": { "modify": "", "name": "Expected Finish Time of current print", "type": "mixed", "role": "value.time", "read": true, "write": false }, "_id": "bambulab.0.03919D4B3001030.finishTime", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1740467889005 }
Brachte leider nicht den gewünschten Effekt.
-
-
@codierknecht sagte in Zeit aus dem Datenpunkt anzeigenlassen:
@dr-pie
Wenn in Deinem Original DP steht2025-02-25T11:40:05.157Z
, dann versuch mal im Alias folgende Konvertierung:new Date(val).toLocaleTimeString('de-DE')
Der Alias muss dazu vom Typ "String" sein.
Wo muss ich das eintragen ?
-
@dr-pie sagte in Zeit aus dem Datenpunkt anzeigenlassen:
Wo muss ich das eintragen ?
In die Lesekonvertierung.
@codierknecht sagte in Zeit aus dem Datenpunkt anzeigenlassen:
dann versuch mal im Alias folgende Konvertierung
Edit
Oder Du verzichtest komplett auf einen Alias und nimmst in Vis ein "basic TimesValue" Widget und lässt das auf den DP mit dem "2025-02-25T11:40:05.157Z" gucken.