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
    24k 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!
  • Mit Widget Gestylt Daten addieren

    4
    0 Stimmen
    4 Beiträge
    198 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
    302 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
    101 Aufrufe
    Niemand hat geantwortet
  • Poolsteuerung funktioniert das so?

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

    2
    3
    0 Stimmen
    2 Beiträge
    143 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
    202 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
    277 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
    807 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
    16k Aufrufe
    paul53P
    @tiobb [sagte]: Wofür steht cnt, counter? Ja.
  • [Vorlage] Gartenbewässerung mit 6 Ventilen

    1k
    7
    7 Stimmen
    1k Beiträge
    434k 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
    281 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
    77k 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
    200 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
    42k 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?
  • [gelöst] letzter Tag im Monat Zeitplan Blockly ausführen

    23
    2
    0 Stimmen
    23 Beiträge
    853 Aufrufe
    CodierknechtC
    @Mario64 sagte: Ich gehe jetzt einfach mal davon aus das das mit der Einstellung (Post #13) zu tun hat. Mal sehen was morgen im LOG steht. Wie @homoran schon schrieb: Wenn Du am Morgen reinschaust sieht Du im Protokoll ja nur die heutigen Einträge. Das ist völlig unabhängig von der Anzahl Tage die man eingestellt hat. Damit wird lediglich eingestellt, wie weit man beim Herunterladen zurückgehen kann. Hast Du eine Art Benachrichtigung zur Hand (Email, Pushover, Signal etc.)? Dann lass Dir doch statt 'nem Protokolleintrag oder zusätzlich eine Nachricht schicken.
  • OpenDTU-onBattery DPL Inverter dynamisch (de-)aktivieren

    1
    1
    0 Stimmen
    1 Beiträge
    175 Aufrufe
    Niemand hat geantwortet
  • problems with regExp filtering

    Verschoben
    28
    2
    0 Stimmen
    28 Beiträge
    567 Aufrufe
    Z
    So, es läuft alles, herzlichen Dank, alle mqtt tickets von meinen beiden speichern werden nun korrekt ausgewertet und in neue Datenpunkte geschrieben. Kleiner Tip am Rande: ich musste die vielen Schleifen wider einfügen und für jeden Datenpunkt 2 Variablen anlegen. (Speicher1,Liste1,Speicher2,Liste2 usw.) Threat kann dann zu !!!
  • Zendure API per AppKey Device-List DeviceID ProductID Passw.

    2
    1
    1 Stimmen
    2 Beiträge
    310 Aufrufe
    maxclaudiM
    Blockly update: im Log nun auch für jedes Gerät das extrahierte Cloud-MQTT-Passwort enthalten. Den für die Anfrage benötigten Key bekommt Ihr von der Zendure-App: Profil -> Autorisierungs-Cloud-Schlüssel -> Abrufen edit: Blockly update 20.06.2026_11.15h

254

Online

33.0k

Benutzer

83.3k

Themen

1.3m

Beiträge