NEWS
Datenpunkt auslesen & Objekt wahr setzen
-
Guten Morgen!
Ich brauche eine kleine Hilfe.Statt das was hier zu sehen ist, möchte ich den Datenpunkt 257 auslesen und drauf basierend einen Datenpunkt mit dem gleichen Namen auf wahr setzen. Ich bekomme es aber gerade nicht hin.
Könnt ihr mir dabei helfen?
Wenn Objekt 257 = 29188, dann steuere 29188 auf wahr
Aber wenn Objekt 257 = xyz, dann steuere xyz auf wahrDanke euch!
-
-
Hey und vielen Dank!
Der Wert in Objekt 257 kann kann sich verändern (mal xyz, mal abc, mal xxx).
Und je nachdem wie dieser Wert ist, soll er auch das entsprechende Objekt xyz, abc,, xxx auf wahr setzten.Funktioniert das so mit deinem Vorschlag?
Vielleicht hatte ich es nicht genau genug beschrieben....
-
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
Funktioniert das so mit deinem Vorschlag?
Du weist doch, gegen welchen Wert Du prüfst.
Also weist Du ja auch, welches Objekt zu beschreiben ist. -
Triggern auf Änderung des DP
setze variable auf Wert
aktualisiere ID (Variable) mit true -
@codierknecht sagte in Datenpunkt auslesen & Objekt wahr setzen:
gegen welchen Wert Du prüfst.
nein!
da kommen verschiedene Werte raus, und er will entsprechend des Werts einen jeweiligen DP auf wahr setzen. -
-
@codierknecht
genau so hab ich es nir gedacht!@Uli977
Voraussetzung ist natürlich dass der entsprechende Datenpunkt genau so existiert -
Genau, je nachdem was bei 257 geschrieben wird ist auch ein jeweils anderer Datenpunkt auf wahr zu setzen
Danke Euch, probiere ich so aus wie im Screenshot zu sehen.
-
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
ein jeweils anderer Datenpunkt
wenn das kein Geräteadapter-Datenpunkt ist, gibt es auch nichts zu steuern.
Dann musst du aktualisiere nehmen -
Hier nun was ich zusammengebaut habe.
Meine Gewünschte funktionsweise...
--> Wenn ich Waschmaschine PV-Start manuell gesetzt habe
dann
--> Prüfe alle 10 Minuten, ob genug Strom vorhanden ist
wenn ja
--> Wenn Objekt 257 einen Wert ungleich 0 (dort steht dann die Programm ID, welche sich aus meiner Einstellung an der Waschmaschine ergibt, z.B. 29188)
dann
--> Steuere den Datenpunkt, der den Namen hat gemäß Wert aus dem Datenpunkt 257 (29188), mit wahrDas ist der Datenpunkt mit dem Namen 29188, welcher dann auf wahr geschaltet werden muss.
Meint ihr das passt so?
-
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
Meint ihr das passt so?
nein!
Weil du uns im Erstposting nicht alles gesagt hast.
Wir sind davon ausgegangen, dass du
@homoran sagte in Datenpunkt auslesen & Objekt wahr setzen:
Triggern auf Änderung des DP
auf den DP 257 triggerst.
So kannst du Wert nicht nutzen
-
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
Wenn ich Waschmaschine PV-Start manuell gesetzt habe
Das soll dann in etwa bedeuten: Starte die WM, sobald genug Leistung vorhanden?
- Variablen nach Möglichkeit ohne Leer- oder Sonderzeichen
Leerzeichen werden zwar im Code durch Unterstriche ersetzt, aber man sollte die trotzdem vermeiden. - Was soll passieren, wenn während des Programms die Leistung unter Deine Grenze fällt?
Weiter waschen, pausieren, stoppen? - Wenn der Start einmal ausgelöst wurde: Kann dann das Intervall nicht beendet werden?
Vorschlag:
Sobald der "AutoStart" auftrue
gesetzt wurde (manuell?), wird alle 10 Minuten geprüft und im Fall der Fälle das entsprechende Programm gesetzt.
Ist das passiert, wird der "AutoStart" auffalse
gesetzt.
Sobald "AutoStart" auffalse
geändert wurde (entweder manuell oder weil das Programm gestartet wurde) wird das Intervall verlassen.Nach meinem Verständnis - meine WM ist nicht so "schlau"
- Variablen nach Möglichkeit ohne Leer- oder Sonderzeichen
-
Ok, sorry ihr zwei, dann habe ich mich da falsch ausgedrückt bzw. gedacht es würde ausreichen euch weniger Informationen zu geben, um die Sache nicht unnötig kompliziert zu machen.
zu 1) ok, verstanden
zu 2) die Waschmaschine soll dann starten und durchlaufen
zu 3) so ist es auch, sobald die Maschine startet, wird der Intervall gestoppt (steht weiter unten im Blockly)Meine Herausforderung ist, dass je nach Wert im Objekt 257 (Selected Programm), muss ein anderer Datenpunkt auf wahr gesetzt werden. Es handelt sich um den Datenpunkt "Start" innerhalb des jeweiligen Ordners, siehe unten
Jeder dieser Ordner (=das jeweilige eingestellte Programm der WM), hat einen eigenen "Start" Datenpunkt. Von dem des Programms Cotton, habe ich in meinem Post davor ein Foto gemacht.
-
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
zu 3) so ist es auch, sobald die Maschine startet, wird der Intervall gestoppt (steht weiter unten im Blockly)
Wenn Dein Intervall das Programm gestartet hat, läuft es aber weiter.
Du setzt den Wert nicht beim Start des Programms auffalse
. Das Intervall läuft also weiter, bis der DP (manuell) auffalse
gesetzt wird.Da auf den "AutoStart" getriggert wird, muss man dessen Wert nicht nochmal (2x) lesen. Der Trigger kennt bereits "seinen" Wert.
-
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
Es handelt sich um den Datenpunkt "Start" innerhalb des jeweiligen Ordners, siehe unten
wer immer 4840103930.... ist!
das scheint dann doch ein Geräteadapter Datenpunkt zu sein.
Dann doch steuere, aber den Pfad korrekt angeben.und nicht den Triggerblock WERT, sondern unter System, den Datenpunkt Wert von.... nehmen und da die ID vom 257 eingeben.
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
es würde ausreichen euch weniger Informationen zu geben, um die Sache nicht unnötig kompliziert zu machen.
immer alles zeigen!!
-
@uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:
Meine Herausforderung ist
Nicht nur Deine - auch unsere
dass je nach Wert im Objekt 257
Was genau kann dieser DP enthalten?
Und wie sehen die DP z.B. unterhalb von "Cotton_Cotton_Cotton" aus.
Die Kunst wird sein, den Wert von "Object 257" in die passende ID zu übersetzen.
-
@uli977 sagte: Wenn Objekt 257 = 29188, dann steuere 29188 auf wahr
"29188" ist der Wert des DP "257"?
Wenn "29188" der Name des Start-DP ist, muss die ID in einer Schleife ermittelt werden. -
Tur mir leid und ich weiß eure Hilfe wirklich zu schätzen!
"Die Kunst wird sein, den Wert von "Object 257" in die passende ID zu übersetzen.!"--> genau
Datenpunkt 257 (Selected Programm) - der wird über den Cloudless HomeConnect Adapter beschrieben, wenn ich an der WM das Prgramm wähle.
{ "type": "state", "common": { "name": "257", "type": "string", "role": "text", "write": true, "read": true, "def": "" }, "native": {}, "from": "system.adapter.cloudless-homeconnect.0", "user": "system.user.admin", "ts": 1745141264392, "_id": "cloudless-homeconnect.0.484010393060000406.SelectedProgram", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Das ist der Start Datenpunkt, in diesem Fall vom Ordner=Programm Cotton (cloudless homeconnect adapter)
{ "type": "state", "common": { "name": "29188", "type": "boolean", "role": "button", "write": true, "read": false, "def": false }, "native": {}, "from": "system.adapter.cloudless-homeconnect.0", "user": "system.user.admin", "ts": 1745141264779, "_id": "cloudless-homeconnect.0.484010393060000406.Program.Cotton_Cotton_Cotton.Start", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Das Skipt mit jetzigem Stand
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="interval" id="Intervall">Intervall</variable> <variable id="}[h?ZBXS`OiSusXv!)#S">Datenpunkt xy</variable> </variables> <block type="comment" id="aT?LBQImYhka_pPTHi+3" x="-37" y="-237"> <field name="COMMENT">Fernstart an WM aktiviert</field> <next> <block type="on_ext" id="=d1,hn$0N38VTMQBdP4H"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="cLVMX6yPJK6@vf#a(N]?"> <field name="oid">cloudless-homeconnect.0.484010393060000406.Status.RemoteControlStartAllowed</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="nl8e+#mL_T^d*=*@G.3{"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="I?BC@;=H;/sH+1^:.f+t"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="S9Ybz[asb+#1MdTjbi-}"> <field name="ATTR">val</field> <field name="OID">cloudless-homeconnect.0.484010393060000406.Status.RemoteControlStartAllowed</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?WOh@M)GYy5Qa/4vK]H*"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="*WOsve)YYCvE.99k(v@9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.haushalt.Waschmaschine_PV-Start</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=";Waj*[3zxKlEmYx+.JC3"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id=".``vK-x2gKIry6ar*9)s"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="J0(_~*YZSRu81-YkhYJl"> <field name="ATTR">val</field> <field name="OID">cloudless-homeconnect.0.484010393060000406.Status.RemoteControlStartAllowed</field> </block> </value> <value name="B"> <block type="logic_boolean" id="a:(yG,@_}JlIV:%^eL#{"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_clearinterval" id="zJqizpA/f-`bF/ctW~Xi"> <field name="NAME">Intervall</field> <next> <block type="control" id="mFJ5*t$h5vT~WL+@E2%6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.haushalt.Waschmaschine_PV-Start</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Zz[};mcW.RD81t*9:uCA"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="`sIq-5c.4u6z]?|ryMR]"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="sz)0L*k.7ap_Aj%dpps["> <field name="oid">javascript.0.haushalt.Waschmaschine_PV-Start</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="6|-A$bqbc[#_`#$WJ}Ya"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="ngBg#(_ByB3W~M(]uI=^"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Bi*B,?rC3u}25=k[1#Z{"> <field name="ATTR">val</field> <field name="OID">javascript.0.haushalt.Waschmaschine_PV-Start</field> </block> </value> <value name="B"> <block type="logic_boolean" id="ZLP?iEu]$jy[yTRgow-:"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Uw:Rc[HDgMRqxaC3El%R"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.sonstige.Pushover_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="(8*0M4J:/*vQ!gc-PkvC"> <field name="TEXT">PV-Start Waschmaschine aktiviert</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="]~lZ#AJjBVcep[0]Nt;Z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="C;LmtCMvvc.S:`}.{H*+"> <field name="ATTR">val</field> <field name="OID">javascript.0.haushalt.Waschmaschine_PV-Start</field> </block> </value> <value name="B"> <block type="logic_boolean" id="xh$f,UK%(3|eo*=0NqzU"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="QH=nY4G?AFK*y:TGE?~z"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.sonstige.Pushover_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="%8Ef)8@=twCfm_n~=7d9"> <field name="TEXT">PV-Start Waschmaschine deaktiviert</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="comment" id="qJLQ[N+048v:Sgixp$YJ"> <field name="COMMENT">PV-Start Waschmaschine</field> <next> <block type="on_ext" id="#dD3}u+jYOm?lB-QoI!G"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="%1b`.:?T48Y;+:[N#+d_"> <field name="oid">javascript.0.haushalt.Waschmaschine_PV-Start</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="9LY*jyu_Fl;C:,`lBXM|"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="1YizWU_vPe~tN?p+I`5W"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="^$3um]{tNDWMif(P#K2("> <field name="ATTR">val</field> <field name="OID">javascript.0.haushalt.Waschmaschine_PV-Start</field> </block> </value> <value name="B"> <block type="logic_boolean" id="];[A)+|Wg1(KnTczt|Bt"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="JXyBI}_mv+vpsTq)oFuI"> <field name="NAME">Intervall</field> <next> <block type="timeouts_setinterval" id=")M]w7F@bE]T;,fQ|L:3G"> <field name="NAME">Intervall</field> <field name="INTERVAL">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="r2MD_{L[nibERueRM(GG"> <value name="IF0"> <block type="logic_operation" id="jgI%p_AN}s/,_Zroun^/" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="`:gKZ;7jfe0E0/rmI`#N"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="V.e]@5;[w+vpdl+^F-dk"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.2_Aktuelle_Einspeisung</field> </block> </value> <value name="B"> <block type="math_number" id="Ux:Rc/2qYvC;Fa=tGUUH"> <field name="NUM">1200</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="EDW^Ka2!IFpX^!#rJ.eA"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="qvu(fR:h[^xsjs?Drbm-"> <field name="ATTR">val</field> <field name="OID">evcc.0.loadpoint.1.status.chargePower</field> </block> </value> <value name="B"> <block type="math_number" id="L5u/3-G2ht{xZxe({4Z{"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="J-./yVsOFr*Ra1HW7;Fm"> <field name="COMMENT">Programm Baumwolle</field> <next> <block type="controls_if" id="k?bn-;]ASn/Sl|Q/`g6N"> <value name="IF0"> <block type="logic_compare" id=".gy{+E^_BpHY*xUYagdc"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="{6!|3tO/fWX4nStU,mCr"> <field name="ATTR">val</field> <field name="OID">cloudless-homeconnect.0.484010393060000406.SelectedProgram</field> </block> </value> <value name="B"> <block type="math_number" id=":X15o@#f.E^zW,$TW^8|"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="XTm5WDCYAcR8QV%3tndP"> <field name="VAR" id="}[h?ZBXS`OiSusXv!)#S">Datenpunkt xy</field> <value name="VALUE"> <block type="text_join" id="Y:y`[)#U8ca8$9yC5GL#"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id=".kU#E:f|z`xLo}KQh?j|"> <field name="TEXT">cloudless-homeconnect.0.484010393060000406.SelectedProgram</field> </block> </value> <value name="ADD1"> <block type="on_source" id="G3F1c{Ow2r76`?#i+o%V"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="control_ex" id="~7V95FXLGn-Ar%v.S.Sr"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="pv(jPVF|8[?Dvb9@`Cm+"> <field name="oid">ID auswählen</field> </shadow> <block type="variables_get" id="HHlnu;|j}JY)LO$SN9nY"> <field name="VAR" id="}[h?ZBXS`OiSusXv!)#S">Datenpunkt xy</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="a=4CNtQ.]Bd+e99LYC^R"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id=".H0CBJ1gE]u*dM/Ce^aH"> <field name="NUM">0</field> </shadow> </value> <value name="EXPIRE"> <shadow type="math_number" id="tc.mK$^q?+jA1fgx^xOK"> <field name="NUM">0</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="KB2L4|XFy/j]V7]m2)7:"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="{8}7;:np)]B},5?a/S[b"> <field name="ATTR">val</field> <field name="OID">javascript.0.haushalt.Waschmaschine_PV-Start</field> </block> </value> <value name="B"> <block type="logic_boolean" id="cTj6$s:}rtolQ5(-(}hS"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_clearinterval" id=";8dz|gF4A!04TgeZp_n!"> <field name="NAME">Intervall</field> </block> </statement> </block> </statement> <next> <block type="comment" id="Jc.wW;4EJ9L8EGL9JSHP"> <field name="COMMENT">PV-Start wieder ausschalten</field> <next> <block type="on_ext" id="^S=)N:SQ+qXS~g|`u{*J"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="jH`Rz^h?=ciy0VwTg-DS"> <field name="oid">cloudless-homeconnect.0.484010393060000406.ActiveProgram</field> </shadow> </value> <statement name="STATEMENT"> <block type="control" id="A~PnEa-;$}lzVoytgY*A"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.haushalt.Waschmaschine_PV-Start</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="u:A!7v*~zBU@23uFC3%H"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_clearinterval" id="5y8HpuICR0)zD@O57/I)"> <field name="NAME">Intervall</field> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>
Jedes Programm hat so einen Ordner und entsprechend einen Datenpunkt "Start", welcher dann gesetzt werden muss. -
@uli977 sagte: was ich zusammengebaut habe.
Was enthält "Active power"?