NEWS
Alias zeigt viele Nachkommastellen unter Objekte
-
@paul53 sagte:
viele Nachkommastellen im Reiter "Objekte"
Heute (nach Neustart von ioBroker) sind offenbar die vielen Nachkommastellen auch im Reiter "Objekte" verschwunden, allerdings nur mit Runden per common.alias.read.
-
@paul53
Das habe ich auch mit allen Berechnungen wo es um Zahlen geht mal sind sie da und dann wieder wie es sein soll. Leider gibt es dazu keine Lösung und mann muss sich dann mit Aufrunden im Blocly behelfen
-
Fazit: Im Alias eines Zahlenwertes können zusätzliche Nachkommastellen auftreten, was man durch Runden per common.alias.read rückgängig machen kann. In der History-Aufzeichnung und in Javascript wirkt das Runden sofort, im Reiter "Objekte" erst nach ioBroker-Neustart.
-
@paul53 said in Alias zeigt viele Nachkommastellen unter Objekte:
Fazit: Im Alias eines Zahlenwertes können zusätzliche Nachkommastellen auftreten, was man durch Runden per common.alias.read rückgängig machen kann. In der History-Aufzeichnung und in Javascript wirkt das Runden sofort, im Reiter "Objekte" erst nach ioBroker-Neustart.
Wie kann ich denn durch "common.alias.read" Runden?
Ich habe einen Alias auf einen Temperatursensor mittels deines Skriptes angelegt; erhalte aber wie hier beschrieben sehr viele Nachkommastellen.
Leider verstehe ich nicht, wie ich das Runden jetzt bewerkstellige. Muss ich da in deinem Skript etwas anpassen, oder im Nachhinein den Alias verändern?
-
@asman-hm sagte:
Wie kann ich denn durch "common.alias.read" Runden?
Z.B. auf 1 Nachkommastelle
"read": "Math.round(val * 10) / 10"
-
@paul53 said in Alias zeigt viele Nachkommastellen unter Objekte:
Z.B. auf 1 Nachkommastelle
"read": "Math.round(val * 10) / 10"
Vielen Dank für die schnelle Antwort.
Wahrscheinlich mache ich es falsch, aber ich bekomme immer noch x-Nachkommastellen. Habe nach den Änderungen iobroker auch schon neu gestartet.
Der Wert "Luft" in dem Screenshot wird manchmal mit einer Nachkommastelle und manchmal mit x-Nachkommestellen angezeigt, obwohl ich nichts ändere.
So sehen die Experteneinstellungen des ALIAS aus:
{ "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1581787469005, "common": { "name": "Garten.Pool.Wasser:1.TEMPERATURE", "type": "number", "unit": "°C", "role": "value.temperature", "def": 0, "min": -150, "max": 150, "read": "Math.round(val * 10) / 10", "write": false, "alias": { "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE" }, "custom": { "sql.0": { "enabled": true, "changesOnly": true, "debounce": "1000", "retention": 0, "changesRelogInterval": 0, "changesMinDelta": 0.1, "storageType": "Number", "aliasId": "" } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "alias.0.Temperatur.29Pool.Wasser", "type": "state" }
Nicht lachen, wenn ich das an der falschen Stelle eingetragen habe.
-
@asman-hm sagte in Alias zeigt viele Nachkommastellen unter Objekte:
"read": "Math.round(val * 10) / 10", "write": false, "alias": { "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE" },
Nicht common.read ändern, sondern common.alias.read ergänzen:
"read": true, "write": false, "alias": { "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE", "read": "Math.round(val * 10) / 10" },
-
@paul53 said in Alias zeigt viele Nachkommastellen unter Objekte:
@asman-hm sagte in Alias zeigt viele Nachkommastellen unter Objekte:
"read": "Math.round(val * 10) / 10", "write": false, "alias": { "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE" },
Nicht common.read ändern, sondern common.alias.read ergänzen:
"read": true, "write": false, "alias": { "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE", "read": "Math.round(val * 10) / 10" },
Kaum macht man es richtig, schon klappt es.
Danke! -
Hallo paul53,
da du dich hier ja auszukennen scheinst möchte ich dich fragen ob du mir da mal helfen kannst.
Auch ich habe das Problem das bei meinem Gaszähler viel zu viele Nullen sind ich aber keine Ahnung habe wo ich das mit dem runden einpflegen soll.
Ich habe mal die Objektdaten des Alias mit angehängt. Muß das da irgendwo rein?{ "common": { "name": "Gaszaehler", "desc": "Manuell erzeugt", "role": "value", "type": "number", "read": true, "write": true, "def": 0, "custom": { "sourceanalytix.0": { "enabled": true, "selectedUnit": "m³", "deviceResetLogicEnabled": true, "threshold": 1, "start_day": 0, "start_week": 0, "start_month": 0, "start_quarter": 0, "start_year": 0, "alias": "Gaszähler", "selectedPrice": "Gas", "consumption": true, "valueAtDeviceReset": 0, "valueAtDeviceInit": 9264.230000000001 } } }, "type": "state", "native": {}, "_id": "0_userdata.0.Gaszaehler.Gaszaehler", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.sourceanalytix.0", "user": "system.user.admin", "ts": 1679819474473 }
Es wäre sehr nett wenn du mir helfen würdest.
Gruß Duffy
-
@duffy sagte: Objektdaten des Alias
Das ist kein Alias, sondern ein eigener Datenpunkt, der wahrscheinlich per Skript geschrieben wird. Man muss dann im Skript runden.
-
Zefix, du hast recht es ist bei 0_userdate drin, sorry. Die Daten werden von einem Blockly in den Datenpunkt geschrieben.
Trotzdem meine Frage wie ich die Nullen weg bekomme.
Kannst du mir das bitte in einfachen Worten erklären, beschäftige mich erst 2 Monate mit dem iob und da holpert es doch schon noch sehr.
Kann es vielleicht daran liegen das der Sourceanalytics Adapter da mit rein funkt?Oder kannst du mir sagen ob ich hier was reinbasteln kann?
Verstehe eh nicht woher die Nullen kommen weil ja vom Ausgangswert immer nur 0,01 dazugezählt wird.
-
@duffy sagte: vom Ausgangswert immer nur 0,01 dazugezählt wird.
0,01 muss binär gerundet werden, wodurch Nachkommastellen entstehen können.
Ist "COUNTER_C1" ein Integer-Wert? Dann dividiere ihn durch 100. Wenn es kein Integer-Wert ist, dann runde ihn vorher.
-
@duffy said in Alias zeigt viele Nachkommastellen unter Objekte:
Trotzdem meine Frage wie ich die Nullen weg bekomme.
Es gibt unter Mathematik im Blockly diesen Baustein - der mach das was @paul53 als JavaScript-Code zeigte:
-
Danke paul53. Das Signal vom Gaszähler kommt von einem reed Kontakt der am Gaszähler ist. Ich darf also immer nur
0,01 m³, das ist der Wert eines Signals zu meinem Gaszählerstand dazu rechen sonst stimmt der Wert nicht mehr.Ich habe das nun mal so eingetragen wie von dir vorgeschlagen nur mit 0,01 und es scheint im Moment zu klappen.
Danke erst mal dafür.
-
danke schön.
-
@duffy sagte: nur mit 0,01
Anstelle der Multiplikation mit 0,01 verwende die Division durch 100.
-
ok, habe ich so umgestellt.
Ich verstehe zwar nicht warum das eine geht und das andere nicht aber wichtig ist mir das es jetzt gehtAber da du dich ja so richtig auszukennen scheinst fällt mir da noch ein Problem ein, passt zwar hier jetzt nicht zu dem Thema, will es trotzdem kurz anreißen und machr ggf ein neues Thema auf.
Ich habe ein Blockly bei dem durch einen BWM das Licht angeschaltet wird das nach einer gewissen Zeit wieder aus geht.
Schalte ich das Licht VOR dem BWM über Alexa ein bleibt es dauerhaft an.
Was ich aber gerne hätte ist, dass wenn der BWM das Licht an gemacht hat und ich Alexa sage: "Licht Wohnzimmer an" dieses auch dauerhaft an bleibt. Aktuell ist es so das es wenn es durch den BWM an gemacht wurde auch durch diesen wieder aus geht.Kannst du mir da auch helfen? Soll ich ein neues Thema draus machen und das hier wieder löschen?
Gruß Duffy
-
@duffy said in Alias zeigt viele Nachkommastellen unter Objekte:
passt zwar hier jetzt nicht zu dem Thema
Dann solltest Du auch ein neues Thema aufmachen. Das Forum hier ist ja nicht (nur) zur individuellen Hilfe sondern es sollen alle profitieren.
-
-
Hallo paul53,
die Nullen haben mich wieder eingeholt.
Ich habe das runden mit 2 verschiedenen Bausteinen versucht aber die Nullen sind wieder gekommen.- Versuch
2.Versuch
=>
Gibt es noch eine Alternativ Idee?
Gruß Duffy
- Versuch