NEWS
Anfängerfrage zu einem Bewegungsmelder Skript
-
Um es kurz vorweg zu nehmen - ich bin absoluter Blockly Anfänger und wenn ich ehrlich bin, bekomme ich es bis jetzt nicht so wirklich hin das die Bausteine funktionieren. Darum scheitere ich derzeit auch an einem vermutlich simplen Skript.
Ich bräuchte da mal ein wenig Starthilfe damit ich es verstehen kann, wie man mit Blockly was machen muss. Konkret geht es um folgendes:
Ich habe einen Bewegungsmelder, der bei den iobroker Objekten, für jede Erkannte Bewegung zu seinem aktuellen Zählerstand +1 dazu addiert.
Als nächstes habe ich eine Lampe die durch diese Bewegungserkennung (+1) eingeschaltet werden und 60 sec. brennen soll. Jede erneut erkannte Bewegung innerhalb des 60 sec. Fensters führt zu einem Neustart der 60 sec.
Diese Lampe kann aber auch noch von extern händisch geschaltet werden (gibt dann aber via mqtt eine Status Rückmeldung zurück [true/false]). Es müsste als vor dem setzen eines Schaltimpuls geprüft werden, ob die Lampe nicht bereist eingeschaltet ist, da ein neuerlicher Impuls die Lampe sonst wieder ausschalten würde.
Ich sage es mal ganz unverblümt, es wäre schön wenn jemand mal so ein Blockly Skript erstellen könnte. Ich lerne immer am besten, wenn ich etwas funktionierendes "rückwärts" aufdröseln kann um zu verstehen was wie gemacht wurde.
Wäre total Nett von Euch - VIELEN DANK
-
Schade, hatte gehofft da jemand mal die 2 Minuten Zeit gehabt hätte. Ich habe sehr lange daran Rum gebastelt, aber nun funktioniert zumindest der Teil mit dem ein und ausschalten.
Wenn man weiß wie alles geht und wo man welche Funktionsbauteine suchen muss und vor allen Dingen was diese Bausteine alles können, ist dieses "Skriptchen" vermutlich in weniger als einer Minute gebaut.
Um ein Gefühl für die ganze Blockly Geschichte zu bekommen habe ich erstmal hier ein wenig rumgespielt -> https://blockly-games.appspot.com/maze? … =10&skin=2
So hier also der Teil der funktioniert:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="1,mjvg4,T,{?JIrk?Eu0" x="-413" y="87"><mutation items="1"></mutation> <field name="CONDITION">gt</field> <value name="OID0"><shadow type="field_oid" id="DW)L~]K)0^*u:`IQF4ts"><field name="oid">innogy-smarthome.0.Keller.PIR-Treppe.MotionDetectedCount</field></shadow></value> <statement name="STATEMENT"><block type="control" id="7=kYzXLQGG^_@w=y6[n("><mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Kellerlicht.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Trvc)|L{E,#z2GFxGm8,"><field name="BOOL">TRUE</field></block></value> <next><block type="timeouts_settimeout" id="jSC#0TG}3(%Kcr#Lf.tU"><field name="NAME">timeout</field> <field name="DELAY">180</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="control" id="S4361a[_SO|0o^?VpNr|"><mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Kellerlicht.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="4KWLS1WY_;s9,4iz_P(C"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement></block></xml>
Was ich jedoch nicht gebacken bekomme, ist die Tatsache das der Timer nochmal nachstartet wenn innerhalb der eingestellten Zeit eine erneute Bewegung erkannt wurde.
Vielleicht kann mit da nochmal jemand einen Hinweis geben.
-
Dann zeig doch mal das Blockly.
Text ist ziemlich lang. verstehen immer so eine Sache.
Kürze den mal ein dann hast du fast das Blockly.
Zähler = 0
Also wenn Bewgungsmelder erkennt , Zähler + 1.
Wenn Zähler ist +1 schalte Lampe ein für X Sekunden.
Wenn die Statusrückmeldung ist true mache.
Wenn die Statusrückmeldung ist false mache.
Dann…
Ralla
-
Blockly kann ich nicht zeigen, da die Anzahl an anhängbarer Dateien im Forum, bei mir schon ausgeschöpft sind. Kann keine Bilder mehr anzeigen lassen.
Den Code brauchst du nur in ein leeres Blockly mit der Pfeiltaste "nach oben" importieren. Dann siehst du das Blockly auf deiner iobroker Admin Oberfläche.
-
Unter IO Allgemein ist mein Fred : gelöst Bilder hochladen.
Poste da mal bitte wegen den Bildern.
Ging bei mir auch nicht.
Helfen ja, fände das aber besser wenn du dein script selbst aufbaust.
Dann verstehst du auch.
Motto 2018 Bau mir mal ein script, mach du mal für mich gibst im Leben nicht.
Mach es selbst oder lass es.
Helfen werde ich dir keine Frage.
Machen musst du selbst.
Also Bild des Blocky hochladen ist Punkt 1.
Bin mal so nett, aber letzte mal.
Der Zähler + 1 fehlt als Variable.
Deine 60 Sec auch.
5230_bewegung_v1.png -
Mal eine Frage an die Profis.
Was belastet den Prozessor mehr ?
Ausführen timeout in 180 sec oder
steure xy mit xy mit Verzögerung 180 sec ?
Ralla
-
Danke ich mach es lieber selber - so eine Aufgeblasene Antwort habe ich in einem Forum ja noch nie bekommen. Wenn man alles selber herausfinden kann, brauchen wir keine Foren mehr.
` > Helfen ja, fände das aber besser wenn du dein script selbst aufbaust.
Dann verstehst du auch. `
Wie du siehst hat sich mein erster Beitrag ja bereist erledigt da ich das Blockly bereits SELBER gemacht habe.
> Bin mal so nett, aber letzte mal.
….. als wenn DU mir schon hundert mal geholfen hättest :shock: :shock:
> Deine 60 Sec auch.
Meine 60 sec. aus dem ersten Beitrag sind jetzt ja 180 sec. Oh Entschuldige, liegt wohl am selber machen.und wenn du dich hier schon auf meinen Eingangspost beziehst, der keine Relevanz mehr hat, hättest du auch gelesen, das der Bewegungsmelder mit jeder erkannten Bewegung seinen eigenen Datenpunkt um +1 hochzählt. Das ist die einzige Änderungsvariable die ich auswerten kann - also 55+1=56+1=57+1 usw. - somit "= größer als letzes mal".
OK - Danke für nichts - werde es sicher irgendwann auch ohne deine gnädige Hilfe hin bekommen kopfschüttel
-
Cool 2018,
alles Könner.
Jau hab meine Glaskugel geputzt um dies zu sehen:
also 55+1=56+1=57+1 usw.
Warum Antwortet wohl keiner ?
Die Frage war korrekt gestellt ?
Kleiner Klugscheisser der alles besser weiß.
Na dann.
Ich kann das :mrgreen:
Helden 2018
-
der Timer nochmal nachstartet wenn innerhalb der eingestellten Zeit eine erneute Bewegung erkannt wurde. `