Weiter zum Inhalt

Blockly

6.6k Themen 79.8k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • Blockly-Ersatz für BWM "Time No Motion"?

    18
    0 Stimmen
    18 Beiträge
    880 Aufrufe
    D
    @asgothian said in Blockly-Ersatz für BWM "Time No Motion"?: Skript-Intern: Variablen. Skript-übergreifend; Datenpunkte Das hoffe selbst ich behalten zu können. Danke
  • Aqara Fensterkontakt am Gefrierschrank.Meldung per email

    Verschoben
    15
    0 Stimmen
    15 Beiträge
    778 Aufrufe
    K
    @paul53 stimmt
  • Steuerung Zendure Solarflow 800Pro

    2
    1
    0 Stimmen
    2 Beiträge
    281 Aufrufe
    C
    @daniel-8 Hey Daniel, hast du den SF800 Pro nur per MQTT mit dem ioBroker verbunden oder nutzt du den Adapter? https://github.com/nograx/ioBroker.zendure-solarflow Funktioniert es per MQTT gut? Werden die Daten dann lokal per WLAN vom SF800 Pro geholt? Die App funktioniert trotzdem noch? Klappt die 0-Einspeisung automatisch oder muss man da selber ein Blockly oder so bauen? Danke, Grüße Christoph
  • [gelöst] Radar2 - kein Statuswechsel bei Wechsel WLAN

    12
    0 Stimmen
    12 Beiträge
    688 Aufrufe
    Z
    @crunchip VIELEN DANK! Die ersten Tests sehen gut aus.
  • Ladestatiot Abschalten bei Wert X

    17
    1
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    paul53P
    @sleepless135 sagte: Leider schaltet das Script alles nach denn 45 Sekunden wieder ab. Dein Grenzwert für "stop timeout" ist zu hoch. Ich hatte 260 vorgeschlagen.
  • Steuerung Heizstab per PV und Warmwasser-Temperatur

    9
    1
    0 Stimmen
    9 Beiträge
    329 Aufrufe
    Dani el PotrancoD
    @paul53 Oh man, ja klar. Der untere Teil war's. Ich.... Vielen lieben Dank. Das autom. Einschalten klappt jetzt schon prima. Edit: Das autom. Ausschalten hat auch prima geklappt. Perfekt. Herzlichen Dank für den Support.
  • [gelöst]Heizstabsteuerung mit PV mit Speicher

    Verschoben
    46
    3
    0 Stimmen
    46 Beiträge
    5k Aufrufe
    J
    @paul53 alles klar, werde ich probieren, dankeeee
  • Blockly-Zeitplan Wochentag / Wochenende

    4
    1
    0 Stimmen
    4 Beiträge
    269 Aufrufe
    paul53P
    @christobal0815 sagte: Das Skript läuft zu jeder vollen Stunde Das Skript läuft täglich um 6:45 Uhr und um 8:45 Uhr. Die Prüfung des Wochentages bestimmt, zu welchem Zeitpunkt die Nachrichten gesendet werden. @christobal0815 sagte in Blockly-Zeitplan Wochentag / Wochenende: Ist es „Ressourcenschonender“ zwei Skripte zu erstellen mit Cron Mo - Fr und Sa/So oder die von dir vorgeschlagene Variante Die vorgeschlagene Variante ist Ressourcen schonender, aber weniger flexibel. Noch weniger Ressourcen benötigt folgende Version: [image: 1754513598495-blockly_temp.jpg]
  • [gelöst] Datenpunkte auslesen als Tabelle im VIS darstellen

    5
    0 Stimmen
    5 Beiträge
    440 Aufrufe
    H
    @oliverio Auch dir herzlichen Dank. Versuche ich auch. Bin gespannt 😊
  • Variablen innerhalb des Scriptes definieren *gelöst*

    10
    0 Stimmen
    10 Beiträge
    669 Aufrufe
    G
    @issi sagte in Variablen innerhalb des Scriptes definieren: /** * Haustür-Lampensteuerung: * - Nur bei Dunkelheit: Beim Öffnen der Tür wird die Hue Außenlampe auf 100% gesetzt. * Dabei wird der vorherige Helligkeitswert gespeichert. * - Beim Schließen: Nach 2 Minuten wird der vorherige Wert wiederhergestellt. * - Entprellung, Schutz gegen Überschneidungen und Logging. * - Nur der persistente State wird bei Bedarf erstellt; andere States müssen existieren. * - Gespeichert wird als number mit -1 = "kein Wert gespeichert" */ // === Konfiguration / Konstanten === const doorSensor = 'alias.0.Sensor Haustür.opened'; // Tür geöffnet/geschlossen const hueDoorLevel = 'hue.0.Haustür.level'; // Hue Außenlampe Level const savedLevelState = 'javascript.0.Aussenlampe_Zustand'; // Persistenter interner Speicher (-1 = leer) // === Robustheits-Einstellungen === const DEBOUNCE_MS = 2000; // Entprellzeit in ms let busy = false; let lastEventTime = 0; // Logging ein/aus const enableLogging = true; function logInfo(msg) { if (enableLogging) log(`[Haustür-Script] ${msg}`, 'info'); } function logWarn(msg) { if (enableLogging) log(`[Haustür-Script] ${msg}`, 'warn'); } // === Helfer === // Prüft, ob das Level eine valide Zahl zwischen 0 und 100 ist function isValidLevel(lvl) { return typeof lvl === 'number' && lvl >= 0 && lvl <= 100; } // Prüft, ob es gerade dunkel ist (also NICHT zwischen sunrise und sunset) function isDark() { return !compareTime(getAstroDate('sunrise', undefined, 0), getAstroDate('sunset', undefined, 0), 'between', null); } // === Persistenten State sicherstellen === if (!existsState(savedLevelState)) { createState(savedLevelState, -1, { read: true, write: true, name: 'Gespeichertes Haustür-Level vor Änderung', role: 'level', type: 'number', def: -1, min: -1, max: 100 }); logInfo(`State "${savedLevelState}" (number mit -1 als Leerwert) wurde angelegt.`); } // === Hauptlistener auf Tür-Statusänderung === on({ id: doorSensor, change: 'ne' }, async (obj) => { const now = Date.now(); // Entprellung: zu schnelle Folgetrigger ignorieren if (now - lastEventTime < DEBOUNCE_MS) { logInfo('Event verworfen wegen Entprellung.'); return; } lastEventTime = now; // Schutz gegen parallele Ausführung if (busy) { logWarn('Übersprungen: Script ist noch in Bearbeitung.'); return; } busy = true; try { const isOpen = obj.state.val === true; const stored = getState(savedLevelState)?.val; // -1 = leer const currentLevelObj = getState(hueDoorLevel); const currentLevel = currentLevelObj?.val; if (isOpen) { logInfo('Tür geöffnet erkannt.'); if (isDark()) { logInfo('Es ist dunkel – Lampenstatus wird angepasst.'); // Vorheriges Level nur speichern, wenn noch nichts gespeichert ist und aktueller Level gültig if (stored === -1 && isValidLevel(currentLevel)) { setState(savedLevelState, currentLevel, true); logInfo(`Vorheriges Level gespeichert: ${currentLevel}`); } else if (stored !== -1) { logInfo(`Vorheriger Level war bereits gespeichert: ${stored}`); } else if (!isValidLevel(currentLevel)) { logWarn('Kein gültiger aktueller Level zum Speichern vorhanden.'); } // Hue-Lampe auf 100 setzen if (existsState(hueDoorLevel)) { setState(hueDoorLevel, 100); logInfo('Haustür-Lampe auf 100 gesetzt.'); } else { logWarn(`State "${hueDoorLevel}" existiert nicht. Kann Lampen-Level nicht setzen.`); } } else { logInfo('Es ist Tag – keine Änderung an der Lampe.'); // nichts tun bei Tageslicht } } else { logInfo('Tür geschlossen erkannt.'); if (stored !== -1) { if (existsState(hueDoorLevel)) { logInfo(`Haustür-Lampe wird in 2 Minuten auf gespeicherten Wert (${stored}) zurückgesetzt.`); setStateDelayed(hueDoorLevel, stored, 120000, false); } else { logWarn(`State "${hueDoorLevel}" existiert nicht. Kann Lampen-Level nicht zurücksetzen.`); } // Gespeicherten Level zurücksetzen setState(savedLevelState, -1, true); logInfo('Gespeicherter Level danach gelöscht.'); } else { logInfo('Kein gespeicherter Level vorhanden – nichts zurückzusetzen.'); } } } catch (e) { logWarn(`Fehler im Script: ${e.message}`); } finally { busy = false; } }); 1000 Dank. Scheint zu laufen.
  • Kurzzeitdifferenz in Blockly berechnen

    6
    1
    0 Stimmen
    6 Beiträge
    287 Aufrufe
    HomoranH
    @paul53 DANKE!
  • mit Blockly HTML Code in Datenpunkt schreiben

    3
    0 Stimmen
    3 Beiträge
    195 Aufrufe
    T
    @asgothian Danke
  • Zugangsgeschützte API-Schnittstelle auslesen mit Blockly

    78
    3
    0 Stimmen
    78 Beiträge
    9k Aufrufe
    David G.D
    @schnipsel71 sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly: Wie kann ich die Zugangsdaten über den Header übergeben? @haus-automatisierung sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly: @schnipsel71 Mit Blockly aktuell gar nicht Ist das irgendwann geplant? Hätte es schon ein paar mal brauchen können. Grad vermisse ich es nochmal ^^.
  • Pflanzenbewässerung "hüpft" immer wieder auf "Falsch"

    Verschoben
    13
    3
    0 Stimmen
    13 Beiträge
    779 Aufrufe
    I
    @Codierknecht Danke für die super Erklärung @paul53 ich hab es jetzt so eingerichtet - ich werde es mal beobachten - danke! :)
  • Hilfe bei script Steuerung

    13
    1
    0 Stimmen
    13 Beiträge
    566 Aufrufe
    M
    @paul53 sagte : Weil der sonst-Zweig nur nachts (nicht von 7 bis 22 Uhr) ausgeführt wird. Ah okey
  • (Gelöst) Geräte in bestimmten Zeiten laden.

    33
    4
    0 Stimmen
    33 Beiträge
    2k Aufrufe
    andre1deA
    Es hat alles einwandfrei funktioniert! Danke noch einmal!
  • ( gelöst ) E-Mail Benachrichtigung nach Datenpunktänderung

    10
    1
    0 Stimmen
    10 Beiträge
    562 Aufrufe
    P
    @perladd sagte in E-Mail Benachrichtigung nach Datenpunktänderung: @asgothian Hallo, ja tatsächlich, ich hab es schon tausend mal kontrolliert, aber vor lauter Bäume sieht man den Wald nicht mehr :) Ich hab es geändert und schau mal wie es aussieht ob es jetzt so läuft Jetzt klappt alles, wunderbar, vielen lieben Dank an euch allen für die tolle Hilfe
  • Ich frage einfach mal

    10
    0 Stimmen
    10 Beiträge
    603 Aufrufe
    matze55M
    @codierknecht ich habe es aber hinbekommen nach 2 stündiger arbeit.....dein Tip war ratsam...es es heist ja immer wer lesen tut ist im vorteil. Danke erst mal für die tips und ratschläge....Ich liebe blockly mittlerweile lg
  • [gelöst] exec-Baustein will nicht ausführen

    40
    1
    0 Stimmen
    40 Beiträge
    3k Aufrufe
    Meister MopperM
    @oliverio sagte in [gelöst] exec-Baustein will nicht ausführen: Aktuell ist er dabei die lokale api Seite von pihole aufzurufen um das mal auszuprobieren Hat mit deiner Hilfe natürlich funktioniert
  • Stunden und Minuten DP zusammenführen und via Alexa abfragen

    10
    1
    0 Stimmen
    10 Beiträge
    439 Aufrufe
    MartinPM
    @paul53 Bei einem "sauberen" Countdown-Zähler muss man am Anfang nur einmalig die Stunde in eine Variable lesen, und danach braucht man nur noch die Minuten, da der Stundenwechsel aus den Minuten hervorgeht (Übergang 0->59)... Es könnte aber sein, dass die Waschmaschine da nicht einfach stur herunterzählt, sondern irgendwelche Parameter herangezogen werden, um eine Restlaufzeit zu berechnen ... Wenn z. B. die Steuerelektronik zu Beginn des Schleuderns lange fummeln musste, um eine Unwucht zu beseitigen, könnte die Restlaufzeit womöglich sogar wieder ansteigen ...

562

Online

32.8k

Benutzer

82.7k

Themen

1.3m

Beiträge