Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.5k Topics 79.2k Posts

NEWS

  • Neues Baustein Instanz steuern

    3
    1
    0 Votes
    3 Posts
    266 Views
    G
    @rushmed Dankeschön
  • This topic is deleted!

    0
    0 Votes
    0 Posts
    7 Views
    No one has replied
  • Hilfe für absoluten Blockly Neuling

    9
    0 Votes
    9 Posts
    439 Views
    H
    @paul53 Das sieht super aus, ich danke dir auf jeden fall sehr dafür!!
  • Skript in ioT Adapter und mit Alexa ausführen

    23
    1
    0 Votes
    23 Posts
    1k Views
    O
    @kammi_ hallo, meintest du über eine Alexa Routine? zur zeit geht es nur so, Sprachbefehl: Kinolicht an, danach Wohnzimmerlicht aus, das gleiche dann wenn der Film aus ist umgekehrt, lg Oskar
  • Gelöst: Ausführliche Protokollausgaben

    2
    1
    0 Votes
    2 Posts
    124 Views
    S
    Nachdem ich den Beitrag geschrieben hatte kam ich selber auf die Lösung. Alle Scripte zweimal exportieren und vergleichen ( einmal an und aus ). Dann sah ich dass ich nach verbose": true suchen muss.
  • Variable soll immer zwei Nachkommastellenn haben

    7
    1
    0 Votes
    7 Posts
    337 Views
    T
    @asgothian said in Variable soll immer zwei Nachkommastellenn haben: Warum willst du das im Skript machen, und nicht da wo du die Zahl darstellen willst ? Ich versteh das nicht. Ich gebe diesen Wert auf einem AWTRIX-Display aus, da kann ich (im Gegensatz zu VIS) keine Nachkommastellen angeben. So passt es nun, danke euch! [image: 1761035256206-20251021_102253.jpg]
  • (Gelöst) Reolink Instanz stoppen wenn kamera aus ist

    7
    0 Votes
    7 Posts
    261 Views
    skvarelS
    @walter-o .. das ist für den Timeout. Jeder Timeout muss irgendwo gestoppt werden. Sobald man einen Timeout definiert, gibt es auch den 'stop' Block dazu [image: 1761027717247-daf2c2e0-873a-4523-98d9-ea912ff3ae8c-image.png] [image: 1761027743909-8b6e2666-5799-487d-9008-c0f706b15258-image.png]
  • Summe einer Tabelle bilden

    9
    0 Votes
    9 Posts
    348 Views
    AsgothianA
    @peguschwein sagte in Summe einer Tabelle bilden: @asgothian vermutlich ist es einfach das ganze in Excel zu machen. Das was ich bereits habe. EVU Zähler auslesen etc an diesem ändert sich ja nichts. Ist lediglich die komerzielle Seite Nein - Du machst nur einen Denkfehler: Immer wenn Du in der excel Tabelle einen neuen Wert einträgst kannst Du den statt dessen in einen iobroker State schreiben. Diesen lässt Du dann via history Adapter in die Datenbank schreiben. Parallel nutzt Du einen trigger auf die Änderung des DP, und addierst den zu einem 2. ‘Summen’ DP. Dann hast Du immer die Summe, und kannst aus der DB die Tabelle dazu holen. Um das ganze zeitlich zu begrenzen kannst Du regelmäßig (immer am 1. Des Monats um 00:01 z.bsp) den Summe Wert in einen 3. DP setzen, und dann auf 0 zurück setzen. Diesen 3. DP speicherst du auch in der dB. Dann beinhaltet die dB Jeden einzelnen Wert Die monatlichen Summen Wenn deine Anwendung andere Intervalle braucht lässt sich das auch realisieren. Visualisieren lässt sich das auch - Tabellen die ‘alle Werte eines Monats’ darstellen gibt es. A.
  • DP abhängig von mehreren Varianten

    22
    1
    0 Votes
    22 Posts
    1k Views
    paul53P
    @stefan341 sagte : geht der DP vom ersten Skript ja wieder auf 0. Aber das zweite Skript nimmt den jeweiligen Text nicht raus. Es bleibt weiter im zweiten DP stehen, dass das Fenster auf ist. Das kann ich nicht nachvollziehen, denn genau das macht die Schleife: Sie schreibt nur die Räume in das Array, in denen der Wert 1 (oder true) ist.
  • Ab einem bestimmten Zeitpunkt zählen.

    4
    0 Votes
    4 Posts
    171 Views
    S
    @eduard77 Danke. Werde ich mir mal anschauen. @paul53 danke, das probiere ich mal aus.
  • Synology Surveillance Station Snapshot / Livestream

    Moved synology kamera
    5
    0 Votes
    5 Posts
    240 Views
    T
    @codierknecht Okay, danke. Ich mache es derzeit über das Skript, da ich es in Blockly nicht hinbekommen habe
  • Hilfe Blockly 2 Uhrzeiten in objekt ausgeben

    10
    0 Votes
    10 Posts
    931 Views
    K
    Seit dem letzten Firmeware update ging das script nicht mehr hab es geändert falls es jemand braucht <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="p?m(Q~}+lHKnTkdA.teN">Liste</variable> <variable id="`z(j}#qcJTueW#9U#Qb(">Dauer2</variable> <variable id="cYsu{X{2u^QK6{/6tgFZ">Dauer1</variable> </variables> <block type="on" id="R#%dPl,}X#:)M5[g4(rt" disabled="true" x="-487" y="-762"> <field name="OID">0_userdata.0.3d_drucker.qidi.rest</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="NQR,n=$zBp-57#y[{G*E"> <field name="VAR" id="p?m(Q~}+lHKnTkdA.teN">Liste</field> <value name="VALUE"> <block type="lists_split" id="Hc~dcqus~z$XpY6Do9eZ"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="on_source" id="r4XHfwqrFJeZy@sk4N_%"> <field name="ATTR">state.val</field> </block> </value> <value name="DELIM"> <shadow type="text" id=":gnC;z^gb1_c4bPBv8nD"> <field name="TEXT">:</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="cbN@2j?[=e$;,s~0B,}{"> <field name="VAR" id="cYsu{X{2u^QK6{/6tgFZ">Dauer1</field> <value name="VALUE"> <block type="math_arithmetic" id="l[{t_i`,E*XUIN`I8Ql="> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="lQ`|8NP,-a.,ZK!{R`A!"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="~.c4=A*fWVoL/r1a+p,#"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="1qOZ]AbIXqjsbSKJU=AE"> <field name="NUM">60</field> </shadow> <block type="lists_getIndex" id="[|*.bmk_,:j|W_%9RNik"> <mutation statement="false" at="false"></mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="$4qF,LU9,*Q[peP5CqD,"> <field name="VAR" id="p?m(Q~}+lHKnTkdA.teN">Liste</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="]@kC7saoD2R$3qt:vZW|"> <field name="NUM">60</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="D2/iMsbrg.9k#1uxCu6f"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="7w]y,z.}dmKuD1:g;5fe"> <value name="VALUE"> <block type="lists_getIndex" id="U3BeXkLtFB^AHS4p43(Y"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="GrvIBdf3i{:Kk0rfbBz/"> <field name="VAR" id="p?m(Q~}+lHKnTkdA.teN">Liste</field> </block> </value> <value name="AT"> <block type="math_number" id="A}//rz?@nh;KQ]f[}GNL"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="@E8I|8)~jUFh]!=afwzz"> <field name="VAR" id="`z(j}#qcJTueW#9U#Qb(">Dauer2</field> <value name="VALUE"> <block type="convert_from_date" id="i~pxj5?;ZhEM%5jh!n{]"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="time_calculation" id="^uagMF^!oe6N@wTaJh,7"> <field name="OPERATION">+</field> <field name="UNIT">min</field> <value name="DATE_TIME"> <shadow type="time_get" id=";/?yTk!H|c9r]d1TSK7`"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </shadow> </value> <value name="VALUE"> <shadow type="math_number" id="Ks,5cQduUd-rMudL-^y5"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Ynny|`s6fJjBS`gyNm5R"> <field name="VAR" id="cYsu{X{2u^QK6{/6tgFZ">Dauer1</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="!jIJ=a3Jii;i5(+THi9O"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.3d_drucker.qidi.endzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id=":pd%2C(=c$kmKs1BoUf:"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id=";];}nSs!?=%{RmNBRq]l"> <field name="TEXT">um </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="sTyd)aYa3.upxw4*2x=f"> <field name="VAR" id="`z(j}#qcJTueW#9U#Qb(">Dauer2</field> </block> </value> <value name="ADD2"> <block type="text" id=".x`/)Go|A_#%yQyoKKW~"> <field name="TEXT"> Uhr</field> </block> </value> </block> </value> <next> <block type="controls_if" id="{aXTW3+XCwl55i1D+T$d"> <value name="IF0"> <block type="logic_compare" id="ykEwP(+#LYww]3o(cY?E"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ZTN+[E`1G7#Cl3{AUu$~"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.3d_drucker.qidi.printing</field> </block> </value> <value name="B"> <block type="text" id="}Ocm^!l{-L~8[xFhk_N,"> <field name="TEXT">standby</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_wait" id="sA1k1!p^ptPs:K1)S3oR"> <field name="DELAY">60</field> <field name="UNIT">sec</field> <next> <block type="control_script" id="y6UBq]S::qKv@joEH_s3"> <field name="OID">script.js.common.3d-Drucker.QIDI.Endzeit-qidi</field> <field name="ACTION">stopScriptAsync</field> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="on" id="|r0c`i-KtJ?t:Qs.mijO" x="-137" y="-337"> <field name="OID">0_userdata.0.3d_drucker.qidi.rest</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="*rl7#vGQ_*O3S]qbShTW"> <field name="VAR" id="`z(j}#qcJTueW#9U#Qb(">Dauer2</field> <value name="VALUE"> <block type="convert_from_date" id="dqp]j/7+xMGG6gP/%FZn"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="time_calculation" id="fuX$k~R{_48Y=do?uk4V"> <field name="OPERATION">+</field> <field name="UNIT">min</field> <value name="DATE_TIME"> <shadow type="time_get" id="$/aws/(:5vlMK/al~#hM"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </shadow> </value> <value name="VALUE"> <shadow type="math_number" id="Ks,5cQduUd-rMudL-^y5"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!MvJGa}+h06W?%I1U@fX"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.3d_drucker.qidi.rest</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id=")E0XFIV%p4Y3Fxh^DkkH"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.3d_drucker.qidi.endzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="KZdiA!2!yHASTdy4x+7N"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="WOqi{YblQiEQcAyT=]`a"> <field name="TEXT">um </field> </block> </value> <value name="ADD1"> <block type="variables_get" id=".:FK.NN{O`SWYs$ljQY="> <field name="VAR" id="`z(j}#qcJTueW#9U#Qb(">Dauer2</field> </block> </value> <value name="ADD2"> <block type="text" id="Mh*)X)$!CSLQ|nC]SPTd"> <field name="TEXT"> Uhr</field> </block> </value> </block> </value> <next> <block type="controls_if" id="4bAff/4#/]p}h.mD1b6J"> <value name="IF0"> <block type="logic_compare" id="L|[d?t?8z~7_%%4-W^zw"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="~$7T-7!.bK[l|$9`o/PY"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.3d_drucker.qidi.printing</field> </block> </value> <value name="B"> <block type="text" id="[4ms18HSxSpHo6Des%mq"> <field name="TEXT">standby</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_wait" id="Yt;+42DNrvt+6Pt;oN[^"> <field name="DELAY">60</field> <field name="UNIT">sec</field> <next> <block type="control_script" id="y[(w~.N3)46lVaOdqeV@"> <field name="OID">script.js.common.3d-Drucker.QIDI.Endzeit-qidi</field> <field name="ACTION">stopScriptAsync</field> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>
  • gelöst - Blockly JSON auslesen und Wert in DP schreiben

    4
    1
    0 Votes
    4 Posts
    262 Views
    AtifanA
    @padrino Jo habs geändert :)
  • paperless-ngx-Adapter: Namen des letzten Dokumentes?

    5
    -1 Votes
    5 Posts
    298 Views
    CodierknechtC
    @mjas sagte in paperless-ngx-Adapter: Namen des letzten Dokumentes?: der Adapter zieht mir allerdings nur die ausführlichen Details von 999 Dokumenten Da müsstest Du Dich dann an den Entwickler wenden. Am besten ein Issue auf GitHub aufmachen. https://github.com/BenAhrdt/ioBroker.paperless-ngx
  • PV 0 Einspeisung mehrerer Wechselrichter (gel.)

    63
    1
    0 Votes
    63 Posts
    2k Views
    DuffyD
    @haselchen Ich hatte nach „gelöst“ einen Beitrag von @paul53 übersehen der sich überschnitten hatte deshalb ist das gelöst schon drin; sorry. Wie gesagt, ich finde auch es sieht sieht recht gut aus aber ich kann nicht beurteilen ob noch was verbessert werden kann. Paul hatte ha schon mal gesagt es wäre ok aber seitdem wurde das Chart optimiert was auch der Grund meiner erneuten, gleichen, Frage war. @paul53 sagte in PV 0 Einspeisung mehrerer Wechselrichter (gel.): @duffy sagte: Das sieht für mich auch ganz flott aus. Das macht der P-Anteil des PI-Reglers. Hältst du es für zu flott? Ich kann das nicht einschätzen. Es grüsst euch Duffy
  • Dateien in FS schreiben - trotz REDIS

    7
    0 Votes
    7 Posts
    301 Views
    OliverIOO
    @tops4u hm, so ein paar schlüsselbegriffe fehlen, woran ich erkenne, das du dich auskennst. daher wünsche ich dir mit deiner installation toitoitoi @tops4u sagte in Dateien in FS schreiben - trotz REDIS: Ich habe mir halt vorgestellt, dass es irgendwie eleganter gehen sollte und verstehe die Einschränkung von Files aus JavaScript nicht ganz, wenn es gleichzeitig von NodeRED aus geht. Man hätte ja die Einschränkung z.b. auf /opt/iobroker/iobroker-data/files/<z.b. JavaScript_FS> abschalten können, somit zerschiesst man sich keine Systemfiles. Mounts sind keine Option. Ich habe noch andere Daten welche aus NodeRed raus generiert werden, und die übertrage ich nun mit geplanten Scripts auf dem NAS. ich verstehe nicht ganz von welcher einschränkung du da sprichst. es wird für adapter entwickler empfohlen nicht mit fs in das dateisystem des iobrokers zu schreiben, da diese dateien nicht vom backup erfasst werden. auch wenn der nutzer redis nutzt, existieren die dateien gar nicht physisch im dateisystem, sondern sind genau so als key/value im redis gespeichert. bei jsonl weiß ich es nicht genau. für docker gilt, alles was sich nicht in einem volume befindet ist bei der nächsten regeneration des containers halt weg, das ist immer so bei container. aber du kannst selbst ein volume hinzufügen. siehe unten du als nutzer kannst volatile daten speichern wohin du willst. die muss das backup (des iobrokers) ja auch nicht berücksichtigen. aber wenn du die datei dann im dateisystem speicherst, was machst du den dann? dann musst du es immer noch transportieren. aber um dir einen docker konformen weg aufzuzeigen: richte einfach ein weiteres volume ein. also bspw /tmp/meineVerzeichnis:/tmp/meinVerzeichnis Dann steht IM iobroker container das Verzeichnis /tmp/meinVerzeichnis zur Verfügung und ist auf dem gleichen Pfad im Host-Dateisystem gemappt. Die Pfade kannst du jeweils anpassen, sollte aber keine existierenden Verzeichnisse im Dateisystem überschreiben.
  • Heizungssteuerung mit "Fenster auf"-Schutz

    14
    0 Votes
    14 Posts
    615 Views
    HomoranH
    @samson71 sagte in Heizungssteuerung mit "Fenster auf"-Schutz: @homoran sagte in Heizungssteuerung mit "Fenster auf"-Schutz: ...und den Schornsteinfeger :grin: Aber nur, wenn Du nicht noch zusätzlich einen Ofen/Kamin hast. Dann kommt der nämlich trotzdem :laughing: Wenn, dann richtig! Ich war sogar schon soweit den Schornstein zurückzubauen, damit er bei tiefstehender Sonne nicht zuviele PV-Module beschattet. Aber die Grundgebühr für Gas fällt auch noch weg.
  • [gelöst] Größte Ventilstellung von HZK eines Raumes

    7
    2
    0 Votes
    7 Posts
    336 Views
    metaxaM
    @paul53 sagte in Größte Ventilstellung von HZK eines Raumes ermitteln: Für dem Maximalwert aus einer Liste gibt es einen Mathe-Block. Das ist um einen Block kürzer und noch eleganter! DANKE! [image: 1759398115357-f794cd52-addd-431a-8d68-126cbf1d806e-image.png] javascript.0 11:42:14.534 info Start JavaScript script.js.common.350-379_Heizung_WW_Klima.363_03_WOZ_HZK_Ventilstellung_gesamt (Blockly) javascript.0 11:42:14.536 info [ 10, 47, 2, 23 ] javascript.0 11:42:14.536 info 47 javascript.0 11:42:14.536 info registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
  • 1 Votes
    11 Posts
    712 Views
    RaspiUserR
    ... ich hänge mich hier mal dran ... Vielleicht kann einer der "Mitleser" mir bei meiner Frage helfen: https://forum.iobroker.net/topic/76626/go-e-adapter-vers-1-0-38-pv-überschuss-laden Z.Zt. mache die Überschussladung (immernoch) "per Hand" .... :face_with_rolling_eyes: :cold_sweat:
  • Zeitplan definieren (Blockly Wizard)

    5
    1
    0 Votes
    5 Posts
    187 Views
    haselchenH
    @homoran Ich hab jetzt beide Varianten mal aktiv geschaltet. Vorgabe ist eigentlich ne Minustemperatur, aber um zu testen nehme ich mal "schnellere" Werte, da es noch nicht so kalt ist :)

700

Online

32.6k

Users

82.3k

Topics

1.3m

Posts