Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.5k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    Uwe-KU
    @Norwegen60 Das hier funktioniert jetzt incl. zurück holen des Wertes in Datapoint let sSQL0 = "SELECT ioBroker.fn_energy('" + Mode + "', " + ID + ", " + Offset + ") AS energy"; sendTo('sql.0', 'query', sSQL0, function (result) { let energy = result.result[0].energy; setState(DataPoint, {val: Number(energy), ack: true}); log('GetEnergy: ' + energy + ' -> ' + DataPoint, 'info'); }); Danke für die Unterstützung Hast du das als reines Java Script realisiert oder es irgendwie in den Send_to Blockly Block integriert ? Ich würde es am liebsten rein im Blockly umsetzen, SQL Basic kann ich, aber Java Script ist nicht mein Metier. Ich habe schon Stunden zugebracht nach einem Blockly Beispiel, aber ich habe nichts gefunden, welches mir Werte zurückliefert die ich dann weiterverarbeiten kann.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    @Jannik1808 In meiner Doku habe ich ein Script gefunden. Habe es aber nie gebraucht. Weiß also nicht ob es funktioniert. #!/bin/bash export XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --off
  • Hilfe für Skripterstellung mit Node-RED

    956 13k
    956 Themen
    13k Beiträge
    S
    Hallo Zusammen, ich bin gerade am überlegen, wie ich folgende Aufgabe umsetzen könnte: Ein true an einer (Trigger)Node lässt einen Zähler laufen und setzt einen eigenen Ausgang auf true. Ein false der Trigger Node stoppt den Zähler setzt diesen aber nicht auf false. Ein true lässt den Zähler einfach weiterlaufen... Nach Ablauf der Zeit im Zähler wird der Ausgang des Zählers auf false gesetzt. Mehr soll nicht passieren. Ein separater Eingang am Zähler setzt diesen auf 0 zurück. Was ich damit anfangen möchte: Die Laufzeit der Poolpumpe wird auf eine Mindestlaufzeit von bspw. 4h überwacht -kann aber manuell bedient bei Bedarf länger laufen. Ein Trigger um 00:01Uhr setzt die Laufzeit zurück. Die Zählernode gilt hier als "Anforderung Pumpe wegen Mindestlaufzeit unterschritten". Ich habe noch keine brauchbaren Ideen, wie ich dass sauber und mit wenig Aufwand umsetzen könnte... Vielen Dank und VG Torsten
  • jawascript - Blockly nur Englisch? auf Deutsch umstellen.

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

    3
    3
    0 Stimmen
    3 Beiträge
    354 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
    821 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
    531 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
    241 Aufrufe
    C
    @codierknecht Merci dir.
  • [gelöst] Schaltbare Steck. mit Leistungsmesser Ausschalten

    6
    1
    0 Stimmen
    6 Beiträge
    619 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
    646 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
    356 Aufrufe
    R
    @peterfido Danke hat funktioniert. Sorry, für die späte Antwort aber ich habe den Post erst jetzt gelesen.
  • Velux Homekit_Python Script einbinden

    4
    0 Stimmen
    4 Beiträge
    560 Aufrufe
    F
    @psimon Hast du es hinbekommen mit der Einbindung? Kannst du mir verraten wie du die Fernbedienungen am Gateway angelernt hast? Hab es nach Anleitung von Velux gemacht, die Fernbedienungen scheinen aber bei der Abfrage per Pythonscript nicht auf. Kann also nicht sagen ob es funktioniert hat. Home App selber habe ich wegen fehlender Hardware nicht.
  • Wechselrichter auslesen, Problem mit Intervall

    5
    3
    0 Stimmen
    5 Beiträge
    517 Aufrufe
    BananaJoeB
    @endurance geht es dir darum das die Zahlen genau aufgehen? Ich habe zwar die Daten von der Solaranlage, nutze für "Berechnungen" aber die Daten von separaten Messeinrichtungen hinter den Anlagen (aka Shelly, Sonoff & Co). Selbst da kommt es nie ganz hin weil auch da ich nur die Werte alle 10 bis 15 Sekunden kommen. Die Daten hast du in Echtzeit weil du dir diese aktiv holst? Ich schätze selbst dann kämen die nicht ganz hin (und mein Stromzähler sendet bei jeder Änderung einen neuen Wert an MQTT, also im schlimmsten Fall mehr als 1 mal die Sekunde). Wenn ich etwas gelernt habe dann das so ein Stromverbrauch unglaublich schwankt ... (wenn man nicht gerade nur normale Glühfadenlampen und Elektromotoren mit einem Faktor von 1 im Einsatz hat). Ich habe ja eine Tabelle mit allen Verbrauchern (über 50 Stück), wenn ich die addieren würde, würde das auch nie ganz passen. Selbst meinen Datenschrank - da habe ich eine Messsteckdose vor dem Schrank und USV, eine hinter der USV + 6 Stück für die einzelnen Geräte und die Summen passen doch nicht.
  • FritzBox Callmonitor: Nur auf EINE Nummer reagieren

    5
    1
    0 Stimmen
    5 Beiträge
    423 Aufrufe
    I
    @mcu Ah, jetzt habe ich verstanden, wie Du es meinst! Danke, mal probieren, ob es so funktioniert.
  • Node Red und KNX Ultimate Adapter

    8
    3
    0 Stimmen
    8 Beiträge
    697 Aufrufe
    L
    @iobrokerin Was steht denn im debug wenn du nur auf die 7/2/2 triggerst?
  • [gelöst] Badheizung nach PV Strom steuern

    8
    1
    0 Stimmen
    8 Beiträge
    808 Aufrufe
    E
    Ich möchte etwas ähnliches umsetzten. Es soll, wenn die Leistung für 20 min > 100 W liegt, der gleiche Aktor (Steckdose mit Leistungsmesser) ausgeschaltet werden. Die Einschaltung erfolgt manuell. [image: 1712088945401-87c4c06a-2fc9-497a-a8b1-8892d91e3aca-image.png] Es funktioniert nur sporadisch. Wo liegt mein Denkfehler bei dem Skript?
  • [Vorlage ] Blockly dynamischer Sonnenauf- und Sonnenuntergang

    Verschoben blockly template
    49
    1
    0 Stimmen
    49 Beiträge
    16k Aufrufe
    P
    @haus-automatisierung Du hast recht.
  • JS Editor öffnet nicht

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    678 Aufrufe
    Thomas BraunT
    @pistus Das werden ja mehr Updates im Rückstand als weniger. UPDATEN! sudo apt update sudo apt upgrade
  • Wie Ende Verbrauch beschreiben?

    6
    0 Stimmen
    6 Beiträge
    539 Aufrufe
    CodierknechtC
    @bertderkleine sagte in Wie Ende Verbrauch beschreiben?: Ich blicke aber nicht, was "Wert" und "vorheriger Wert" sind und wo die wie definiert sind. https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/5
  • [gelöst] Neu erstellte Programme reagieren nicht auf Trigger

    30
    1
    0 Stimmen
    30 Beiträge
    1k Aufrufe
    BananaJoeB
    @triplex sagte in [gelöst] Neu erstellte Programme reagieren nicht auf Trigger: Das hatte vor ein paar Tagen ja auch schon gemacht gehabt, aber ohne Erfolg. Keine Ahnung was jetzt anders ist. Naja, eventuell wurde das Problem beim probieren durch einen Fehler in einem neuen Skript erzeugt. Ich hatte das auch schon mal hinbekommen mir die JavaScript-Instanz sogar ganz abzuschießen. Und das Skript lief damals noch bzw. hatte noch dieses Problem und heute nicht mehr.
  • Blockly Script Start/ Stop Button

    7
    0 Stimmen
    7 Beiträge
    779 Aufrufe
    S
    @paul53 Ach du Sch.... der Datenpunkt stand auf "0" :man-shrugging:
  • isAstroDay=true trotz "sunset"

    3
    0 Stimmen
    3 Beiträge
    318 Aufrufe
    S
    @paul53 Danke für den Hinweis. Das ist eine weitaus schönere Lösung! Habe ich soeben übernommen und warte nun auf sunset :)

577

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge