Weiter zum Inhalt

Blockly

6.6k Themen 80.2k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • "Blockly for dummies" ... Starthilfe und Tipps

    Angeheftet
    13
    11
    20 Stimmen
    13 Beiträge
    25k Aufrufe
    CodierknechtC
    Zeitpläne: Wie bereits erwähnt, funktioniert ein CRON (zumindest meiner Erfahrung nach) stabiler als Zeitpläne mit dem "Wizard". Hier mal einige Beispiele: Letzter Tag des Monats [image: 1744894226631-051251c5-aa62-4cc0-a1cb-5aabcd0ffea0-image.png] Dieser Zeitplan wird um 20:45 Uhr ausgeführt. Allerdings nur zwischen dem 28. und dem 31. eines Monats, denn sonst könnte der nächste Tag niemals der 1. sein. Die Aktionen werden nur gestartet, wenn der nächste Tag der 1. ist und damit nur am letzten Tag eines Monats. Erster XXXtag des Monats [image: 1745839449800-6590796e-937a-4253-964b-86f6f912f0e5-image.png] Dieser Zeitplan wird an jedem Samstag um 20:15 Uhr ausgeführt. Die Aktionen werden aber nur gestartet, wenn das aktuelle Tagesdatum am oder vor dem 7. des Monats liegt und damit nur am ersten Samstag eines jeden Monats. Jeden zweiten XXXtag [image: 1745839741367-c7352f39-c6d8-48f5-b2c2-6c14bc4b8225-image.png] Dieser Zeitplan wird an jedem Sonntag um 20:15 Uhr ausgeführt. Die Aktionen werden aber nur gestartet, wenn die Kalenderwoche gerade ist und damit nur jede zweite Woche. Jeden X-ten Tag [image: 1749203344341-3c732eaf-3335-467a-96bf-59e0ebf42d7d-image.png] Dieser Zeitplan wird an jeden Tag um 05:30 Uhr ausgeführt. Die Aktionen werden aber nur gestartet, wenn ein Zähler ohne Rest durch 3 teilbar ist und damit nur jeden dritten Tag. Dazu wird ein "Tageszähler" in einem eigenen Datenpunkt geführt. Dieser DP muss (unterhalb von 0_userdata.0) selbst angelegt werden!
  • Skript Wasserpumpe!

    7
    1
    0 Stimmen
    7 Beiträge
    541 Aufrufe
    paul53P
    @LaBamba [sagte]: Müsste es dann insgesamt so aussehen. Nein, so ist das Skript komplett: [image: 1783701836850-blockly_temp.jpg]
  • Ein und Ausschalten bei bestimmten PV Speicher Werten

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    477 Aufrufe
    paul53P
    @attlbill [sagte]: meine erstes Skript funktioniert Ohne Hysterese wirst du auf Dauer nicht froh werden, da zu oft geschaltet wird. Außerdem scheinst du HomeMatic-Aktoren zu verwenden, an die mit Rücksicht auf den Duty cycle nur gesendet werden sollte, wenn erforderlich. Vorschlag: [image: 1783592990494-blockly_temp.jpg]
  • Komisches Verhalten: Trigger lösen unterschiedlich nicht aus

    12
    1
    0 Stimmen
    12 Beiträge
    496 Aufrufe
    I
    Meine obige Lösung scheint den Fehler auch nicht komplett erklären zu können, da ich bei anderen Triggern auch direkte Zugriffe auf die DPe habe, und diese Trigger auch nicht ausgelöst hatten. Ich habe jetzt direkt hinter alle Trigger Logeinträge eingebaut, um die Sache besser analysieren zu können, vielleicht ergibt sich ja ein Muster.
  • Email mit mehr als 3 Anhängen senden

    5
    1
    0 Stimmen
    5 Beiträge
    324 Aufrufe
    David G.D
    @MCU Danke. Das hat geklappt. Hab es jetzt noch was anders gemacht. [image: 1783444591703-1000074351.jpg] PR ist erstellt.
  • Mit Widget Gestylt Daten addieren

    4
    0 Stimmen
    4 Beiträge
    455 Aufrufe
    T
    Ich habe es doch noch mit Blockly geschafft. Mit Hilfe von https://forum.iobroker.net/topic/71431/gelöst-dynamischer-cronjob-wie konnte ich den Trigger über die Widgets setzten. Mein abgewandeltes Blockly sieht so aus: Spoiler <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="}{npwZ~)?o^j89Z[d$[A" x="-37" y="671"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="I4*WB%Cx5+:qi#P!N;e8"> <field name="oid">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Zeit</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="MW;(2TRn`+@j},m4tSHq"> <field name="oid">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Datum</field> </shadow> </value> <statement name="STATEMENT"> <block type="schedule_clear" id="^t5@A`yzm:5}LI9E7JR`"> <field name="NAME">Boiler_Kalender_Ein</field> <next> <block type="controls_if" id="ynG%=fCq8A!s-HjfP|(H"> <value name="IF0"> <block type="logic_compare" id="9j?!g_E=*#NE5*-i5$nt"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="+#BX82++qXEwqL*ZE,ag"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_IO</field> </block> </value> <value name="B"> <block type="logic_boolean" id="dVLNGUB^rObfCtlrXW90"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="{z#7S_cd!.T/fRCtJV/5"> <field name="VAR" id="%n44K3YM4$/I{$uvi)nS">Datum_Ein</field> <value name="VALUE"> <block type="get_value" id="U6T1Ou%7|L)Dz_2,`SR2"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Datum</field> </block> </value> <next> <block type="variables_set" id="*n,cQoPWid~3R8!T.G)E"> <field name="VAR" id="*i3J=ool0in]}j9z#86_">Zeit_Ein</field> <value name="VALUE"> <block type="get_value" id="2C5@UbFjAzAI1YW3o`82"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Zeit</field> </block> </value> <next> <block type="schedule_create" id="@BGLkM/w^_e7]DvXON@f"> <field name="NAME">Boiler_Kalender_Ein</field> <value name="SCHEDULE"> <shadow type="field_cron" id="},uocH)Cp{8z._K3NRc="> <field name="CRON">* * * * *</field> </shadow> <block type="cron_builder" id="o]ND+a|O8N):B/(2yGXB"> <mutation xmlns="http://www.w3.org/1999/xhtml" seconds="false" as_line="false"></mutation> <field name="LINE">FALSE</field> <field name="WITH_SECONDS">FALSE</field> <value name="DOW"> <shadow type="text" id="Q`~Gxe,u:{c1T0,A.zaK"> <field name="TEXT">*</field> </shadow> </value> <value name="MONTHS"> <shadow type="text" id=";UsQ2RM-!oy(|]YDZ+UL"> <field name="TEXT">7</field> </shadow> <block type="convert_from_date" id="Tg^)Y}dgH@dYC]jbgQzq"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">TT</field> <value name="VALUE"> <block type="get_value" id="u:D)YCPATfaXV7-S!*nc"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Datum</field> </block> </value> </block> </value> <value name="DAYS"> <shadow type="text" id="=}6*2%k.%~M/T+Gzsf-N"> <field name="TEXT">1</field> </shadow> <block type="convert_from_date" id="SdSxSOTuyj=F9I#h+QAQ"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">MM</field> <value name="VALUE"> <block type="get_value" id="r{B`Y}GN%TQ`WTxW[nnh"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Datum</field> </block> </value> </block> </value> <value name="HOURS"> <shadow type="text" id="30TLG.po?]%8leAt^wqI"> <field name="TEXT">8</field> </shadow> <block type="convert_from_date" id="-M@YF2@vo]4H_y68N)WB"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">SS</field> <value name="VALUE"> <block type="get_value" id="?P`[Sf-8ud5T{3grPz8k"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Zeit</field> </block> </value> </block> </value> <value name="MINUTES"> <shadow type="text" id="=rh|g,;_6)1(o.44o+u)"> <field name="TEXT">23</field> </shadow> <block type="convert_from_date" id="@6`o/g78VN`Z.%B(yoRG"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">mm</field> <value name="VALUE"> <block type="get_value" id="K1H^w0pJ%F.XR4yypEiK"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_Ein_Zeit</field> </block> </value> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="control" id="@,}3]Ea%@wK;IPgV3b!r"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Meine_Datenpunkte.KELLER.KE_Boiler_IO</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="DOu6Xm(DT6k[7(pipb0]"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> [image: 1782890849151-9b006eb4-08f5-4212-8638-6273fcc81852-image-resized.jpeg] Die DP KE_Boiler_Ein_Datum und KE_Boiler_Ein_Zeit werden vom Widget [Gestylt - Eingabe des Datums] bzw. [Gestylt - Eingabe der Zeit] gefüllt. Was auffällt ist, dass TT und MM vertauscht sind (siehe debug). Das Datumsformat spuckt hier sicher rein, obwohl ich in den Systemeinstellungen DD.MM.YYYY eingetragen habe. Besten Dank an Alle
  • BHS Enumeration als Text anzeigen

    15
    0 Stimmen
    15 Beiträge
    645 Aufrufe
    paul53P
    @hunterhb [sagte]: jetzt läufts!! Mehr als 20 mal den DP-Zustand einlesen und die Übersetzung schreiben verbraucht viele Ressourcen. Verwende besser Variablen. [image: 1782851046841-blockly_temp.jpg]
  • Blockly Skripte bearbeiten auf Android

    1
    0 Stimmen
    1 Beiträge
    222 Aufrufe
    Niemand hat geantwortet
  • Poolsteuerung funktioniert das so?

    4
    0 Stimmen
    4 Beiträge
    366 Aufrufe
    G
    Das werde ich mir mal anschauen. Danke.
  • Alexa quasselt neuerdings immer weiter im Anrufer script

    2
    3
    0 Stimmen
    2 Beiträge
    375 Aufrufe
    S
    OK ich habe es schon selber gefunden: Hier standen falsche werte drin: [image: 1782551591266-6b19d99f-ebd5-4d31-90ca-9c030bd91824-image.jpeg] Gruß HDM
  • Wartungsarbeiten - Blockly Scripte pausieren

    3
    0 Stimmen
    3 Beiträge
    438 Aufrufe
    skvarelS
    Ich würde keine Scripte 'pausieren' sondern es mit einem Datenpunkt (Wartung = true/false) und Abfrage machen. Ich hatte bei bei pausierten/gestoppten Scripten schon öfter ein merkwürdiges Verhalten.
  • Werte Datenpunkten per CSV-Datei oder ähnlichem versenden

    17
    0 Stimmen
    17 Beiträge
    535 Aufrufe
    J
    BR konnte ich nicht eingeben, hab den Haken bei HTML raus gemacht und jetzt geht es!Danke für den Hinweis!
  • Diskussionsthread zu "Blockly für Dummies"

    49
    1 Stimmen
    49 Beiträge
    8k Aufrufe
    CodierknechtC
    @jensven Ich hab's mal ergänzt. https://forum.iobroker.net/topic/70481/blockly-for-dummies-...-starthilfe-und-tipps/4
  • Steuern der HmIP-ASIR-O Sirene ?

    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    LongbowL
    Ist einiges an Jahren her, aber ich bekomme das auslösen hin, nur wie bekomme ich das dann hin, das ich den Alarm abschalten möchte?
  • Hilfe bei Blockly

    230
    1
    0 Stimmen
    230 Beiträge
    18k Aufrufe
    paul53P
    @tiobb [sagte]: Wofür steht cnt, counter? Ja.
  • [Vorlage] Gartenbewässerung mit 6 Ventilen

    1k
    7
    7 Stimmen
    1k Beiträge
    450k Aufrufe
    SeffeS
    @Kuddel Hallo Kuddel, vielen Dank für deine schnelle Antwort. Das einfügen des Wertes 0, hat das Problem der Intervallfunktion beseitigt. Die Fehlermeldung mit "Error by subscription (trigger): Wrong ID of type boolean or number" verursacht bei mir keine Abstürze bzw. habe ich noch keine Funktionseinschränkungen feststellen können von daher besteht auch für mich in diesem Punkt absolut keine Eile. Gruß Tobias
  • [gelöst] Frage zu Blockly und email send to

    9
    1
    0 Stimmen
    9 Beiträge
    515 Aufrufe
    Thomas BraunT
    @jolic sagte: Soweit ich weiß, bist du unter anderem auch auf Arch unterwegs, oder? Ja, aber nicht auf den Hosts mit dem ioBroker. Auf meinem Laptop läuft aber EndeavourOS. Auf den beiden Raspberries läuft Debian 13. Aber ich hab das iob diag skript mittlerweile so umgeschrieben, dass es auch auch auf anderen Distributionen ohne großes Gezeter läuft. Das ist übrigens bei 'iob fix' nicht der Fall, das ist sehr Debian-lastig ausgelegt.
  • Regelung eines Hoymiles Solarinverters (Nulleinspeisung)

    205
    1
    1 Stimmen
    205 Beiträge
    81k Aufrufe
    G
    @tourer4778 Jein. Der kleine WR macht die Grundlast 200W Der große WR läuft über die Regelung. Nur wenn der große WR nicht mehr die Leistung an den Panels hat, die er laut Einstellung haben müsste, geht der klein WR auf 100%. Was besseres ist mir nicht eingefallen.
  • Steuerung Wechselrichter Limit soll nach Zeit sinken

    4
    1
    0 Stimmen
    4 Beiträge
    431 Aufrufe
    G
    Ich denke es geht noch nicht ganz. [image: 1780936958330-59ed2a07-b116-4a73-873f-e4936e6d08a5-image.jpeg]
  • Script zum Laden/Entladen von Zendure Solarflow

    309
    5
    2 Stimmen
    309 Beiträge
    44k Aufrufe
    M
    welchen modus muss man in der app wählen ? gibt es irgendwo eine anleitung, die aktuell ist, wie man den adapter und die app einstellt?

440

Online

33.0k

Benutzer

83.4k

Themen

1.3m

Beiträge