NEWS
(Gelöst) Absoluten Wert eines Objekts anzeigen
-
@haus-automatisierung sagte in Absoluten Wert eines Objekts anzeigen:
{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert < 0 ?
-${Math.abs(wert)}
:+${Math.abs(wert)}
}Das ergibt
ich benutze das "normale" html widget:
[{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert<0 ? \"-\"+Math.abs(wert): \"+\"+Math.abs(wert)} "},"style":{"left":"1776px","top":"425px","color":"#ffffff","font-family":"\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif","text-align":"right","background":"#000000","width":"122px","height":"44px","z-index":"1"},"widgetSet":"basic"}]
-
@amg_666 Update : Ich hab das jetzt ans Laufen bekommen, allerdings über den Umweg eines alias.
html widgt und da dann{wert:alias.0.testtest.value;Math.abs(wert)}
zeigt mir den absoluten Betrag des Wertes an. Aber verstehen tue ich es nicht, beide Werte (DP und Alias) sind Zustandstyp "Zahl". Der originale Datenpunkt (funktioniert nicht) hat die Objektdaten
{ "_id": "mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value", "common": { "name": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value", "write": true, "read": true, "role": "variable", "desc": "mqtt server variable", "type": "number", "custom": { "history.0": { "enabled": true } } }, "native": { "topic": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value" }, "type": "state", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1716028810331 }
Der Alias (funktioniert) hat die 1:1 übernommen:
{ "type": "state", "common": { "name": "iot/smartmeter/sensor/1/obis/1-0:16.7.0/255/value", "role": "variable", "type": "number", "read": true, "write": true, "alias": { "id": "mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value" }, "custom": { "history.0": { "enabled": true } } }, "_id": "alias.0.testtest.value", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1716308213191, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Hat hier jemand eine Idee, woran es liegen könnte? Ich kann da zwar so mit leben, aber schön ist irgendwie anders
-
ginge:
{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert<0 ? "-"+String(Math.abs(wert)): "+"+String(Math.abs(wert))}
-
Ist der orginale Wert vlt. vom Typ Zahl, aber als string gespeichert und enthält dann ein , statt einen . ?
Das würde es erklären: -
@liv-in-sky sagte in Absoluten Wert eines Objekts anzeigen:
{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert<0 ? "-"+String(Math.abs(wert)): "+"+String(Math.abs(wert))}
Nein, das spuckt in der vis "+NaN" aus
-
@amg_666 vis 1 oder vis 2
-
@jogibear9988 Wenn ich in die Objekte schau, dann ist das "type: number" (siehe auch oben die geposteten Objektdaten) und der Wert ist mit einem Punkt, kein Komma:
Momentan z.B. -446.6 -
mal ne andere frage - warum machst du das - ein minus-wert wird doch als minus angezeigt - bei einem normalen binding ?
{mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value}
müßte doch reichen
-
@liv-in-sky Nee, wie oben geschrieben, ich hab diesen +/- thread genommen um zu schauen ob das überhaupt funktioniert (tut es nicht), was ich wirklich will ist "nur" den absoluten Wert darstellen, also z.B. 446 wenn es **-**446 sind.
Was ich also will ist Math.abs(xyz) als binding und das funktioniert jetzt bei mir nur mit Alias, nicht mit direktem DP -
@amg_666 nochmal : vis1 oder vis2
-
{wert1:0_userdata.0.CONTROL-OWN.AAATEST.TestStart; Math.abs(wert1) }
vis1: bei mir geht das ohne probleme
-
@liv-in-sky vis1
-
was sagt den die entwicklungsumgebung von chrome, wenn du die seite refresht ?
-
falsche antwort
-
@liv-in-sky ich wll ja eigentlich "nur"
{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;Math.abs(wert)}
also ohne irgendwelche String Additionen, das funktioniert schon nicht.
Ich weiss nicht was genau aus Chrome ich hier posten soll, der html Quelltext liefert schon das "NaN":
Ich nutze auch eigentlich Firefox, habs jetzt in Chrome geladen, selbes Ergebnis (math.abs mit direktem Datenpunkt geht nicht, Math.abs mit Alias-Datenpunkt geht
-
-
@amg_666 said in Absoluten Wert eines Objekts anzeigen:
{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;Math.abs(wert)}
was steht da wenn du es so machst (oder geht das bei vis überhaupt??)
{wert:mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value;wert}
-
also:
nochmal getestet - das funktioniert bei mir damit:
{wert11:0_userdata.0.CONTROL-OWN.AAATEST.TestStart; wert11 > 0 ? '+'+ String(Math.abs(wert11)) : '-' + String(Math.abs(wert11))}
mit dem alias geht das wahrscheinlich nur - weil du keine doppelpunkte in der object id haben darfst - ist ein fehler auf github und wurde nie repariert
da ist der fehler drin vor 0:16
.1.obis.1-0:16.7.
-
@liv-in-sky sagte in Absoluten Wert eines Objekts anzeigen:
weil du keine doppelpunkte in der object id haben darfst
Dann ist das die Antwort, die ich gesucht habe (die ich aber nicht hören will
)
Die mqtt Datenpunkte kommen von einem Lesekopf für meinen Smartmeter, da kann ich am Namen nichts anpassen, also muss ich wohl mit dem Alias leben.Danke an alle