Skip to content

Blockly

6.6k Topics 79.9k Posts

Hilfe für Skripterstellung mit Blockly

NEWS

  • Dosen im Stundenintervall schalten

    12
    2
    0 Votes
    12 Posts
    733 Views
    da_WoodyD
    @uncleb klar, ich kenn die gegebenheiten nicht. allerdings bin ich mit Aquaristik aufgewachsen. vllt hab ich deswegen dein eingangsposting nicht ganz verstanden, oder falsch interpretiert. seis drum. ich hab dir aber auch hints für eine möglich einfachere lösung gepostet.
  • [Gelöst] "+10" in Zahlenfeld übergeben

    9
    0 Votes
    9 Posts
    480 Views
    GRG
    @homoran Da ginge um js. Läuft!
  • NachrichtTelegramm bei Akku PV über 86%

    4
    1
    0 Votes
    4 Posts
    303 Views
    wendy2702W
    @shigi76 Dann Editiere doch bitte deinen ersten Beitrag und setze ein [Gelöst] vor die Überschrift
  • Probleme u.a. mit Timeout bzw. Intervallen

    3
    0 Votes
    3 Posts
    302 Views
    J
    @bananajoe Vielen Dank. Du hast mir die richtigen Denkanstöße gegeben. Ich habe im Skript noch folgendes verändert: Damit der stream nicht immer neu startet, nehme ich den "volume"-Befehl um die Lautstärke zu ändern. Dadurch bleibt der stream am laufen. Nun läuft es so wie ich es gerne möchte. Vielen Dank noch einmal!!! Hier noch einmal das überarbeitete Skript, falls jemand es noch braucht. Spoiler <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="qF^Dv{8_res2E03z3U@Y">Lautstärke</variable> </variables> <block type="comment" id="TY5y@;wbT[:1UNV3)Mn," x="-487" y="-562"> <field name="COMMENT">Wecker Arbeitszeit Michael</field> <next> <block type="on_ext" id="+J`Ya(FkCm@@I%;}V9S-"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9UlabIyzFWK#;A3.1TrN"> <field name="oid">0_userdata.0.Zeitschaltuhr.Arbeitszeit_Michael</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="9!JB5^oh2Fua~+NlU2dP"> <value name="IF0"> <block type="on_source" id="svY?Oji:cqb@z%kd(soQ"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="comment" id="L#g*Q?G,:jnb,_c7C=]`"> <field name="COMMENT">Licht an</field> <next> <block type="control" id="9enx6r}oJ-L735=b/T89"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Lights.2.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Zk{!JHwgTD$m@D-XG#-0"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="comment" id="9Rj5emq1QUyEF9M^J|x^"> <field name="COMMENT">Lautstärke auf 30 erhöhen, um 3 alle 60 Sekunden</field> <next> <block type="variables_set" id="F@iNKcR]|q8@0l%{~j%^"> <field name="VAR" id="qF^Dv{8_res2E03z3U@Y">Lautstärke</field> <value name="VALUE"> <block type="math_number" id="(zbYz^bus9HU3%UyjDD)"> <field name="NUM">0</field> </block> </value> <next> <block type="request" id="t#;jt[1.U=y(R4b!Ks8r"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="fpINO0bmlEi-;lPB6FbD"> <field name="TEXT"></field> </shadow> <block type="text_join" id="{hI~.Q5.anFY{_dr(,OU"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="Beo`gB_BguS4kvua-46T"> <field name="TEXT">http://192.168.178.28:5005/Schlafzimmer/favourite</field> </block> </value> <value name="ADD1"> <block type="text" id="0{Aj_L_vJ=D6C1W@?W,{"> <field name="TEXT">/Klassik Radio</field> </block> </value> <value name="ADD2"> <block type="text" id="]UR3+;XkR6d*ambIM1B~"> <field name="TEXT">/de-de/</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="o$^,jOl.K/U-c@oi[f)6"> <field name="VAR" id="qF^Dv{8_res2E03z3U@Y">Lautstärke</field> </block> </value> </block> </value> <next> <block type="controls_repeat_ext" id="-_pA=Wi7:9!3aP,KY67H"> <value name="TIMES"> <shadow type="math_number" id="6ar6?`^OUL@no8Tw~x9V"> <field name="NUM">10</field> </shadow> </value> <statement name="DO"> <block type="variables_set" id="w.lPzP3b=?.Cn-.Np!A?"> <field name="VAR" id="qF^Dv{8_res2E03z3U@Y">Lautstärke</field> <value name="VALUE"> <block type="math_arithmetic" id=":FC/6IM8q}t-z*g%2^.j"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="w$n2??9k1FK8i*=Peet_"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="`!{L^1wQ,G}_.@2LH/s+"> <field name="VAR" id="qF^Dv{8_res2E03z3U@Y">Lautstärke</field> </block> </value> <value name="B"> <shadow type="math_number" id="`1O6QUZA-xcFx[n}]5R("> <field name="NUM">3</field> </shadow> </value> </block> </value> <next> <block type="request" id="[LWIqL3]-L7%qZRoWX;+"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="2:dYCeT?=yK#eBy$q{`N"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="8!;rzj$=r}{%C;:mjWs0"> <field name="TEXT">http://192.168.178.28:5005/Schlafzimmer/</field> </block> </value> <value name="ADD1"> <block type="text" id="wO.5x+!_,yy^nV]-1KJs"> <field name="TEXT">volume/</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="*^TJ%+aX[7T*IuIx4^Zm"> <field name="VAR" id="qF^Dv{8_res2E03z3U@Y">Lautstärke</field> </block> </value> </block> </value> <next> <block type="timeouts_wait" id="-Pgm){S{)TO.?@zHc`H`"> <field name="DELAY">60</field> <field name="UNIT">sec</field> </block> </next> </block> </next> </block> </statement> <next> <block type="control" id="i(/8:aF`_dzR.cCA_pnD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Lights.2.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="hNyGaR/Lb+t,5hAV@|s="> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="comment" id="Y}n,,#e^hHTVb=iTJx.I"> <field name="COMMENT">Ggf. Rollos hochfahren</field> <next> <block type="controls_if" id="d#N#%.#xuF$~J(v;$^q8"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="f0dvO.q8859VGMt65BcC" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="A5NHF4%[7LSA{iT5=iFC"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="SeZlOti9#.5`]kdmVWTb"> <field name="ATTR">val</field> <field name="OID">hm-rpc.1.00181BE9946BC5.1.ILLUMINATION</field> </block> </value> <value name="B"> <block type="math_number" id="^ZaM|+yf{Vx.q*{{rixF"> <field name="NUM">21</field> </block> </value> </block> </value> <value name="B"> <block type="time_astro" id="drJReRn?arNc=~YoqAJZ"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="76OyQT2Gplv8z?curpPy"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.00165D899FBB0A.14.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="QL}AW@CL/Lk8q6^]w_M9"> <field name="NUM">100</field> </block> </value> <next> <block type="control" id="*pU6?cekcBpo]OHI+Mp5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.00165D899FBB0A.10.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="D;9)u-Ue:`aaK;bo!B3o"> <field name="NUM">100</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="*7BZOQ@{*);$.dO[?Y?+" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="*6aWE,Eg%{1b6A9!z{#/"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="MS4dd5H9YHJQ([Sd[RSC"> <field name="ATTR">val</field> <field name="OID">hm-rpc.1.00181BE9946BC5.1.ILLUMINATION</field> </block> </value> <value name="B"> <block type="math_number" id="BfEDmJ!!7uvik`_|f:9o"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="/c*{fHI-N1U%kKx~@{/b"> <value name="BOOL"> <block type="time_astro" id="l{6Tzmp7]k8^|P?YMsA5"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="F)V$?Y#MCFW?B|dhN?5a"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.00169D8997A0F8.10.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="8?UR6^c/b`eVB9f:@zU1"> <field name="NUM">30</field> </block> </value> </block> </statement> <next> <block type="comment" id="VdFTu-#kd(ShM.sd,L7X"> <field name="COMMENT">Nach insgesamt 10 Min. plus 2 Min. Pause: Radio Ausschalten</field> <next> <block type="timeouts_wait" id="yT)/_bSn_y4Qh{i)Q?Ql"> <field name="DELAY">2</field> <field name="UNIT">min</field> <next> <block type="request" id="!244Ao(pOU7LRkyE~_Xz"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="z;H=FGbjopJqdg@4Gmi#"> <field name="TEXT"></field> </shadow> <block type="text" id="3S*=2y:{dv8x`eYa648y"> <field name="TEXT">http://192.168.178.28:5005/Schlafzimmer/pause</field> </block> </value> <next> <block type="comment" id="*#r9|^TNZNjzuUk.4AKV"> <field name="COMMENT">Datenpunkt Wecker auf false schalten</field> <next> <block type="control" id=",?z8mS`6qIB~qHf:|x98"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Zeitschaltuhr.Arbeitszeit_Michael</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="_R+r{jvp,KVZJmXUxN,1"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml>
  • Blockly "Nur Änderung" auch bei steuere möglich

    6
    2
    0 Votes
    6 Posts
    496 Views
    nik82N
    @paul53 Super Danke, dann mache ich das so
  • Wechselrichter steuern in Abhängigkeit der Batteriespannung

    10
    1
    0 Votes
    10 Posts
    892 Views
    Y
    @yoshi Möchte mich noch bedanken für die Hilfe. Das Blockly funktioniert super. Vielen Dank
  • PVforecast Trigger zu Zeitpunkt mit max. Ertrag

    5
    1
    0 Votes
    5 Posts
    440 Views
    A
    @paul53 Peinlich :D Habe es soeben mal mit einem kleinen Workaround getestet und nun wird die zeitliche Bedingung erfüllt und die Funktion ausgelöst. Bin gespannt, ob es morgen im Praxistest funktioniert. Vielen Dank nochmal!
  • Blockly Treppenbeleuchtung mit Shelly

    9
    0 Votes
    9 Posts
    931 Views
    D
    @cinimod ok danke ist noch alles nicht ganz klar aber viellecht kommt es wenn ich es teste und mal probiere. Danke schonmal
  • Alexa Reminder in VIS darstellen

    1
    1
    0 Votes
    1 Posts
    154 Views
    No one has replied
  • CRON stoppt einfach

    3
    2
    0 Votes
    3 Posts
    85 Views
    hg6806H
    @codierknecht Stimmt! Der untere Trigger ist eigentlich auch unnütz und habe den mal rausgeschmissen. Ich berichte ob es was gebracht hat.
  • Notstrom erkennen

    20
    0 Votes
    20 Posts
    2k Views
    F
    @chris777 es gibt da etliche Aktoren die sich bei iobroker anbinden lassen, bei denen in den Einstellungen das Verhalten bei Spannungswiederkehr einzustellen ist. Da du ja aber nicht verrätst was du sonst noch hast ist es schlecht etwas vorzuschlagen.
  • Shelly3em Relais

    22
    1
    0 Votes
    22 Posts
    2k Views
    W
    Ich kann die Anker Powerhaus über 2 Arten laden. Eine Steckdose mit Shelly 3em mit 115 W. Auf dem Shelly 3em habe ich es so eingestellt. Wenn PV Anlage ins Netz einspeisst : Power on bei -115 W Gesamt. Power off bei + 10 W gesamt. Jetzt habe ich noch die Möglichkeit zusätzlich über einen Shelly Plug S Steckdose zu laden über USB C mit ca. 58 W. Heute hatte ich das Problem das ich bei überschuss von mehr wie -115 Watt der Shelly 3em ansprang. Und Shelly 1 ging aus. Immer im Wechsel....die Steckdose und Shelly 3em klickten an und aus. Denke ist eine Überschneidung irgendwo oder ich muss eine Verzögerung von 7 sec einbauen ? Habe Mqtt abfrage von den shellys auf 5 sec gesetzt .... Jetzt habe ich versucht das Script zu ändern mit dem Ziel : Überschuss von - 60 soll Shelly Plug S angehen. Bei erreichen von - 115 Watt soll er ausgehen das Shelly 3 em anspringt. Shelly 3 em ist intern programmiert. Bei -115 W gesamt an und bei +10 aus. Dann wenn Shelly 3 Em angeht und 115 W zieht und ich noch einen Überschuss habe von - 60 W habe , dann soll Shelly 1 angehen und mit 60 W unterstützen [image: 1677495987146-screenshot-2023-02-26-at-11-01-37-javascript-iobroker.png]
  • Benachrichtigung nur zu einer bestimmten Zeit

    9
    2
    0 Votes
    9 Posts
    617 Views
    B
    @homoran ok, wieder was gelernt.
  • Smarter - Handtuchtrockner

    26
    1
    0 Votes
    26 Posts
    918 Views
    wendy2702W
    @humidor sagte in Smarter - Handtuchtrockner: @humidor ich habe das lange beobachtet der Trigger fkt. nicht . Triggervariable ist 0 Triggervariable ist im Minus damit kommt kein Trigger mehr, der Handtuchtrockner bleibt mir aktiv umgestellt auf Trigger/Sekunde, funktioniert. [image: 1672643939257-bildschirmfoto-2023-01-02-um-08.18.45.png] Hi, ich will etwas ähnliches realisieren. Funktioniert dein Blockly jetzt? Falls ja, kannst du vielleicht einen Export bereitsstellen. Danke
  • blockly Geschirrspüler fertig

    16
    1
    0 Votes
    16 Posts
    1k Views
    Horst BöttcherH
    @watcherkb sagte in blockly Geschirrspüler fertig: ich kann zwar zum Blockly nichts beitragen, aber der device-reminder Adapter läuft hier perfekt für diesen Zweck. Ich weiß aber nicht ob er WhatsApp unterstützt. nein leider nicht
  • 1 Votes
    1 Posts
    212 Views
    No one has replied
  • [Gelöst] Blinken und Dauerleuchten

    6
    1
    0 Votes
    6 Posts
    702 Views
    paul53P
    @andreasw63 sagte: Kann ich den Beitrag als Erledigt markieren? Ja, die Überschrift im ersten Beitrag editieren.
  • History Wert zu bestimmtem Zeitpunkt

    2
    2
    0 Votes
    2 Posts
    234 Views
    M
    Da ich noch keine Hilfe erhalten habe, habe ich das Script etwas abgeändert. Leider erhalte ich in meinem Script immer den Wert "(null)" für den Datenpunkt "Tagesarbeitszahl". Mein Script lautet: var W_thermisch_gesamt, W_elektrisch_gesamt, W_elektrisch_Vortag, w_thermisch_Vortag; // Speichere Vortageszählerstände schedule("49 17 * * *", async function () { // Setzte die Variablen für die Tagesdaten. W_thermisch_gesamt = parseFloat(parseFloat(getState("nibeuplink.0.UNIT_0.HEAT_METER.HEATING_COMPR_ONLY_EP14").val)) + parseFloat(getState("nibeuplink.0.UNIT_0.HEAT_METER.HOTWATER_COMPR_ONLY_EP14").val); W_elektrisch_gesamt = parseFloat(parseFloat(getState("sonoff.0.Tasmota_Stromzaehler_Heizung.Heizung_zahlstand_HT").val)) + parseFloat(getState("sonoff.0.Tasmota_Stromzaehler_Heizung.Heizung_zahlstand_NT").val); // wenn Vortageswerte 0 sind, dann speichere aktuelle Tagesdaten als Vortagesdaten if (getState("0_userdata.0.Heizung.Wel_Vortag").val == 0) { setState("0_userdata.0.Heizung.Wel_Vortag"/*Wel_Vortag*/, W_elektrisch_gesamt, true); } if (getState("0_userdata.0.Heizung.Wth_Vortag").val == 0) { setState("0_userdata.0.Heizung.Wth_Vortag"/*Wth_Vortag*/, W_thermisch_gesamt, true); } // ermittle rechnerisch die Vortageswerte setState("0_userdata.0.Heizung.Wel_Vortag"/*Wel_Vortag*/, (parseFloat(W_elektrisch_gesamt) - getState("0_userdata.0.Heizung.Wel_Vortag").val), true); setState("0_userdata.0.Heizung.Wth_Vortag"/*Wth_Vortag*/, (parseFloat(W_thermisch_gesamt) - getState("0_userdata.0.Heizung.Wth_Vortag").val), true); }); // Berechnet Tagesarbeitszahl schedule("50 17 * * *", async function () { W_elektrisch_Vortag = Math.round(getState("0_userdata.0.Heizung.Wel_Vortag").val*100)/100; w_thermisch_Vortag = Math.round(getState("0_userdata.0.Heizung.Wth_Vortag").val*100)/100; setState("0_userdata.0.Heizung.Tagesarbeitszahl"/*Tagesarbeitszahl*/, (parseFloat(w_thermisch_Vortag) / W_elektrisch_Vortag), true); sendTo("telegram.0", "send", { text: (['Tagesarbeitszahl:',getState("0_userdata.0.Heizung.Tagesarbeitszahl").val,'W_elektrisch; W_thermisch:',W_elektrisch_Vortag,w_thermisch_Vortag].join('')) }); }); Alle Datenpunkte besitzen reale Werte. Blockly sieht so aus: [image: 1676999719312-screenshot-2023-02-21-181114.jpg]
  • Objekte einmalig definieren

    8
    0 Votes
    8 Posts
    678 Views
    BananaJoeB
    @paul53 sagte in Objekte einmalig definieren: @homoran sagte: Schön wäre es auch, wenn man die ID in den Blöcken eintippen/ (kopieren und ändern) könnte Die Blöcke, mit denen es geht, gibt es: Schreiben und [image: 1676994390077-blockly_temp.jpg] An die Trigger kann man auch einen Textblock mit der ID binden. an alle Blöcke die ein Objekt zum anhängen haben (Falls Objekt z.B. ) kann man auch einfach ein Textfeld dranhängen und dort die ID als Text einfügen. Sogar Text verketten: [image: 1676996581298-a642eae8-9f27-48a9-8abf-6c1cc2dd4283-image.png] [image: 1676996630297-78bac885-090e-44ad-8eea-86d1e9fcb308-image.png] So muss ich bei mir nur eine Variable ändern ohne das Gerät im ganzen Skript überall zu ersetzen. Lesbarer finde ich das auch Bei einem Mehrfachtrigger [image: 1676996723946-21966383-3bcf-42fb-8b7e-38d6463c00bf-image.png] bekommt man über Object ID heraus welcher es war
  • Steckdose schalten 2 Trigger

    3
    0 Votes
    3 Posts
    167 Views
    devdraconD
    @paul53 Danke, Paul! Das mit den Variablen hatte ich auch schon, ich bin nur nicht darauf gekommen den aktuellen Wert außerhalb der Trigger abzufragen.

490

Online

32.8k

Users

82.9k

Topics

1.3m

Posts