Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.5k Topics 79.5k Posts

NEWS

  • Ladestatiot Abschalten bei Wert X

    17
    1
    0 Votes
    17 Posts
    1k Views
    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 Votes
    9 Posts
    314 Views
    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

    Moved
    46
    3
    0 Votes
    46 Posts
    5k Views
    J
    @paul53 alles klar, werde ich probieren, dankeeee
  • Blockly-Zeitplan Wochentag / Wochenende

    4
    1
    0 Votes
    4 Posts
    266 Views
    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 Votes
    5 Posts
    425 Views
    H
    @oliverio Auch dir herzlichen Dank. Versuche ich auch. Bin gespannt 😊
  • Variablen innerhalb des Scriptes definieren *gelöst*

    10
    0 Votes
    10 Posts
    631 Views
    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 Votes
    6 Posts
    271 Views
    HomoranH
    @paul53 DANKE!
  • mit Blockly HTML Code in Datenpunkt schreiben

    3
    0 Votes
    3 Posts
    184 Views
    T
    @asgothian :+1: Danke
  • Zugangsgeschützte API-Schnittstelle auslesen mit Blockly

    78
    3
    0 Votes
    78 Posts
    9k Views
    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"

    Moved
    13
    3
    0 Votes
    13 Posts
    753 Views
    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 Votes
    13 Posts
    522 Views
    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 Votes
    33 Posts
    2k Views
    andre1deA
    Es hat alles einwandfrei funktioniert! Danke noch einmal!
  • ( gelöst ) E-Mail Benachrichtigung nach Datenpunktänderung

    10
    1
    0 Votes
    10 Posts
    559 Views
    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 Votes
    10 Posts
    587 Views
    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 Votes
    40 Posts
    3k Views
    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 :wink:
  • Stunden und Minuten DP zusammenführen und via Alexa abfragen

    10
    1
    0 Votes
    10 Posts
    436 Views
    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 Votes
    9 Posts
    761 Views
    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 Votes
    6 Posts
    752 Views
    wendy2702W
    @david-g Danke für die Info.
  • Level für Zigbee Lampe aus Systemvariable holen

    2
    0 Votes
    2 Posts
    184 Views
    paul53P
    @gezi70 sagte: Funktioniert das über den Trigger und den Baustein "WERT" Ja, auf eine HM-Systemvariable kann man triggern.
  • Benachrichtigung wenn tür zu lange auf steht

    12
    0 Votes
    12 Posts
    623 Views
    B
    @paul53 Danke Paul !!!

572

Online

32.7k

Users

82.4k

Topics

1.3m

Posts