NEWS
Kleine Alarmanlage - mit Blockly?
-
Na also wenn wer lust hat, kann auch jemand anderes etwas dazu beitragen Ist ja nen Forum
So ein Counter des Bildes hat schon was :geek:
Oder ist Rantaplan der einzige der sich damit auskennt :lol: Ich bin gerade sehr wissbegierig
Lg Desa
-
Hallo Desa
Hat etwas länger gedauert. Aber ich habe auch noch ein Leben neben ioBroker, Blockly usw.
Ich habe da mal etwas vorbereitet, auf das Du hoffendlich aufbauen kannst.
Das Zusammenspiel von Geräten, Variablen, VIS und Scripte (Blockly) sollte klarer werden.
Wenn nicht…Fragen...Ich gebe so schnell nicht auf
(Die Anwort kann aber auch mal etwas dauern)
Für das Beispiel werden 2 Variabel und 2 Scripte benötigt.
Du möchtest ja, dass bevor der Alarm scharf geschaltet wird, einige Dinge überprüft werden.
Und die Scharfschaltung innerhalb eines Zeitraumes abbrechen können.
Also brauchen wir so etwas wie einen "Zündschlüssel" und "Zündvorgang".
Der "Zündschlüssel" in dem Beispiel ist eine boolsche Variable/Objekt (bolAlarmSchalten).
Diese muss von irgendwo her auf Wahr/Unwahr gesetzt werden können.
Sei es über VIS, Handsender, Wandtaster, Pin-Eingabe usw. usw.
Über "bolAlarmSchalten" wird also der Alarmzustand aktiviert/deaktiviert.
Der eigentliche Alarmzustand wird über die boolsche Variable/Objekt "bolAlarm" dargestellt.
Diese wird im zweiten Script benötigt.
Dort werden die "Überwachungsgeräte" (Tür-/Fensterkontakt, Bewegungsmelder usw.) getriggert.
Jedesmal! wenn ein dort eingetragener Fensterkontakt geöffnet wird, wird das dort erkannt.
Wenn bolAlarm = unwahr passiert nichts.
Wenn bolAlarm = wahr werden die gewünschten Aktionen ausgelöst.
Da ich den SayIt Adapter nicht benutze, habe ich immer Debug-Ausgaben eingesetzt.
Hier der "Zündvorgang"
Hier die Überwachung
Import "Zündvorgang"
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="create" id="e4%t|N[a3r/]:A=A^UL|" x="338" y="238"><field name="NAME">bolAlarmSchalten</field>
! <statement name="STATEMENT"><block type="create" id="DtT3ToP!6MR%m}1LU]c"><field name="NAME">bolAlarm</field>
! <statement name="STATEMENT"><block type="comment" id=",J?RjdH-3rC%l@RpIAd1"><field name="COMMENT">ID Variablen/Objekte in ioBroker anlegen</field>
! <next><block type="comment" id="7aGDatGB)l+M
M|fl^"><field name="COMMENT">Wird nur 1x benötigt</field></block></next></block></statement></block></statement></block> ! <block type="comment" id="h}-GLiN5x(k:FUrva
si" x="87" y="262"><field name="COMMENT">Wird über VIS geschaltet</field>
! <next><block type="on" id="Wp6(X0J#KrM6}n@F{o,"><field name="OID">javascript.1.bolAlarmAktivieren</field>
! <field name="CONDITION">ne</field>
! <statement name="STATEMENT"><block type="controls_if" id="9GB2XArfowg))6Gx.Bh?"><mutation else="1"></mutation>
! <value name="IF0"><block type="logic_compare" id="@i^nfn5l-WHQFeWtMXk"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="LsMxKxh@Q,b;B5Qzy2Wz"><field name="ATTR">val</field>
! <field name="OID">javascript.1.bolAlarmAktivieren</field></block></value>
! <value name="B"><block type="logic_boolean" id="{!@zI^^EgTa,.~(FUMp"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="comment" id=".[INx?Hf]:6OCoz8G2^*"><field name="COMMENT">Fenster überprüfen</field> ! <next><block type="controls_if" id="FW-)5BEDikj2ELcrf_F!"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_operation" id="Brg%Hakx,7~)t%ybN[hx" inline="false"><field name="OP">OR</field> ! <value name="A"><block type="logic_compare" id="Xl3gm{S!Jo*3uWDc
Zjb"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="3{5+Fgt.ri4ETwbAgesg"><field name="ATTR">val</field>
! <field name="OID">hm-rpc.0.JEQ0247966.1.STATE</field></block></value>
! <value name="B"><block type="logic_boolean" id=";tWpgUmo}!!]iLG:l]0C"><field name="BOOL">TRUE</field></block></value></block></value>
! <value name="B"><block type="logic_operation" id="[t~}7hV#SJ8)BrFRWp1{" inline="false"><field name="OP">OR</field>
! <value name="A"><block type="logic_compare" id="3L2WZ8)v@%1wbU+G,+?H"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="/f[T+Fu%CsXJQAA8bb"><field name="ATTR">val</field>
! <field name="OID">hm-rpc.0.KEQ0160270.1.STATE</field></block></value>
! <value name="B"><block type="logic_boolean" id="@#_0P5AT^yh8}CJN]FTD"><field name="BOOL">TRUE</field></block></value></block></value>
! <value name="B"><block type="logic_compare" id="a2CA,,.-ae]#F!nkmc4"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id=":|vp+li6CrZS0eq-tb;M"><field name="ATTR">val</field>
! <field name="OID">hm-rpc.0.LEQ0213973.1.STATE</field></block></value>
! <value name="B"><block type="logic_boolean" id="=g9t1qc5T(2?_kDz0e-"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value> ! <statement name="DO0"><block type="comment" id="6BU*GNj?ad#L6wYm];.c"><field name="COMMENT">Ein Fenster ist offen</field> ! <next><block type="comment" id="k77]2ocHX#7slsRv~deL"><field name="COMMENT">Keine Alarmschaltung</field> ! <next><block type="control" id="WB,cs-iiQr:AH~5p*iJK"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.1.bolAlarmAktivieren</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="n31vML.:4NC,BJj(S-=_"><field name="BOOL">FALSE</field></block></value> ! <next><block type="debug" id="gAsNJTBGzL.;yT20mOCa"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id=";_GGOuTLYaJpU?WW~PHQ"><field name="TEXT">Fenster offen</field></shadow></value></block></next></block></next></block></next></block></statement> ! <statement name="ELSE"><block type="comment" id="5WwaKm[
us+ew@R9Q|r"><field name="COMMENT">Alles OK Alarm kann aktiviert werden</field>
! <next><block type="debug" id="]r/?]^:Q/I4X6NKQB,f"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id=".|nw1P3lFVIaVEP*t0(q"><field name="TEXT">Alarm wir in 1 Minute aktiviert</field></shadow></value> ! <next><block type="comment" id="*jO0|2x*,,VIT%U23ys8"><field name="COMMENT">Hier wird eine Min.gewartet</field> ! <next><block type="timeouts_settimeout" id="@FK6%p4xu-a4gflw;BsN"><field name="NAME">timeout</field> ! <field name="DELAY">60000</field> ! <statement name="STATEMENT"><block type="control" id="-l;[wFK~s2D,~Ymi#IWD"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.1.bolAlarmScharf</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="SG[R2p4GpfEeZPoO1/Lm"><field name="BOOL">TRUE</field></block></value> ! <next><block type="debug" id="EL8j.Z5-k7EmxNS%Y8}y"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="bJ^.y-C!gb=9#{aJi^rZ"><field name="TEXT">Alarm aktiviert</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></statement></block></next></block></statement> ! <statement name="ELSE"><block type="timeouts_cleartimeout" id=",-x{B_6R74v+2l+apppX"><field name="NAME">timeout</field> ! <next><block type="control" id="ROT/7W2Tldqet!@V0vuc"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.1.bolAlarmScharf</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="/UIr-Z_v;CmSx}q)[q9*"><field name="BOOL">FALSE</field></block></value> ! <next><block type="debug" id="wk8ov,bAlSL7(t
:A^x3"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id="GpU|mMr6C0s@*zG1Rpf"><field name="TEXT">Alarm deaktiviert</field></shadow></value></block></next></block></next></block></statement></block></statement></block></next></block></xml>Import Überwachung
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="q@xFyLwtn7L20O:.9qLr" x="37" y="113"><field name="COMMENT">Triggern der Geräte auf WAHR</field>
! <next><block type="on_ext" id="vg]@GugCdFRJT-%kI@=7"><mutation items="4"></mutation>
! <field name="CONDITION">true</field>
! <value name="OID0"><shadow type="field_oid" id="M~kBPPD.9eCS4DvqVF69"><field name="oid">default</field></shadow>
! <block type="field_oid" id="kNosL[lb/HJ/E;6-^yY@"><field name="oid">hm-rpc.0.JEQ0247966.1.STATE</field></block></value>
! <value name="OID1"><shadow type="field_oid" id="ZiUvoXp#pndv6@y=3?N/"><field name="oid">hm-rpc.0.LEQ0213973.1.STATE</field></shadow></value>
! <value name="OID2"><shadow type="field_oid" id="Vocrg|c7LB21-XCUxWpn"><field name="oid">hm-rpc.0.KEQ0160270.1.STATE</field></shadow></value>
! <value name="OID3"><shadow type="field_oid" id="<EMAIL email=" c5_hbt7kcdx@g.nwhl7r"="">C5_HBt7kcDx@G.NwHL7r">
! <field name="oid">hm-rpc.0.KEQ0972714.1.MOTION</field></shadow></value>
! <statement name="STATEMENT"><block type="comment" id="eb%lt#iCj[t(mm@NwsNv"><field name="COMMENT">Ein Gerät hat ausgelöst</field>
! <next><block type="comment" id="IYQLuKm}D?ocdp@[cN|_"><field name="COMMENT">Prüfen ob Alarm aktiv ist</field>
! <next><block type="controls_if" id="[TriQn_Fw;^6{fM8U%y+"><value name="IF0"><block type="logic_compare" id="i7Y;4K0TusLYO1,BY^BW"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="GBJS*3Ul4]lsJn3r3,r"><field name="ATTR">val</field> ! <field name="OID">javascript.1.bolAlarmScharf</field></block></value> ! <value name="B"><block type="logic_boolean" id="U*Xvz#cUHtuV)Hd,%ajV"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="comment" id="6XSS]%Fdptbg_FZ#UCv_"><field name="COMMENT">Hier kommen die Aktionen rein</field> ! <next><block type="debug" id="G)(3,^~x
?w)rNIfl;7R"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id="n@2INPEE5Wy[+OPBCDiV"><field name="TEXT">ALARM AUSGELÖST</field></shadow></value></block></next></block></statement></block></next></block></next></block></statement></block></next></block></xml>Grüße
-
Danke, wer hat sich hier denn jetzt mühe gegeben, wie sagt man so schön privatleben geht immer vor.
Brauch ich ja fast nicht mehr nachdenken. aaaaaaber ( bitte nicht erschlagen )
Mir fehlt der Zünd Punkt, welchen ich dir aber nun genau erklären kann.
Zitat : "Sei es über VIS, Handsender, Wandtaster, Pin-Eingabe usw. usw."
Bei einem Wandtaster / Handsender habe ich ja eine angemeldete Objekt id welche sich ändert.
die fehlt mir aber ja bei Vis. Wie bekomme ich denn nun die Info das ich mit Vis eine boolsche Variable erstellen kann
glaube schon fast, ich sitze auf einem Schlauch Haufen statt nur auf einem Schlauch
Ich schalte sagen wir mal jetzt die Lampe in Vis an. dann habe ich aber ja keine id die sich ändert
Bei einem Handsender würde sich ja was ändern das ich angemeldet habe
Also mir fehlt die Information wie der Zündschlüssel in das jeweilige Schloss passt
Edit ::: hat sich erledigt. Habe mir Gerade die IObroker Wiki durch gelesen und dann klatschte es an meiner Stirn.
Mir fehlte DER Punkt Wo ich in Io Broker einfach das + Für ein neues Objekt drücke und simple dieses in den Schalter einbinden kann ….
So jetzt versucht Der Desa sich an Blockly ^^.
Also bis in 5 min :lol:
-
Hallo Desa
Wie bekomme ich denn nun die Info das ich mit Vis eine boolsche Variable erstellen kann `
Mit VIS erstellt Du keine Variablen/Objekte.Mit VIS greifst Du auf Objekte zu, zeigst deren Zusand an und änderst deren Zustände.
Ich schalte sagen wir mal jetzt die Lampe in Vis an. dann habe ich aber ja keine id die sich ändert `
Aber natürlich hast Du eine ID die sich ändert!Lampenname.STATE
Das was Du bei dem Widget in "Objekt ID" eingetragen hast.
Klickst Du auf das Widget wird …STATE = True (Lampe an)
Klickst Du nochmal dauf wird ....STATE = False (Lampe aus)
Der Datenpunkt .STATE ist sozusagen eine boolsche Variable.
Wenn Du das erste Script einmal gestartet hast, ist der "Zündschlüssel" in ioBrocker angelegt.
Das passiert bei den Bausteinen "Zustand erzeugen" wo im Kommentar "wird nur 1x benötigt" steht.
NACH dem ersten Start kannst Du die "Zustand Erzeugen" Bausteine löschen.
Schau mal in ioBroker.Admin unter dem Reiter "Objekte", gib "Name" mal "bolAlarmSchalten" ein.
Du kannst nun ein Widget nehmen das mit boolschen Objekten klar kommt.
Hier ein Beispiel.
Bei einem Handsender würde sich ja was ändern das ich angemeldet habe `
Aber ohne ein Script/Blockly kannst Du damit nicht den Zustand von "bolAlarmSchalten" ändern.Grüße
-
Soooo, Ich fasse mal Laaaang Zusammen
:!: :!: DANNNKKKEEEEEE :!: :!:
Geht nun alles wie es soll. das widget kam nicht mit dem zustand klar. hab deine benutzt und geht alles.
Hier mein Input welcher sich aber jetzt noch erweitern wird.
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="q@xFyLwtn7L20O:.9qLr" x="37" y="113"><field name="COMMENT">Triggern der Geräte auf WAHR</field>
! <next><block type="on_ext" id="vg]@GugCdFRJT-%kI@=7"><mutation items="4"></mutation>
! <field name="CONDITION">true</field>
! <value name="OID0"><shadow type="field_oid" id="7dzH#WmpP9yiz4Hmw#g"><field name="oid">default</field></shadow> ! <block type="field_oid" id="kNosL[lb/HJ/E;6-^yY@"><field name="oid">hm-rpc.0.NEQ1507113.1.STATE</field></block></value> ! <value name="OID1"><shadow type="field_oid" id="ZiUvoXp#pndv6@y=3?N/"><field name="oid">hm-rpc.0.NEQ1109723.1.STATE</field></shadow></value> ! <value name="OID2"><shadow type="field_oid" id="Vocrg|c7LB21-XCUxWpn"><field name="oid">hm-rpc.0.NEQ0758032.1.STATE</field></shadow></value> ! <value name="OID3"><shadow type="field_oid" id="<EMAIL email=" c5_hbt7kcdx@g.nwhl7r"="">C5_HBt7kcDx@G.NwHL7r"> ! <field name="oid">hm-rpc.0.NEQ1507095.1.STATE</field></shadow></value> ! <statement name="STATEMENT"><block type="comment" id="eb%lt#iCj[t(mm@NwsNv"><field name="COMMENT">Ein Gerät hat ausgelöst</field> ! <next><block type="comment" id="IYQLuKm}D?ocdp@[cN|_"><field name="COMMENT">Prüfen ob Alarm aktiv ist</field> ! <next><block type="controls_if" id="[TriQn_Fw;^6{fM8U%y+"><value name="IF0"><block type="logic_compare" id="i7Y;4K0TusLYO1,BY^BW"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="GBJS*3Ul4
]lsJn3r3,r"><field name="ATTR">val</field>
! <field name="OID">admin.0.bolAlarm</field></block></value>
! <value name="B"><block type="logic_boolean" id="U*Xvz#cUHtuV)Hd,%ajV"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="comment" id="6XSS]%Fdptbg_FZ#UCv_"><field name="COMMENT">Hier kommen die Aktionen rein</field>
! <next><block type="debug" id="G)(3,^~x?w)rNIfl;7R"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="n@2INPEE5Wy[+OPBCDiV"><field name="TEXT">ALARM AUSGELÖST</field></shadow></value> ! <next><block type="control_ex" id="K6[fhnLxM1Dm?pctuTsU"><field name="TYPE">false</field> ! <field name="CLEAR_RUNNING">TRUE</field> ! <value name="OID"><shadow type="field_oid" id="2@N-O+R(J/b_I!xe+@Cs"><field name="oid">zwave.0.NODE4.SWITCH_BINARY.Switch_1</field></shadow></value> ! <value name="VALUE"><shadow type="logic_boolean" id="JM)RTz8SYpGWEJ;4#@!~"><field name="BOOL">TRUE</field></shadow></value> ! <value name="DELAY_MS"><shadow type="math_number" id="4FK[6Qq~{0[
p(tK]-Cu"><field name="NUM">15000</field></shadow></value>
! <next><block type="sayit" id="#y:6t%.dGbihOcU%QN"><field name="INSTANCE">.0</field>
! <field name="LANGUAGE">de</field>
! <field name="LOG">log</field>
! <value name="MESSAGE"><shadow type="text" id="]sJ|mg+58fk5-^At7!FR"><field name="TEXT">Alarm Aktiv</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></next></block></statement></block></next></block></xml>! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="h}-GLiN5x(k:FUrvasi" x="-187" y="63"><field name="COMMENT">Wird über VIS geschaltet</field> ! <next><block type="on" id="Wp6*(X0J#KrM6}n@F{o,"><field name="OID">admin.0.bolAlarmSchalten</field> ! <field name="CONDITION">ne</field> ! <statement name="STATEMENT"><block type="controls_if" id="9GB2XArfowg))6Gx.Bh?"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="@i^nfn5l-WHQFe*WtMXk"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="LsMxKxh@Q,b;B5Qzy2Wz"><field name="ATTR">val</field> ! <field name="OID">admin.0.bolAlarmSchalten</field></block></value> ! <value name="B"><block type="logic_boolean" id="{!@zI^^E
gTa,.~(FUMp"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="comment" id=".[INx?Hf]:6OCoz8G2^"><field name="COMMENT">Fenster überprüfen</field>
! <next><block type="controls_if" id="FW-)5BEDikj2ELcrf_F!"><mutation else="1"></mutation>
! <value name="IF0"><block type="logic_operation" id="Brg%Hakx,7~)t%ybN[hx" inline="false"><field name="OP">OR</field>
! <value name="A"><block type="logic_compare" id="Xl3gm{S!Jo3uWDcZjb"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="3{5+Fgt.ri4ETwbAgesg"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.NEQ0758032.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id=";tWpgUmo}!!]iLG:l]0C"><field name="BOOL">TRUE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="[t~}7hV#SJ8)BrFRWp1{" inline="false"><field name="OP">OR</field> ! <value name="A"><block type="logic_compare" id="3L2WZ8)v@%1wbU+G,+?H"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="/f[T+Fu%CsXJQ*AA8b*b"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.NEQ1109723.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="@#_0P5AT^yh8}CJN]FTD"><field name="BOOL">TRUE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="XN,vP!R|xy!~S(!ZL1gw" inline="false"><field name="OP">OR</field> ! <value name="A"><block type="logic_compare" id="M!snXhI0:iUSzh.c]_^u"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="mc
!dYfVVHmV3SNxvZ~S"><field name="ATTR">val</field>
! <field name="OID">hm-rpc.0.NEQ1507113.1.STATE</field></block></value>
! <value name="B"><block type="logic_boolean" id="YFegHjy0{Q(JO7zL0~n_"><field name="BOOL">TRUE</field></block></value></block></value>
! <value name="B"><block type="logic_compare" id="~9.O1pQmf!:[e!hq)+{"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="b.JM23SA1q;fqxx.ZB"><field name="ATTR">val</field>
! <field name="OID">hm-rpc.0.NEQ1507095.1.STATE</field></block></value>
! <value name="B"><block type="logic_boolean" id="T|y|K7|cX!qeF?|X;F-"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value></block></value> ! <statement name="DO0"><block type="comment" id="6BU*GNj?ad#L6wYm];.c"><field name="COMMENT">Ein Fenster ist offen</field> ! <next><block type="comment" id="k77]2ocHX#7slsRv~deL"><field name="COMMENT">Keine Alarmschaltung</field> ! <next><block type="control" id="WB,cs-iiQr:AH~5p*iJK"><mutation delay_input="false"></mutation> ! <field name="OID">admin.0.bolAlarmSchalten</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="n31vML.:4NC,BJj(S-=_"><field name="BOOL">FALSE</field></block></value> ! <next><block type="debug" id="gAsNJTBGzL.;yT20mOCa"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id=";_GGOuTLYaJpU?WW~PHQ"><field name="TEXT">Fenster offen</field></shadow></value> ! <next><block type="sayit" id="W/S;*re5a+{@1bF%
e)R"><field name="INSTANCE">.0</field>
! <field name="LANGUAGE">de</field>
! <field name="LOG">log</field>
! <value name="MESSAGE"><shadow type="text" id="m}xs0w|Ew)Bc;vsyolb7"><field name="TEXT">Keine Alarmschaltung. Ein Fenster ist geöffnet</field></shadow></value></block></next></block></next></block></next></block></next></block></statement>
! <statement name="ELSE"><block type="comment" id="5WwaKm[us+*ew@R9Q|r"><field name="COMMENT">Alles OK Alarm kann aktiviert werden</field> ! <next><block type="debug" id="]r/?]^:
Q/I4X6NKQB,f"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id=".|nw1P3lFVIaVEPt0(q"><field name="TEXT">Alarm wird in 1 Minute aktiviert</field></shadow></value>
! <next><block type="sayit" id="4(Sqx0h=P}P4#7@Mqb8?"><field name="INSTANCE">.0</field>
! <field name="LANGUAGE">de</field>
! <field name="LOG">log</field>
! <value name="MESSAGE"><shadow type="text" id="udx;_.~)HKc811A2oU4p"><field name="TEXT">Alarm wird aktiviert</field></shadow></value>
! <next><block type="comment" id="jO0|2x,,VIT%U23ys8"><field name="COMMENT">Hier wird eine Min.gewartet</field>
! <next><block type="timeouts_settimeout" id="@FK6%p4xu-a4gflw;BsN"><field name="NAME">timeout</field>
! <field name="DELAY">60000</field>
! <statement name="STATEMENT"><block type="control" id="-l;[wFK~s2D,~Ymi#IWD"><mutation delay_input="false"></mutation>
! <field name="OID">admin.0.bolAlarm</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="SG[R2p4GpfEeZPoO1/Lm"><field name="BOOL">TRUE</field></block></value>
! <next><block type="debug" id="EL8j.Z5-k7EmxNS%Y8}y"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id="bJ^.y-C!gb=9#{aJi^rZ"><field name="TEXT">Alarm aktiviert</field></shadow></value>
! <next><block type="sayit" id="Z!LeK|5DW;V5O7!)9p3d"><field name="INSTANCE">.0</field>
! <field name="LANGUAGE">de</field>
! <value name="MESSAGE"><shadow type="text" id="}/4yflk^@uCA/w8y{=Jl"><field name="TEXT">Alarm ist Scharf</field></shadow></value></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement>
! <statement name="ELSE"><block type="timeouts_cleartimeout" id=",-x{B_6R74v+2l+apppX"><field name="NAME">timeout</field>
! <next><block type="control" id="ROT/7W2Tldqet!@V0vuc"><mutation delay_input="false"></mutation>
! <field name="OID">admin.0.bolAlarm</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="/UIr-Z_v;CmSx}q)[q9*"><field name="BOOL">FALSE</field></block></value>
! <next><block type="control" id="?;QC+*(+uUB^,0m}3l~"><mutation delay_input="false"></mutation> ! <field name="OID">zwave.0.NODE4.SWITCH_BINARY.Switch_1</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="0Jtx9%hg,@Q[;41!Iev
"><field name="BOOL">FALSE</field></block></value>
! <next><block type="debug" id="wk8ov,bAlSL7(t:A^x3"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="GpU|mMr6C*0s@*zG1Rpf"><field name="TEXT">Alarm deaktiviert</field></shadow></value> ! <next><block type="sayit" id="Ul=+Qx#,28Lgba/_lc%z"><field name="INSTANCE">.0</field> ! <field name="LANGUAGE">de</field> ! <field name="LOG">log</field> ! <value name="MESSAGE"><shadow type="text" id="ijJrQkn^q1LS9-
Q!6o5"><field name="TEXT">Alarm ist Deaktiviert</field></shadow></value></block></next></block></next></block></next></block></next></block></statement></block></statement></block></next></block></xml> -
Sieht doch richtig gut aus :!: :!: :!:
Ich denke der AHA-Effekt war da.
Viel Spass mit Blockly
Grüße
-
heute habe ich eine Selbstbau-Status-Anzeige gebaut. Verwendet wurde dazu der Homematic 8 Kanal Empfänger.
Die grüne und rote LED soll den Zustand scharf/unscharf der Alarmanlage anzeigen, die gelbe ein oder mehrere offene Fenster. Für die blaue habe ich noch keine Verwendung. Oben drüber ist noch ein Summer, dieser soll ein Ton beim scharf/unscharf erzeugen. evtl. lässt sich mit der dauer des Signals ein scharf und unscharf unterscheiden.
Ein Handsender ist auch bereits angetroffen. Der zweite kommt noch. Ich mach mich an den Programm erst für das scharf/unscharf stellen. Sehen wir mal wie weit ich kommen kann…. Gruß
1526_img_20170201_200404.jpg
1526_img_20170201_200417.jpg -
Elegant gelöst. inspiriert ( nötigt ) mich einen Kasten zu bauen ^^
-
Hehe, danke.. es macht genau das, was ich damit vor hatte. Der Kasten hat endgültig den Platz in Hauswirtschaftsraum bekommen. Über die Dauer des Signals weiß ich, ob die Alarmanlage scharf oder unscharf geschaltet worden ist. Die gelbe LED zeigt min. Ein offenes Fenster und die rote und grüne LED den Zustand der Alarmanlage an…. Bis dahin funktioniert alles so, wie ich es haben wollte...Alles in der CCU2 programmiert. Den Rest möchte ich mit Blockly programmieren, da ich noch ein paar Bewegungsmelder nicht von der Homematic einbinden wollte. Desweiteren auch sind von der Firma Kerui bereits Bewegungsmelder und Fensterkontakte in der Garage verbaut... Die Komponenten sollen auch in die Alarmanlage integriert sein.
Ich melde mich bald, da ich bestimmt Hilfe benötigen werde... Gruss Lukas
Edit. So eine Selbstbau Statusanzeige kostet um die 30€ an Material und ist relativ einfach nachzubauen.
-
Ich benötige Hilfe in Blockly!
Ich taste mich gerade an Blockly heran und weiß vorerst nicht weshalb meine LED nicht leuchten möchte, obwohl die Alarmanlage scharf ist, und ich einer der Fensterkontakte auf "wahr" setze durch öffnen des Fensters???
Beim Prüfen gab es beim Blockly keine Fehler! Kann jemand helfen? Weshalb funktioniert mein Blockly nicht?
1526_unbenannt1.png -
Hi knopers1
Du triggerst falsch.
Das Script wird ausgeführt wenn der Wert von "Alarmanlage" geändert wird.
Wenn dabei zufällig das Fenster offen wäre, würde das LED leuchten.
Du mußt den Fenstersensor Status auf "wahr" triggern.
Und dann:
Falls Wert von Alarmanlage = wahr
mache LED Status = wahr
Grüße
-
Danke sehr habe verstanden :mrgreen:
Kann ich auf die Variablen triggern ??? Die Fensterkontakte sind als Variable in der CCU abgelegt.
Genau so wie die Alarmanlage mit scharf&unscharf…
es macht den Anschein, dass es funktioniert. Leider bekomme ich ständig Servicemeldungen da ich offenbar die Duty Cycle durch das Probieren erreicht habe.
Ich habe noch drei Bewegungsmelder auf 433 Mhz von Kerui. Diese würde ich auch gerne mit in die Alarmanlage intergrieren. Kann ich dazu parallel einen Blockly schreiben? Wie bekomme ich eine "oder Verknüpfung" für die BM hin ?
Vielen Dank vorerst :mrgreen:
1526_unbenann2t.png
1526_unbenann3.png -
Kann ich auf die Variablen triggern ??? `
Ja das geht. Ich habe etliche (boolsche) Variablen, die den aktuellen Zustand abbilden. (Anwesend ja/nein, Alarmscharf ja/nein, usw.)
@knopers1:Die Fensterkontakte sind als Variable in der CCU abgelegt. `
Warum denn das? Hat das einen besonderen Grund?Macht eigentlich keinen Sinn, macht doppelte Arbeit und verbrennt Ressourcen.
Leider bekomme ich ständig Servicemeldungen da ich offenbar die Duty Cycle durch das Probieren erreicht habe. `
Da musst Du wahrscheinlich Deine Programmierungen nochmal überdenken.Bei mir liegt der DC immer zwischen 4% bis 7%.
Meine erste Faustregel lautet: "Sende/ändere nie etwas nicht gesendet/geändert werden muss."
Wenn Du jede Sekunde einen Befehl zum Einschalten einer Lampe sendest, wird dies auch gemacht. Auch wenn die schon an ist!
Eine kurze Abfrage
Falls Lampe.STATUS = unwahr
Mache Lampe.STATUS = wahr
hilft da enorm.
In Deinem ersten Beispielbild triggerst Du auf "wurde aktualisiert". Das wird sehr häufig gestartet!!!
Und wenn "Alarmanlage" scharf ist, werden danach alle Befehle ausgeführt.
Da werden immer 4 Funksignale gesendet, ob notwendig oder nicht.
(Übrigens auch wenn der Bewegungsmelder "keine Bewegung" meldet)
Wenn Du in diesem Blockly jetzt noch mehrere BM's einbindest, ist Dein Duty Cycle schnell wieder am Limit.
Für eine "Alarmanlage" ist es doch nur wichtig wenn ein BM "Bewegung" (MOTION = wahr) meldet.
Also triggert man auf "wahr".
Mehrere Objekte triggert man mit dem ersten Baustein unter Trigger.
Ich habe noch drei Bewegungsmelder auf 433 Mhz von Kerui. Diese würde ich auch gerne mit in die Alarmanlage intergrieren. Kann ich dazu parallel einen Blockly schreiben? Wie bekomme ich eine "oder Verknüpfung" für die BM hin ? `
Ich habe keine BM von Kerui. Wenn die in ioBrocker verfügbar sind, warum nicht?Grüße
-
Hi Rantanplan
ich habe die Fensterkontakte alle in einer Variablen, weil es eben einfache zu programieren ist…
Als Beispiel: sobald einer der 5 Fensterkontakte auf ist, soll es eben etwas bestimmtes passieren. Ich brauche sie nicht alle in einer "oder Vernüpfung" wieder niederzuschreiben. Ich habe eher gedacht, dass es eben weniger Arbeit ist und nicht die doppelte :shock:
Die Servivemeldungen bekam ich gestern nur deshalb, weil ich mit Blockly nicht zurecht kamm. Eben zu viel und zu lange an den Fensterkontakten probiert und passend einige LED´s damit geschaltet. Die Bewegungsmelder waren noch nicht im Spiel :mrgreen: Zum Glück hast Du mich darauf hingewiesen, dass ich eben falsch getriggert habe.
Die Bewegungsmelder erzeugen keinen Duty Cycle, da sie auf 433 Mhz senden. Puhh, bin ich froh...
Dafür senden sie nur, sobald "bewegung erkannt" und nichts anderes... Deshalb funktionieren sie nur wenn man sie auf "wurde aktualisiert" abfragt. Zumindest geht es nicht, wenn ich sie auf " Falls Objekt- wurde geändert" abfrage... Die BM machen mir kein Stress.
Ich bekomme den zweiten Objekt ID (default) nicht dabei.. Dort müsste ich drei Stück haben, damit ich dort die drei BM eintragen kann.
Was mache ich falsch? In Blockly kann man nur einen hinzufügen. Kannst Du mir beschreiben, wie Du weitere Objekt ID´s dort hinzufügst?
Danke für deine Hilfe!
1526_d-_wwwroot_elvcms_downloads_journal_2015-04_09_gross_2015_04_09_knowhow_b02.jpg
1526_multitrigger.png -
o.k, hab ich jetzt!
Damit laufen die Bewegungsmelder von Kerui… Das beste ist aber, dass sich diese Kerui Bewegungsmelder besser verhalten, als die BM´s von der Homematic. Komischerweise halten die Homematic BM den Zustand "Bewegung Erkannt" über eine längere Zeit fest! Auch löst mein HM-Sen-MDIR-O-2 sporadisch aus, obwohl niemand vorbei gegeangen ist. Zum Glück steuere ich damit nur die Außenbeleuchtung an. Das ist sehr kontraproduktiv und bereitet Probleme beim scharf schalten der Alaranlage! Habt Ihr Probleme auch mit dem BM von der Homematic?
Da sind die KERUI dinger meiner Meinung viel besser dafür geeignet.
-
keine Duty Cycle
-
halten den Zustand "bewegung erkannt" nicht über längere Zeit fest
-
lösen nicht sporadisch aus...
Wenn man den Preis bedenkt, da weis ich jetzt schon, dass ich hierbei richtig das Geld angelegt habe. :lol:
unb die Wirtschaft in China wurde ebenfalls etwas angekurbelt. :mrgreen:
EDIT. Die Kerui BM lassen sich auch abfragen mit "wahr" und "Update"
siehe das beigefügte Bild an. Aber auch in diesem Fall wird genau so viel Traffic erzeugt wie mit "wurde aktualisiert" und "anerkannt egal" Stimmt es? Was ist die bessere Variante oder wo erzeuge ich bei der Abfrage weniger Duty Cycle ?
1526_unbenannt.png
1526_unbenan5t.png -
-
Hi,
"Anerkannt ist: egal" kannst Du nehmen.
Aber auf "wahr" würde ich trotzdem triggern.
Auch Dein BM ändert mindestens 2x den Zustand.
1x bei Bewegung und 1x wieder beim Zurücksetzen.
Ich würde auch die zusammengehörigen "steuere" in einem "falls" abfragen.
Wenn ein "NEQ000…." schon eingeschaltet ist, muss er nicht nochmal eingeschaltet und in 2 Sek. wieder ausgeschaltet werden.
Das kann bei Dir 3x passieren. BW-1 melde1, BW-2 meldet und BW-3 meldet.
Und bei "Aktualisierung" das ganze nochmal wenn die wieder auf "unwahr" gehen.
Grüße
-
Hi,
"Anerkannt ist: egal" kannst Du nehmen.
Aber auf "wahr" würde ich trotzdem triggern.
Auch Dein BM ändert mindestens 2x den Zustand.
1x bei Bewegung und 1x wieder beim Zurücksetzen.
Ich würde auch die zusammengehörigen "steuere" in einem "falls" abfragen.
Wenn ein "NEQ000…." schon eingeschaltet ist, muss er nicht nochmal eingeschaltet und in 2 Sek. wieder ausgeschaltet werden.
Das kann bei Dir 3x passieren. BW-1 melde1, BW-2 meldet und BW-3 meldet.
Und bei "Aktualisierung" das ganze nochmal wenn die wieder auf "unwahr" gehen.
Grüße `
hmm, die BM senden nur "true" und der Zustand bleibt auch bei true…
Es wird lediglich über den rflink noch einmal frisch aktualisiert... Deshalb sind die Kerui BM´s einwenig eigenartig!
ich habe versucht zu steuern nach einem falls.... Kannst Du schauen ob das so in Ordnung ist? Sieht aber komisch aus... Die Zeiten zum Abschalten werden natürlich geändert. Das ist nur zum Testen auf paar sek. eingestellt. Im Betrieb stelle ich die Außensirene auf 3min. und die Blitz LED auf 30min ein.
1526_unbenannt6.png -
hmm, die BM senden nur "true" und der Zustand bleibt auch bei true…
Es wird lediglich über den rflink noch einmal frisch aktualisiert... Deshalb sind die Kerui BM´s einwenig eigenartig! `
Das wären dann Wegwerf-BM's :roll:Der Zustand muss sich wieder ändern.
Beobachte mal einen BM unter ioBroker.admin/Objekte. Da werden die Zustände angezeigt.
ich habe versucht zu steuern nach einem falls…. Kannst Du schauen ob das so in Ordnung ist? Sieht aber komisch aus... Die Zeiten zum Abschalten werden natürlich geändert. Das ist nur zum Testen auf paar sek. eingestellt. Im Betrieb stelle ich die Außensirene auf 3min. und die Blitz LED auf 30min ein. `
Entweder so:
oder so:
Ich würde auch noch ein Blockly bauen, dass "Alarmanlage" auf "unwahr" triggert.
Damit könntest Du einen (Fehl-)Alarm auch wieder ausschalten.
Grüße
-
wooww. Danke Dir.
Die Variante zwei gefällt mir Das werde ich bei mir umsetzen!
Was die Bewegungsmelder angeht… Ja, unter ioBroker.admin/Objekte steht der Wert des BM immer auf true.
Wenn eine erneute Bewegung durch den BM erkann wird, sieht man unter Objekten in der Zeile dass sich der Wert "true" einmal aktualisiert. (wird grün)
Weshalb sind sie deiner Meinung zum wegwerfen? Wofür brauche ich den Status "bewegung nicht erkannt" wenn ich in Blockly auf Zustand "wahr" und "update"
den BM abfragen kann? Gibt es gründe weshalb ich die Dinger nicht in die Alarmanlage integrieren sollte? Immerhin sind die Kerui BM für eine Alarmanlage gebaut. Die können nichts anderes machen wie senden!
Unterm Strich laufen sie so wie gewünscht und melden nicht dass sie etwas erkann haben, obwohl niemanand vorbei kam...
Denn so verhalten sich nämlich die BM´s von der Homematic.
Ich möchte die dinger aus China nicht schön reden, aber ich betreibe einen davon zu Hause für das Treppenlicht. Das Teil ist auch über den RFLINK Adapter an IObroker angelern und über Blockly gesteuert. Ich habe noch nie gesehen, dass die das Licht im Treppenhaus eingeschaltet haben, obwohl niemand vorbei kam.
Was ich dagegen nicht von den Homematic BM´s sagen kann. Denn hierbei sehe ich des öfteren dass das Licht im Vorgarten brennt obwohl niemand vorbei geht. Ich würde die Teile von der Homematic auf keinen Fall für eine Alarmanlage verwenden. Deshalb auch habe ich mich nach etwas anderem umgesehen, was zuverlässig funktioniert.
Jetzt noch ganz kurz zum Blockly für das AUS-Schalten bei Fehlalarm.
Ich schalte die Alarmanlage scharf/unscharf mit der Funk-Fernbedienung von der Homematic.
Damit triggere ich die Variable Alarmanlage (in der CCU angelegt) --Logikwert--wahr=scharf/ falsch=unscharf
brauche ich noch ein Blockly zum Ausschalten im Fehlalarm??? Ich denke nicht... In einem Alarmfall oder Fehlalarm (dürfte keine Rolle spielen was es ist), kann ich doch über Funkfernbedienung die Alarmanlage unscharf schalten. Oder liege ich komplett daneben??? Kannst Du dazu etwas sagen?
Ich bedanke mich herzlich, ohne Dich würde ich garnicht so weit kommen mit dem Kram! :mrgreen:
1526_plant-professional-new-kerui-w2-with-smoke.jpg -
Also ich habe ja beide (bzw. alle 3) BWM: HM, HMIP und die Kerui.
Die Kerui haben ihre Daseinsberechtigung, schon wegen des Preises!
Ich habe nur bei denen empfunden, dass die Reaktionszeit etwas langsam ist (vielleicht weil über rflink…?)... deswegen habe ich mir hinterher drei von HMIP besorgt, diese sind wirklich super, finde ich! Man kann ja einstellen wie lange der Zustand "Bewegung erkannt" anhält und die Lichter im Haus gehen sofort an bei Bewegung. Ich habe keine Falschmeldungen bei denen.