Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.5k Themen 79.5k Beiträge

NEWS

  • Shelly 2.5 - Rolladensteuerung mit Blockly

    blockly
    15
    4
    0 Stimmen
    15 Beiträge
    3k Aufrufe
    da_WoodyD
    @Pehe28 :+1: blockly ist für mich noch ein böhmisches dorf. gaaaanz langsam versteh ich was da steht. nur mit den teilweisen "krampfhaften" eindeutschungen tu ich mir "etwas" schwer. ein if then else klingt da etwas vertrauter... oder true false da bin ich für meine rollos schon froh über den shuttercontrol. :D
  • Rolladensteuerung Skript funktioniert nicht richtig

    5
    1
    0 Stimmen
    5 Beiträge
    487 Aufrufe
    P
    @paul53 wieder was gelernt. Danke:+1:
  • Philips Dimmer mit LED Strip -Wie Farbe ändern ?

    8
    1
    0 Stimmen
    8 Beiträge
    703 Aufrufe
    SlowmanS
    @jensven Vielen Dank für deine ausführliche Erklärung !
  • Homematic IP Fensterkontakt kleiner Denkanstoß

    15
    0 Stimmen
    15 Beiträge
    912 Aufrufe
    Thomas BraunT
    @Fipser sagte in Homematic IP Fensterkontakt kleiner Denkanstoß: dachte schon es hagelt dumme Kommentare. Die kommen bei der nächsten Frage! ;-)
  • Verständnisfrage Falls - Sonst Falls

    4
    2
    0 Stimmen
    4 Beiträge
    364 Aufrufe
    ?
    @Asgothian @paul53 Danke für eure schnellen und ausführlichen Antworten. Ah ja okay ich verstehe. Ja ich habe es sowieso zwischenzeitlich abgeändert. Und nutze nun den Umschaltblock Nun sieht es so wie auf dem Bild unten aus und läuft so auch einwandfrei. Man lernt ja nie aus. :P Danke Nochmal [image: 1602169684853-bildschirmfoto-2020-10-08-um-17.07.55.png]
  • Dimmer Synchronisation gibt Fehler aus

    5
    1
    0 Stimmen
    5 Beiträge
    416 Aufrufe
    Phil IppP
    @Asgothian danke für die Denkanstöße, das probier ich gern selbst aus! Macht ja auch Spaß ein bisschen selbst zu denken, und nicht alles fertig abzuschreiben ,) Melde mich dann lieber, falls es nicht klappt. Soweit ich das sehe, sind die Werte aber eh zwischen 0 und 100. Ist gerade reines Interesse, weil Du es erwähnt hattest.
  • [gelöst]Popup mit Blockly

    blockly
    6
    0 Stimmen
    6 Beiträge
    734 Aufrufe
    liv-in-skyL
    @markusk1407 wenn man es ganz genau haben möchte und sturmklingler oder kurz hinteinander klingler immer wieder das blockly starten [image: 1602065058057-image-4.png]
  • Kamera einschalten wenn alle außer Haus sind

    blockly
    7
    1
    0 Stimmen
    7 Beiträge
    980 Aufrufe
    R
    @Erbse Ich habe mir das gerade noch einmal in Blockly (das benutze ich nur) angesehen. Da kann man eine Variable auch triggern, damit wäre dann deine Anforderung erfüllt. Hier mal ein Beispiel: [image: 1602030019972-f51807f5-2576-4095-be4f-757441da864f-image.png] Enrico
  • Alexa soll Gong (.mp3) vor der Ansage abspielen

    4
    0 Stimmen
    4 Beiträge
    891 Aufrufe
    B
    Hi, hast Du es hinbekommen ?? Genau da will ich auch tun !!
  • Regenmenge der letzten drei Tage berechnen

    blockly climate
    71
    0 Stimmen
    71 Beiträge
    7k Aufrufe
    paul53P
    @Homoran sagte: oder es muss ein anderes gewesen sein Das muss es. Der Datenpunktname ist eine Eigenschaft des Datenpunkt-Objektes und taucht im Script nicht auf, kann also nicht mit einem Variablenbezeichner kollidieren.
  • Lichtwert schrittweise erhöhen.

    5
    2
    0 Stimmen
    5 Beiträge
    552 Aufrufe
    FenriswolfF
    @FredF sagte in Lichtwert schrittweise erhöhen.: @Fenriswolf sagte in Lichtwert schrittweise erhöhen.: Eigentlich erwarte ich, wenn ich ein Stop einfüge, das ich dann in diesem Fall "Intervall2" auswählen kann. Das ist aber nicht der Fall. Du musst den Block stop zyklische Ausführung nehmen Ahhh .... OK, ist geändert, werde ich morgen früh beobachten Danke.
  • Keine Namen der Objekt IDs im Blockly (gelößt)

    4
    1
    0 Stimmen
    4 Beiträge
    425 Aufrufe
    P
    Danke für den Tip, ich habe jetzt wieder den Javascript Adapter 4.6.17 installiert. Nun sind alle Namen wieder zu sehen. VG
  • RFLink KaKu Lampeschaltet in objecte, VIS nicht in Blockly

    1
    1
    0 Stimmen
    1 Beiträge
    203 Aufrufe
    Niemand hat geantwortet
  • Steckdose mit Philips Hue Bewegungsmelder triggern

    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    S
    @paul53 Ach so, klar. Der Datenpunkt "SteckdoseASchalten" ist ein virtueller Datenpunkt, den ich im iot-Adapter als Alexa-Gerät bekannt gemacht habe, damit ich die Steckdose auch per Sprache schalten kann. Dahinter liegt dann ein Skript, mit dem ich die Buttons im Broadlink2.0-Adapter schalte: <block xmlns="https://developers.google.com/blockly/xml" type="on" id="0^]kU,id=C9A_,~`qN_6" x="-787" y="-1037"> <field name="OID">0_userdata.0.SteckdoseASchalten</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="u%:D-QR0MHp3)p/xfNu2"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="YBdz:tfutxk4W:lvX|1T"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="v}6$,t/mT2sHr2;8[?+["> <field name="ATTR">val</field> <field name="OID">0_userdata.0.SteckdoseASchalten</field> </block> </value> <value name="B"> <block type="logic_boolean" id="pR6}]Vn~B$F9CWm)Kq}G"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="zH8q5;ItaAWug5TCN98*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">broadlink2.0.RM:Broadlink-RMPROPLUS-88-f9-fb.L.Elro-Steckdose A an</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="wnQyd)Qms^Pl0pepn)~b"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="[f.h-5olaopUif$zQ$uZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">broadlink2.0.RM:Broadlink-RMPROPLUS-88-f9-fb.L.Elro-Steckdose A aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="hY_k+[9eTGShl3ikCJ|Q"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> Vielleicht macht das auch noch einen Unterschied hinsichtlich meiner Anforderungen?
  • einfaches Skriptproblem - ich komm nicht drauf!

    13
    1
    0 Stimmen
    13 Beiträge
    443 Aufrufe
    B
    @paul53 Ah, I am happy. Jetzt gehts :) Gestern den ganzen Abend drangehockt, nichts geklappt.
  • Alexa Radiosender eingeschalten bei Bewegung im Raum

    blockly
    48
    1
    0 Stimmen
    48 Beiträge
    9k Aufrufe
    oberfraggerO
    @michael-1975 Moin, ich verwende zum stoppen von Alexa immer den Datenpunkt "controlPause". Funktioniert problemlos. [image: 1601762793082-8cac1ed7-9bc4-47ec-9525-1ae96dba22b9-image.png]
  • Trigger od. Schleife wenn Tür geschlossen

    blockly
    6
    0 Stimmen
    6 Beiträge
    435 Aufrufe
    paul53P
    @aldoa1 sagte: Könnte mir jemand helfen? Export <xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="P|eo@Kc,p^v4wpWrKz]:" x="163" y="863"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">lt</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="4,@?z:.bQlC6]u*3Zxhj"> <field name="oid">default</field> </shadow> <block type="text" id="6V+~Zbm[hheHJK[f=h{u"> <field name="TEXT">hm-rpc.1.0000DBE996E554.1.STATE</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="d@OiGZ(75H]oEsALsW7X"> <value name="IF0"> <block type="logic_operation" id="l^Bt%S(d!V@ml](qG(D@" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="xt2Cln_[bVW{m.{=%8=A"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow type="text" id="^?z3xwMb;H]Q}5dL(!M$"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="%Mt6d0]A=]Oq@lW]+9n^"> <field name="TYPE">sunrise</field> <field name="OFFSET">-35</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="/)WO@y[.~[]PC9$/u.u8"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="(/:DuyT1U3HI`z]:LW;t"> <field name="TYPE">sunset</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="_[TD)QTvl+/C`+MENJq0"> <field name="OP">GT</field> <value name="A"> <block type="get_value_var" id="7(*wJF~ah@o|O;21KiC`"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="Xu,oq8qr~z^`T^$dCI;l"> <field name="TEXT">javascript.0.Rollo-Tür</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id="U+6t9|SS,)~f3G1#?BUh"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="SewRZCXf_FH/MMA462a="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Rollo-Tür</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="1JmHrnub7Ie@e:tb/5ew"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="astro" id="4!Y)8D%$][i?NiD,KQt:"> <field name="TYPE">sunset</field> <field name="OFFSET">0</field> <statement name="STATEMENT"> <block type="controls_if" id="xxYegC-*6y-DD@5G?@Q."> <value name="IF0"> <block type="logic_operation" id="qw[~`oTlSVWS9GMXOadE" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="S2udt?l+/[2Th=Pd-Z2z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="s%09vhG$/`LZE|(+.r4#"> <field name="ATTR">val</field> <field name="OID">hm-rpc.1.0000DBE996E554.1.STATE</field> </block> </value> <value name="B"> <block type="logic_boolean" id="p;t.!2kWn+i2F}H=Ox]g"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="8xGt2B7ffMy~k8!59L=j"> <field name="OP">GT</field> <value name="A"> <block type="get_value_var" id="}%vm]fExu~N{=Yc}QD3L"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="*r(#p,CYOnuW,EpJ$SX."> <field name="TEXT">javascript.0.Rollo-Tür</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id="-].WJ!-OC_J%6=_8w*9("> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Y-ZUIq|D!D01Sqj6^8X="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Rollo-Tür</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="e^nUjr=22QSQ#l-?fWIq"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </xml>
  • Variable (laden/geladen) für eine Wetterstation.

    6
    1
    0 Stimmen
    6 Beiträge
    443 Aufrufe
    K
    @paul53 besten Dank für Deine Mühe.... Das Script läuft natürlich. Verständlich ist es auch! Jetzt spring der Zustand von Akku - "Geladen" auf "Leer" und ändert die Farbe vom grün auf orange. [image: 1601661003813-7.png] Vielen Dank nochmals.... :+1:
  • Trigger: Wenn Wert länger gehalten wird

    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    D.VED
    Ich hab mal eine kleine Methode implementiert, die das realisiert. Einfach als Globale JS Funktion einfügen: var historyValuesOBJ ; function compareHistoryValue(currentValueFLT, operatorSTR, compareValueFLT, durationINT, identifierSTR) { console.log(currentValueFLT + " " + operatorSTR + " " + compareValueFLT + " For " + durationINT + "s"); //Current timestamp var currentTimeTST = Math.round(new Date().getTime() / 1000); //check if the global object exists and create it if not if (typeof historyValuesOBJ == "undefined") { historyValuesOBJ = {}; historyValuesOBJ[identifierSTR] = {}; historyValuesOBJ[identifierSTR].lastCallINT = currentTimeTST; historyValuesOBJ[identifierSTR].countINT = 0; } //Calculate the delata since last Call var deltaTimeINT = currentTimeTST - historyValuesOBJ[identifierSTR].lastCallINT; //Add the dealte to the count value historyValuesOBJ[identifierSTR].countINT = historyValuesOBJ[identifierSTR].countINT + deltaTimeINT; //set the last call to current timestamp historyValuesOBJ[identifierSTR].lastCallINT = currentTimeTST; console.log("Time since Last Call: " + historyValuesOBJ[identifierSTR].countINT ); if (operatorSTR == '<' ){ //if comparison fails, reset counter if (currentValueFLT >= compareValueFLT) { historyValuesOBJ[identifierSTR].countINT = 0; return false; } //if comparison is true else if (currentValueFLT < compareValueFLT) { //return true if value is larger if (historyValuesOBJ[identifierSTR].countINT >= durationINT){ return true; } return false; } } else if (operatorSTR == '>' ){ //if comparison fails, reset counter if (currentValueFLT <= compareValueFLT) { historyValuesOBJ[identifierSTR].countINT = 0; return false; } //if comparison is true else if (currentValueFLT > compareValueFLT) { //return true if value is larger if (historyValuesOBJ[identifierSTR].countINT >= durationINT){ return true; } return false; } } } Im Blockly baut man sich dann noch einen Wrapper (JS-Funktion mit Ergebnis): [image: 1601638953916-222b82a7-e309-49c1-9590-fb509f99bcc8-grafik.png] Und kann das dann so benutzen: [image: 1601639065236-18108933-ea4e-445f-9ee4-16a251937167-grafik.png] Das obige Script gibt true zurück, wenn der Wert für mindestens 45 Sekunden unter 500 geblieben ist. ToDo: Ich habe nur größer und kleine implementiert, es fehlen noch Gleich sowie Größer-Gleich und Kleine-Gleich an Operatoren Auch vergleiche mit true/false fehlen noch Leider muss man noch einen Identifier angeben, damit das Script die Werte intern korrekt speichern kann. Wenn jemand eine Idee hat, wie man das Generisch gestalten kann, immer her damit.
  • [gelöst]mit blockly dateigröße ermitteln

    3
    0 Stimmen
    3 Beiträge
    345 Aufrufe
    T
    @MCU perfekt! funktioniert wunderbar. vielen dank für die schnelle hilfe.:blush:

494

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge