Weiter zum Inhalt

Blockly

6.6k Themen 80.5k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • Skript löst "fälschlicherweise" aus

    24
    2
    0 Stimmen
    24 Beiträge
    937 Aufrufe
    ?
    Soooo habe auch herausgefunden warum er das macht und konnte den Fehler Adapterseitig beseitigen. Anstatt einfach nur setStateAsync muss man setStateChangedAsync nutzen. Dann beschreibt der Adapter den Datenpunkt nur wenn der Wert wirklich anders ist. Somit wieder was gelernt. :) @David-G In der Github Version ist es bereits geändert. Ansonsten auf das nächste Release warten.
  • Event auslösen wenn länger als Zeit X

    37
    0 Stimmen
    37 Beiträge
    4k Aufrufe
    BananaJoeB
    @asgothian sagte in Event auslösen wenn länger als Zeit X: Aber im grossen und ganzen halte ich es für empfehlenswert sich tiefer mit der Event-Basierten Programmierung zu beschäftigen um weniger regelmässige Skripte zu haben. Da hast du natürlich Recht. Ich nutze das "1x die Minute" genau genommen auch nur an 2 Stellen für VIS Darstellungen (z.B. Ereignisanzeige auf der verschiedenen Meldungen nacheinander angezeigt werden, neue Meldungen aber sofort erscheinen), der große Rest läuft Eventbasiert - das war ja gerade eines der Dinge die ich genial finde (neben dem Objektebaum) und mich deshalb für ioBroker entschieden hatte.
  • Zigbee2MQTT Szenen - best practise

    3
    0 Stimmen
    3 Beiträge
    885 Aufrufe
    T
    @solear said in Zigbee2MQTT Szenen - best practise: Erstelle ich die (Licht-)Szenen in iobroker über Blockly? Ich nutze dafür den Szenen-Adapter. Und Lampen, die das gleiche tun, habe ich in Z2M bereits in einer Gruppe zusammengefasst. Via Szenen-Adapter erstelle ich dann die Szene für diese Gruppe. Via Blockly triggere ich diese dann.
  • Lichttaster: Szenen wechseln mit "aus" wenn an

    6
    1
    0 Stimmen
    6 Beiträge
    796 Aufrufe
    S
    Jetzt geht es, wie ich es mir wünsche. Er schaltet die Szenen endlos durch, und wenn nach 4 Sekunden der erste Klick erst kommt dann ist die erste Szene "ausschalten". Perfekt. Und für andere Schalter kann ich das als Vorlage nehmen und beliebig viele Szenen ohne großen Umbau mit dazwischenschieben. Vielen Dank für die Unterstützung, @cinimod! [image: 1676546589158-jaaaaaa.png] Blocklycode: <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="!]2uNISp)(2z[:rRlh[K">Klicks</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="comment" id="K_L^@~T6I$hSAIs7?XvC" x="137" y="-38"> <field name="COMMENT">Szenenwechsel bei jedem Klick</field> <next> <block type="comment" id="r}C#a.(4@J{{9^.=8gn,"> <field name="COMMENT">Nach 4s Pause ist die 1. Szene "aus"</field> <next> <block type="variables_set" id="?hkjQ),jsEn.X!lMxKX6"> <field name="VAR" id="!]2uNISp)(2z[:rRlh[K">Klicks</field> <value name="VALUE"> <block type="math_number" id="h!c7MtE0GCQ6qW#}?,hM"> <field name="NUM">0</field> </block> </value> <next> <block type="on_ext" id="%z~o_GT_v*/QON4]}DyG"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="cJyG]hyC?jpbXC{2w-H7"> <field name="oid">zigbee2mqtt.0.0x001788010b036de3.left_press</field> </shadow> </value> <statement name="STATEMENT"> <block type="math_change" id="Wk7j3Uy))Ts*J~0j9o}J"> <field name="VAR" id="!]2uNISp)(2z[:rRlh[K">Klicks</field> <value name="DELTA"> <shadow type="math_number" id="pH{ZQBPxF$Ymr]`|~%#k"> <field name="NUM">1</field> </shadow> </value> <next> <block type="logic_switch_case" id="*Yw0V551#@)!/#kwuj~r"> <mutation xmlns="http://www.w3.org/1999/xhtml" case="2"></mutation> <value name="CONDITION"> <block type="variables_get" id="^t*u(J5u5zkP*fN+{?L^"> <field name="VAR" id="!]2uNISp)(2z[:rRlh[K">Klicks</field> </block> </value> <value name="CASECONDITION0"> <block type="math_number" id="tt-6$J5_,nG~C3Jj{|P0"> <field name="NUM">1</field> </block> </value> <statement name="CASE0"> <block type="control" id="k$wBV%n@$xJVf.Tk!C2."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee2mqtt.0.group_1.scene_3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="+ds26DyFaBid},v;0$Q+"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="*~%aP=m0mIIZ6G*C(3@O"> <field name="NAME">timeout</field> </block> </next> </block> </statement> <value name="CASECONDITION1"> <block type="math_number" id="gq)W,Y%FV3*c9D#qJI!b"> <field name="NUM">2</field> </block> </value> <statement name="CASE1"> <block type="control" id="?/PIK82pBr#B?=-5RZK:"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee2mqtt.0.group_1.scene_0</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="3iz}eYh1qmWna-+F+gVu"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="uBqz1adGFjrEPJVN#Zru"> <field name="NAME">timeout</field> </block> </next> </block> </statement> <value name="CASECONDITION2"> <block type="math_number" id="dO`jPL$5/r#4DB.$!7,I"> <field name="NUM">3</field> </block> </value> <statement name="CASE2"> <block type="control" id="n8brd[emU1kh$`-e_vy,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee2mqtt.0.group_1.scene_2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="SdHJ8-Yz7Q[0`}6#~8hF"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="~z_Bx1J:!9rm!HX9xlDn"> <field name="NAME">timeout</field> <next> <block type="variables_set" id="JmNN.UbH8ldpJSUzeocn"> <field name="VAR" id="!]2uNISp)(2z[:rRlh[K">Klicks</field> <value name="VALUE"> <block type="math_number" id="6fM}cu|D;$mUnja,5Fr?"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="pymP8RHtohz./*K5Vr5M"> <field name="COMMENT">Ausschalten überspringen wenn schon aus</field> <next> <block type="timeouts_settimeout" id="FBl.gAm45o-wu}Ub^W^r"> <field name="NAME">timeout</field> <field name="DELAY">4</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="controls_if" id="}4/I$_H]fTOR/FmF]Cx)"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="6K`%bre.I)Jc#@]=V=)V"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="EnB`x5NI_i?1-e_;=dP/"> <field name="ATTR">val</field> <field name="OID">zigbee2mqtt.0.group_1.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="U4r!=;1Dub:b=2S41$S!"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="d]4B~qF#*K+]?$Wo@G52"> <field name="VAR" id="!]2uNISp)(2z[:rRlh[K">Klicks</field> <value name="VALUE"> <block type="math_number" id="@1gR=FgW}`y]p|/`@?cQ"> <field name="NUM">0</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="]$dzxZ/Yl9G:TZT*!:uD"> <field name="VAR" id="!]2uNISp)(2z[:rRlh[K">Klicks</field> <value name="VALUE"> <block type="math_number" id="1%W/vH`kWcoMO}ho8$bB"> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </xml>
  • States aus einer Liste in Datenpunkte zurück schreiben

    7
    1
    0 Stimmen
    7 Beiträge
    702 Aufrufe
    FoGF
    @paul53 Super - vielen Dank !!!!
  • JSON Inhalt per Mail senden

    21
    2
    0 Stimmen
    21 Beiträge
    3k Aufrufe
    David G.D
    @nik82 Interessant. Die letzte Änderung liegt bei mir auch schon was her. Kommt trotzdem alle 10sek die Mail. [image: 1676474037067-screenshot_20230215_161253_chrome.jpg]
  • Datenpunkt erhöhen : gelöst

    4
    0 Stimmen
    4 Beiträge
    337 Aufrufe
    Uwe WaizmannU
    Vielen Dank für die Tipps. Problem ist gelöst :-)
  • Wenn Wert innerhalb bestimmter Zeit 3x geändert

    3
    1
    0 Stimmen
    3 Beiträge
    301 Aufrufe
    S
    @paul53 funktioniert, Danke :)
  • Die Geister die ich rief ...........

    3
    1
    0 Stimmen
    3 Beiträge
    207 Aufrufe
    DuffyD
    @djmarc75 Herzlichen Dank werde ich gleich versuchen. Gruß Duffy
  • Ausgabe von ID Wert in Kombination mit Text >> gelöst!

    6
    1
    0 Stimmen
    6 Beiträge
    600 Aufrufe
    W
    @glasfaser @Homoran Ich wollte hier gern mit Blockly arbeiten. Weil ich im Widget 5 Datenpunkte untereinander angeordnet habe. Aber manchmal hat man eben ein Brett vorm Kopf. Ich kann natürlich auch 1 Datenpunkt mit falsch und wahr abgleichen mit einer °C als Umschaltpunkt wo eben nur der Status geändert wird und der Rest bleibt gleich im Code ;-). Danke für den Denkanstoß. Jetzt geht es auf die einfache Art, anstatt über 5 böhmische Dörfer. Das gebastel mit dem Blockly hat mich trotzdem weitergebracht im Verständnis und ich werde auch das weiter testen. Danke Puffer gesperrt über Astrouhr: [image: 1676382815230-1.png] Puffer Freigegeben über Astrouhr (°C jetzt nur zum Test geschaltet da Leerfühler): [image: 1676382857465-2.png] Nachtrag: Das Blockly funktioniert jetzt auch mit °C als Anhang. Der Trigger war nur stabil und es gab keine Änderung. Dadurch wurde dann wohl auch der Wert nicht angepasst. Grüße Wiesel
  • [gelöst] Zählung Fenster offen läuft nicht los

    blockly
    8
    6
    0 Stimmen
    8 Beiträge
    298 Aufrufe
    haus-automatisierungH
    @schneidy76 Besser wäre übrigens, den Datenpunkt "Fenster offen" nach der Schleife nur 1x zu schreiben (und nicht bei jedem Durchlauf). Falls es ein eigener Datenpunkt ist, dann verwende besser "aktualisiere" statt "steuere" (damit ack: true ist).
  • Wo ist die checkBit Funktion

    blockly
    3
    0 Stimmen
    3 Beiträge
    635 Aufrufe
    G
    @paul53 Danke für die Antwort. Den Aufruf von JavaScript aus Blockly habe ich schon gesehen aber noch nicht benutzt. Jetzt, mit Deiner Antwort habe ich mich ein bisschen reingefuchst. Ich will meine Lösung gerne hier eintragen, vielleicht haben anderer auch noch was davon. Vorher aber vielleicht die Aufgabenbeschreibung: Die Frage kam aus einem anderen Beitrag (zur Photovoltaik). Da will jemand mit Blockly die Bits eines ModBus-Registers (Register 13000) auswerten. Bit1 beschreibt die Funktion dass die Batterie geladen wird, Bit2 die Funktion des Entladens der Batterie. Das ist jetzt, dank Deiner Hilfe das Ergebnis: [image: 1676319687428-bc0a9b9f-284f-47d1-9875-15b657b894c3-image.png] mir diesem Script: return (register13000 & bitSetting) == bitSetting; Danke für die Hilfe.
  • Astrozeiten (neuste version?)

    blockly javascript
    33
    0 Stimmen
    33 Beiträge
    14k Aufrufe
    S
    @Homoran @paul53 Danke euch beiden für die Ideen 🙃 Die Variable "....isDaytime" habe ich auch schon mal gefunden, werde ich ausprobieren 😀
  • Pushover Meldung wenn Fenster 30min offen

    4
    1
    0 Stimmen
    4 Beiträge
    451 Aufrufe
    J
    @paul53 : danke für das Beispiel. Habe meine Skripte entsprechend geändert.
  • Echo Show nach 30s ausschalten

    3
    1
    0 Stimmen
    3 Beiträge
    368 Aufrufe
    UHU01U
    @crunchip Anzeigen lasse ich das Bild auf einem Echo Show. Das "Stopp" soll einfach das Anzeigen des Kamerabildes wieder beenden. Per manuellem Sprachbefehl funktioniert das Stoppen auch. Aber nicht aus dem Script (zuminest nicht zuverlässig).
  • Anwesenheiterkennung - debug output erhöht sich um +1

    13
    1
    0 Stimmen
    13 Beiträge
    360 Aufrufe
    B
    @djmarc75 ja hasst recht sorry, natürlich funktioniert der Adapter zuverlässig, habe mich falsch ausgedrückt. Also erstmal, will ich an den Geräten so wenig wie möglich ändern / installieren / einstellen usw. Im 4-köpfigen Haushalt, mit 4 bzw. 5 Handys, geht es noch, aber wäre besser, wenn es zentral wäre ohne jedes Gerät anzufassen. Für mich ist es am besten vor mehreren Monitoren und richtiger Tastatur + Maus zu sitzen als an Kleingeräten rum streicheln. Geschmackssache, oder doch evtl. Altersbedingt :-) Im anderen Fall möchte ich, wenn ich kurzfristig mal wegfahre oder fliege den Schlüssel jemanden überlassen (mit angehängtem Beacon) ohne sein Handy einzubinden. Gibt halt mehrere Szenarien. "fbcheckpresence", werde ich mir auf jedenfall angucken. danke nochmals
  • Shelly Switcht schaltet nicht bei Ansteuerung über Blockly

    9
    0 Stimmen
    9 Beiträge
    709 Aufrufe
    G
    @tt-tom Ok, das war der Fehler aktualisiert. Das erklärt auch warum die Plugs funktionier haben . Die waren mit steuere codiert. Danke und Gruß Roland
  • [gelöst] Datenpunkt ist vorhanden dann anderen DP auf true

    3
    0 Stimmen
    3 Beiträge
    315 Aufrufe
    WszeneW
    @liv-in-sky Danke das funktioniert perfekt
  • Akku An-und Ausschalten mit Benachrichtigung

    23
    1
    0 Stimmen
    23 Beiträge
    2k Aufrufe
    L
    @paul53 Oh mann hab da wo ganz anders geschaut dachte nicht das ich das nur unten dran setzten muss. Woran kann es liegen das ich nachts um 12 immer eine Meldung bekomme. Egal ob derAkku noch läuft oder bereits aus ist.
  • Zeitintervall wird scheinbar nicht eingehalten.

    2
    2
    0 Stimmen
    2 Beiträge
    120 Aufrufe
    padrinoP
    @smirno Nutze besser Timeout/Ausführen Intervall alle... Und pack ein "stop Intervall" rein, wenn i erreicht ist. Also, etwa [image: 1676163747819-screenshot_20230212-020140_chrome.png]

428

Online

33.0k

Benutzende

83.7k

Themen

1.3m

Beiträge