Weiter zum Inhalt

Blockly

6.6k Themen 80.2k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • Shelly flood blockly verhält sich komisch

    Verschoben
    9
    3
    0 Stimmen
    9 Beiträge
    780 Aufrufe
    ?
    @arteck Issue aufmachen? und ich wette, der Developer verlangt ein Debug-Log.. :D @haus-automatisierung irgendwo im Adapter ne Variable vertauscht... ?
  • Pv Überschuss steurung

    4
    0 Stimmen
    4 Beiträge
    333 Aufrufe
    BananaJoeB
    Ich habe so etwas ähnliches Laufen. Statt Verzögerungen und Timeouts (damit nicht zu oft ein- und ausgeschaltet wird), nutze ich einfach einen Zeitplan. Bei den Klimaanlagen z.B. alle 15 Minuten. Da wird geprüft ob die aktuelle Leistung negativ genug ist für den Verbrauch der Klimaanlagen (und ob diese ausgeschaltet ist). Auf deutsch: Sagt der Stromzähler das mehr als 1500W eingespeisst werden, geht die Klimaanlage an. Mindestens für 15 Minuten da erst dann wieder geprüft wird. Ist die Klimaanlage an, wird nur geprüft ob der Bezug größer als 200W ist. Falls ja wird die Klima wieder abgeschaltet. Und das Spielchen beginnt von vorne. So etwas habe ich dann je nach Verbraucher in anderen Maßstäben, z.B. im 5 Minuten Takt.
  • Brauche Hilfe beim erstellen einer Variablen

    7
    2
    0 Stimmen
    7 Beiträge
    273 Aufrufe
    icebearI
    @ullij said in Brauche Hilfe beim erstellen einer Variablen: laut Handbuch unterstützt die Box aber OpenWebif, da gibt es den Zap Befehl zum umschalten. Danke für deine Unterstützung, es funktioniert jetzt mit dem 'Zap with Servicereferenz. Das problem lag allerdings woanders, bei dem neuen http (GET) kann man ja auch ein Timeout angeben, das hab ich jetzt mal raufgesetzt von 5 auf 20 sec. Dann muß anscheinend der 'timeout' im 'sonst'-Block weg, da der das sonst aufaddiert und ich hatte beim testen wohl nicht lange genug gewartet. Also lange Rede kurzer Sinn, mit dem Blockly funktioniert es jetzt einwandfrei [image: 1720774777515-enigma2.png] Also vielen Dank nochmal für deine Unterstützung
  • [gelöst] Füllstandabfrage funktioniert nicht wie geplant

    12
    1
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    WintermuteW
    @paul53 sagte in Füllstandabfrage funktioniert nicht wie geplant: Bei dem gezeigten Skript wird nur gesendet, wenn die Steckdose eingeschaltet ist und die Stromaufnahme erstmalig unter 0.1 (A?) sinkt. Wie es aussieht, funktioniert es so, wie Du gesagt hast (auch wenn ich es nicht genau verstehe). Vielen Dank dafür Danke auch an @BananaJoe für Deinen Input. Mit Variablen zu arbeiten habe ich bisher gar nicht so auf dem Schirm gehabt
  • Blockly script Trigger Zeitpunkt ODER Variablenänderung

    11
    0 Stimmen
    11 Beiträge
    791 Aufrufe
    T
    @bananajoe "EG_Klingel:3.STATE = False" bedeutet in meinem Falls, dass die Klingel eingeschaltet wird. Das liegt an der Verdrahtung zwischen dem angesteuerten Relais und dem Klingelgong. Hab erstmal vielen Dank. Werde es in den kommenden Tagen mal testen. VG Takahara
  • Blockly für Stufeneinschaltung

    21
    0 Stimmen
    21 Beiträge
    5k Aufrufe
    flkontaktF
    @paul53 mathe kann so einfach sein ;-). danke für den Schubser in die richtige Richtung!
  • Shelly Plus2PM(Covermod) und Blockly

    6
    0 Stimmen
    6 Beiträge
    209 Aufrufe
    H
    @djmarc75 Vielen Dank, das war's. Den Link werde ich jetzt mal lesen.
  • Bild wenn es klingelt?

    9
    1
    0 Stimmen
    9 Beiträge
    965 Aufrufe
    BananaJoeB
    Noch ein Nachtrag: Cool, man kann auch eine Gruppe angeben, das erhält man eine Übersicht mit allen Kameras in der Gruppe ... Die Qualität der Bilder ist aber etwas mau da der Vorschau-Stream verwendet wird. Kommt darauf an wie deine Kameras eingebunden sind. Ich habe Reolinks, die haben 2 Streams, einen Vorschau 640x380 welche auch zur Auswertung genutzt wird und den "richtigen" mit 2560x1920 der dann aufgezeichnet wird.
  • Warten auf successful bei Linux Control

    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    F
    @felsdrache [image: 1720464491909-iobroker.png] So klappt es dann
  • [Gelöst] Exec wird scheinbar nicht ausgeführt

    blockly
    7
    2
    0 Stimmen
    7 Beiträge
    732 Aufrufe
    S
    @thomas-braun Nicht wirklich. Es funktioniert ja auch in dem Verzeichnis /home/iobroker über Blockly (exec) nicht. Es funktioniert nur wieder über die Kommandozeile (per Putty). Und sudo -u iobroker mpg123 ... funktioniert in Blockly auch nicht. EDIT: Ursache gefunden. Es war ein Timing-Problem in Blockly. Nun klappt es. Besten Dank für eure Hilfe.
  • Zwei Datenpunkte vergleichen, grösser als...

    14
    1
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    paul53P
    @darkblu sagte: Die Datenpunkte sind vom Type gemischt (mixed). Deshalb meckert der js-controller nicht, wenn ein String geschrieben wird. Wenn mit den Werten gerechnet werden soll, müssen Zahlen in die DP geschrieben werden.
  • OpenDTU - falls DTU "falsch", dann Fritz Dect Steckdose aus!

    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    K
    @paul53 jetzt leuchtet es mir ein.... Ich habe die Variable nicht wahr genommen ! Dein Hinweis mit der Variablen und dem erneuten Einlesen des Datenpunktes hat bei mir klick gemacht :) Somit passe ich nochmal das Script nach deiner Version an! [image: 1720286855881-dtu.png] <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout2">timeout2</variable> </variables> <block type="on_ext" id="13k~%BXuW:dn^bzTXH?t" x="-87" y="-462"> <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="D%+u;:[j;Ls5e|sffdom"> <field name="oid">ping.0.raspberrypi.192_168_1_155</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="phJQ_1$Tx1t|~O@|IdMI"> <field name="NAME">timeout2</field> <next> <block type="controls_if" id="Cv|YRH`Ln_h)X$$,+C^p"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_negate" id="kCrhu_a0f%ly@+J[o9UI"> <value name="BOOL"> <block type="on_source" id="PfW^]VSV37G+NvLcZH{s"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="u9Zdd7N0rtv9+/:wI]++"> <field name="NAME">timeout2</field> <field name="DELAY">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="Z!^ByDqmlh]b`?B(dved"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">fritzdect.0.DECT_116570570860.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="mTwv!d5NuFJbke$wy$Rd"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <value name="IF1"> <block type="logic_negate" id="rXLteYmHZ8gBR95GQ2xv"> <value name="BOOL"> <block type="get_value" id="F88jE*;R.|KIds;n[v_L"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT_116570570860.state</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="QF2_R8$?nn313/.]nPj6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">fritzdect.0.DECT_116570570860.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="|tvtV_^FI_kfm|TdD.K)"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml> <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout2">timeout2</variable> </variables> <block type="on_ext" id="13k~%BXuW:dn^bzTXH?t" x="-87" y="-462"> <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="D%+u;:[j;Ls5e|sffdom"> <field name="oid">ping.0.raspberrypi.192_168_1_155</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="phJQ_1$Tx1t|~O@|IdMI"> <field name="NAME">timeout2</field> <next> <block type="controls_if" id="Cv|YRH`Ln_h)X$$,+C^p"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_negate" id="kCrhu_a0f%ly@+J[o9UI"> <value name="BOOL"> <block type="on_source" id="PfW^]VSV37G+NvLcZH{s"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="u9Zdd7N0rtv9+/:wI]++"> <field name="NAME">timeout2</field> <field name="DELAY">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="Z!^ByDqmlh]b`?B(dved"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">fritzdect.0.DECT_116570570860.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="mTwv!d5NuFJbke$wy$Rd"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <value name="IF1"> <block type="logic_negate" id="rXLteYmHZ8gBR95GQ2xv"> <value name="BOOL"> <block type="get_value" id="F88jE*;R.|KIds;n[v_L"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT_116570570860.state</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="QF2_R8$?nn313/.]nPj6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">fritzdect.0.DECT_116570570860.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="|tvtV_^FI_kfm|TdD.K)"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
  • Wiedermal eine Frage zum Timeout Handling

    24
    1
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    J
    @paul53 Bis jetzt läuft es super das neue Blockly, ich konnte es auch noch ein wenig kürzen. Also das mit den Timern ist irgendwie schon verwirrend....
  • Wasserverbrauch tageweise loggen und anzeigen

    19
    2
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    C
    @crunchip Hab jetzt seit paar Tagen den Gesamtverbrauch geloggt. Seitdem schauts ganz gut aus. An Grafana hats nicht gelegen, sondern eher daran das ich den Tagesverbrauch als Wert genommen hab und nicht den Gesamtverbrauch. Muss noch paar Tage warten aber Stand jetzt passt es ;-)
  • Script für Schalter und Bewegungsmelder ** gelöst **

    8
    2
    0 Stimmen
    8 Beiträge
    530 Aufrufe
    Horst BöttcherH
    @paul53 dank dir geht super
  • (gelöst) Klimaanlagen einschalten, Reihenfolge

    17
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    paul53P
    @perladd sagte: kann ich dann z.B. eine Freigabe wegnehmen, oder muss ich das Blockly dafür neu starten? Das Skript muss nicht neu gestartet werden, denn es wird oft genug getriggert. Allerdings sollte bei Wegnahme einer Freigabe auch ausgeschaltet werden, denn das passiert nicht automatisch. Beispiel: [image: 1720119136853-blockly_temp.jpg]
  • [gelöst] Prüfung, ob dyndns von UniFi funktioniert

    7
    1
    0 Stimmen
    7 Beiträge
    538 Aufrufe
    Meister MopperM
    So läuft es jetzt erstmal: [image: 1720114359320-e5626a98-0ba9-4854-a9d9-28fe3165d3c1-grafik.png] Spoiler <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="iV|Q4#}M#GvJMC)-ifVg">message</variable> <variable id="bhq66a!eE!`5UIPZnS6x">new_result</variable> <variable type="timeout" id="timeout2">timeout2</variable> </variables> <block type="variables_set" id="nPgzEf1L4{3h-OY.Km_#" x="63" y="213"> <field name="VAR" id="iV|Q4#}M#GvJMC)-ifVg">message</field> <value name="VALUE"> <block type="logic_boolean" id="|G^3]r+{nqXR@S^j;Mfq"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="schedule" id="}R?fvg?A:B1nj+}iH4gD"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="exec" id="_BLbzqPx+e$Q-?#d}[M]"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="aI+iX7wqPJo#h}s(:C_1"> <field name="TEXT">pwd</field> </shadow> <block type="text" id="$iHy5klLvIgH6^W:CeFx"> <field name="TEXT">wget -4 -O - -q icanhazip.com</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id="mBL1l^7mf7soEFJ(U|dT"> <field name="VAR" id="bhq66a!eE!`5UIPZnS6x">new_result</field> <value name="VALUE"> <block type="text_getSubstring" id="4$!sqUiZ4S}_?]|/(dVe"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_END</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="exec_result" id="AxmxEIZpp5;;#!(YF_G8"> <field name="ATTR">result</field> </block> </value> <value name="AT1"> <block type="math_number" id="jyTgC7O_W;?bkDmU)sM]"> <field name="NUM">16</field> </block> </value> <value name="AT2"> <block type="math_number" id="{GjcJ{;Y!T3y7w73wBmA"> <field name="NUM">15</field> </block> </value> </block> </value> <next> <block type="timeouts_cleartimeout" id="=kh@d$Qlas)|5%(*FhI]"> <field name="NAME">timeout2</field> <next> <block type="timeouts_settimeout" id="l[k|vzj({+T7eQ*/RI(S"> <field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="E$U:/aH4ADAEm+3}ba}U"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="]^/0()LSo-}Ab5^Y)=i@"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="Yuh/I]uMX}X|.$68g|Yq"> <field name="VAR" id="bhq66a!eE!`5UIPZnS6x">new_result</field> </block> </value> <value name="B"> <block type="get_value" id="Yfbhl=a0c{8X]aGTjxcE"> <field name="ATTR">val</field> <field name="OID">unifi.0.default.health.wan.wan_ip</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="Q.!Pq*;oeME@}|hiZ6`7" collapsed="true"> <field name="INSTANCE"></field> <field name="LOG">error</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="(j3GFpxE9*C2l^jg=sWw"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="/K9SvMP2;xv?zDppJIS!"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="5g8IN=S:K_(Ag*`f{hCq"> <field name="TEXT">⚠️ Die dyndns-IP </field> </block> </value> <value name="ADD1"> <block type="get_value" id="Gtd8SWG`rss-TJ5:)bn!"> <field name="ATTR">val</field> <field name="OID">unifi.0.default.health.wan.wan_ip</field> </block> </value> <value name="ADD2"> <block type="text" id="^:%3:b*m$8Zm^pix=C3s"> <field name="TEXT"> konnte nicht gepingt werden.</field> </block> </value> </block> </value> <next> <block type="exec" id="t}2EYShbX+S]v`rU96rZ" collapsed="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="jk/`0mhfhSzx(gH:;KzE"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="qkj~Z}McOZ%ST$qC^`|6"> <mutation items="8"></mutation> <value name="ADD0"> <block type="text" id="]iJXeK?G.=s=@|7Bp|7K"> <field name="TEXT">curl "https://mygotify.meistermopper.de/message?token=</field> </block> </value> <value name="ADD1"> <block type="get_value" id="t9cG=wUeV#?8e`Zc1X|$"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.gotifytoken.iobroker</field> </block> </value> <value name="ADD2"> <block type="text" id="85GDr0(MlTYeHa{oK#{i"> <field name="TEXT">" -F "title=</field> </block> </value> <value name="ADD3"> <block type="text" id="}f8amb55hvNXm:z,:t(p"> <field name="TEXT">ioBroker:</field> </block> </value> <value name="ADD4"> <block type="text_newline" id="Nz/%Ylqzg4MKm)Urp/%,"> <field name="Type">\n</field> </block> </value> <value name="ADD5"> <block type="text" id="{97Uv|2/ij(%0(7WN0bj"> <field name="TEXT">" -F "message=</field> </block> </value> <value name="ADD6"> <block type="text_join" id="0W:a4pX`7qZ#~l@~ju7n"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="nwc9QCaxo$-2G$v^o$OI"> <field name="TEXT">⚠️ Die dyndns-IP </field> </block> </value> <value name="ADD1"> <block type="get_value" id="[u5O`24Q)?GM{%N@pe#0"> <field name="ATTR">val</field> <field name="OID">unifi.0.default.health.wan.wan_ip</field> </block> </value> <value name="ADD2"> <block type="text" id="mAp|CUc:6+*C2p9g^f8|"> <field name="TEXT"> konnte nicht gepingt werden.</field> </block> </value> </block> </value> <value name="ADD7"> <block type="text" id="D8pRtdN?RQJwN4aD_Z8!"> <field name="TEXT">" -F "priority=1"</field> </block> </value> </block> </value> <next> <block type="variables_set" id="ccH[|2n.O8crG$U`qo8A"> <field name="VAR" id="iV|Q4#}M#GvJMC)-ifVg">message</field> <value name="VALUE"> <block type="logic_boolean" id="gIRZO0M_DYxqdw-rr:rT"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="HD)ugR0pkCP:v3-qQ,zB"> <value name="IF0"> <block type="variables_get" id="#qWQhj~}Xs@dG5WX}~z;"> <field name="VAR" id="iV|Q4#}M#GvJMC)-ifVg">message</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="L1l%WXgFUjPYx]r$U19x"> <field name="VAR" id="iV|Q4#}M#GvJMC)-ifVg">message</field> <value name="VALUE"> <block type="logic_boolean" id="wwhv?u}D~8:(kuC?]9xI"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml> Vielen Dank @MartinP für den Schubser 👋.
  • Alexa welcher Song spielt auf welchem Gerät?

    3
    2
    0 Stimmen
    3 Beiträge
    363 Aufrufe
    M
    @paul53 Dankeschön, das werde ich heute Abend direkt mal testen !
  • Blockly -> Telegram Anruf

    6
    2
    0 Stimmen
    6 Beiträge
    545 Aufrufe
    T
    @haus-automatisierung Nein Nein, als ich dich erwähnte, hatte ich das mit der CallMeBot Thematik noch nicht gefunden. Erst als ich die Doku der Telegram Anruf Funktion durchsucht habe, bin ich darüber gestolpert.... Und ehrlich gesagt hätte ich nicht gedacht, das das ein Service eines anderen Dienstleisters ist. Deine Blockly Blocks mit "call" ließen mich vermuten, das der Anruf von Telegram kommt :-) -> Nach der erfolgreichen "freischaltung" beim CallMeBot gehts dann auch .... (lesen bildet eben) ...sorry das ich dich für sowas aus dem Bett geholt habe :) Aber mal ehrlich: 4 Minuten finde ich echt unbrauchbar, oder was meinst du dazu ....?? Insofern, wenn es dich interessiert, kannst du ja mal bei dir testen und berichten, ansonsten begraben wir das Thema "Anrufe" :-D -> trotzdem ganz lieben Dank frs reagieren....
  • Berechnung aktueller Verbrauch und Gesamtverbrauch

    16
    5
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    L
    @lamo1966 said in Berechnung aktueller Verbrauch und Gesamtverbrauch: @homoran said in Berechnung aktueller Verbrauch und Gesamtverbrauch: du verbrauchst gerade 1183000 W? Nein, seit April 1.183kwh

490

Online

33.0k

Benutzer

83.3k

Themen

1.3m

Beiträge