Skip to content

Blockly

6.6k Topics 79.9k Posts

Hilfe für Skripterstellung mit Blockly

NEWS

  • Steuerung Zendure Solarflow 800Pro

    2
    1
    0 Votes
    2 Posts
    304 Views
    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 Votes
    12 Posts
    729 Views
    Z
    @crunchip VIELEN DANK! Die ersten Tests sehen gut aus.
  • 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
    367 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
    291 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
    468 Views
    H
    @oliverio Auch dir herzlichen Dank. Versuche ich auch. Bin gespannt 😊
  • Variablen innerhalb des Scriptes definieren *gelöst*

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

    3
    0 Votes
    3 Posts
    215 Views
    T
    @asgothian Danke
  • Zugangsgeschützte API-Schnittstelle auslesen mit Blockly

    78
    3
    0 Votes
    78 Posts
    10k 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
    848 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
    578 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
    593 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
    629 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
  • Stunden und Minuten DP zusammenführen und via Alexa abfragen

    10
    1
    0 Votes
    10 Posts
    499 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
    829 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
    909 Views
    wendy2702W
    @david-g Danke für die Info.

483

Online

32.9k

Users

83.0k

Topics

1.3m

Posts