NEWS
Überwachung Katzenklappe mit Bewegungsmelder (gelöst)
-
@Ar1lon Auf den ersten Blick verstehe ich nur Bahnhof.... Muss ich mir heute Abend mal genauer anschauen.
@DocGame Wenn was unklar ist melde dich. Ich komme gerade nicht dazu es ein Blockly zu bauen und dann hier rein zu posten.
-
Ich habe zwischen meinem Hobbykeller und der Garage eine Brandschutztür für die ich vor einigen Tagen ein Blockly geschrieben habe.
Ausgangslage war folgende: Ich habe auf beiden Seiten der Tür einen Aqara-BW und an der Tür einen Aqara Türsensor.
Wenn ich vom Keller in die Garage gehe schaltet bei entsprechender Lux-Zahl die Garagenbeleuchtung ein. Im Umgekehrten Fall die Beleuchtung des Hobbykellers. Getickert wird über den Türsensor und die Richtung aus der man kommt wird über den Zeitstempel der BW's geregelt.
Das ganze funtioniert super. Hier das Blockly:
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id=";{K1HH4[hk,%GH|,.fmN" x="-887" y="-562"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="^E%*73m)eC7$r_%BuEy}"> <field name="oid">linkeddevices.0.Keller.Hobbykeller.Garagentür.opened</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="WEerBsPDf}FV9:AIxt$d"> <value name="IF0"> <block type="logic_operation" id="W%b%Ynx5[Th]~{AJX_%g" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="m_xT}JoYhgw05AiTjw`@"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="jd8NXR_0Wj]5bEVKviU#"> <field name="ATTR">val</field> <field name="OID">linkeddevices.0.Keller.Hobbykeller.Bewegung.illuminance</field> </block> </value> <value name="B"> <block type="math_number" id="@lxmI+fDES?punO5t^(b"> <field name="NUM">25</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="AM~|sI*/xq~jPBJv~RTV"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="7tTtQO9Wkhnh`6k:T5G{"> <field name="ATTR">ts</field> <field name="OID">linkeddevices.0.Keller.Hobbykeller.Bewegung.occupancy</field> </block> </value> <value name="B"> <block type="get_value" id="6AtWDKb7hXz8aGaO/weC"> <field name="ATTR">ts</field> <field name="OID">linkeddevices.0.Garage.Bewegung.occupancy</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="bYAI,h59^Mn_i^uJGlIA"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">linkeddevices.0.Keller.Hobbykeller.Licht.Kellerdecke.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="aU!4G+[3}#}e[!4{0:II"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="]ZH}YHCD3vqQ8KV]C45V"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">linkeddevices.0.Keller.Hobbykeller.Licht.Kellerdecke.state</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="logic_boolean" id="MeCB;qtl]!ySJmdLll)`"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="!_Ga7:ifyPERCJcOHq;="> <value name="IF0"> <block type="logic_operation" id="S6t*Uf2*dv9niMZwHRE!" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="q-G~HOV.LGoZNF!/|E`x"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="mJ`b9aYl{m:T0bI]UT]f"> <field name="ATTR">val</field> <field name="OID">linkeddevices.0.Garage.Bewegung.illuminance</field> </block> </value> <value name="B"> <block type="math_number" id="4WV!GdHlD?wy:LlzunA@"> <field name="NUM">25</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="U,e;HU;xV]@/Ec?VkWX]"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="vw]X}6(XXq{):@kWD{JM"> <field name="ATTR">ts</field> <field name="OID">linkeddevices.0.Garage.Bewegung.occupancy</field> </block> </value> <value name="B"> <block type="get_value" id="pgdoxDP])yAcUX;W{vI2"> <field name="ATTR">ts</field> <field name="OID">linkeddevices.0.Keller.Hobbykeller.Bewegung.occupancy</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="o1v.k[U;S!)k[nEgz;.."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">linkeddevices.0.Garage.Licht.Garagendecke.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=";}Mj^gYskVxkMK8=Fes{"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id=".?qUbrPheDA?IYH=`T]R"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">linkeddevices.0.Garage.Licht.Garagenfensterlicht.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="dA,_p?)T5M1wd(PdLc?6"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="sG2UN]g@44*_p7R?+[h,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">linkeddevices.0.Garage.Licht.Garagendecke.POWER</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="logic_boolean" id="~`VZy]I;aX+|M6,@ky+n"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="U|LcL7n@1N25f.npt$`k"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">linkeddevices.0.Garage.Licht.Garagenfensterlicht.state</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="logic_boolean" id="%yYlT?Rk2O-MD`n9e).;"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>Jetzt will ich noch ein 2. Blockly für diese Hardwarekonstellation machen, da sich in dieser Tür auch unsere Katzenklappe befindet. Ich habe schon getestet und die Bewegung der Karze wird super erkannt. Nun will ich für meine VIS einen Status (Katze im Haus oder Katze drausen) erzeugen. Den entsprechenden Datenpunkt zu befüllen ist ja kein Problem. Mir bereitet das umrechnen der Timestamps Probleme. Das ganze sollte etwa so aussehen:
Wenn Tiggerzeit des 2. BW's bis zu 15 Sek. nach tiggern des ersten kommt und der Türsensor wärend dieser Zeit auf false war habe ich die eine Richtung. Umgekehrt natürlich das gleiche. Irgendwie klappt es aber nicht so wie ich will. Hat jemand eine Idee? -
@DocGame Hallo, auch wenn es nicht zum Thema gehört. Mit der Katzenklappe hast Du keine Brandschutztür mehr.
Hast Du Dir das gut überlegt ? -
@DocGame sagte:
Wenn Tiggerzeit des 2. BW's bis zu 15 Sek. nach tiggern des ersten kommt und der Türsensor wärend dieser Zeit auf false war habe ich die eine Richtung.
Vorschlag:

-
@paul53 Hab mal alles nachgebaut. beim letzten Teil blicke ich nicht mehr richtig durch....
Kommt bei dem Gemarkerten Teil ein Virtueller Datenpunkt rein? Will ja in einen Datenpunkt entweder Katze drinnen oder Katze draussen schreiben

-
@DocGame sagte:
ein Virtueller Datenpunkt rein?
Ja.
Soll der Datenpunkt einen Text enthalten ? Dann so:
@paul53 Super... Dann muss ich nur noch 3 Taster zum testen herrichten. Testen ist sonst relativ schwierig, da ich im 3 Stock sitze und das Ganze sich im keller abspielt. Mite einem Switch und 2 Tastern werde ich das später mal hier oben simulieren. Vielen Dank für die Tipps schon einmal :+1:
-
@paul53 Super... Dann muss ich nur noch 3 Taster zum testen herrichten. Testen ist sonst relativ schwierig, da ich im 3 Stock sitze und das Ganze sich im keller abspielt. Mite einem Switch und 2 Tastern werde ich das später mal hier oben simulieren. Vielen Dank für die Tipps schon einmal :+1:
@DocGame sagte:
Dann muss ich nur noch 3 Taster zum testen herrichten.
Wozu 3 Taster ? Man kann die 3 Datenpunkte (opened / 2 * occupancy) manuell im Tab "Objekte" ändern. Unter / über 15 s Zeitabstand zwischen den beiden DP "occupancy" sollte man hinbekommen (sie triggern nur bei Änderung false --> true).
-
@DocGame sagte:
Dann muss ich nur noch 3 Taster zum testen herrichten.
Wozu 3 Taster ? Man kann die 3 Datenpunkte (opened / 2 * occupancy) manuell im Tab "Objekte" ändern. Unter / über 15 s Zeitabstand zwischen den beiden DP "occupancy" sollte man hinbekommen (sie triggern nur bei Änderung false --> true).
@paul53 Klar...das geht auch aber ist doch aber in einer Minute zugewiesen(Hab den Schreibtisch mit Eingebundenen Tastern vollliegen). Den TS-State auf die Schreibtischlampe und dann wurde getestet. Habe keine Modelleisenbahn und spiele die Szenen lieber so durch(Spieltrieb).
Funktioniert perfekt. Vielen Dank nochmals -
@paul53 Klar...das geht auch aber ist doch aber in einer Minute zugewiesen(Hab den Schreibtisch mit Eingebundenen Tastern vollliegen). Den TS-State auf die Schreibtischlampe und dann wurde getestet. Habe keine Modelleisenbahn und spiele die Szenen lieber so durch(Spieltrieb).
Funktioniert perfekt. Vielen Dank nochmals -
@DocGame sagte:
Funktioniert perfekt.
Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].
@paul53 jop so geht es natürlich auch. Spart zwei Rechenoperationen.