NEWS
Nachkommastellen verschwunden?
-
@dditt sagte:
jedoch bleibt das Objekt in das ich schreiben möchte leer?
Hat sich denn "Volume" bereits geändert ?
-
@dditt sagte in Nachkommastellen verschwunden?:
würdest du mir hier zu "aktualisiere" oder "steuere" raten? oder kann ich das so gar nicht machen?
wenn der Wert dazu von einem Adapter verarbeitet werden soll (hier knx, oder???) muss es "steuere" sein.
Wenn aber in den Objekten gar nichts auftaucht ist das erst einmal sekundär.
"Wert" ist aber schon der fertige Baustein aus den Trigger-Blöcken? und keine selbst erstellte Variable?
sonst setze bitte mal einen debug-Baustein vor den aktualisiere/steuere Block und lasse dir "Wert" im debug anzeigen
-
@paul53 ja, aber nur die Stellen nach dem Komma bzw. dem Punkt.
-
@homoran richtig, den Wert von dem WM-Bus Objekt möchte ich auf den KNX Bus senden.
Habe den Baustein steuere jetzt eingebaut.
Der "Wert" ist aus dem Trigger Block -> Baustein "Objekt ID" umgestellt über DropDown auf Wert.
Mit dem Debug schaut es dann jetzt so aus:
In einer Stunde wissen wir mehr, der Wasserzähler sendet nur alle 60 Minuten den Wert....
EDIT, habe das Script mit dem Debug Block abgeändert... Denke so ist es eher richtig.
-
131.665 true 2021-01-24 17:08:40.611 131.627 true 2021-01-24 16:49:37.798 null true 2021-01-24 16:49:37.798
den letzten Wert von 17:08 Uhr hat er auch nicht geschrieben... das KNX Objekt das er beschreiben darf ist leer...
-
@dditt sagte in Nachkommastellen verschwunden?:
131.665 true 2021-01-24 17:08:40.611 131.627 true 2021-01-24 16:49:37.798
dann liefert der Datenpunkt einen Bool.
Was ist das genau für ein Datenpunkt?
-
@homoran welche Informationen genau benötigst du? die Zeilen oben kamen aus der History Instanz.
hier die RAW Informationen:
{ "from": "system.adapter.wmbus.0", "user": "system.user.admin", "ts": 1611490120573, "common": { "name": "Volume (Instantaneous value)", "role": "value.volume", "unit": "m³", "read": true, "write": false, "custom": { "history.0": { "enabled": true, "changesOnly": true, "debounce": 0, "maxLength": "10", "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "aliasId": "" } } }, "native": { "id": ".data.1-0-VIF_VOLUME", "StorageNumber": 0, "Tariff": 0 }, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME", "type": "state" }
-
@dditt sagte: habe das Script mit dem Debug Block abgeändert
Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
-
@dditt Sorry - Mein Fehler
Der DP liefert ja einen Wert - melde mich
Dann ist das gepostete aber nicht der Output vom debug-Block - oder?
EDIT:
@dditt sagte in Nachkommastellen verschwunden?:
die Zeilen oben kamen aus der History Instanz.
Hab's jetzt auch gelesen.
Ich brauche aber den Output des debug-Blocks
müsste auch im allgemeinen Log zu finden sein -
@dditt sagte:
"common": { "name": "Volume (Instantaneous value)", "role": "value.volume", "unit": "m³", "read": true, "write": false, "custom": { "history.0": { "enabled": true, "changesOnly": true, "debounce": 0, "maxLength": "10", "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "aliasId": "" } } },
Es fehlt common.type.
"common": { "type": "number",
-
@homoran nein, das ist aus dem History Adapter!
ich bekomme erst wieder einen Wert so in 10 Minuten ... wenn jemand Wasser verbraucht hat
-
@dditt sagte in Nachkommastellen verschwunden?:
nein, das ist aus dem History Adapter!
das weiß ich ja jetzt
Nutzt nur nix
-
@paul53 habe in den Eigenschaften des Objektes unter dem Reiter Allgemein mit dem "+" Symbol ein neues Attribut hinzugefügt "Type" -> und dieses Auf Zahl gestellt.
{ "from": "system.adapter.wmbus.0", "user": "system.user.admin", "ts": 1611490120573, "common": { "name": "Volume (Instantaneous value)", "role": "value.volume", "unit": "m³", "type": "number", "read": true, "write": false, "custom": { "history.0": { "enabled": true, "changesOnly": true, "debounce": 0, "maxLength": "10", "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "aliasId": "" } } }, "native": { "id": ".data.1-0-VIF_VOLUME", "StorageNumber": 0, "Tariff": 0 }, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME", "type": "state" }
-
@dditt sagte: ein neues Attribut hinzugefügt "Type" -> und dieses Auf Zahl gestellt.
Sieht so besser aus.
Poste mal den vom Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
-
@paul53 said in Nachkommastellen verschwunden?:
Code tags
Es tut mir leid, ich wüsste im Moment nur den Block zu "exportieren", aber was genau soll ich weg lassen?
so?
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="comment" id="9lLvRUT0G){Hm_rrxzla" x="112" y="162"> <field name="COMMENT">Wasserzaehlerstand</field> <next> <block type="on_ext" id="`$=B12u[MI24`;:f(h,D"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=")-LstACnP[G5;9Mu%VEK"> <field name="oid">wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="L*|7D{]d[(=eGQ]8_t1T"> <field name="Severity">debug</field> <value name="TEXT"> <shadow type="text" id="hEoKu:w%#!q8NRYtE(FI"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="j[]h|PI6q;P+o94$cE|Q"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="j)s}u(N`C)Q$p6rd6fo2"> <field name="TEXT">Wert:</field> </block> </value> <value name="ADD1"> <block type="on_source" id="%lxe0A9xuxV5ctLylS$9"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="control" id="/p8-0sydUN(KN3M^0k3t"> <mutation delay_input="false"></mutation> <field name="OID">knx.0.Zigbee_IOBroker_Eingänge.Wasserzähler.Wasserzähler_Zählerstand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="D/2qG!CF2.sIHZ$-z}f@"> <value name="VALUE"> <block type="on_source" id="@BQ_]?{,D]+0r_EjeXEe"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block>
-
@dditt sagte in Nachkommastellen verschwunden?:
Es tut mir leid, ich wüsste im Moment nur den Block zu "exportieren", aber was genau soll ich weg lassen?
oben Rechts kannst du die Ansicht von Blockly in den durch Blockly generierten javascript Code umschalten
Diesen Code bitte hier in Code-tags posten!
die letzte Zeile dieses Codes enthält die Informationen über die Blöcke, ist sehr lang und hier unnötig.
Die sollst du weglassen -
@dditt sagt: ich wüsste im Moment nur den Block zu "exportieren"
So wie @Homoran schrieb. Der Code ist korrekt und sollte funktionieren.
// Wasserzaehlerstand on({id: 'wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.debug(('Wert:' + String((obj.state ? obj.state.val : "")))); setState("knx.0.Zigbee_IOBroker_Eingänge.Wasserzähler.Wasserzähler_Zählerstand", parseFloat((obj.state ? obj.state.val : ""))); });
-
ahh, der Export sieht anders aus als der Code wenn man oben umschaltet.
da ist mir dann auch klar, warum ich die letzte Zeile weglassen soll. bei dem Export war die Letzte Zeile das </xml> ...
muss das "Zielobjekt" noch irgendwie "formatiert" werden?
ich habe nämlich bei zwei anderen Sachen auch keine Werte. Das Script hatte ich mir vor dem Plattmachen des Iobrokers nämlich exportiert gehabt und in der Neuinstallation wieder importiert. Vorher habend die Scripte ja funktioniert....
-
@dditt sagte in Nachkommastellen verschwunden?:
muss das "Zielobjekt" noch irgendwie "formatiert" werden?
natürlich auch vom Typ Number
Aber solange wir den output vom debug nicht kennen, brauchst du da nicht weiter zu machen
-
History Adapter:
131.677 true 2021-01-24 19:08:40.507 131.665 true 2021-01-24 18:00:14.521 131.665 true 2021-01-24 17:08:40.611 131.627 true 2021-01-24 16:49:37.798 null true 2021-01-24 16:49:37.798
Im Logfile steht aber nichts von Javascript... den Wert um 19:08 Uhr müsste ich ja mit Debug erfasst haben...
Habe das Script nochmal neu geladen...
javascript.0 2021-01-24 19:33:46.248 info (847) script.js.KNX_Daten.Wasserzähler: registered 1 subscription and 0 schedules javascript.0 2021-01-24 19:33:46.237 info (847) Start javascript script.js.KNX_Daten.Wasserzähler
Können ÄÜ und Ö Probleme machen?