- ioBroker Community Home
- Deutsch
- Skripten / Logik
- Blockly
- HILFE: Alle Fenster geschlossen ? Datenpunkte auf true
HILFE: Alle Fenster geschlossen ? Datenpunkte auf true
-
@mickym Nun dann prüfe halt erst mal ob der untere Teil getriggert wird (siehst Du ja mit Test) und dann lass Dir mal den Wert mit debug ausgeben, um zu sehen, dass er auch das Objekt einliest.
genau das scheint er ja nicht zu machen.
sieht so aus als würde er keine Änderung in der Liste_Lampen feststellen -
genau das scheint er ja nicht zu machen.
sieht so aus als würde er keine Änderung in der Liste_Lampen feststellen@dellishelly Verstehe ich zwar nicht aber dann ändere den Trigger halt mal auf wurde aktualisiert.

schon alles eigenartig - wie gesagt ich mach parallel das Gleiche mit Lichtern und gibt keine Probleme
Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.
-
So ich habe nochmal alles auf das Prüfen ob alle Lichter aus sind umgeschrieben:

Warum das bei Dir nicht will - ist mir ehrlich gesagt schleierhaft.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="+%%%So3UD{{[Gk^OhpLZ">topic</variable> <variable id=".=3t38Q=oAvQA=GJrCIT">LichterAus</variable> <variable id="1BU(([$^W;WIow$X5_ol">licht</variable> </variables> <block type="on_ext" id="HZfKRocr8=CFq}R$552t" x="63" y="-608"> <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="d1@K!NJ=}R5S^u`KaX3C"> <field name="oid">mqtt.1.logic.states.fensterOffen.buero.balkon</field> </shadow> <block type="selector" id="|jdl_QBFs~eJ0k/*U={w"> <field name="TEXT">(functions=light)</field> </block> </value> <statement name="STATEMENT"> <block type="debug" id=":^Pgr3}|:]7+:?{a4x(d"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=")36vYh5%pY-%.Zp`EM1~"> <field name="TEXT">Lichter getriggert</field> </shadow> </value> <next> <block type="variables_set" id="GVAg8+xcAz[|GsBc1,da"> <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field> <value name="VALUE"> <block type="convert_jsonata" id="N?`{C9J4GFRAb`H7?Cwa"> <value name="EXPRESSION"> <shadow type="text" id="B6d=(wWf2W4nVTTc~Ck4"> <field name="TEXT">$match($,/.*\.(.*)\.(.*)/).groups[0]</field> </shadow> </value> <value name="TARGET"> <block type="on_source" id="f5bg({v-?(kFenn6!sOp"> <field name="ATTR">id</field> </block> </value> </block> </value> <next> <block type="controls_if" id="pp95*^^[[jJ^?TuXzl[Y"> <value name="IF0"> <block type="logic_compare" id="[3O8l^kLNbNPR.(QA3PK"> <field name="OP">EQ</field> <value name="A"> <block type="convert_jsonata" id="8DEA9GAj00wS`ak3:LzH"> <value name="EXPRESSION"> <shadow type="text" id="}n4Gp;Apcafj+v!O#qC1"> <field name="TEXT">$match($,/.*\.(.*)\.(.*)/).groups[1]</field> </shadow> </value> <value name="TARGET"> <block type="on_source" id="_)oOMZwT)AFE/M3KSD#a"> <field name="ATTR">id</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="RQ9L!U5iM20*h%Ms_tuL"> <field name="TEXT">On</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="FOrMgkW57jj@G6{=YVmo"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> <value name="VALUE"> <block type="lists_create_with" id="}3Pu2NVfy`*~L*A.Uk(s"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_json2object" id="%Y[TZ2`PQ_$?|57$wY_["> <value name="VALUE"> <block type="get_value" id="^St9z9H8%ItA9C_vXAO{"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test.JSON-Lichter</field> </block> </value> </block> </value> <value name="ADD1"> <block type="convert_jsonata" id="`pxk8qoF*:@/_PH_8^.Z"> <value name="EXPRESSION"> <shadow type="text" id="BG^WMHe-q@wGRNa4O#{5"> <field name="TEXT">{$[0]:$[1]}</field> </shadow> </value> <value name="TARGET"> <block type="lists_create_with" id="l?wk:~pb$uIfcN6@.%M6"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="v(JDqPD7Pfzl3ar}[U?I"> <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field> </block> </value> <value name="ADD1"> <block type="on_source" id=";d-Ch$rON[Q^dstG2J,J"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="ocxE8(:ynLCu;uv0I/(7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="_;*!{#=32F*17-Iy@dhi"> <field name="TEXT">test</field> </shadow> <block type="convert_object2json" id="{n]Gq05EuK4;laxtsYlF"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="rA|;dyBdh+.#(a47xrM~"> <value name="EXPRESSION"> <shadow type="text" id="]^zcbOX^zi9oT]J4XL5="> <field name="TEXT">$type($[0]) = "object" ? $merge($) : $[1]</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="4$.?5]j#%WQSn;Tz4%+%"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="p^{l*YUMc,}okFib%^V9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Test.JSON-Lichter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="fIBSCL[;SP5Vx,B;dmOY"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="y1yJD0IPpTHA[;_AVYDi"> <value name="EXPRESSION"> <shadow type="text" id="FPDz#qB5jn$E*aUcyXku"> <field name="TEXT">$type($[0]) = "object" ? $merge($) : $[1]</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="N)[-x}gD*RfBEk2.hY:z"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="lIpLyP^NqU!AEK@Zmf3O"> <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="8FR,J3q0sg3NZSiJGQ;%"> <field name="oid">0_userdata.0.Test.JSON-Lichter</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id=";;jER2B+iYQJi*8$1EU7"> <field name="VAR" id=".=3t38Q=oAvQA=GJrCIT">LichterAus</field> <value name="VALUE"> <block type="convert_jsonata" id="R2K@HY,wF{SE{+6q~Ly("> <value name="EXPRESSION"> <shadow type="text" id="MptWY~HPUv*#uY0JVmn%"> <field name="TEXT">$not($reduce($.*,function($i, $j){$i or $j}))</field> </shadow> </value> <value name="TARGET"> <block type="convert_json2object" id="y`O;-_$VJibyz*b3p)%l"> <value name="VALUE"> <block type="on_source" id="mX#k_*7P(/6$8T]QzQRi"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="40P}^7e-qYf5[R?KVPED"> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="Kd`cwF*iVL/zvIB.N)~Z"> <field name="VAR" id=".=3t38Q=oAvQA=GJrCIT">LichterAus</field> </block> </value> <statement name="DO0"> <block type="debug" id="n9DnT.[S*bI12V+C?Bfa"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="6jUCi;2nzqc#z9a2ZM*2"> <field name="TEXT">Alle Lichter aus</field> </shadow> </value> </block> </statement> <statement name="ELSE"> <block type="debug" id="sv:o[##||Qa${QL@84eX"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="t[klq_fe3}rg#`-x%_tK"> <field name="TEXT">Mindestens ein Fenster ist offen</field> </shadow> <block type="text_join" id="1.VR-sz?IMc4/%CPn2iT"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="BD-zZA^}qq{|Lf*mSFuW"> <field name="TEXT">Folgende Lichter sind an: </field> </block> </value> <value name="ADD1"> <block type="convert_jsonata" id="ON4]E+%)z@RZzf6Tft]$"> <value name="EXPRESSION"> <shadow type="text" id="1q9+4?m/0O5o(~sU?a}U"> <field name="TEXT">$each($, function($v, $k) {$v ? $k})~>$join(", ")</field> </shadow> </value> <value name="TARGET"> <block type="convert_json2object" id="+q~:K,vqzXj1{[-95bAi"> <value name="VALUE"> <block type="on_source" id="R7c1@EgSen?{)xy5ACvp"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </xml>
Die Datenpunkte lassen sich ohne weiteres lesen und beschreiben und triggern auch:
Vielleicht ist es doch besser die Array Funktionen zu benutzen, wie @paul53 und @Codierknecht hier vorgeschlagen hat, da Blockly eben mit Objekten nicht gut umgehen kann.
Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.
-
So ich habe nochmal alles auf das Prüfen ob alle Lichter aus sind umgeschrieben:

Warum das bei Dir nicht will - ist mir ehrlich gesagt schleierhaft.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="+%%%So3UD{{[Gk^OhpLZ">topic</variable> <variable id=".=3t38Q=oAvQA=GJrCIT">LichterAus</variable> <variable id="1BU(([$^W;WIow$X5_ol">licht</variable> </variables> <block type="on_ext" id="HZfKRocr8=CFq}R$552t" x="63" y="-608"> <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="d1@K!NJ=}R5S^u`KaX3C"> <field name="oid">mqtt.1.logic.states.fensterOffen.buero.balkon</field> </shadow> <block type="selector" id="|jdl_QBFs~eJ0k/*U={w"> <field name="TEXT">(functions=light)</field> </block> </value> <statement name="STATEMENT"> <block type="debug" id=":^Pgr3}|:]7+:?{a4x(d"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=")36vYh5%pY-%.Zp`EM1~"> <field name="TEXT">Lichter getriggert</field> </shadow> </value> <next> <block type="variables_set" id="GVAg8+xcAz[|GsBc1,da"> <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field> <value name="VALUE"> <block type="convert_jsonata" id="N?`{C9J4GFRAb`H7?Cwa"> <value name="EXPRESSION"> <shadow type="text" id="B6d=(wWf2W4nVTTc~Ck4"> <field name="TEXT">$match($,/.*\.(.*)\.(.*)/).groups[0]</field> </shadow> </value> <value name="TARGET"> <block type="on_source" id="f5bg({v-?(kFenn6!sOp"> <field name="ATTR">id</field> </block> </value> </block> </value> <next> <block type="controls_if" id="pp95*^^[[jJ^?TuXzl[Y"> <value name="IF0"> <block type="logic_compare" id="[3O8l^kLNbNPR.(QA3PK"> <field name="OP">EQ</field> <value name="A"> <block type="convert_jsonata" id="8DEA9GAj00wS`ak3:LzH"> <value name="EXPRESSION"> <shadow type="text" id="}n4Gp;Apcafj+v!O#qC1"> <field name="TEXT">$match($,/.*\.(.*)\.(.*)/).groups[1]</field> </shadow> </value> <value name="TARGET"> <block type="on_source" id="_)oOMZwT)AFE/M3KSD#a"> <field name="ATTR">id</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="RQ9L!U5iM20*h%Ms_tuL"> <field name="TEXT">On</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="FOrMgkW57jj@G6{=YVmo"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> <value name="VALUE"> <block type="lists_create_with" id="}3Pu2NVfy`*~L*A.Uk(s"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_json2object" id="%Y[TZ2`PQ_$?|57$wY_["> <value name="VALUE"> <block type="get_value" id="^St9z9H8%ItA9C_vXAO{"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test.JSON-Lichter</field> </block> </value> </block> </value> <value name="ADD1"> <block type="convert_jsonata" id="`pxk8qoF*:@/_PH_8^.Z"> <value name="EXPRESSION"> <shadow type="text" id="BG^WMHe-q@wGRNa4O#{5"> <field name="TEXT">{$[0]:$[1]}</field> </shadow> </value> <value name="TARGET"> <block type="lists_create_with" id="l?wk:~pb$uIfcN6@.%M6"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="v(JDqPD7Pfzl3ar}[U?I"> <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field> </block> </value> <value name="ADD1"> <block type="on_source" id=";d-Ch$rON[Q^dstG2J,J"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="ocxE8(:ynLCu;uv0I/(7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="_;*!{#=32F*17-Iy@dhi"> <field name="TEXT">test</field> </shadow> <block type="convert_object2json" id="{n]Gq05EuK4;laxtsYlF"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="rA|;dyBdh+.#(a47xrM~"> <value name="EXPRESSION"> <shadow type="text" id="]^zcbOX^zi9oT]J4XL5="> <field name="TEXT">$type($[0]) = "object" ? $merge($) : $[1]</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="4$.?5]j#%WQSn;Tz4%+%"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="p^{l*YUMc,}okFib%^V9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Test.JSON-Lichter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="fIBSCL[;SP5Vx,B;dmOY"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="y1yJD0IPpTHA[;_AVYDi"> <value name="EXPRESSION"> <shadow type="text" id="FPDz#qB5jn$E*aUcyXku"> <field name="TEXT">$type($[0]) = "object" ? $merge($) : $[1]</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="N)[-x}gD*RfBEk2.hY:z"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="lIpLyP^NqU!AEK@Zmf3O"> <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="8FR,J3q0sg3NZSiJGQ;%"> <field name="oid">0_userdata.0.Test.JSON-Lichter</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id=";;jER2B+iYQJi*8$1EU7"> <field name="VAR" id=".=3t38Q=oAvQA=GJrCIT">LichterAus</field> <value name="VALUE"> <block type="convert_jsonata" id="R2K@HY,wF{SE{+6q~Ly("> <value name="EXPRESSION"> <shadow type="text" id="MptWY~HPUv*#uY0JVmn%"> <field name="TEXT">$not($reduce($.*,function($i, $j){$i or $j}))</field> </shadow> </value> <value name="TARGET"> <block type="convert_json2object" id="y`O;-_$VJibyz*b3p)%l"> <value name="VALUE"> <block type="on_source" id="mX#k_*7P(/6$8T]QzQRi"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="40P}^7e-qYf5[R?KVPED"> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="Kd`cwF*iVL/zvIB.N)~Z"> <field name="VAR" id=".=3t38Q=oAvQA=GJrCIT">LichterAus</field> </block> </value> <statement name="DO0"> <block type="debug" id="n9DnT.[S*bI12V+C?Bfa"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="6jUCi;2nzqc#z9a2ZM*2"> <field name="TEXT">Alle Lichter aus</field> </shadow> </value> </block> </statement> <statement name="ELSE"> <block type="debug" id="sv:o[##||Qa${QL@84eX"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="t[klq_fe3}rg#`-x%_tK"> <field name="TEXT">Mindestens ein Fenster ist offen</field> </shadow> <block type="text_join" id="1.VR-sz?IMc4/%CPn2iT"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="BD-zZA^}qq{|Lf*mSFuW"> <field name="TEXT">Folgende Lichter sind an: </field> </block> </value> <value name="ADD1"> <block type="convert_jsonata" id="ON4]E+%)z@RZzf6Tft]$"> <value name="EXPRESSION"> <shadow type="text" id="1q9+4?m/0O5o(~sU?a}U"> <field name="TEXT">$each($, function($v, $k) {$v ? $k})~>$join(", ")</field> </shadow> </value> <value name="TARGET"> <block type="convert_json2object" id="+q~:K,vqzXj1{[-95bAi"> <value name="VALUE"> <block type="on_source" id="R7c1@EgSen?{)xy5ACvp"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </xml>
Die Datenpunkte lassen sich ohne weiteres lesen und beschreiben und triggern auch:
Vielleicht ist es doch besser die Array Funktionen zu benutzen, wie @paul53 und @Codierknecht hier vorgeschlagen hat, da Blockly eben mit Objekten nicht gut umgehen kann.
@mickym sagte in HILFE: Alle Fenster geschlossen ? Datenpunkte auf true:
Vielleicht ist es doch besser die Array Funktionen zu benutzen
oder das:
https://forum.iobroker.net/topic/31674/vorlage-generisches-fensteroffenskript-vis?_=1695137930357
Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
Immer Daten sichern! -
@dellishelly
Ich habe das wie folgt gelöst:Zuerst habe ich eine Aufzählung erzeugt, die alle relevanten Datenpunkte enthält.

Damit kann man einen Trigger einrichten, der bei jeder Änderung an einem der Sensoren feuert und die offenen Fenster zählt. Die Zahl der offenen Fenster wird dann in einem eigenen DP gespeichert.
Ich habe das hier mal für Deine Zwecke etwas abgewandelt.

Nur der Vollständigkeit halber: Ich mache das (Zählen der offenen Fenster) mittlerweile direkt in JS. Das ist noch übersichtlicher.
on({id: Array.prototype.slice.apply($("(functions=window)")), change: "ne"}, async function (obj) { var count = 0; var states = Array.prototype.slice.apply($("(functions=window)")); for (var index in states) { if (getState(states[index]).val) count++; } setState("0_userdata.0.Vis.fenster", count, true); });@codierknecht sagte: direkt in JS. Das ist noch übersichtlicher.
Meine Version wäre:
const ids = Array.prototype.slice.apply($("(functions=window)")); on(ids, function () { let count = 0; for (let id of ids) { if (getState(id).val) count++; } setState("0_userdata.0.Vis.fenster", count, true); });Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs -
So ich habe nochmal alles auf das Prüfen ob alle Lichter aus sind umgeschrieben:

Warum das bei Dir nicht will - ist mir ehrlich gesagt schleierhaft.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="+%%%So3UD{{[Gk^OhpLZ">topic</variable> <variable id=".=3t38Q=oAvQA=GJrCIT">LichterAus</variable> <variable id="1BU(([$^W;WIow$X5_ol">licht</variable> </variables> <block type="on_ext" id="HZfKRocr8=CFq}R$552t" x="63" y="-608"> <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="d1@K!NJ=}R5S^u`KaX3C"> <field name="oid">mqtt.1.logic.states.fensterOffen.buero.balkon</field> </shadow> <block type="selector" id="|jdl_QBFs~eJ0k/*U={w"> <field name="TEXT">(functions=light)</field> </block> </value> <statement name="STATEMENT"> <block type="debug" id=":^Pgr3}|:]7+:?{a4x(d"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=")36vYh5%pY-%.Zp`EM1~"> <field name="TEXT">Lichter getriggert</field> </shadow> </value> <next> <block type="variables_set" id="GVAg8+xcAz[|GsBc1,da"> <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field> <value name="VALUE"> <block type="convert_jsonata" id="N?`{C9J4GFRAb`H7?Cwa"> <value name="EXPRESSION"> <shadow type="text" id="B6d=(wWf2W4nVTTc~Ck4"> <field name="TEXT">$match($,/.*\.(.*)\.(.*)/).groups[0]</field> </shadow> </value> <value name="TARGET"> <block type="on_source" id="f5bg({v-?(kFenn6!sOp"> <field name="ATTR">id</field> </block> </value> </block> </value> <next> <block type="controls_if" id="pp95*^^[[jJ^?TuXzl[Y"> <value name="IF0"> <block type="logic_compare" id="[3O8l^kLNbNPR.(QA3PK"> <field name="OP">EQ</field> <value name="A"> <block type="convert_jsonata" id="8DEA9GAj00wS`ak3:LzH"> <value name="EXPRESSION"> <shadow type="text" id="}n4Gp;Apcafj+v!O#qC1"> <field name="TEXT">$match($,/.*\.(.*)\.(.*)/).groups[1]</field> </shadow> </value> <value name="TARGET"> <block type="on_source" id="_)oOMZwT)AFE/M3KSD#a"> <field name="ATTR">id</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="RQ9L!U5iM20*h%Ms_tuL"> <field name="TEXT">On</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="FOrMgkW57jj@G6{=YVmo"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> <value name="VALUE"> <block type="lists_create_with" id="}3Pu2NVfy`*~L*A.Uk(s"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_json2object" id="%Y[TZ2`PQ_$?|57$wY_["> <value name="VALUE"> <block type="get_value" id="^St9z9H8%ItA9C_vXAO{"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test.JSON-Lichter</field> </block> </value> </block> </value> <value name="ADD1"> <block type="convert_jsonata" id="`pxk8qoF*:@/_PH_8^.Z"> <value name="EXPRESSION"> <shadow type="text" id="BG^WMHe-q@wGRNa4O#{5"> <field name="TEXT">{$[0]:$[1]}</field> </shadow> </value> <value name="TARGET"> <block type="lists_create_with" id="l?wk:~pb$uIfcN6@.%M6"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="v(JDqPD7Pfzl3ar}[U?I"> <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field> </block> </value> <value name="ADD1"> <block type="on_source" id=";d-Ch$rON[Q^dstG2J,J"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="ocxE8(:ynLCu;uv0I/(7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="_;*!{#=32F*17-Iy@dhi"> <field name="TEXT">test</field> </shadow> <block type="convert_object2json" id="{n]Gq05EuK4;laxtsYlF"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="rA|;dyBdh+.#(a47xrM~"> <value name="EXPRESSION"> <shadow type="text" id="]^zcbOX^zi9oT]J4XL5="> <field name="TEXT">$type($[0]) = "object" ? $merge($) : $[1]</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="4$.?5]j#%WQSn;Tz4%+%"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="p^{l*YUMc,}okFib%^V9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Test.JSON-Lichter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="fIBSCL[;SP5Vx,B;dmOY"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="y1yJD0IPpTHA[;_AVYDi"> <value name="EXPRESSION"> <shadow type="text" id="FPDz#qB5jn$E*aUcyXku"> <field name="TEXT">$type($[0]) = "object" ? $merge($) : $[1]</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="N)[-x}gD*RfBEk2.hY:z"> <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="lIpLyP^NqU!AEK@Zmf3O"> <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="8FR,J3q0sg3NZSiJGQ;%"> <field name="oid">0_userdata.0.Test.JSON-Lichter</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id=";;jER2B+iYQJi*8$1EU7"> <field name="VAR" id=".=3t38Q=oAvQA=GJrCIT">LichterAus</field> <value name="VALUE"> <block type="convert_jsonata" id="R2K@HY,wF{SE{+6q~Ly("> <value name="EXPRESSION"> <shadow type="text" id="MptWY~HPUv*#uY0JVmn%"> <field name="TEXT">$not($reduce($.*,function($i, $j){$i or $j}))</field> </shadow> </value> <value name="TARGET"> <block type="convert_json2object" id="y`O;-_$VJibyz*b3p)%l"> <value name="VALUE"> <block type="on_source" id="mX#k_*7P(/6$8T]QzQRi"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="40P}^7e-qYf5[R?KVPED"> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="Kd`cwF*iVL/zvIB.N)~Z"> <field name="VAR" id=".=3t38Q=oAvQA=GJrCIT">LichterAus</field> </block> </value> <statement name="DO0"> <block type="debug" id="n9DnT.[S*bI12V+C?Bfa"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="6jUCi;2nzqc#z9a2ZM*2"> <field name="TEXT">Alle Lichter aus</field> </shadow> </value> </block> </statement> <statement name="ELSE"> <block type="debug" id="sv:o[##||Qa${QL@84eX"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="t[klq_fe3}rg#`-x%_tK"> <field name="TEXT">Mindestens ein Fenster ist offen</field> </shadow> <block type="text_join" id="1.VR-sz?IMc4/%CPn2iT"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="BD-zZA^}qq{|Lf*mSFuW"> <field name="TEXT">Folgende Lichter sind an: </field> </block> </value> <value name="ADD1"> <block type="convert_jsonata" id="ON4]E+%)z@RZzf6Tft]$"> <value name="EXPRESSION"> <shadow type="text" id="1q9+4?m/0O5o(~sU?a}U"> <field name="TEXT">$each($, function($v, $k) {$v ? $k})~>$join(", ")</field> </shadow> </value> <value name="TARGET"> <block type="convert_json2object" id="+q~:K,vqzXj1{[-95bAi"> <value name="VALUE"> <block type="on_source" id="R7c1@EgSen?{)xy5ACvp"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </xml>
Die Datenpunkte lassen sich ohne weiteres lesen und beschreiben und triggern auch:
Vielleicht ist es doch besser die Array Funktionen zu benutzen, wie @paul53 und @Codierknecht hier vorgeschlagen hat, da Blockly eben mit Objekten nicht gut umgehen kann.
Ich habe jetzt das blockly nochmal einmal komplett neu zusammengebastelt.
und es läuft.
Ich kann dir leider nicht sagen woran es nun gelegen hat.....
KEINE AHNUNG!
ABER:VIEEEELEN VIELEN DANKE für deine Ausdauer und Hilfe!
Hast ja quasi fast den ganzen Tag mit mir verbracht :-D
Hab heute echt viel dazugelernt!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden