Weiter zum Inhalt

Blockly

6.6k Themen 80.3k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • Alexa soll Gong (.mp3) vor der Ansage abspielen

    4
    0 Stimmen
    4 Beiträge
    973 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
    10k 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
    638 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
    515 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
    258 Aufrufe
    Niemand hat geantwortet
  • Steckdose mit Philips Hue Bewegungsmelder triggern

    9
    0 Stimmen
    9 Beiträge
    2k 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
    641 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
    10k 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
    556 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
    549 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....
  • 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
    409 Aufrufe
    T
    @MCU perfekt! funktioniert wunderbar. vielen dank für die schnelle hilfe.
  • Blockly schreibt "0", finde Fehler nicht

    10
    4
    0 Stimmen
    10 Beiträge
    838 Aufrufe
    DutchmanD
    @onkel-ede sagte in Blockly schreibt "0", finde Fehler nicht: Die "0"-Werte werden von sourceanalytix geschrieben. Das blockly-script funktioniert also sauber. Nachdem ich sourceanalytix im ursprünglichen Datenpunkt deaktiviert habe, kommen dort auch keine "0"-Werte mehr: wie im SA adapter genannt ist die ein bug im JS-controller und man muss den default wert entfernen damit dies nicht passiert.
  • Alexa Datenpunkt

    blockly
    6
    0 Stimmen
    6 Beiträge
    643 Aufrufe
    P
    @jwedenig hast du die Iobroker Skills in der Alexa App installiert ?? bezüglich dem Datenpunkt bei Alexa der sich nicht ändert, dieses Problem habe ich leider auch ... weiß aber auch nicht warum ...
  • Raspberry mit blockly runterfahren

    10
    1
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    mickymM
    @David-G probiers einfach mit "sudo poweroff"
  • Blockly Konvertierung Zahl in String

    15
    0 Stimmen
    15 Beiträge
    3k Aufrufe
    paul53P
    @maeuseking sagte: Also besser dann wie oben mit der Variablen? Ja.
  • Wert nach Sonderzeichen trennen und in Variable speichern.

    7
    1
    0 Stimmen
    7 Beiträge
    435 Aufrufe
    J
    @paul53 Danke es funktioniert!!! :)
  • Via Telegram Bild und Text senden

    Ungelöst
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    oberfraggerO
    @dslraser Spät aber gerade "wiedergefunden" - ja, das meinte ich! Danke.
  • [gelöst] Shelly Rolladen mit Tadifri on/ off switch steuern

    16
    0 Stimmen
    16 Beiträge
    946 Aufrufe
    D
    das fertige Blockly, vielleicht hilft es jemanden. <xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="yMQ01rUlW1PsHUwFVDIJ" x="112" y="38"> <field name="COMMENT">Ikea Sender STATE</field> <next> <block type="on_ext" id="@)eO^OcBv6{g2ABaNIzB"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="WYi?I7+BW]0{::b~SKz2"> <field name="oid">zigbee.0.680ae2fffe803af6.state</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="m=A=cRiLbKUhT/ky_rGP"> <field name="COMMENT">Shelly STATE</field> <next> <block type="controls_if" id="wh_c=[+U}.9ExA%n?X6H"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="$IP[XBT3*.G=1Ty/TQYP"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="/6E_f3I`(Bt25~FTDPPD"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#98F4ABF2DCE1#1.Shutter.state</field> </block> </value> <value name="B"> <block type="text" id="4bw7@9A$+gj?x1M)B=yP"> <field name="TEXT">stop</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="GCaNE51Cd|`pmD8J{BzY"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="+sb)m]HsmWy3P$7`7=U,"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="comment" id="1`|S0=LVXRH|IPv[g+JA"> <field name="COMMENT">Shelly schliessen</field> <next> <block type="control" id="VyikcOeieHo}@Cd{MHj1"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#98F4ABF2DCE1#1.Shutter.Close</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="y0G/)ZXpJ/=DV:ir_4tr"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="comment" id="1]Raj$(VQU;f:4UXW%/2"> <field name="COMMENT">Shelly öffnen</field> <next> <block type="control" id="i?uY(9nBbCkMhrb3ulMT"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#98F4ABF2DCE1#1.Shutter.Open</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="r,e{b#6FhNz/5@T^LMZF"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="comment" id="%#O5NOPGzaelvq5:2oY{"> <field name="COMMENT">Shelly Stop</field> <next> <block type="control" id="y$8B*`^]}uv?omr$R|(@"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#98F4ABF2DCE1#1.Shutter.Pause</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~a5uv-fE#C#P5)^Z}svl"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </xml> @paul53 nochmals Danke für deine Geduld & Mühe
  • IP-Adressen vergleichen?

    5
    1
    0 Stimmen
    5 Beiträge
    339 Aufrufe
    J
    @fastfoot Danke, es scheint jetzt zu funktionieren :) Den Text Command konnte ich nicht finden weil mein Browser nicht groß genug war sorry :/

476

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge