Weiter zum Inhalt

Blockly

6.6k Themen 80.5k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • [gelöst] Radar2 - kein Statuswechsel bei Wechsel WLAN

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

    17
    1
    0 Stimmen
    17 Beiträge
    2k 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
    440 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
    6k Aufrufe
    J
    @paul53 alles klar, werde ich probieren, dankeeee
  • Blockly-Zeitplan Wochentag / Wochenende

    4
    1
    0 Stimmen
    4 Beiträge
    361 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
    577 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
    870 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
    349 Aufrufe
    HomoranH
    @paul53 DANKE!
  • mit Blockly HTML Code in Datenpunkt schreiben

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

    78
    3
    0 Stimmen
    78 Beiträge
    11k 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
    1k 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
    759 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
    3k 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
    735 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
    766 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
    4k 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
    621 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 ...
  • Homatic IP Keypad

    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    M
    @jey-cee sagte in Homatic IP Keypad: ccu2/3 Hi, danke für die Rückmeldung. Ich habe bei mir jedoch lediglich den Homatic-Access-Point. Also damit gar keine Chance. Müsste dann wahrscheinlich auf den anderen Adapter umstellen.
  • Agentdvr-Aufnahmen in der Visualisierung darstellen

    6
    9
    4 Stimmen
    6 Beiträge
    1k Aufrufe
    wendy2702W
    @david-g Danke für die Info.
  • Level für Zigbee Lampe aus Systemvariable holen

    2
    0 Stimmen
    2 Beiträge
    234 Aufrufe
    paul53P
    @gezi70 sagte: Funktioniert das über den Trigger und den Baustein "WERT" Ja, auf eine HM-Systemvariable kann man triggern.

300

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge