NEWS
[gelöst] Aufzählung Fensterstatus - Anzeige in VIS
-
Hallo
Ich komme grade irgendwie nicht weiter. Ich möchte in meiner VIS auf der Übersichtsseite ein Widget platzieren, was mir Anzeigt, ob noch irgendwo ein Fenster offen ist.

Dazu habe ich zunächst einen Datenpunkt "Fenster_Status" erstellt

und eine Aufzählung aller Sensoren gemacht

anschließend habe ich folgendes Script erstellt

<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="NrfSUMnJ7Y4uvl4h-%s|" x="785" y="-2036"> <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="DP_?-0]Sbn7{yphGOa)j"> <field name="oid">shelly.0.SHDW-2#483FDA81FA81#1.sensor.door</field> </shadow> <block type="selector" id="Vv^EwA#ukKW2/M{tNK,{"> <field name="TEXT">state[id=*](functions=window)</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="^J0!h]4}KtP6#U0dE]=D"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="on_source" id="{d.A@A#XV|);%qf/P!,!"> <field name="ATTR">id</field> </block> </value> <statement name="DO0"> <block type="control" id="|-#}3J]!a4GWW]E@`NLx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Routinen.Fenster_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="aB]46:jyob,J+f%=VbwP"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="on_source" id="ja8jyMEdZWebdGA(Uy$@"> <field name="ATTR">id</field> </block> </value> <statement name="DO1"> <block type="control" id=";LP0=_%RalZ9UGX/gz5$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Routinen.Fenster_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="L3t@nllc4}U0ZQ#.~G3d"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>Leider passiert aber nichts. Wo hab ich einen Fehler?
-
@iced112 im Blockly hast du id "window" aber deine Aufzählung heißt Fenster, ich glaube nicht, dass das passt
-
Hallo
Ich komme grade irgendwie nicht weiter. Ich möchte in meiner VIS auf der Übersichtsseite ein Widget platzieren, was mir Anzeigt, ob noch irgendwo ein Fenster offen ist.

Dazu habe ich zunächst einen Datenpunkt "Fenster_Status" erstellt

und eine Aufzählung aller Sensoren gemacht

anschließend habe ich folgendes Script erstellt

<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="NrfSUMnJ7Y4uvl4h-%s|" x="785" y="-2036"> <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="DP_?-0]Sbn7{yphGOa)j"> <field name="oid">shelly.0.SHDW-2#483FDA81FA81#1.sensor.door</field> </shadow> <block type="selector" id="Vv^EwA#ukKW2/M{tNK,{"> <field name="TEXT">state[id=*](functions=window)</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="^J0!h]4}KtP6#U0dE]=D"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="on_source" id="{d.A@A#XV|);%qf/P!,!"> <field name="ATTR">id</field> </block> </value> <statement name="DO0"> <block type="control" id="|-#}3J]!a4GWW]E@`NLx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Routinen.Fenster_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="aB]46:jyob,J+f%=VbwP"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="on_source" id="ja8jyMEdZWebdGA(Uy$@"> <field name="ATTR">id</field> </block> </value> <statement name="DO1"> <block type="control" id=";LP0=_%RalZ9UGX/gz5$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Routinen.Fenster_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="L3t@nllc4}U0ZQ#.~G3d"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>Leider passiert aber nichts. Wo hab ich einen Fehler?
@iced112 sagte: Dazu habe ich zunächst einen Datenpunkt "Fenster_Status" erstellt
Der muss vom Typ "Logikwert" sein.

@iced112 sagte in Aufzählung Fensterstatus - Anzeige in VIS:
folgendes Script erstellt
Man benötigt eine ODER-Verknüpfung aller Datenpunktwerte, um festzustellen, ob mindestens ein Fenster offen ist. Das kann man mit einer Schleife erledigen.

-
@iced112 sagte: Dazu habe ich zunächst einen Datenpunkt "Fenster_Status" erstellt
Der muss vom Typ "Logikwert" sein.

@iced112 sagte in Aufzählung Fensterstatus - Anzeige in VIS:
folgendes Script erstellt
Man benötigt eine ODER-Verknüpfung aller Datenpunktwerte, um festzustellen, ob mindestens ein Fenster offen ist. Das kann man mit einer Schleife erledigen.

@paul53
Ich habe bisher noch nie mit Variablen gearbeitet. Ich gehe mal davon aus, dass das Erstellen der Variablen "id", "ids" und "offen" alleine nicht aussreicht?Hab nämlich mal versucht dein Blockly nach zu bauen aber so funktioniert es noch nicht
-
@paul53
Ich habe bisher noch nie mit Variablen gearbeitet. Ich gehe mal davon aus, dass das Erstellen der Variablen "id", "ids" und "offen" alleine nicht aussreicht?Hab nämlich mal versucht dein Blockly nach zu bauen aber so funktioniert es noch nicht
@iced112
Nimm doch einfach meinen Export von oben, der sollte funktionieren. Da musst du dann ggf. nur noch ein: Wenn Anzahl Fenster = 0 Dann Fenster Status = geschlossen einfügen am Ende. Fertig -
@paul53
Ich habe bisher noch nie mit Variablen gearbeitet. Ich gehe mal davon aus, dass das Erstellen der Variablen "id", "ids" und "offen" alleine nicht aussreicht?Hab nämlich mal versucht dein Blockly nach zu bauen aber so funktioniert es noch nicht
-
@iced112
Nimm doch einfach meinen Export von oben, der sollte funktionieren. Da musst du dann ggf. nur noch ein: Wenn Anzahl Fenster = 0 Dann Fenster Status = geschlossen einfügen am Ende. Fertig@badsnoopy667 sagte in Aufzählung Fensterstatus - Anzeige in VIS:
@iced112
Nimm doch einfach meinen Export von obenDen hab ich eben auch mal zum Testen genommen, läuft ohne Probleme :-) :+1: Und Anzahl offene Fenster finde ich auch besser, man kann das nutzen aber eben auch bei ungleich Null mit "Logikwerten" arbeiten.
-
@iced112
Nimm doch einfach meinen Export von oben, der sollte funktionieren. Da musst du dann ggf. nur noch ein: Wenn Anzahl Fenster = 0 Dann Fenster Status = geschlossen einfügen am Ende. Fertig@badsnoopy667 said in Aufzählung Fensterstatus - Anzeige in VIS:
@iced112
Da musst du dann ggf. nur noch ein: Wenn Anzahl Fenster = 0 Dann Fenster Status = geschlossen einfügen am Ende. FertigOk, dein Export alleine funktioniert noch nicht. Helf mir mal bitte auf die Sprünge was du mit dem letzten Satz meintest? Das raff ich grade nicht:astonished:
-
@badsnoopy667 said in Aufzählung Fensterstatus - Anzeige in VIS:
@iced112
Da musst du dann ggf. nur noch ein: Wenn Anzahl Fenster = 0 Dann Fenster Status = geschlossen einfügen am Ende. FertigOk, dein Export alleine funktioniert noch nicht. Helf mir mal bitte auf die Sprünge was du mit dem letzten Satz meintest? Das raff ich grade nicht:astonished:
-
@iced112 sagte: was du mit dem letzten Satz meintest?
Wandlung der Anzahl offener Fenster in Logikwert "mind. ein Fenster offen".

@paul53 Danke, so schnell war ich nicht ;)
-
@badsnoopy667 said in Aufzählung Fensterstatus - Anzeige in VIS:
@iced112
Da musst du dann ggf. nur noch ein: Wenn Anzahl Fenster = 0 Dann Fenster Status = geschlossen einfügen am Ende. FertigOk, dein Export alleine funktioniert noch nicht. Helf mir mal bitte auf die Sprünge was du mit dem letzten Satz meintest? Das raff ich grade nicht:astonished:
@iced112 sagte in Aufzählung Fensterstatus - Anzeige in VIS:
ein Export alleine funktioniert noch nicht
Also bei mir läuft das einwandfrei mit dem Blockly von @badsnoopy667
Kann es sein, dass du in deiner Aufzählung die Objekte (also z.B. einen Sensor mit Bezeichnung Wohnzimmer1) gezogen hast? Ich hab bei mir in der Aufzählung nur den Datenpunkt des jeweiligen Sensors aufgenommen, z.B. "state" (bei Homematic) bzw "is_open" (bei zigbee).
Bei dem Blockly muss die Variable vom Typ Zahl sein. Oder du passt das wie von @paul53 beschrieben ein, dann muss es eine Logik-Variable sein -
@iced112 sagte in Aufzählung Fensterstatus - Anzeige in VIS:
ein Export alleine funktioniert noch nicht
Also bei mir läuft das einwandfrei mit dem Blockly von @badsnoopy667
Kann es sein, dass du in deiner Aufzählung die Objekte (also z.B. einen Sensor mit Bezeichnung Wohnzimmer1) gezogen hast? Ich hab bei mir in der Aufzählung nur den Datenpunkt des jeweiligen Sensors aufgenommen, z.B. "state" (bei Homematic) bzw "is_open" (bei zigbee).
Bei dem Blockly muss die Variable vom Typ Zahl sein. Oder du passt das wie von @paul53 beschrieben ein, dann muss es eine Logik-Variable sein -
@amg_666
Meine Aufzählung schaut so aus

Hab ich da ggf ein Fehler? Also der Name in der Aufzählung kommt vom State door
-
@iced112 sagte: Hab ich da ggf ein Fehler? Also der Name in der Aufzählung kommt vom State door
Nein, das ist so in Ordnung. Es sind 12 Datenpunkte "door" zu functions=window zugeordnet.
-
@paul53 ok, Datenpunkt "door" sagte mir nix. Bei mir sieht das so aus und läuft wie gesagt:

und in der Aufzählung dann nur DP "State"

-
@amg_666
Das sind Sensoren von Shelly. Der Datenpunkt door gibt true oder flase aus wenn offen oder geschlossen.Ja, was mach ich denn falsch?
-
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="sa{l1~ORe0j$HLuZ5N%!">ids</variable> <variable id="kT%nX!]Jo^`}k%/`k?Gq">offen</variable> <variable id=":nd$CvGxF5#~Ll%,n#b2">id</variable> <variable id="xu-:vrDF`H;M_fGe2]b4">x</variable> </variables> <block type="variables_set" id="i(tPYLv;RbKHg~i@a0{/" x="-412" y="-237"> <field name="VAR" id="sa{l1~ORe0j$HLuZ5N%!">ids</field> <value name="VALUE"> <block type="selector" id="}ukVNv/ei7Qs4LavaT+0"> <field name="TEXT">*(functions=window)</field> </block> </value> <next> <block type="on_ext" id="Yr}xw(F4N,5fxKcZ:vaA"> <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="H6rjU$rO8@g6Lgk:jv9f"> <field name="oid">default</field> </shadow> <block type="variables_get" id="WDNWJnP.L:dRO2.H3gFM"> <field name="VAR" id="sa{l1~ORe0j$HLuZ5N%!">ids</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id="fiT;40M9XwH-IB;dai$*"> <field name="VAR" id="kT%nX!]Jo^`}k%/`k?Gq">offen</field> <value name="VALUE"> <block type="logic_boolean" id="D}!bGj=1]X5!.KmIss,#"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="controls_forEach" id="hZm%QED(q{qqF9Qt_4zV"> <field name="VAR" id=":nd$CvGxF5#~Ll%,n#b2">id</field> <value name="LIST"> <block type="variables_get" id="W?h4_#I[DjCw!DD`F47g"> <field name="VAR" id="sa{l1~ORe0j$HLuZ5N%!">ids</field> </block> </value> <statement name="DO"> <block type="controls_if" id="z})86Cf$,3q!)/4/%c_V"> <value name="IF0"> <block type="get_value_var" id="A4]d*E-i6@qDI3SUpZqx"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="iJar`blbRA6G?|%Gx#Po"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="*JdI$y).=mPIbq)_%f@?"> <field name="VAR" id=":nd$CvGxF5#~Ll%,n#b2">id</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Fq.`IT_ELmfwRP@:9=fo"> <field name="VAR" id="kT%nX!]Jo^`}k%/`k?Gq">offen</field> <value name="VALUE"> <block type="logic_boolean" id="XAR!D%*in|Fp8/pJ/8x?"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_flow_statements" id=":b34uz=#:?=ZHl=pLEUL"> <field name="FLOW">BREAK</field> </block> </next> </block> </statement> </block> </statement> <next> <block type="update" id="QKP7Y`XWPrhAR@*2qMM`"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Routinen.Fenster_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="pK*Xb]J~V:d47jSa)5$b"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="OIv|$ewMBS:u!+T72:D)"> <field name="VAR" id="xu-:vrDF`H;M_fGe2]b4">x</field> </block> </value> <value name="B"> <block type="math_number" id="Avy%3uPr5m{lU:pjUzqZ"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml> -
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="sa{l1~ORe0j$HLuZ5N%!">ids</variable> <variable id="kT%nX!]Jo^`}k%/`k?Gq">offen</variable> <variable id=":nd$CvGxF5#~Ll%,n#b2">id</variable> <variable id="xu-:vrDF`H;M_fGe2]b4">x</variable> </variables> <block type="variables_set" id="i(tPYLv;RbKHg~i@a0{/" x="-412" y="-237"> <field name="VAR" id="sa{l1~ORe0j$HLuZ5N%!">ids</field> <value name="VALUE"> <block type="selector" id="}ukVNv/ei7Qs4LavaT+0"> <field name="TEXT">*(functions=window)</field> </block> </value> <next> <block type="on_ext" id="Yr}xw(F4N,5fxKcZ:vaA"> <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="H6rjU$rO8@g6Lgk:jv9f"> <field name="oid">default</field> </shadow> <block type="variables_get" id="WDNWJnP.L:dRO2.H3gFM"> <field name="VAR" id="sa{l1~ORe0j$HLuZ5N%!">ids</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id="fiT;40M9XwH-IB;dai$*"> <field name="VAR" id="kT%nX!]Jo^`}k%/`k?Gq">offen</field> <value name="VALUE"> <block type="logic_boolean" id="D}!bGj=1]X5!.KmIss,#"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="controls_forEach" id="hZm%QED(q{qqF9Qt_4zV"> <field name="VAR" id=":nd$CvGxF5#~Ll%,n#b2">id</field> <value name="LIST"> <block type="variables_get" id="W?h4_#I[DjCw!DD`F47g"> <field name="VAR" id="sa{l1~ORe0j$HLuZ5N%!">ids</field> </block> </value> <statement name="DO"> <block type="controls_if" id="z})86Cf$,3q!)/4/%c_V"> <value name="IF0"> <block type="get_value_var" id="A4]d*E-i6@qDI3SUpZqx"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="iJar`blbRA6G?|%Gx#Po"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="*JdI$y).=mPIbq)_%f@?"> <field name="VAR" id=":nd$CvGxF5#~Ll%,n#b2">id</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Fq.`IT_ELmfwRP@:9=fo"> <field name="VAR" id="kT%nX!]Jo^`}k%/`k?Gq">offen</field> <value name="VALUE"> <block type="logic_boolean" id="XAR!D%*in|Fp8/pJ/8x?"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_flow_statements" id=":b34uz=#:?=ZHl=pLEUL"> <field name="FLOW">BREAK</field> </block> </next> </block> </statement> </block> </statement> <next> <block type="update" id="QKP7Y`XWPrhAR@*2qMM`"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Routinen.Fenster_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="pK*Xb]J~V:d47jSa)5$b"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="OIv|$ewMBS:u!+T72:D)"> <field name="VAR" id="xu-:vrDF`H;M_fGe2]b4">x</field> </block> </value> <value name="B"> <block type="math_number" id="Avy%3uPr5m{lU:pjUzqZ"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>@iced112 Du verwendest das Blockly von @badsnoopy667 und hast die "Logikzeile" von @paul53 drangehängt.
Das kann nix werden, weil du in den Schleifen die Variable x überhaupt nicht verwendest, die du dann abprüfst...
Mach mal unten aktualisiere "Fenster Status" mit "offen". Oder du sparst dir die letzte Zeile und ersetzt im Blockly "offen" mit "Fenster Status" -
@amg_666
Das sind Sensoren von Shelly. Der Datenpunkt door gibt true oder flase aus wenn offen oder geschlossen.Ja, was mach ich denn falsch?
-
@paul53 said in Aufzählung Fensterstatus - Anzeige in VIS:
@iced112 sagte: was mach ich denn falsch?

So hatte ich es ja auch bereits versucht.
16.3.2022, 13:30:27.422 [info ]: javascript.0 (32658) Stop script script.js.Routinen.Fenster_Status 16.3.2022, 13:30:27.445 [info ]: javascript.0 (32658) Start javascript script.js.Routinen.Fenster_Status 16.3.2022, 13:30:27.537 [info ]: javascript.0 (32658) script.js.Routinen.Fenster_Status: registered 0 subscriptions and 0 schedules 16.3.2022, 13:31:16.091 [info ]: javascript.0 (32658) Stop script script.js.Routinen.Fenster_Status 16.3.2022, 13:31:18.043 [info ]: javascript.0 (32658) Start javascript script.js.Routinen.Fenster_Status 16.3.2022, 13:31:18.098 [info ]: javascript.0 (32658) script.js.Routinen.Fenster_Status: registered 0 subscriptions and 0 schedules 16.3.2022, 13:32:40.103 [info ]: javascript.0 (32658) Stop script script.js.Routinen.Fenster_Status 16.3.2022, 13:32:40.127 [info ]: javascript.0 (32658) Start javascript script.js.Routinen.Fenster_Status 16.3.2022, 13:32:40.168 [info ]: javascript.0 (32658) script.js.Routinen.Fenster_Status: registered 0 subscriptions and 0 schedules 16.3.2022, 13:33:04.268 [info ]: javascript.0 (32658) Stop script script.js.Routinen.Fenster_Status 16.3.2022, 13:33:04.279 [info ]: javascript.0 (32658) Start javascript script.js.Routinen.Fenster_Status 16.3.2022, 13:33:04.302 [info ]: javascript.0 (32658) script.js.Routinen.Fenster_Status: registered 0 subscriptions and 0 schedules 16.3.2022, 13:34:13.461 [info ]: javascript.0 (32658) Stop script script.js.Routinen.Fenster_Status 16.3.2022, 13:34:13.483 [info ]: javascript.0 (32658) Start javascript script.js.Routinen.Fenster_Status 16.3.2022, 13:34:13.551 [info ]: javascript.0 (32658) script.js.Routinen.Fenster_Status: [] 16.3.2022, 13:34:13.551 [info ]: javascript.0 (32658) script.js.Routinen.Fenster_Status: registered 0 subscriptions and 0 schedules


