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?
-
Ändere Objekt ID in Wert und vereinfache falls-mache:

-
@fredf Wird nicht funktionieren, da wenn mehrere Fenster auf "true" sind und nur ein Fenster geschlossen wird, der Status auf "false" wechselt, obwohl noch andere Fenster offen sind.
Man muss hier Schleife durch den Selektor machen mit einer Falls Abfrage darin. -
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
Ich hab irgendwo im Internet dieses Blockly gefunden, das funktioniert bei mir einwandfrei:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="(hHr_ae4nAyqkCl/QX*w">x</variable> <variable id="9sl@{VQ/amrd~ZTB}e/O">i</variable> </variables> <block type="comment" id="bP#C[SIFZAwjrGNLRvfJ" x="-288" y="-812"> <field name="COMMENT">Offene Fenster zählen</field> <next> <block type="on_ext" id="RT3@Kxqxg#w3f=(kzwCu"> <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="0)0sp$I1ccfm%4Sde-mT"> <field name="oid">default</field> </shadow> <block type="selector" id=",lvP%A]1J?Mf^@0s2D%["> <field name="TEXT">state[id=*](functions=fenster)</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id=":2U;X]t,z4J/+D;%yb~b"> <field name="VAR" id="(hHr_ae4nAyqkCl/QX*w">x</field> <value name="VALUE"> <block type="math_number" id="B}eHQ9lDdZMCn@UJ*jG8"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_forEach" id="~PaFX`X@5n{TM9K^{Jw6"> <field name="VAR" id="9sl@{VQ/amrd~ZTB}e/O">i</field> <value name="LIST"> <block type="selector" id="xQ^Q5{h5V@5PLI+YO@i."> <field name="TEXT">state[id=*](functions=fenster)</field> </block> </value> <statement name="DO"> <block type="debug" id="Gp!N0hA7W!TGCT3a9N%V" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="CJho*HNjjn$3y:!Oja%t"> <field name="TEXT">test</field> </shadow> <block type="get_value_var" id="ImnfsS.z0#2sv|o:l_W~"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="variables_get" id=",_1rcOfB$)xpC!9|Lgmy"> <field name="VAR" id="9sl@{VQ/amrd~ZTB}e/O">i</field> </block> </value> </block> </value> <next> <block type="controls_if" id="-3J;6~}7Ac!D}IR`/Dr1"> <value name="IF0"> <block type="get_value_var" id=")kSAuROX6lA-U2N,FJ1Q"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="!fALmmY3PSF+?rGHUXQ,"> <field name="VAR" id="9sl@{VQ/amrd~ZTB}e/O">i</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="8cRG{Bp7_Q*vW0eisWuM"> <field name="VAR" id="(hHr_ae4nAyqkCl/QX*w">x</field> <value name="DELTA"> <shadow type="math_number" id="qgm5bBhk_!IL{kHE51bJ"> <field name="NUM">1</field> </shadow> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="control" id=".:1)R,@*mq_#zuTK(H4E"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.offene_fenster_count</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="xkO0oZvoGwB3u_2u#+n]"> <field name="VAR" id="(hHr_ae4nAyqkCl/QX*w">x</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>Das Blockly gibt die Anzahl offener Fenster aus. Damit kann man dann ja leicht ein "Alle Fenster zu wenn Anzahl offen = 0 ist" basteln.
-
@fredf Wird nicht funktionieren, da wenn mehrere Fenster auf "true" sind und nur ein Fenster geschlossen wird, der Status auf "false" wechselt, obwohl noch andere Fenster offen sind.
Man muss hier Schleife durch den Selektor machen mit einer Falls Abfrage darin. -
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
@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"

