NEWS
Ich verstehe es nicht eine Warnmeldung zu lesen
-
Hallo, ich habe ein Blockly Skript geschrieben was auch funktioniert, bei dem ich aber dennoch Warnungen angezeigt bekomme.
Ich verstehe es nicht diese Warnmeldungen zu lesen und brauch darum mal eure Hilfe.Mit dem Skript starte ich beim Einschalten einer Alarmanlage einen abwärts zählenden Timer der von 30 Sekunden auf 0 Sekunden runterzählt um damit anzuzeigen wann die Alarmanlage tatsächlich an geht.
Weil ich nicht weiß was zur Problemlösung gebraucht wird hier mal ein paar Infos vom Skript.
Hier dann die Warnmeldung
17:15:05.049 warn javascript.0 (932) at Object.<anonymous> (script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet:8:3) 17:15:05.050 info javascript.0 (932) script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet: setForeignState(id=0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren, state={"val":true,"ack":true,"ts":1693235705050,"q":0,"from":"system.adapter.javascript.0","lc":1693235705050,"c":"script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet"}) 17:15:05.050 info javascript.0 (932) script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet: getState(id=hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationNone, timerId=undefined) => {"val":false,"ack":false,"ts":1693235693017,"q":0,"from":"system.adapter.web.0","user":"system.user.admin","lc":1693220126452} 17:15:05.052 warn javascript.0 (932) at Object.<anonymous> (script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet:10:5) 17:15:05.054 info javascript.0 (932) script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet: setForeignState(id=0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren, state={"val":false,"ack":true,"ts":1693235705054,"q":0,"from":"system.adapter.javascript.0","lc":1693235705054,"c":"script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet"}) 17:15:05.094 info javascript.0 (932) script.js.Homematic_IP_Alarmanlage.Alarmanlage.Timer_zum_runterzählen_bis_Alarm_angeschaltet: setInterval(ms=1000)
hier das Skrip als Bild
Hier das Skript als Daten Export
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="gQ{sG?=;v2PfKH!x3O6.">Restzeit Hüllschutzzähler</variable> <variable id="yU~bWSTiD8;f:-c2IG`w">Restzeit Vollschutzzähler</variable> <variable type="interval" id="Intervall">Intervall</variable> <variable type="interval" id="Intervall2">Intervall2</variable> </variables> <block type="comment" id=":jW`m3|HX;w*J+}pg4G," x="-188" y="-162"> <field name="COMMENT">Hüllschutz aktivieren</field> <next> <block type="on" id="2_a^9=iC}PZEi,`MWgVH"> <field name="OID">hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationExternal</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="wuC$xl^%B(8cv=/dktDi"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="J+hWVeG.`+EwR]YvAp}*"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_if" id=",gRw6R=gQmMRed^ON[KQ"> <value name="IF0"> <block type="logic_compare" id="L}m/mJdh,oYi~8ldO6Or"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="moLV#L:RxsJZv[2sr(7v"> <field name="ATTR">val</field> <field name="OID">hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationNone</field> </block> </value> <value name="B"> <block type="logic_boolean" id="T5gy}U-9~!K)%Nyq@6T9"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="I-{X4B=`=-XuT$}pObU}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="d|AX,R1OTZFfETl*p]=7"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="on_ext" id="{FD8V+|c)R/Nff[=S5*D"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Svr}RKP09HD/x$BBS-;P"> <field name="oid">0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="7CeBy1gGV#g_6w[H(@!c"> <field name="VAR" id="gQ{sG?=;v2PfKH!x3O6.">Restzeit Hüllschutzzähler</field> <value name="VALUE"> <block type="math_number" id="+;TY.%Ie_eE+`I6Ou1K~"> <field name="NUM">30</field> </block> </value> <next> <block type="timeouts_setinterval" id="uMe#%uXQ860h=}x?D`b;"> <field name="NAME">Intervall</field> <field name="INTERVAL">1</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="v-VZ.L-~skFFd`w5X:Ui"> <field name="VAR" id="gQ{sG?=;v2PfKH!x3O6.">Restzeit Hüllschutzzähler</field> <value name="DELTA"> <shadow type="math_number" id="qQG3Z(zz(|p{9xk6eQX?"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="update" id="oLhw3-d[Q=89MBOQPFJ_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Datenpunkt2_Scharfstell-Timer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="fVRVGI0#Vm(!9+_8QBtY"> <field name="VAR" id="gQ{sG?=;v2PfKH!x3O6.">Restzeit Hüllschutzzähler</field> </block> </value> <next> <block type="controls_if" id="td*1cDkcF:WjQ64t+4`w"> <value name="IF0"> <block type="logic_compare" id="~1jm#!w6-AR-pD7F0`$:"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="aPKh1uB6Wf(eSG:0Chzd"> <field name="VAR" id="gQ{sG?=;v2PfKH!x3O6.">Restzeit Hüllschutzzähler</field> </block> </value> <value name="B"> <block type="math_number" id="r[xj;ic9UI[axC}/=M@v"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="cqVnE|e-h#08HQ`AXUCr"> <field name="NAME">Intervall</field> <next> <block type="update" id="yO%jZ=DtwxB:D#,]}5:2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Datenpunkt2_Scharfstell-Timer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="TX)$AqYIAZ3}}3D^]`vB"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> <block type="comment" id="C]0t)mBG)-Eh?YS~55h-" x="737" y="-162"> <field name="COMMENT">Vollschutz aktivieren</field> <next> <block type="on" id="z3mFZsLI}58P1dH%12bh"> <field name="OID">hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationInternalAndExternal</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="|`~{D2xHAfzeZ/Vsew`p"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="1#pdI(I0q!C=gQ|i*t_6"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_if" id="NCJcITI]*RT!!]P))ro)"> <value name="IF0"> <block type="logic_compare" id="Op=upEoxL1Nkf+nw].ZM"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="pM3?wX5llpNskj?40L+A"> <field name="ATTR">val</field> <field name="OID">hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationNone</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?=-+8etSE2+8-~=qCMNP"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="D.W0DdmYCG[!1/(1v5NG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]4b~|3+UNKQ+amCE8$X}"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="on_ext" id="[eGeEeUin2(;!]DY08WX"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="{.e+0cfsAI|P{-Lt=%#/"> <field name="oid">0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="2orKgKJRvq7_Wr(Q@]!4"> <field name="VAR" id="yU~bWSTiD8;f:-c2IG`w">Restzeit Vollschutzzähler</field> <value name="VALUE"> <block type="math_number" id=":`lQ[oIv6wHbrjGv{4BZ"> <field name="NUM">30</field> </block> </value> <next> <block type="timeouts_setinterval" id="Wn5qE]7F])@po|82fzmO"> <field name="NAME">Intervall2</field> <field name="INTERVAL">1</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="Im9?!Z2P~E;/`H)1a6HX"> <field name="VAR" id="yU~bWSTiD8;f:-c2IG`w">Restzeit Vollschutzzähler</field> <value name="DELTA"> <shadow type="math_number" id="G,;}gqc%K?bvVU5/q-bV"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="update" id="=GY$Jw?]B,Q=Y]hfWUAQ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Datenpunkt_Scharfstell-Timer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="O0SpBG.jdTC[]9C5N;6%"> <field name="VAR" id="yU~bWSTiD8;f:-c2IG`w">Restzeit Vollschutzzähler</field> </block> </value> <next> <block type="controls_if" id="/K|?Ql$+nUEu3Hel0QR7"> <value name="IF0"> <block type="logic_compare" id="6mKKM]`W`EZDzG+0lsYS"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="us,j;)b_(MKJL6-@~DeB"> <field name="VAR" id="yU~bWSTiD8;f:-c2IG`w">Restzeit Vollschutzzähler</field> </block> </value> <value name="B"> <block type="math_number" id="B9_h0zk--,?L?{KAmw:{"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="dtSB/7$zv`*C*T`)KJ?k"> <field name="NAME">Intervall2</field> <next> <block type="update" id="B;yREL31]P%,xg`k1dyg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Datenpunkt_Scharfstell-Timer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="?=EBT+Zz:@eg_Gl8OF$b"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> <block type="control" id="$VbKYD=47I^ocN(u}Za~" disabled="true" x="13" y="1738"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="4q)l:umO0~AmI#ZW%.1_"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="[-S|l|9bv4#Ik9B:G?8=" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="*$6UeF[}-tF8:%R4%zfK"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </xml>
Und hier das Skript als JavaScript
var Restzeit_H_C3_BCllschutzz_C3_A4hler, Restzeit_Vollschutzz_C3_A4hler, Intervall, Intervall2; // Hüllschutz aktivieren on({id: "hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationExternal"/*setSecurityZonesActivationExternal*/, change: "any"}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; setState("0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren"/*Datenpunkt.Homematic.Hüllschutz_aktiviren*/, true, true); if (getState("hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationNone").val == false) { setState("0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren"/*Datenpunkt.Homematic.Hüllschutz_aktiviren*/, false, true); } }); on({id: [].concat(['0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren']), val: true}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; Restzeit_H_C3_BCllschutzz_C3_A4hler = 30; Intervall = setInterval(async function () { Restzeit_H_C3_BCllschutzz_C3_A4hler = (typeof Restzeit_H_C3_BCllschutzz_C3_A4hler == 'number' ? Restzeit_H_C3_BCllschutzz_C3_A4hler : 0) + -1; setState("0_userdata.0.Datenpunkt.Homematic.Datenpunkt2_Scharfstell-Timer"/*Datenpunkt.Homematic.Datenpunkt2_Scharfstell-Timer*/, Restzeit_H_C3_BCllschutzz_C3_A4hler, true); if (Restzeit_H_C3_BCllschutzz_C3_A4hler <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("0_userdata.0.Datenpunkt.Homematic.Datenpunkt2_Scharfstell-Timer"/*Datenpunkt.Homematic.Datenpunkt2_Scharfstell-Timer*/, 0, true); } }, 1000); }); // Vollschutz aktivieren on({id: "hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationInternalAndExternal"/*setSecurityZonesActivationInternalAndExternal*/, change: "any"}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; setState("0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren"/*Datenpunkt.Homematic.Vollschutz_aktiviren*/, true, true); if (getState("hmip.0.homes.35c674a9-c2d2-4217-8a90-79b1e56270b6.functionalHomes.securityAndAlarm.setSecurityZonesActivationNone").val == false) { setState("0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren"/*Datenpunkt.Homematic.Vollschutz_aktiviren*/, false, true); } }); on({id: [].concat(['0_userdata.0.Datenpunkt.Homematic.Vollschutz_aktiviren']), val: true}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; Restzeit_Vollschutzz_C3_A4hler = 30; Intervall2 = setInterval(async function () { Restzeit_Vollschutzz_C3_A4hler = (typeof Restzeit_Vollschutzz_C3_A4hler == 'number' ? Restzeit_Vollschutzz_C3_A4hler : 0) + -1; setState("0_userdata.0.Datenpunkt.Homematic.Datenpunkt_Scharfstell-Timer"/*Datenpunkt.Homematic.Datenpunkt_Scharfstell-Timer*/, Restzeit_Vollschutzz_C3_A4hler, true); if (Restzeit_Vollschutzz_C3_A4hler <= 0) { (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})(); setState("0_userdata.0.Datenpunkt.Homematic.Datenpunkt_Scharfstell-Timer"/*Datenpunkt.Homematic.Datenpunkt_Scharfstell-Timer*/, 0, true); } }, 1000); });
Ich würde mich freuen wenn mir jemand hefen könnte.
Gruß Björn -
@geesthachter
Schau mal im Tab "Protokolle", in dem man weitere Informationen zu den Warnungen findet.
Der Datenpunkt "0_userdata.0.Datenpunkt.Homematic.Hüllschutz_aktiviren" ist vom Typ "Logikwert"? -
@geesthachter sagte in Ich verstehe es nicht eine Warnmeldung zu lesen:
:8:3)
das ist zeile und Spalte des Fehlers
-
@geesthachter
Datenpunkte (und auch Variablen etc.) nach Möglichkeit nicht mit Umlauten benennen (...matic.Hüllschutz...).
Kann funktionieren, muss aber nicht. Erfahrungsgemäß macht sowas früher oder später Probleme.
Auch Bindestriche vermeide ich normalerweise und setze stattdessen Unterstriche ein. -
@paul53 hat hingehauen. meine Datenpunkte haben jetzt den Typ Logikwert und jetzt wird keine Warnung mehr ausgegeben.
Danke -
@homoran sagte in Ich verstehe es nicht eine Warnmeldung zu lesen:
@geesthachter sagte in Ich verstehe es nicht eine Warnmeldung zu lesen:
:8:3)
das ist zeile und Spalte des Fehlers
Zeile verstehe ich ja noch aber was meinst du mit Spalte?
-
@codierknecht sagte in Ich verstehe es nicht eine Warnmeldung zu lesen:
@geesthachter
Datenpunkte (und auch Variablen etc.) nach Möglichkeit nicht mit Umlauten benennen (...matic.Hüllschutz...).
Kann funktionieren, muss aber nicht. Erfahrungsgemäß macht sowas früher oder später Probleme.
Auch Bindestriche vermeide ich normalerweise und setze stattdessen Unterstriche ein.Danke für den Tipp
-
spalte=das so und sovielte zeichen in der zeile, wie bei einer tabelle
es wird aber meist nur auf den beginn des befehls gezeigt, der probleme macht oder auch beginn des blocks der probleme macht.
aber bei verschachtelten befehlen ist es wenigstens ein weiterer hinweis