Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.5k Themen 79.4k Beiträge

NEWS

  • Hue Skript Idee?

    24
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    A
    Also ich hatte damals mal für meinen Dachboden ein gleiches Problem gelöst. Leider habe ich das Blockly nicht mehr. Aber prinzipiell hatte ich es so gelöst: "Trigger " schaltet bei erkannter Bewegung Licht an . "CRON" prüft jede Minute ob Licht im Raum an ist. Wenn ja, erhöhe Zähler (Datenpunkt oder Variable) um 1. Wenn Zähler>15 (Minuten), schalte Licht aus und setze Zähler auf 0. Wenn nein, setzte Zähler auf 0.
  • Passender Trigger gesucht

    blockly
    4
    1
    0 Stimmen
    4 Beiträge
    349 Aufrufe
    S
    @paul53 Wie versprochen, hier die getestete Lösung, falls jemand genau so sparsam kuckt wie ich. [image: 1574234297817-funktion-anspringen.png] Der größte Stolperstein dabei ist, dass der Baustein [image: 1574234610487-oder.png] ODER erst auftaucht, nachdem man eine [image: 1574234868603-erstfunktion.png] Funktion mit dem Namen "ODER" angelegt hat. Ich hatte zunächst keinen sonderlich intelligenten Gesichtsausdruck... Danke für die Hilfe! Ich hatte so einige AHA-Effekte. SBPoly
  • Licht geht häufig nicht aus

    7
    1
    0 Stimmen
    7 Beiträge
    473 Aufrufe
    J
    @maxpd Ich hatte ein ähnliches Problem und da ging das Ding nicht an. Der DP wurde aber auf true gesetzt. Ändert sich bei Dir der DP auf false, oder kommt das gar nicht an?
  • Alarm wenn letzte änderung zu lange her ist

    blockly
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    C
    coole ideen da werd ich mich mal dran versuchen. DANKE
  • Bewegungsmelder/Lampe einschalten Frage

    5
    1
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    PeoplesP
    Bei Blocky kann ich dir da leider nicht helfen, habe aber damals ein Script genau dafür geschrieben. https://forum.iobroker.net/topic/21226/vorlage-automatisches-licht
  • Bewegungsmelder über Sat-Receiver anzeigen lassen

    7
    0 Stimmen
    7 Beiträge
    537 Aufrufe
    J
    @oberfragger Ja morgens muss der TV an sein, wie soll ich sonst wissen, ob da draußen noch alles so ist wie ein Tag vorher, bevor ich zur Arbeit fahre? :grin: So zur eigentlichen Frage. Mein Sat Receiver bootet in 20 Sekunden hoch, deshalb schalte ich den auch immer komplett aus. Hat dann den Vorteil, dass ich den DP "connection to receiver"des Enigma2 Adapter schön zum Triggern des Blockly verwenden kann. Die Temperatur zieh ich mir aus dem "temperatureMin" DP des openweathermap Adapter der mir wirklich für meine Ecke sehr genaue Daten liefert (Abweichung zu meinem Thermometer draußen, selten mehr als 0.1°C). Mit dem Telegram Blockly schreibe ich gleich ne Variable, ob überhaupt was angezeigt werden muss und schon funktioniert das wie gewünscht. Message.timeout bewirkt dann noch, dass man die Meldung mit OK am Receiver bestätigen muss und sie so definit auch gelesen wird.
  • [Gelöst] Timeout mit Variable setzen

    blockly
    3
    0 Stimmen
    3 Beiträge
    782 Aufrufe
    W
    Danke, werde ich testen und mir das Video auch mal ansehen Viele Grüße Walkinlarge2010
  • Diverse Aktoren über einen Schalter steuern.

    scenes javascript blockly
    8
    0 Stimmen
    8 Beiträge
    503 Aufrufe
    A
    Und das Ganze etwas erweitert: var Rueckstellung, Zaehler_On, Zaehler_OFF, Auswertung; on({id: 'Aktor_Küche#1.Relay0.Switch', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Rueckstellung = setTimeout(function () { Zaehler_On = 0; Zaehler_OFF = 0; console.warn((['Variablen zurückgesetzt, Mit Zähler ON= ',Zaehler_On,' und Zähler OFF=',Zaehler_OFF].join(''))); }, 10000); if (getState("Aktor_Küche#1.Relay0.Switch").val == true) { Zaehler_On = (typeof Zaehler_On == 'number' ? Zaehler_On : 0) + 1; } if (getState("Aktor_Küche#1.Relay0.Switch").val == false) { Zaehler_OFF = (typeof Zaehler_OFF == 'number' ? Zaehler_OFF : 0) + 1; } Auswertung = setTimeout(function () { if (Zaehler_On == 2 && Zaehler_OFF == 2) { if (getState("Lampe 1#1.Relay0.Switch").val == false) { setState("Lampe 1#1.Relay0.Switch"/*Switch*/, true); console.log('Aktor1_in_der_Wunschszene aktiviert'); } if (getState("Lampe 1#1.Relay0.Switch").val == true) { setState("Lampe 1#1.Relay0.Switch"/*Switch*/, false); console.log('Aktor1_in_der_Wunschszene deaktiviert'); } Zaehler_OFF = 0; Zaehler_On = 0; } if (Zaehler_On == 3 && Zaehler_OFF == 3) { if (getState("Lampe 2#1.Relay0.Switch").val == false) { setState("Lampe 2#1.Relay0.Switch"/*SHSW-1#BA6C4B#1.Relay0.Switch*/, true); console.log('Aktor2_in_der_Wunschszene EIN'); } if (getState("Lampe 2#1.Relay0.Switch").val == true) { setState("Lampe 2#1.Relay0.Switch"/*SHSW-1#BA6C4B#1.Relay0.Switch*/, true); console.log('Aktor2_in_der_Wunschszene AUS'); } Zaehler_OFF = 0; Zaehler_On = 0; } }, 6000); }); Die Variablen werden erst nach 10 Sekunden genullt und die Auswertung der Wunschszene erfolgt - in diesem Beispiel - nach 6 Sekunden. Hinterlegt wird ein jeweils angepasstes Script für jeden in Frage kommenden Teilnehmer, der die Szenen auswählen darf.
  • Osram Plug, Zeitschaltuhr & Anwesenheitskontrolle

    3
    1
    0 Stimmen
    3 Beiträge
    835 Aufrufe
    BBTownB
    @Dennis-80 so etwas in der Art könnte funktionieren [image: 1573899972715-4c02c2cf-2f46-4dc0-91f1-999f1a6f048c-grafik.png] Spoiler <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="Wg=Kx)B2jS@5sHnC-GjP">Nachtruhe</variable> <variable type="" id="!rm1dl0R?IS0xR^zOKfz">TV</variable> <variable type="" id="nuLeyg)0=b%9p:7`B`m1">Anwesenheit</variable> </variables> <block type="variables_set" id="W.)DSCv_,jHFEO8y4(2a" x="13" y="13"> <field name="VAR" id="Wg=Kx)B2jS@5sHnC-GjP" variabletype="">Nachtruhe</field> <value name="VALUE"> <block type="logic_boolean" id="@m^k3VN;mznwXQ~T0xc7"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="pO41L)e{#85jz6qWV2kj"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="SO?Hhkk@-nsj{I4-OT)-"> <field name="oid">Test.0.TV</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="g/a=C@1:8Z7bUcd*;h*7"> <field name="VAR" id="!rm1dl0R?IS0xR^zOKfz" variabletype="">TV</field> <value name="VALUE"> <block type="on_source" id="IYH@/3n*Iw#%3B:DK#!z"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="procedures_callnoreturn" id="XX6fI49Qn^C/seTsc#CF"> <mutation name="Steckdose"></mutation> </block> </next> </block> </statement> <next> <block type="on_ext" id="^;y73TC8#eTVcfuMs9$%"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="kbrb]tF(gd9em=u{m3HZ"> <field name="oid">Test.0.Anwesenheit</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="u38_lQ*Yr`,l(XFY~bb^"> <field name="VAR" id="nuLeyg)0=b%9p:7`B`m1" variabletype="">Anwesenheit</field> <value name="VALUE"> <block type="on_source" id="ufMsS1qn}*UJR=|~H!*="> <field name="ATTR">state.val</field> </block> </value> <next> <block type="procedures_callnoreturn" id="D,,l+P6rqYVjf;W_ssfV"> <mutation name="Steckdose"></mutation> </block> </next> </block> </statement> <next> <block type="schedule" id="i]5(xi+AsodxbD}ie+E~"> <field name="SCHEDULE">0 21 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="*88(xzk6PTC`opAfhz$+"> <field name="VAR" id="Wg=Kx)B2jS@5sHnC-GjP" variabletype="">Nachtruhe</field> <value name="VALUE"> <block type="logic_boolean" id="BQ(Sy7oq{oR_1si)?MoB"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="UG{5@|RI7neleL*{(]vr"> <mutation name="Steckdose"></mutation> </block> </next> </block> </statement> <next> <block type="schedule" id="1BxLuB==*AT,6{H~eB_b"> <field name="SCHEDULE">0 7 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="HN5j{NW1Ecxk$m[4bE=e"> <field name="VAR" id="Wg=Kx)B2jS@5sHnC-GjP" variabletype="">Nachtruhe</field> <value name="VALUE"> <block type="logic_boolean" id="t7q$0EOeKREs$C2pYZ}i"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="lu`qfG%KH`@P9J4NT~:f"> <mutation name="Steckdose"></mutation> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="LNLf}4H8lV=Ge#vy!#YZ" x="363" y="13"> <field name="NAME">Steckdose</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="37uxm2u@ZP15cwHFBP5,"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="g7,5TKwcr}I3h_Pa2Cl," inline="false"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="}r_o69LPG6ajxjU$h:KV"> <field name="VAR" id="Wg=Kx)B2jS@5sHnC-GjP" variabletype="">Nachtruhe</field> </block> </value> <value name="B"> <block type="logic_operation" id="OP70TDHjO;Koj7bWJRXx" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_negate" id="Q|.dn,yjN$ya#pz(uY/y"> <value name="BOOL"> <block type="variables_get" id="voy^i7@iTQ^cb56UcqCG"> <field name="VAR" id="!rm1dl0R?IS0xR^zOKfz" variabletype="">TV</field> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="2yfNcB:wo$a]jeB)h,ON"> <value name="BOOL"> <block type="variables_get" id="uH-_1^0tG4)bI2lE(XqE"> <field name="VAR" id="nuLeyg)0=b%9p:7`B`m1" variabletype="">Anwesenheit</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="(L*L7OwEx1Uwr#my9ly="> <mutation delay_input="false"></mutation> <field name="OID">Test.0.Steckdose</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="wH((r[5|Pw+L18YSrzP`"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_negate" id="ntXC!2knRBSbi;;(mn6."> <value name="BOOL"> <block type="variables_get" id="3h[oawL{7r6wu.;SJ6e%"> <field name="VAR" id="Wg=Kx)B2jS@5sHnC-GjP" variabletype="">Nachtruhe</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="GYvY_y%XMF+#:-lV2oCb"> <mutation delay_input="false"></mutation> <field name="OID">Test.0.Steckdose</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="0T8=kRA{*8THui-KpIWx"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml> Hier würde dann um 07:00h die Steckdose automatisch eingeschaltet, wenn das manuell erfolgen soll - und nicht automatisch - müßte der "sonst falls" Bereich entsprechned geändert werden.
  • [gelöst]Warum zeitversetztes Einschalten?

    7
    1
    0 Stimmen
    7 Beiträge
    731 Aufrufe
    Matthias HM
    @BBTown Vielen vielen Dank. so funktioniert das . Top. Hätte ich nicht hinbekommen:+1:
  • Hue soll Shelly schalten

    Ungelöst
    8
    0 Stimmen
    8 Beiträge
    4k Aufrufe
    F
    @HeliosFan hi ich hab einfach diesen unten seitlich in den Postkasten geklebt Verzögerung ist ca 3-4 sec der Hue Adapter fragt alel 3 sec ab. In der Praxis läuft das trotz Metallbriefkasten ! der ganz aussen in der 10 M einfahrt ist sehr gut. <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="`p]Xn8a.6HqjxE%/tkvU">warten</variable> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="on_ext" id="6=m2OGAHG*oml0Xu##IP" x="-262" y="-237"> <mutation items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="R6aI=!j;pG6Luf#id_)*"> <field name="oid">hue.0.Philips_hue.Testbewegungdmelder.presence</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Mb]Q+EB,+(UxpMRk:,,k"> <value name="IF0"> <block type="logic_negate" id="[qP2bouvPAg|9@Oz%Rqc"> <value name="BOOL"> <block type="variables_get" id="z7),r?/_i31knom;BE0^"> <field name="VAR" id="`p]Xn8a.6HqjxE%/tkvU" variabletype="">warten</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="K]z?y|p#.S^U?IFoFY,T"> <field name="VAR" id="`p]Xn8a.6HqjxE%/tkvU" variabletype="">warten</field> <value name="VALUE"> <block type="logic_boolean" id="v`]9Ng?d,ZNr?VH@q*(m"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="pushover" id="HFL4/j5CcVGI}gX7)`zX"> <field name="INSTANCE">.0</field> <field name="SOUND"></field> <field name="PRIORITY">0</field> <field name="LOG"></field> <value name="MESSAGE"> <shadow type="text" id="??G{y36)Upw:*k6!f)s1"> <field name="TEXT">Post ist da</field> </shadow> </value> <next> <block type="control" id="X|.|+BtfVm!9J%Y]Kv,5"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.1.Echo-Devices.G000WV0484541A9F.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="aq/o:~iX6FK(F]YpuXD]"> <field name="TEXT">Hurra die Post ist da</field> </block> </value> <next> <block type="control" id="8a?uNT:YG9IXh6ClzlSI"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.1.Echo-Devices.G070RR0975070D18.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="%5.^X]nQbcN#RYRKDH/Q"> <field name="TEXT">Hurra die Post ist da</field> </block> </value> <next> <block type="timeouts_settimeout" id="!lv],e#d!q@F%FUN(r!Z"> <field name="NAME">timeout</field> <field name="DELAY">60</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="H37H^W{=GK;W}EE^ScSe"> <field name="VAR" id="`p]Xn8a.6HqjxE%/tkvU" variabletype="">warten</field> <value name="VALUE"> <block type="logic_boolean" id="kt?ZI|H}MU?*DF,9s5nT"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
  • [gelöst] Virtueller Schalter funktioniert nicht

    33
    3
    0 Stimmen
    33 Beiträge
    3k Aufrufe
    H
    @paul53 Nochmal recht herzlichen Dank für Deine Geduld mit mir alten Esel. Manchmal sieht man den Wald vor Bäumen nicht, oder vielleicht denke ich auch zu umständlich :blush: :blush: Ich hab es gelöst. Zunächt habe ich den virtuellen Schalter neu erstellt (auch im cloud.0 Adapter) und neu von Alexa suchen lassen. Da Alexa jeden Befehl erst mal mit OK beantwortet (sofern nichts anderes eingestellt) ging die Ausgabe über den speak Befehl unter, da die Verzögerung fehlte. Dann fehlte noch die Rückstellung des virtuellen Schalter auf false, nachdem das Blockly durchgelaufen ist und die Synchronisation mit meinen HMIP Wandthermostat, der die vom Script vorgenommene Temperatur Anhebung nicht mitbekommen hatte. Nun für alle die mit der selben oder ähnlich gelagerten Problematik zu kämpfen haben hier das finale Blockly: [image: 1573805795731-8c87c9b9-6a93-489c-867f-828cf03f56f9-grafik.png] der funktionierende Schalter: [image: 1573800159881-0feaea4c-ed14-4690-82b9-38bc665eca88-grafik.png] Und die Cloud Anbindung für Alexa: [image: 1573800253291-c8a3f600-e4d4-4da9-bf3f-d21117f71474-grafik.png] Und aufrufen kann man es mit: "Alexa schalte schnellheizen ein"
  • Nanoleafs reagieren nicht auf Zigbee switch

    Verschoben nanoleaf blockly cc2531
    5
    1
    0 Stimmen
    5 Beiträge
    435 Aufrufe
    S
    @sochin67 Problem gelöst mit Adapter-Neustart...
  • Zeitfenster in dem Script ausgeführt werden soll

    blockly template
    4
    1
    0 Stimmen
    4 Beiträge
    334 Aufrufe
    paul53P
    @Spitfire4all sagte: in der Woche von 17:00 Uhr bis 20:00 Uhr und am Wochenende von 10:00 Uhr bis 22:00 Uhr. [image: 1573764931430-blockly_temp.jpg]
  • Zählen über Zeitraum

    6
    0 Stimmen
    6 Beiträge
    451 Aufrufe
    H
    @paul53 Vielen Dank
  • (gelöst) Alexa sagt welche Fenster geöffnet sind

    blockly
    16
    2
    0 Stimmen
    16 Beiträge
    787 Aufrufe
    dslraserD
    @HAL sagte in (gelöst) Alexa sagt welche Fenster geöffnet sind: Ich muss noch einen Zähler einbauen wenn nur ein Fenster offen ist" Aktuell ist das Fenster xy geöffnet" oder bei mehreren "Aktuell sind die Fenster xy und xz und xz geöffnet" Das habe ich für eine Telegramausgabe so geregelt. Fenstersensoren mit Werten mit auf/zu [image: 1573670795019-bildschirmfoto-2019-11-13-um-19.44.56.png] Fensterdrehgriffe mit Werten auf/zu und gekippt [image: 1573670890048-bildschirmfoto-2019-11-13-um-19.45.30.png] Auswertung: [image: 1573670158425-img_20191113_193433_604.jpg] Das ergibt dann das hier: [image: 1573670192959-screenshot_20191113-193416_telegram.jpg]
  • Echo+ an Alexa steuern

    9
    1
    0 Stimmen
    9 Beiträge
    385 Aufrufe
    _
    Hi, ich habe jetzt jede erdenkliche Konstellation mit den Werten ausprobiert. Erfolglos. Gibt es niemanden der es bisher zum laufen bekommen hat?
  • Heizung smart machen

    7
    1
    0 Stimmen
    7 Beiträge
    616 Aufrufe
    H
    @paul53 Vielen Dank, es scheint soweit zu laufen. Auf das Konstrukt wäre ich vermutlich so nie gekommen....Super
  • Script Fenster auf Telegram Nachricht

    51
    1
    0 Stimmen
    51 Beiträge
    4k Aufrufe
    crunchipC
    @technodj23 ist möglich, da musst du bei den blockly scripten, was dir @dslraser oben, als link geschickt hat, nachlesen
  • Tür klingel mit ip cam verbinden

    6
    0 Stimmen
    6 Beiträge
    723 Aufrufe
    E
    @crunchip sagte in Tür klingel mit ip cam verbinden: @dan4711 ein Beispiel in Blockly Auch wenn vielleicht nur alles Netzintern, aber man sieht das Benutzer und PW von deiner Cam im Skript.

600

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge