Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.4k Themen 211.6k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    M
    Kleines Update, habe ja schon etwas länger nicht mehr zum eigentlichen thread-topic was gepostet: Man sieht das Diagramm wie die Akus Laden/Entladen und im Hintergrund die SOC der beiden Akkus, darunter die Produktivzeiten der Kimas: [image: 1763585648572-968e1497-7da9-41d1-9ecf-a5462d11beac-grafik.png] Mein script läuft, heute war Schietwetter, morgens schon der akku Ebbe (weil gestern auch Schietwetter war). Die Akkus haben dann brav geladen, den Start der ersten Klima (Heizung) unterstützt und über den Tag bis zu 3 Klimas parallel am Leben gehalten. Abends war dann wieder Ebbe in den Akkus. Ergo... ich brauche wohl mehr PV... lol Habe nun eine schöne Balance mit wenig Relaisgeglacker. Realisiert über eine: Totzone um das Einspeiseziel rum -> weniger Steuerregelungen AC-Mode Switch Delay das dynamisch ist. Prüfe off-Loop ob die Zendure beide geschaltet haben und das jeweilige Powersetting annehmen und gebe dann erst die eigentliche Steuerung wieder frei eine permanente Überwachung von Soll- und Istwerten beim Laden/Entladen der Akkus -> weniger Steuereingriffe Sollten die Akkus mehrere Zyklen von den geforderten Werten abweichen werden Sie per Brute Force in die Spur gebracht während die Dynamik pausiert und dann mit verifizierten Start-Werten anstartet. Ist noch ein alter fail-safe, wird faktich aber nicht mehr getriggert. etc. Integration der Ladesäule und Klimageräte ist in die Akkusteuerung abgeschlossen, dort bin ich auch sehr zufrieden mit der Funktionalitätund Stabilität/Vorhersagbarkeit des Systems. Todo/Vison: Das eigentliche Ziel fürs kommende WE ist vollkommen aus einem Timed Loop bei der Steuerung auszusteigen. DIe Überwachung wird dann auch nur dynamisch nach reinem Steuerbefehl aktiviert werden. Ziel ist es (Ich kann ja sicher nur ca. alle 15 Sekunden zu regeln(kurze Zwischentakte mit ca. 8 Sekunden sind möglich aber nicht bulletproof in der Ausführung), bei Netzbezug im optimalen Fall schon mehr als 15 Sekunden seit der letzten Regelung zu haben und dann instant und nicht erst im Timer reagieren zu können. Und bei steigendem LADEN-Potenzial reichen mir eigentlich 50 oder 100 Watt Schritte, ich muss da nicht jedem Elektron hinterhecheln denke ich. Wird aber tricky denke ich, das ganze System dann synchron und ohne flattern zu halten. Prio sollte sein: Schnell regeln zu können, wenn es anfängt Geld zu Kosten (Netzbezug) und entspannt wenn man lädt. Idz. ist das schon ein relativ üppiges Blockly geworden: [image: 1763587406663-882f3968-5ef3-4e87-af58-cc5bf1a15454-grafik.png] Und das hier beeinhaltet nicht die Änderungen an den Ansteuerungen der Klimas und WB sowie die ganzen Delta/Zeit Wert Berechnungen im Hintergrund.
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    HomoranH
    @tiobb mach mal ein reconfigure
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • MQTT String verändern [NSPanel mit Tasmota]

    1
    0 Stimmen
    1 Beiträge
    128 Aufrufe
    Niemand hat geantwortet
  • [GELÖST] SSH-Befehle per Blockly absetzen

    8
    0 Stimmen
    8 Beiträge
    859 Aufrufe
    T
    Herzlichen Dank für eure Hilfe! Das Script von @falke69 hat mir sehr geholfen und auf dieser Grundlage funktioniert es jetzt. Ein Problem hatte ich unterdessen noch beim Switch gefunden: Hier war die IP einem falschen Interface zugewiesen und daher war der Switch darüber gar nicht zu erreichen, bzw. nur per MAC über upd ansprechbar/konfigurierbar. Zusätzlich dazu habe ich den ioBroker in das gleiche VLAN umgezogen wie das NAS, weil WoL ja nicht netzwerkübergreifend geht - das hatte ich gar nicht bedacht. Hat aber auch nicht geholfen, da der ioB in Docker läuft und daher eh ein anderes Netzwerk hat. Ein SSH-Key war hier mit dem Script gar nicht nötig, zumindest in Bezug auf diesen Switch. Jetzt hab ich schon mal eine funktionierende Grundlage und kann damit weiter testen und Funktionen ausarbeiten. Beste Grüße Marian
  • Benachrichtigung wenn Zeitstempel älter als ist …

    5
    0 Stimmen
    5 Beiträge
    403 Aufrufe
    C
    @paul53 thx
  • Blockly: Wert aus Datenpunkt in anderen Datenpunkt schreiben

    7
    0 Stimmen
    7 Beiträge
    446 Aufrufe
    F
    @paul53 ja, da ist dein JS Snippet schon schöner. Bin darin zwar kein Profi, aber diese 3 Zeilen verstehe ich noch. Vielen Dank für deine Unterstützung.
  • Raspberry über ip Adresse anwählen ohne Localhost

    7
    0 Stimmen
    7 Beiträge
    535 Aufrufe
    HomoranH
    @fummel sagte in Raspberry über ip Adresse anwählen ohne Localhost: Würde das einen sinn machen? dazu doch erst ei mal die Fakten bitte! wie bereits geschrieben geht localhost nur auf dem Rechner auf dem auch iob läuft. Das wäre dann nicht der Raspi mal eben mit einem Linux Befehl, der für einen Pi gedacht war installiert man nichts unter Windows. Was willst du also plattmachen?
  • Blockly Wert schreiben mit Verzögerung

    blockly
    6
    1
    0 Stimmen
    6 Beiträge
    431 Aufrufe
    F
    @codierknecht Danke! Jetzt hab ich auch die Änderung erkannt :+1:
  • [ALEXA]Raum erkennung und befehl ausführung in passenden Raum

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    F
    @djmarc75 Super . Vielen lieben dank . Das hat wirklich geholfen . Bin eigentlich immer auf den neusten stand ,aber die wurde mir nicht angeboten :(
  • Stromverbraucher: zusammenzählen

    21
    3
    0 Stimmen
    21 Beiträge
    860 Aufrufe
    paul53P
    @mico sagte: Vom Typ Zeichenkette String also nicht Boolan Sie müssen vom Typ "Zahl" sein. @mico sagte in Stromverbraucher: zusammenzählen: Alexa dann schon gleich an der richtigen Stelle ein Komma in der Zahl setzt Von Alexa habe ich keine Ahnung.
  • Benachrichtigung aus Blockly nicht nach Zeitplan

    16
    1
    0 Stimmen
    16 Beiträge
    951 Aufrufe
    M
    Hallo @rumper! Kannst du dein endgültiges Blockly hier zum Nachbau einstellen? Das ist eine gute Idee, die ich bei mir auch gern umsetzen will. Danke dir!
  • Script parallel & unabhängig laufen lassen.

    Ungelöst
    2
    0 Stimmen
    2 Beiträge
    171 Aufrufe
    D
    @arno-l du kannst sowohl das script dopelln, als aucb 2 instanzen laufen lassen. Aber ich vermute eher, dass du in deinem script noch irgenwo hard codiert entweder auf dieselbe quelle oder in dasselbe ziel schreibst. Im prinzip brauchst du das script auch nur einmal und kapselst das in ein object, bzw. Closure. Denn der code ist ja identisch, aber du willst quasi 2 verschiedene instanzen haben, also die internen Variablen kapseln. Also mach ein closure drum und rufe es dann 2 mal auf, mit den jeweils unterschiedlichen parametern. Wenn du dich damit beschäftigst, findest du auch ggf. Die stellte, wo noch was hard codiert ist
  • gelöschtes Script spuckt noch rum

    6
    0 Stimmen
    6 Beiträge
    324 Aufrufe
    BananaJoeB
    @mindthegap und im JavaScript Adapter kannst du einstellen das die Skripte ins Dateisystem gespiegelt werden sollen. Dann kannst du auch dort suchen (und sogar die Skripte ändern)
  • jawascript - Blockly nur Englisch? auf Deutsch umstellen.

    6
    1
    0 Stimmen
    6 Beiträge
    420 Aufrufe
    K
    @haus-automatisierung Danke Dir, also ein Bug ....
  • Probleme bei Skript

    3
    3
    0 Stimmen
    3 Beiträge
    307 Aufrufe
    S
    @homoran said in Probleme bei Skript: @schneidy1985 sagte in Probleme bei Skript: der Wert wird auch in den Datenpunkt geschrieben aber nicht als Zahl 123 sonden als String "123". konvertiere nach Zahl und die Meldung sollte verschwinden kannst du mir kurz einen tip geben wie ? ich stehe total auf dem schlauch gerade .... sorry für diese dämliche Frage EDIT: Hab es hin bekommen , danke dir vielmals für den Tip .... manchmal sieht man einfach nicht mehr den Wald vor lauter Bäumen
  • PV Überschuss Steckdose

    7
    0 Stimmen
    7 Beiträge
    657 Aufrufe
    kmxakK
    nochmal eine neue Version mit einem gleitenden Durchschnitt // Konfiguration var threshold = -1100; // Schwellenwert für den Stromüberschuss var averageTimeMinutes = 30; // Zeitraum für den Durchschnitt in Minuten var powerOnTimeoutMinutes = 30; // Timeout für das Einschalten in Minuten, X Minuten bleibt das Gerät definitiv an. var powerOffTimeoutMinutes = 5; // Timeout für das Ausschalten in Minuten, X Minuten bleibt das Gerät definitiv aus. var devicePowerConsumption = 400; // Leistungsaufnahme des Gerätes in Watt var debugMode = false; // Debug-Modus ein-/ausschalten var entpreller = 0; var istAn = false; var averagePower = []; on({ id: [].concat(['sonoff.0.Hichi_Stromzähler. _16_7_0']), change: 'ne' }, async (obj) => { var value = obj.state.val; var timestamp = obj.state.ts; var deltaTime = 0; if (averagePower.length > 0) { var lastTimestamp = averagePower[averagePower.length - 1].timestamp; deltaTime = (timestamp - lastTimestamp) / (1000 * 60); } var powerChange = 0; if (averagePower.length > 0) { var lastValue = averagePower[averagePower.length - 1].value; powerChange = value - lastValue; } var powerChangeRate = deltaTime > 0 ? powerChange / deltaTime : 0; averagePower.push({ value: value, timestamp: timestamp }); if (averagePower.length > averageTimeMinutes) { averagePower.shift(); } var sumPowerChange = averagePower.reduce((acc, curr, index, array) => { if (index < array.length - 1) { return acc + (curr.value - array[index + 1].value); } else { return acc; } }, 0); var average = Math.round(sumPowerChange / averagePower.length); // Debug-Protokollierung für den aktuellen Wert des Stromzählers if (debugMode) { console.log("Aktueller Wert des Stromzählers: " + value); } // Debug-Protokollierung für den Durchschnitt if (debugMode) { console.log("Durchschnitt über " + averageTimeMinutes + " Minuten: " + average); } if (entpreller == 0 && istAn == false && average < (threshold + devicePowerConsumption) && compareTime('10:00', '19:00', 'between', null)) { entpreller = 1; setState('sonoff.0.Gosund_16A_3.POWER', true); istAn = true; console.log('PV Steckdose ein! Stromüberschuss vorhanden.'); sendTo("telegram.0", "send", { text: 'PV Steckdose ein! Stromüberschuss vorhanden.' }); setTimeout(() => { entpreller = 0; }, powerOnTimeoutMinutes * 60000); // Umwandlung von Minuten in Millisekunden } if (entpreller == 0 && istAn == true && average > (threshold - devicePowerConsumption)) { entpreller = 1; setState('sonoff.0.Gosund_16A_3.POWER', false); istAn = false; console.log('PV Steckdose aus! Kein Stromüberschuss vorhanden.'); sendTo("telegram.0", "send", { text: 'PV Steckdose aus! Kein Stromüberschuss vorhanden.' }); setTimeout(() => { entpreller = 0; }, powerOffTimeoutMinutes * 60000); // Umwandlung von Minuten in Millisekunden } });
  • Shelly Plus 1PM - BLE-Daten per MQTT an ioBroker

    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    haus-automatisierungH
    @66er sagte in Shelly Plus 1PM - BLE-Daten per MQTT an ioBroker: Solange neue Shelly-Geräte oder -Features noch nicht im Shelly-Adapter integriert sind, geht es eben damit nicht. Zeig mal bitte dein Script auf dem Shelly für den Beacon-Mode. Die normalen Funktionen der Shelly-BLU Geräte kann man ja über den Adapter (mit einem Script auf dem Shelly) integrieren: https://forum.iobroker.net/topic/69212/shelly-6-6-0-mit-blu-geräten-bluetooth-low-energy https://github.com/iobroker-community-adapters/ioBroker.shelly/blob/master/docs/en/ble-devices.md
  • Licht in unterschiedlichen Farben blinken

    3
    0 Stimmen
    3 Beiträge
    434 Aufrufe
    A
    Danke ich nutze den Zigbee Adapter. Da kann ich die Funktion nicht finden.
  • Steuer Wert bei Über ,zurück zum alten Wert, bei unter UNter

    3
    0 Stimmen
    3 Beiträge
    205 Aufrufe
    C
    @codierknecht Merci dir.
  • [gelöst] Schaltbare Steck. mit Leistungsmesser Ausschalten

    6
    1
    0 Stimmen
    6 Beiträge
    498 Aufrufe
    E
    @codierknecht @paul53 Vielen Dank für die einfache Lösung und die Erklärung dazu! Funktioniert. :)
  • Anfängerfrage; Script regelmäßig wiederholen

    17
    0 Stimmen
    17 Beiträge
    600 Aufrufe
    CodierknechtC
    @rasc Unterhalb von 0_userdata.0 legt man seine eigenen Datenpunkte an. Ich habe mir dort einen mit Namen "Icon" angelegt, um den Dateinamen zu speichern. SoC ist der Datenpunkt, der den Ladezustand (State of charge) der Batterie liefert. Wo das bei herkommt, solltest Du am besten wissen ;-)
  • ioBroker Datenpunkt über Synology Aufgabenplaner abfragen

    Ungelöst
    3
    0 Stimmen
    3 Beiträge
    311 Aufrufe
    R
    @peterfido Danke hat funktioniert. Sorry, für die späte Antwort aber ich habe den Post erst jetzt gelesen.

508

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge