NEWS
[gelöst] Blockly Object value in Homematic Variable schreiben und Berechnungen
-
okay mein Fehler, ich habe da Verwirrung geschafft:
smartmeter.0 (2Wege Zähler)
value 1-0:15_7_0*255.value state value 7699.6 W
Der Name ist "1-0:15_7_0_*255", der Wert ist 7699.6W,
analog dazu:
smartmeter.1 (Erzeugungszähler PV Anlage)
value 1-0:15_7_0*255.value state value 8433.1 W
Rechnen möchte ich mit: 8433.1 W-7699.9 W=733,5W
Das Ergebniss ist größer 0 also schreibe
7699,6W in die Homematic Systemvaribale "Einspeisung" - "Bezug" wäre 0W
Anders wenn das Ergebniss kleiner 0 wäre:
Dann schreibe 7699,6W in die Systemvariable "Bezug" - "Einspeisung" in diesen Fall 0W
-
Das klingt ja jetzt ganz anders.
Etwa so:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="xrbmvIO/PN;%/.YQdjWG" x="87" y="38"><mutation items="1"></mutation> <field name="CONDITION">any</field> <value name="OID0"><shadow type="field_oid" id="F{:[`LHAmM~=mf}G3e05"><field name="oid">Messwerte.0.Solaranlage.Momentanwerte.Leistung_AC_aktuell</field></shadow></value> <statement name="STATEMENT"><block type="update" id="qT5NPeQr(uS|8Qnsbs+B"><mutation delay_input="false"></mutation> <field name="OID">smartmeter.0.Rechenwerte.Momentanwerte.Verbrauch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_arithmetic" id="{NZTMK@UQ]dKVdEkLb*)"><field name="OP">ADD</field> <value name="A"><shadow type="math_number" id="{V(@*RwUGQkn;Q5oOjuZ"><field name="NUM">1</field></shadow> <block type="get_value" id="bX)m08(.JE%L~L52CKNz"><field name="ATTR">val</field> <field name="OID">smartmeter.0.1-0:16_7_0*255.value</field></block></value> <value name="B"><shadow type="math_number" id="rKc{A(_PHQLo)znlgc+s"><field name="NUM">1000</field></shadow> <block type="get_value" id="CicpnUOm3we4(4ialV#R"><field name="ATTR">val</field> <field name="OID">Messwerte.0.Solaranlage.Momentanwerte.Leistung_AC_aktuell</field></block></value></block></value></block></statement></block></xml>
Gruß
Rainer
-
Richtig Rainer, nur ist der Wert immer positiv bei meinen Zähler..
Ich muss vorher noch entscheiden ob der Wert Einspeisung ober Bezug ist
Vg Torsten
-
Hallo Torsten,
@schneidy76:nur ist der Wert immer positiv bei meinen Zähler.. `
Das verstehe ich nicht, du hast doch einen Zweirichtungszähler:
@schneidy76:smartmeter.0 (2Wege Zähler)
CODE: ALLES AUSWÄHLEN
value 1-0:15_7_0*255.value state value 7699.6 W `
Den habe ich auch (Hager eHz):
Habe aber andere Daten.und die sind abhängig vom Bezug oder Einspeisung negativ bzw. positiv.
Gruß
Rainer
-
Habe ich nicht:
smartmeter.0 1-0:0_0_9*255 Device ID 1-0:15_7_0*255 Momentanwert (Total) 1-0:1_8_0*255 Zählerstand 1 Summe Wirkarbeit Bezug + (Total) 1-0:1_8_1*255 Zählerstand 1 Summe Wirkarbeit Bezug + (T1) 1-0:1_8_2*255 Zählerstand 1 Summe Wirkarbeit Bezug + (T2) 1-0:2_8_0*255 Zählerstand 1 Summe Wirkarbeit Abgabe - (Total) 1-0:2_8_1*255 Zählerstand 1 Summe Wirkarbeit Abgabe - (T1) 129-129:199_130_3*255 Manufacturer ID 129-129:199_130_5*255 Forename/Public Key smartmeter.1
Edit: Ich hab mal geforscht. Das ist kein Hager EML ist der Hersteller. Leider verbaut LEW den standardisiert
Mehr is nicht….
-
habe jetzt ein mini script geschafft und es läuft,
die Variable (Typ Zahl Werte von -12000 bis 12000W) die ich in homematic erstellt habe wird jetzt in iobroker beschrieben und auch aktualisiert
-> in Homematic WebUi aber nicht aktualisiert?
Wo fehlt es da noch?
VG Torsten
-
Hallo schneidy76
Den anderen Thread haben wir ja durch.
Nun können wir hier weiter machen.
Woher kommen die Daten die Du weiterverarbeiten möchtest. (Adapter, Datenpunkte)
Bitte nochmal gaaanz laaangsam erklären
Grüße
-
Ich glaube so geht's.
Melde mich morgen wenn die Sonne scheint!
-
:?:
Der Wert wird immer gleich sein.
Nie größer oder kleiner als sein eigener Wert. :roll:
Grüße
-
Verdammt ja, obwohl die object id von zwei verschiedenen Adapter kommen.
Smartmeter.0 und smartmeter.1
Kann ich die irgendwie differenzieren?
-
Verdammt ja, obwohl die object id von zwei verschiedenen Adapter kommen.
Smartmeter.0 und smartmeter.1
Kann ich die irgendwie differenzieren? `
Na klar kann man das.Was mich verwirrt: Warum haben bei Dir Smartmeter.0 und Smartmeter.1 den gleichen Namen?
"1-0:15_7_0_*255" ist für mich völlig nichtssagend.
Da wird es für mich mit dem differenzieren schwer. Wie soll ich Dir sagen, welchen "1-0:15_7_0_*255" ich meine?
Auf jeden fall musst Du beide triggern.
Z.B.
Grüße
-
Hi,
ich weiß auch nicht warum beide den selben Namen tragen.
Finde ich auch doof, ich hatte gehofft das die beiden Adapter richtig verlinkt sind.
Kann man die object ID nicht umbenennen?
Schau mal im Bild vom Homoran
dort ist momentan Wert allerdings:
1-0:16_7_0_*255
VG Torsten
-
dort ist momentan Wert allerdings:
1-0:16_7_0_*255 `
Ich kenne den Smartmeter Adapter nicht.
Aber "1-0:16_7_0_*255" ist doch kein Wert, oder?
Unter Objekte solltest Du den NAMEN ändern können.
Grüße
-
er meint wohl mit Wert die ID des vom Smartmeter ausgegeben Datenpunktes
Ich habe mir meine Struktur angesehen, da ist eben auch nur *1-0:16_7_0255_ Als ID ohne weitere Zusätze, und wenn du zwei Zähler hast, werden die wohl identisch angelegt.
Gruß
Rainer
-
Ich habe mir meine Struktur angesehen, da ist eben auch nur *1-0:16_7_0255_ Als ID ohne weitere Zusätze, und wenn du zwei Zähler hast, werden die wohl identisch angelegt. `
Aber den Namen müsste man doch ändern können, oder?
-
Aber den Namen müsste man doch ändern können, oder? `
Ja (nach meinem Kenntnisstand), wenn Du common.name meinst. Die ID beginnt mit der Instanz smartmeter.N., wodurch sich die IDs beider Zähler unterscheiden. -
Hi, habe jetzt im context der Object Eigenschaften im Bereich RAW den Namen geändert:
ob es geht ????????? keine Ahnung :roll:
{ "common": { "name": "0-0:15_7_0*255.value", "type": "number", "unit": "W", "role": "value", "read": true, "write": false }, "native": { "id": "1-0:15_7_0*255.value" }, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 }, "_id": "smartmeter.0.1-0:15_7_0*255.value", "type": "state" }
{ "type": "state", "common": { "name": "1-0:15_7_0*255.value", "type": "number", "read": true, "unit": "W", "role": "value", "write": false }, "native": { "id": "1-0:15_7_0*255.value" }, "_id": "smartmeter.1.1-0:15_7_0*255.value", "acl": { "object": 1638, "state": 1638 } }
-
Hi, habe jetzt im context der Object Eigenschaften im Bereich RAW den Namen geändert: `
???? Keine Ahnung wo Du die Namen geändert hast.
Ich sehe immer noch schwer nachvollziehbare, kryptische Bezeichnungen
ob es geht ????????? keine Ahnung :roll: `
Keine Ahnung s.o.Muss die "Berechnung" NUR erfolgen, wenn sich der Wert von "0-0-15_7_0*255" (puh was für ein Name) ändert?
Die Berechnung ist "(smartmeter.0) Momentanwert in Watt minus (smartmeter.1) Momentanwert in Watt = Momentanwert Bezug/Einspeisung
Positiv bei Einspeisung
Negativ bei Bezug `
Diese Berechnung vermisse ich gänzlich!Tut mir Leid, ich bin noch nicht auf Deiner Spur.
Grüße
-
Nun ja, irgendeinen Trigger hab ich ja gebraucht. Der smartmeter.o Adapter liest alle 60s bei mir neue Daten von Bezug/Einspeisungszähler ein.
Sollte ich mal diese Zeit verändern, muss ich es im Script nicht auch noch tun.
Den Adapter für die Erzeugung - smartmeter.1 - macht keinen Sinn, da Nachts keine Sonne scheint und ich auch keinen Speicher hab.
Der Vergleich größer/gleich bzw. Kleiner/gleich liefert im übrigen den selben Entscheidungswert wie meine ursprüngliche Rechnung. Ich spare mir damit einen Schritt.
Fraglich ist jetzt nur, ob es jetzt möglich die beiden Werte auseinander zu halten.
Ich glaube nämlich nicht.
Nachdem ich die Namen geändert habe, hat sich das Script automatisch an die neuen Namen angepasst. Hier musste ich nichts ändern…
-
geht nicht…
Es wird immer nur die untere Aktion ausgelöst - oder beide und die untere überschreibt die erste aus dem Script.
Mir ist noch aufgefallen, das in den unteren Eigenschaften
{ "type": "state", "common": { "name": "1-0:15_7_0*255.value", "type": "number", "read": true, "unit": "W", "role": "value", "write": false }, "native": { "id": "1-0:15_7_0*255.value" }, "_id": "smartmeter.1.1-0:15_7_0*255.value", "acl": { "object": 1638, "state": 1638 }
weniger steht als in der oberen….
:?: