Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.6k Topics 79.5k Posts

NEWS

  • Vis-Button soll Script mit Parameter aufrufen

    1
    0 Votes
    1 Posts
    175 Views
    No one has replied
  • obj.common.name undefiniert - durch Timingproblem?

    Moved blockly
    9
    1
    0 Votes
    9 Posts
    392 Views
    apollon77A
    @padrino Ist halt ein Timing Thema ,... 99% vs 1% und so :-)
  • Blocky bringt mich in den Wahnsinn

    16
    1
    0 Votes
    16 Posts
    1k Views
    AsgothianA
    @Hoffiheller das macht so wenig Sinn: der trigger auf “größer oder gleich als vorher” in diesem Fall fast identisch zu “wurde aktualisiert” (true->true triggert, false->false triggert, false->true triggert, nur true->false triggert nicht. der wenn Fall wird bei jedem trigger wenn mindestens ein Licht an ist gestartet. Der sonst Fall tritt nur auf wenn beide Lichter aus sind und mindestens einer der Werte aktualisiert wurde. Die Nachricht (Telegramm) wird geschickt wenn der trigger kommt, nicht wenn das Licht vor Ablauf der 60 Minuten ausgeschaltet wurde. es erfolgt keine Nachricht wenn das Licht nach der Stunde ausgeschaltet wurde. Der Ausweg sieht so aus: [image: 1579125096834-8c823baa-adb0-4a86-93f3-f85cbfe2451c.jpeg] Natürlich musst du die Objekt ids noch korrekt setzen. Nachtrag: ich hab im falls einen Fehler, da muss oder statt und stehen. A.
  • [Gelöst] Überwachung mit Pushsafer Mitteilung

    blockly monitoring
    7
    1
    0 Votes
    7 Posts
    590 Views
    A
    @paul53 Vielen Dank. Sorry für die Anfängerfragen. Aber nun passt des und ich verstehe es auch :-). Er nimmt sich also die Werte des Objektes welches oben im Trigger genutzt wird. Ich hab es nun gerade mal getestet. Funktioniert augenscheinlich super. Danke!
  • [Tutorial] 7-teiliger Video-Grundkurs zu Blockly!

    10
    11 Votes
    10 Posts
    5k Views
    nurChrisN
    @FredF Hallo FredF, das ist super. Gemeint war hier aber eher die Docu die hier im Forum oben angezeigt wird. Ist ja etwa wie eine Wiki. Grüße Chris
  • Blockly Script Bedingung funktioniert nicht

    14
    1
    0 Votes
    14 Posts
    796 Views
    B
    danke, versuche ich mal :)
  • Datenpunkt manuelle Bedienung HM-Schalter?

    4
    0 Votes
    4 Posts
    667 Views
    paul53P
    @flkontakt sagte in Datenpunkt manuelle Bedienung HM-Schalter?: Setze ich den State switch vom HM-Aktor Siehst Du noch einen anderen Datenpunkt als STATE ? @flkontakt sagte in Datenpunkt manuelle Bedienung HM-Schalter?: vom Xiaomi BWM den State indicator.motion? Das ist nur der Trigger. Alle steuere wirken auf den HM-Datenpunkt STATE. Zur Logik: Wenn Bewegung erkannt wird (falls Wert), und der Aktor bereits ein ist, aber nicht durch die Ausschaltverzögerung (nicht timeout), dann wurde das Licht manuell eingeschaltet. Wenn Bewegung erkannt wird und das Licht ist aus oder in der Ausschaltverzögerung, wird das Licht eingeschaltet und die Auschaltverzögerung gestoppt. Die Variable manuellEin verhindert bei wahr das verzögerte Ausschalten, wenn kein Bewegung mehr erkannt wird (sonst-Zweig). EDIT: Ergänze bitte noch um den untersten Befehl: setze timeout auf null [image: 1578940142563-blockly_temp.jpg]
  • Telegram Nachrichten in VIS

    5
    0 Votes
    5 Posts
    397 Views
    AphofisA
    @bahnuhr Das wäre eine möglichkeit, aber wie mus so ein datenpunkt sein und was muss ich ins blockly einbauen, damit die meldungen dann in diesen datenpunkt geschrieben werden
  • Recorder aus der Ferne starten (kein VPN nötig)

    1
    1
    0 Votes
    1 Posts
    99 Views
    No one has replied
  • Tastendruck via Blockly simulieren/ auslösen

    18
    1
    0 Votes
    18 Posts
    3k Views
    ruhigundrelaxedR
    ja, er hat gefrickelt. danke, für die zeile 290, hab ich übersehen. mir wird irgendwie schlecht, wenn ich meinen alten code sehe... ich muss den mal grundlegend neu bauen...
  • Handy-PING um Kaffeemaschine zu schalten

    7
    0 Votes
    7 Posts
    544 Views
    paul53P
    @ionar sagte: nur eines aktualisiert werden, um das Skript zu triggern? Ja, es ist eine Oder-Verknüpfung der Ereignisse.
  • Kann einige Werte nicht per Blockly verarbeiten

    5
    0 Votes
    5 Posts
    420 Views
    G
    @Homoran ja klar, read only... Ich wollte eine Minimum-Maximum Auswertung machen. Aber sobald ich im Blocky z. B. diesen Wert als Trigger oder sonstigem einbinde und ihn anwähle, kann ich das Blockly nicht speichern, oder gar André Dinge weiter eingeben!
  • [gelöst] ONKYO Receiver zum Aufstehen einschalten

    7
    1
    0 Votes
    7 Posts
    257 Views
    RaspiUserR
    @Homoran Super, vielen Dank !!!! Da habe ich jetzt ja einiges vor ....
  • Datenpunkte werden neu geschrieben

    9
    0 Votes
    9 Posts
    346 Views
    C
    Ich Danke euch erstmal Herzlich. Im Moment raucht mir einfach die Birne. Aber ich werde Morgen weiter machen und eure Tips ausprobieren. Tolles Forum!! Vielen Dank an euch und schlaft alle gut. Bis Morgen evtl. wenn ich nicht weiter komme melde ich mich. LG Frank
  • [gelöst] Blockly warte auf Änderung von Datenpunkt

    blockly
    2
    0 Votes
    2 Posts
    345 Views
    X
    Mit dem untenstehenden Code innerhalb eines Blockly Javascript Blocks funktioniert es wie ich es brauche. console.log("ttsOnTrigger"); let sub = on({id:"alias.0.TTS.Anwesenheitstrigger"},(obj) => { console.log("ttsNow"); ttsNow(); unsubscribe(sub);});
  • [gelöst]Blockly Debug Result,verw. ein. Teilstring

    4
    1
    0 Votes
    4 Posts
    500 Views
    K
    Ich danke euch vielmals, @paul53 deine Lösung funktioniert super, aber zumindest war ich heute Vormittag schon mal Nah dran, aber Aufbau falsch..
  • [gelöst] Alias Zahl in Skript immer NULL

    blockly
    4
    3
    0 Votes
    4 Posts
    248 Views
    X
    Ein Neustart der Skript Engine hat das Problem beseitigt.
  • Millisekunden in SS:mm:ss umrechnen?

    3
    1
    0 Votes
    3 Posts
    391 Views
    padrinoP
    @Chaot Danke. :) Für meine Zwecke ist das fast schon zu komplex, da ich maximal nur so 1-2 Stunden an "Dauer" benötige. ;) Ich habe mir jetzt einfach so geholfen, dass ich vom Wert "Stunden" 1 abziehe, dann passt es - Minuten und Sekunden stimmen ja... Keine Ahnung, was gethours() da anders macht als getminutes() und getsecond(s), aber mit "-!" passt's erstmal und da soll es für den Moment genügen. :innocent:
  • Blockly richtig, habt ihr Optimierungen?

    blockly javascript
    7
    1
    0 Votes
    7 Posts
    1k Views
    snookerapS
    Super, bin damit nun am Ziel. Habe das Skript nun noch um die rechts/links-Tasten erweitert, damit kann man nun auch die Farbtemperatur ändern. Vielen Dank. Hier noch das Skript zur runden IKEA Tradfri Fernbedienung: Spoiler <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="Intervall">Intervall</variable> <variable type="undefined" id="Intervall2">Intervall2</variable> </variables> <block type="comment" id="GF?#]TDMX0fEUD5;_010" x="-112" y="13"> <field name="COMMENT">Tradfri Fernbedienung rund</field> <next> <block type="on" id="PS7sjAC%Zz]_`PCPSsHG"> <field name="OID">deconz.0.Sensors.21.buttonpressed</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="S|K#ydTR12qX0elAf@BO"> <mutation elseif="8"></mutation> <value name="IF0"> <block type="logic_compare" id="49d}ONGxYMVl^Q[On#]v"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="oiG.ITkl:.9o7{_}X9}M"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=")8LqWiRMJ`^TPQA[7u?p"> <field name="NUM">1002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="g,@Bi+F{ebs9:DMEK(y("> <field name="COMMENT">PowerButton an/aus</field> <next> <block type="toggle" id="GTWB@zw%bHy=B:,0*M:L"> <mutation delay_input="false"></mutation> <field name="OID">deconz.0.Lights.11.on</field> <field name="WITH_DELAY">FALSE</field> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="jW~||2rj0n):0ZcabS6Z"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="g?C/*M5}~lsGHl;d/.}x"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="fuoJYSyzUDbb,kDw/K#F"> <field name="NUM">2001</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="0;(Ira]r^}^A[HuV-pxP"> <field name="COMMENT">HellerButton gedrückt halten</field> <next> <block type="timeouts_setinterval" id="+8e^LD*/n7IAk_[qVtKp"> <field name="NAME">Intervall</field> <field name="INTERVAL">100</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="control" id=":O`(O~Xm9K^$HdAY_Ugg"> <mutation delay_input="false"></mutation> <field name="OID">deconz.0.Lights.11.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="xL{U:#n-)o,p+[;I9I1M"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="K.Tqe=!]r;F=2=n_:,9s"> <field name="NUM">1</field> </shadow> <block type="get_value" id="%0KZJ55(w!LpB?]S+a:s"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.11.bri</field> </block> </value> <value name="B"> <shadow type="math_number" id=",:LrhAOF20_xFO{EO}}+"> <field name="NUM">5</field> </shadow> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_compare" id="^Q+E!bb7_1X^h@!_Cf#Z"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="/fHwAA$~5oF2z_qPw/oc"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="Z7-MEz,W.uqjovD@E7hW"> <field name="NUM">2003</field> </block> </value> </block> </value> <statement name="DO2"> <block type="timeouts_clearinterval" id="$L_dFqmV3UCKQHQ))Ph)"> <field name="NAME">Intervall</field> </block> </statement> <value name="IF3"> <block type="logic_compare" id="e@#;:j%gTiE49jXv5LfP"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="wvx*4WdQzL`(w!Myx~60"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="#/XPR1}uYCeC!j0fiMLj"> <field name="NUM">2002</field> </block> </value> </block> </value> <statement name="DO3"> <block type="comment" id="_iJm@?sm2ch$@C=|:|wZ"> <field name="COMMENT">HellerButton kurz drücken</field> <next> <block type="control" id="1Nes%3/w8lO0$(r@amD,"> <mutation delay_input="false"></mutation> <field name="OID">deconz.0.Lights.11.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id=":APjOg1u[MFVR?TmoY*9"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="x5UG8IW$t%r:{+oje{h^"> <field name="NUM">1</field> </shadow> <block type="get_value" id="b$zWLnSevo;2m(LTG/xI"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.11.bri</field> </block> </value> <value name="B"> <shadow type="math_number" id="EL3o5qF%r@P[,76)vwBu"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> <value name="IF4"> <block type="logic_compare" id="GtDo4SwgdMCgm4M-(oxX"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="{ON(*:nOi/Fo!;-Vnor)"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="fY3%{TKV}Uu.|[1B.s/W"> <field name="NUM">3001</field> </block> </value> </block> </value> <statement name="DO4"> <block type="comment" id="O3MR8B/S`;9SWb]s!._6"> <field name="COMMENT">DunklerButton gedrückt halten</field> <next> <block type="timeouts_setinterval" id="p/j*@#}dBXopL%g;~{8("> <field name="NAME">Intervall2</field> <field name="INTERVAL">100</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="control" id="7GOv#eCNZ3aG}pl)~N4["> <mutation delay_input="false"></mutation> <field name="OID">deconz.0.Lights.11.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="]T?B7Q$V~Z@qX58lzB2$"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="K.Tqe=!]r;F=2=n_:,9s"> <field name="NUM">1</field> </shadow> <block type="get_value" id="R@0e2ZgFqrP|Kg5h_mjJ"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.11.bri</field> </block> </value> <value name="B"> <shadow type="math_number" id="4td,9E240^l$VUJw|QvS"> <field name="NUM">5</field> </shadow> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> <value name="IF5"> <block type="logic_compare" id=":uT}}1Jyj(E^ki~~%FAw"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="5oM9z5IYMMs(gfqkw!Ph"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="+.9}/,HqYnohoOx[hQE_"> <field name="NUM">3003</field> </block> </value> </block> </value> <statement name="DO5"> <block type="timeouts_clearinterval" id="{QYloP}~KUDjL:p1%lQq"> <field name="NAME">Intervall2</field> </block> </statement> <value name="IF6"> <block type="logic_compare" id="FaTb%(n,rsi?IqJP2nyL"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="Sh~wut|vnHZ$mPqbh-UZ"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="u[y?P[~XW|F0=@QcpNr4"> <field name="NUM">3002</field> </block> </value> </block> </value> <statement name="DO6"> <block type="comment" id=";8I-b=cKfU$$k8t^#mJ2"> <field name="COMMENT">DunklerButton kurz drücken</field> <next> <block type="control" id="T.P-{$/8h;%@?Hh9Mie^"> <mutation delay_input="false"></mutation> <field name="OID">deconz.0.Lights.11.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="j)?K/_tAn(3f3FQB@8n/"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="x5UG8IW$t%r:{+oje{h^"> <field name="NUM">1</field> </shadow> <block type="get_value" id="mT~!G2ErYr?`ilQ7!F@{"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.11.bri</field> </block> </value> <value name="B"> <shadow type="math_number" id="s*AwTR}KXhDaf@Z!=qBJ"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> <value name="IF7"> <block type="logic_compare" id="wkB|Bu?+d$*!OM0-DM-5"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="VoN_Iv9?6eN{.)mln7f}"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="ZLgLe{e1JW6pXC;t#B6e"> <field name="NUM">5002</field> </block> </value> </block> </value> <statement name="DO7"> <block type="comment" id="yjD+xVUZ!m88~[oF$p!5"> <field name="COMMENT">rechter Button drücken oder halten</field> <next> <block type="control" id="MU#u3x-^:8{s;7nC.7[q"> <mutation delay_input="false"></mutation> <field name="OID">deconz.0.Lights.11.ct</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="[5hpu(EIxY=!s)k8GI%~"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="x5UG8IW$t%r:{+oje{h^"> <field name="NUM">1</field> </shadow> <block type="get_value" id="rS81j2E!708%r`czh*OU"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.11.ct</field> </block> </value> <value name="B"> <shadow type="math_number" id="C=0#As#~GTa5_Gg3!ss^"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> <value name="IF8"> <block type="logic_compare" id="3d.]lc-VwM9xb@4fv~rR"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="mm-kYA@4jwl?b^UAn4]g"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="doIT]/g.h=o4#P4F5cd_"> <field name="NUM">4002</field> </block> </value> </block> </value> <statement name="DO8"> <block type="comment" id="=K**+WE/L[ON8emj0@,/"> <field name="COMMENT">linker Button drücken oder halten</field> <next> <block type="control" id="HQ+)1j=3?NO;h5u?n}mT"> <mutation delay_input="false"></mutation> <field name="OID">deconz.0.Lights.11.ct</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id=".;?A8=c_4[*`WTb=mOi?"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="x5UG8IW$t%r:{+oje{h^"> <field name="NUM">1</field> </shadow> <block type="get_value" id="`|mYn[9gx;LI}x?}#O.n"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.11.ct</field> </block> </value> <value name="B"> <shadow type="math_number" id="[PinUQ5hb3ee]o65B]Ii"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml> [image: 1578736627763-anmerkung-2020-01-11-105651.png]
  • [Gelöst] Stromverbrauch Berechnung - Logikfehler?

    blockly javascript
    9
    1
    0 Votes
    9 Posts
    2k Views
    I
    @paul53 said in Stromverbrauch Berechnung - Logikfehler?: @Intruminator sagte: mir das erklären? Der aufzuaddierende Wert ist zu klein, um beim Runden auf 4 Nachkommastellen noch einen Unterschied zu erzeugen. Verwende besser eine Variable für den Verbrauch, addiere auf diese auf und runde erst beim Speichern des Variablenwertes in den Datenpunkt. Etwa so: [image: 1578679715333-blockly_temp.jpg] Ok Paul, deine Idee zu dem Skript funktioniert! Einzig die Anzeige der 4 Nachkommastellen ist noch nicht so wie gewünscht. Logischerweise wird bei niedrigen Verbrauchszahlen von W=3 Watt dann 3/3600000 = 0,00000083 kWh pro Sekunde berechnet. Diesen Wert auf 4 Stellen zu Runden gibt dann immer 0. Mein Kompromiss wird es jetzt sein den Wert für den täglichen Verbrauch auf 8 Nachkommastellen zu runden. Dann passt die Berechnung ohne zu starken Rundungsfehler. Im nächsten Schritt werde ich am Ende des Tages den Tageswert aufsummieren und in ein neues Objekt "Monatsverbrauch" schreiben. Hier kann ich mit größeren Werten dann "runden". Der Tageswert wird dann wieder auf 0 gesetzt. :) Danke für die freundliche Hilfe und schönen Samstag noch.

569

Online

32.7k

Users

82.5k

Topics

1.3m

Posts