Weiter zum Inhalt

Blockly

6.6k Themen 80.5k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • OpenDTU-onBattery DPL Inverter dynamisch (de-)aktivieren

    2
    1
    0 Stimmen
    2 Beiträge
    510 Aufrufe
    maxclaudiM
    Update 11.07.2026_14.13h: Statusabfrage wie bisher. Neu: Vorab-Vergleich von Ist- und Wunschwert (is_governed). Konfigurations-Update und POST-Request erfolgen nur noch bei nötiger Änderung.
  • [Vorlage] Gartenbewässerung mit 6 Ventilen

    1k
    7
    7 Stimmen
    1k Beiträge
    494k Aufrufe
    Q
    @kuddel Ich setzte seit einigen Jahren sehr zufrieden dein Bewässerungsscript bei mir ein. In 49 von 50 Fällen funktioniert das auch sehr zuverlässig und wie gewünscht bei mir. Leider passierts selten aber doch, dass sich meine HM Wired Classic Schaltaktoren verschlucken, was bei den Bewässerungsventilen natürlich eine kritische Sache ist. So wie heute, schließt sich das Ventil nicht und bewässert 4 Stunden weiter, bis ich es bemerkt habe und manuell ein/aus geschaltet habe. Fehlermeldung im Log: Spoiler 2026-07-11 04:34:03.434 - info: hm-rpc.0 (750) Temporary error occurred for "setValue" with "["MEQ1534614:14","STATE",false]": Error: XML-RPC fault: Failure 2026-07-11 04:34:03.444 - info: hm-rpc.0 (750) State value to set for "hm-rpc.0.MEQ1534614.0.UNREACH" has to be type "boolean" but received type "number" 2026-07-11 04:34:03.445 - info: hm-rpc.0 (750) State value to set for "hm-rpc.0.MEQ1534614.0.STICKY_UNREACH" has to be type "boolean" but received type "number" 2026-07-11 04:34:04.831 - info: hm-rpc.0 (750) Temporary error occurred for "setValue" with "["MEQ1534614:17","STATE",true]": Error: XML-RPC fault: Failure 2026-07-11 04:34:04.832 - error: hm-rpc.0 (750) xmlrpc -> setValue ["MEQ1534614:14","STATE",false] BOOL 2026-07-11 04:34:04.832 - error: hm-rpc.0 (750) Cannot call setValue: Error: XML-RPC fault: Failure 2026-07-11 04:34:04.983 - error: hm-rpc.0 (750) xmlrpc -> setValue ["MEQ1534614:17","STATE",true] BOOL 2026-07-11 04:34:04.983 - error: hm-rpc.0 (750) Cannot call setValue: Error: XML-RPC fault: Failure Jetzt habe ich zu diesem Problem folgenden Workaround gefunden: https://www.blogging-it.com/setstate-synchrone-verarbeitung-der-iobroker-homematic-rpc-adapter-befehle-via-bin-rpc-xml-rpc-um-probleme-bei-der-kommunikation-zu-vermeiden/hausautomatisierung-smart-home/iobroker/skripte-und-logiken.html Meine Frage/Bitte: Kannst du diese Art der Verarbeitung bzw. Befehle in dein Script übernehmen ? Ich hätte die Hoffnung, damit eine noch höhere Zuverlässigkeit erreichen zu können. Danke. Beste Grüße
  • Skript Wasserpumpe!

    7
    1
    0 Stimmen
    7 Beiträge
    972 Aufrufe
    paul53P
    @LaBamba [sagte]: Müsste es dann insgesamt so aussehen. Nein, so ist das Skript komplett: [image: 1783701836850-blockly_temp.jpg]
  • Komisches Verhalten: Trigger lösen unterschiedlich nicht aus

    12
    1
    0 Stimmen
    12 Beiträge
    924 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
    627 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
    751 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
    980 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
    362 Aufrufe
    Niemand hat geantwortet
  • Poolsteuerung funktioniert das so?

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

    2
    3
    0 Stimmen
    2 Beiträge
    630 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
    709 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
    882 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
    9k 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?
  • [gelöst] Frage zu Blockly und email send to

    9
    1
    0 Stimmen
    9 Beiträge
    719 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.
  • Steuerung Wechselrichter Limit soll nach Zeit sinken

    4
    1
    0 Stimmen
    4 Beiträge
    508 Aufrufe
    G
    Ich denke es geht noch nicht ganz. [image: 1780936958330-59ed2a07-b116-4a73-873f-e4936e6d08a5-image.jpeg]
  • [gelöst] letzter Tag im Monat Zeitplan Blockly ausführen

    23
    2
    0 Stimmen
    23 Beiträge
    1k 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.
  • problems with regExp filtering

    Verschoben
    28
    2
    0 Stimmen
    28 Beiträge
    1k 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 !!!
  • ENTFERNT

    2
    1 Stimmen
    2 Beiträge
    425 Aufrufe
    maxclaudiM
    entfernt.
  • Zusammenfassung zweier Scripte

    3
    2
    0 Stimmen
    3 Beiträge
    237 Aufrufe
    MichaelFM
    @paul53 Danke, macht genau das was es soll. Und wieder eine Kleinigkeit gelernt. Grüsse

462

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge