Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.6k Topics 79.5k Posts

NEWS

  • JSON Parser - Aus Blockly JSON in Datenpunkte schreiben

    6
    3
    2 Votes
    6 Posts
    2k Views
    CodierknechtC
    @dark82core Wenn Du daraus nur die einzelnen Werte sauber in Datenpunkte packen willst, braucht's dafür kein Script. Das kann man auch per Alias erledigen: https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/12
  • Kontaktsensor offen wenn nicht daheim

    21
    1
    0 Votes
    21 Posts
    2k Views
    paul53P
    @olli_m sagte: Der DP wurde ja selbst erstellt von IOT: Mit falschem common.type: Er muss "boolean" sein! @olli_m sagte in Kontaktsensor offen wenn nicht daheim: unterschied zwischen wahr und "wahr". wahr (true) ist ein Logikwert, "wahr" ist eine Zeichenkette.
  • E Auto mit PV Überschuss laden

    65
    1
    0 Votes
    65 Posts
    15k Views
    B
    @JLeg in dem langen Thread bist du ja stark vertreten. Soweit ich das verstanden hab, braucht man immer ein Blockly-Skript um das Laden darstellen zu können. Kannst du mir sagen, ob es ein fertiges Blockly gibt, mit dem ich die einfachste Variante des Überschussladens darstellen kann? Ich hab von blockly absolut keine Ahnung
  • PV Überschuss nutzen um 1,5KW und 3,0KW Heizstab zu schalten

    17
    0 Votes
    17 Posts
    1k Views
    S
    @paul53 hallo, nach dem Shelly adapter upate schaltet das script die zwei shellys nicht mehr obwohl die datenpunkte vorhanden sind. was kann das jetzt wieder sein? gruß Maik
  • [gelöst] Präsenzmelder schaltet Zwischenstecker mit Abfragen

    5
    1
    0 Votes
    5 Posts
    299 Views
    I
    @paul53 Krass ! Dein Script ist um so vieles kürzer und macht trotzdem genau, was ich will ! Vielen vielen Dank !!!
  • Hilfe bei Poolpumpe mit PV Überschuss und Sonnenbatterie

    41
    3
    0 Votes
    41 Posts
    2k Views
    P
    Hallo habe nun so gelöst erstmal Müsset aber nun ne Hyserese rein damit Pumpe nich immer an auf geht.Das andere hab ich leider nicht hinbekommen. Der deaktivierte habe ich nicht ans laufen bekommen. [image: 1745067457036-1.jpg] tips sind immer willkomen
  • httpGet / self-signed certificate

    10
    0 Votes
    10 Posts
    1k Views
    haus-automatisierungH
    @robitobi Habe ich für Blockly aktuell nicht geplant. Geht ja per JavaScript für die erfahrenen Nutzer.
  • Zeitplan Woche immer Sonntags um 23:00 Uhr

    5
    0 Votes
    5 Posts
    293 Views
    ubeckerU
    @codierknecht und allen anderen, danke hab es verstanden. Nur die Auswahl (Fall1) ist nicht selbst erklärlich. Kam immer etwas anderes raus. Habe es aber jetzt verstanden. Für Fall 2 kommt ein Test hinzu, schade das es das nicht so gibt.
  • Frage zu "licht an solange Bewegung" bzw PV-Überschuss

    9
    1
    0 Votes
    9 Posts
    681 Views
    paul53P
    @rikdrs sagte: der originale DP ist vom Typ "boolean" Den Alias hast du hoffentlich auch auf Typ "boolean" geändert?
  • Automatisierung auch manuel schalten ist das möglich?

    5
    1
    0 Votes
    5 Posts
    223 Views
    paul53P
    @nico-1 sagte: Blockly automatisirung gebaut Das Setzen von timeout auf null macht Blockly seit JS-Version 7.0.5 nach Ablauf der Verzögerung automatisch.
  • Blockly - Wert über einen Zeitraum prüfen *gelöst*

    8
    0 Votes
    8 Posts
    904 Views
    W
    @surfer09 sagte in Blockly - Wert über einen Zeitraum prüfen *gelöst*: @codierknecht Sorry, aber sonst bekommt man immer Kommentare zurück, dass man den Code posten soll und keine Screenshots. Irgendwie weiß man manchmal nicht, wie man es richtig machen soll.. Blockly ist da die Ausnahme, weil sonst jeder, der Dir helfen will, das XML bei sich importieren müsste, um zu sehen, was da genau wie passieren soll, oder fähig ist, sich aus dem XML die Bilder passend im Kopf zusammenzubauen. Da ist ein Bild ausnahmsweise einfacher zu lesen. Gruss, Jürgen
  • Script funktioniert nicht, Geschirrspüler.

    27
    2
    0 Votes
    27 Posts
    2k Views
    O
    Okay, danke, werde ich mir morgen mal in Aktion anschauen und wenn es nicht funktioniert, werde ich mal "Device Reminder" testen.
  • Einfache Timersteuerung mit rekursiver Prüfung

    14
    3
    0 Votes
    14 Posts
    820 Views
    paul53P
    @m1r0o sagte: so umgesetzt und auch verstanden Das Stoppen eines (nicht vorhandenen) Intervalls ist unnütz. Stattdessen muss die Schleife abgebrochen werden, wenn 50 Wiederholungen gelaufen sind. [image: 1744229103068-blockly_temp.jpg]
  • Round ohne Dezimalstellen

    31
    0 Votes
    31 Posts
    3k Views
    HALH
    @homoran ok, werde ich mir komplett durchlesen und Danke für Deine Geduld und Hilfe.
  • Pool Dosierscript PH und Chlor

    42
    1
    0 Votes
    42 Posts
    5k Views
    Q
    @ralf-2 Alles klar. Ich hab das mal entsprechend rausgenommen. Warum da 2x zirkuliere_ph" drin ist, ist eine gute Frage. Das ist mir noch gar nicht aufgefallen. @D3ltoroxp hat das einen speziellen Grund oder ist das beim Import/Export etwas schief gelaufen ? Eine zweite Frage zu deinem Script hätte ich ebenfalls noch: Warum fragst du beim Chlor Dosieren den PH Wert OK ab ? [image: 1744021236020-fc478674-e75a-4f70-a1aa-64f694fa7b07-image.png] Ich hatte dadurch heute den Effekt, dass eine Chlor Dosierung notwendig war, diese aber nicht gestartet hat, weil der PH Wert NICHT OK war. Beste Grüße
  • Anfänger - Wie mit Script beginnen

    21
    1
    0 Votes
    21 Posts
    2k Views
    CodierknechtC
    @doppellhelix sagte in Anfänger - Wie mit Script beginnen: Ich komme aus der SPS Welt. Da muss man sich dann umgewöhnen. Wie @BananaJoe schon schriebt, läuft im ioBroker (fast) alles ereignisorientiert ab. Das kann eine Änderung an einem State sein, oder z.B. auch ein Zeitereignis. GUI-Programme für Windows funktionieren übrigens genauso ... da passiert nix, solange nicht ein Ereignis eintritt. Mausklick auf einen Button, Mausbewegung, Tastatureingabe usw. Das ist letzendlich auch deutlich ressourcenschonender als ständig irgendwelche Schleifen abzuarbeiten. Wozu sollte ein Programm etwas tun, wenn gerade nix zu tun ist`? In der SPS Welt hat man eine einfachere Sprache Ansichtssache. Wer in der großen Nicht-SPS-Welt eine (fast beliebige) Sprache beherrscht, findet sich da eigentlich sofort zurecht. SPS ist nicht die Regel, sondern eher die Ausnahme. Proframmierung in FUP (Funktionsplan) kommt der Blockly Geschicht recht nahe. Ist aber in der SPS Welt m.M. nah besser gelöst Du musst Dich leider von Dingen wie Funktions- oder Ablaufplänen verabschieden. Fange an, ereignisorientiert an die Sache heranzugehen. Was ist der Auslöser (Trigger) und welche zusätzlichen Bedingungen müssen beim Eintritt desselben erfüllt sein, um etwas zu tun. und wenn jetzt noch ein "UND" oder ein "ODER" dabei kommt ....... brrrr Das ist die eigentliche Kunst. Nennt sich "bool'sche Algebra". Hat viel mit der einst so gehassten "Mengenlehre" zu tun. Das Problem hat man aber grundsätzlich mit allen modernen Sprachen. Egal ob Basic, C, Pascal, JavaScript etc.p.p. By the way (zu Deinem Screenshot): In einem Trigger muss man den Wert des "triggernden" DP nicht nochmal lesen. Der Trigger kennt "seinen Wert" bereits (wie auch alle anderen Eigenschaften des State). Für sowas verwendet man den Block "Wert" aus dem Bereich "Trigger". Vielleicht schaust Du Dir "Blockly für Dummies" nochmal an ;-)
  • Minuten Timer bis Sonnenuntergang

    8
    1
    0 Votes
    8 Posts
    330 Views
    T
    @paul53 Im Prinzip ja. Bi noch etwas am testen für die besten Offset
  • exec befehl mit root Berechtigung (SONOSAPI)

    6
    1
    0 Votes
    6 Posts
    502 Views
    J
    Hi, Ich hatte ein ähnliches Problem. Bei einem Neustart sollte ein Befehl an raspberry gesendet werden. Das PW sollte dabei mitgegeben werden. Mit blockly habe ich es nicht hinbekommen, mit Java gings. Das Skript macht folgendes. Es überprüft den Datenpunkt mpd info connect auf false. Ist dieser auf false, wird sich auf dem raspberry mit pw eingeloggt jnd der sudo Befehl abgewendet. Vielleicht hilft dir das Skript weiter. Habe dir noch einige Anmerkungen reingeschri3ben const { Client } = require('ssh2'); // Importiere die ssh2 Bibliothek // Konfiguration für den Raspberry Pi MPD (IP, Benutzername und Passwort) const raspberryMPDConfig = { host: '192.168.XXX.XX', // IP-Adresse von Raspberry Pi MPD port: 22, username: 'pi', // Benutzername auf Raspberry Pi MPD password: 'XXX' // Passwort für den Benutzer }; let sshErrorLogged = false; // Flag, um Fehler nur einmal zu protokollieren // Funktion, die den Befehl an Raspberry Pi MPD sendet function sendCommandToRaspberryMPD() { const conn = new Client(); // Verbindung zu Raspberry Pi MPD herstellen conn.on('ready', () => { // Den Befehl "sudo service mpd start" ausführen conn.exec('sudo service mpd start', (err, stream) => { if (err) { if (!sshErrorLogged) { console.error('Fehler beim Ausführen des Befehls:', err); // Fehler nur einmal loggen sshErrorLogged = true; // Fehler flag setzen } conn.end(); return; } stream.on('data', () => { // Keine Ausgabe mehr aufzeichnen }); stream.on('close', () => { conn.end(); // Verbindung schließen }); }); }).on('error', () => { if (!sshErrorLogged) { console.error('Fehler bei der SSH-Verbindung.'); // Fehler nur einmal loggen sshErrorLogged = true; // Fehler flag setzen } }).connect(raspberryMPDConfig); } // Event-Listener für den Datenpunkt mpd.0.info.connection on({ id: 'mpd.0.info.connection', val: false }, async (obj) => { let value = obj.state.val; // Der aktuelle Wert des Datenpunkts let oldValue = obj.oldState.val; // Der vorherige Wert des Datenpunkts if (value === false) { sendCommandToRaspberryMPD(); } else { sshErrorLogged = false; // Fehlerflag zurücksetzen, wenn der Wert nicht mehr false ist } });
  • Ladepriorisierung Auto / Heizstab

    6
    0 Votes
    6 Posts
    483 Views
    J
    @paul53 ich danke und werde es mir mal durchdenken, auch wenn ich es wieder nicht verstehen werde
  • Einfaches aber kluge Steuerung einer Pumpe

    9
    1
    0 Votes
    9 Posts
    681 Views
    L
    @paul53 @Codierknecht Hey, ich habe es nochmals mit dem Timeout am Anfang überprüft, dass geht auch! Warum es zuerst nicht funktioniert hat, kann ich nicht sagen. Viele Grüße

256

Online

32.7k

Users

82.5k

Topics

1.3m

Posts