Skip to content

Skripten / Logik

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

16.4k Themen 211.7k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    P
    @ArnoD Ich musste meine Diskstation neu starten und bekomme jetzt folgenden Fehler, kann aber nicht herausfinden, an was es liegt. Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-20 19:50:15.394 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: ******************* Debug LOG Charge-Control ******************* 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 10_Offset_sunriseEnd = 1 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 10_minWertPrognose_kWh = 0 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 10_maxEntladetiefeBatterie = 100 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 10_Systemwirkungsgrad = 100 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 40_minPvLeistungTag_kWh = 3 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 40_maxPvLeistungTag_kWh = 100 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 40_KorrekturFaktor = 0 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: 40_WirkungsgradModule = 19 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: bAutomatikAnwahl =true 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: bAutomatikRegelung =true 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Einstellungen =1 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Start Regelzeitraum = 06:03 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Ende Regelzeitraum= 12:03 2025-11-20 19:50:15.395 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Ladeende= 10:33 2025-11-20 19:50:15.792 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Unload = 100 2025-11-20 19:50:15.872 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Ladeende = 95 2025-11-20 19:50:15.874 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Ladeende2 = 100 2025-11-20 19:50:15.876 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Ladeschwelle = 80 2025-11-20 19:50:15.878 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Unterer Ladekorridor = 0 2025-11-20 19:50:15.881 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Offset Regelbeginn = 06:00 2025-11-20 19:50:15.882 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Offset Regelende = 00:00 2025-11-20 19:50:15.884 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Offset Ladeende = 06:00 2025-11-20 19:50:15.885 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Notstrom min = 2 2025-11-20 19:50:15.886 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Notstrom Sockel = 2 2025-11-20 19:50:15.887 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Verbrauch für night am Donnerstag: 1520 Wh 2025-11-20 19:50:15.887 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Eigenverbrauch Nacht = 1520 Wh 2025-11-20 19:50:15.930 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Power_Home_W (Hausverbrauch & Wallbox) = 1642W 2025-11-20 19:50:15.931 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Batterie Leistung = -1662 W 2025-11-20 19:50:15.933 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: PV Leistung = 0 W 2025-11-20 19:50:15.933 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Speichergroesse = 17kWh 2025-11-20 19:50:15.975 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Batterie SoC = 25 % 2025-11-20 19:50:15.975 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_SOC_Proz= 2 % 2025-11-20 19:50:15.975 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_SOC_erreicht = false 2025-11-20 19:50:15.975 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: bNotstromVerwenden =false 2025-11-20 19:50:15.975 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: bNotstromAusNetz =false 2025-11-20 19:50:16.017 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_Status = 2 2025-11-20 19:50:16.017 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: bM_Notstrom = false 2025-11-20 19:50:16.017 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: M_Power = 9000 2025-11-20 19:50:16.018 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Set_Power_Value_W = 0 2025-11-20 19:50:16.018 - warn: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: ProgrammAblauf = 1,6,4,7,10,34, 2025-11-20 19:50:16.064 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: ueberschuss = -10642 hystereseWatt = 2000 bRegelungAktiv = false M_Power=9000 2025-11-20 19:50:16.360 - error: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-20 19:50:18.087 - info: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: ueberschuss = -10669 hystereseWatt = 2000 bRegelungAktiv = false M_Power=9000 2025-11-20 19:50:18.496 - error: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-20 19:50:20.913 - error: javascript.0 (254) script.js.E3DC_ChargeControl.Charge_Control: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden.
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    paul53P
    @drapo sagte: Der Wasserverbrauch wird alle 15 Minuten per MQTT vom Zähler an den iobroker gesendet falls es Änderungen gab. Das kann man sich zu Nutze machen und die 15 Minuten-Intervalle mit Wertsteigerung zählen. Etwa so: [image: 1763730306076-blockly_temp.jpg]
  • 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
  • Ports auf Online Verfügbarkeit prüfen wie ?

    javascript blockly
    12
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    M
    @garfonso sagte in Ports auf Online Verfügbarkeit prüfen wie ?: @pmunz Ok, nachdem ich den Fehler auch sehen konnte, geht es nun so (mein ursprüngliches Skript war falsch): const net = require('net'); const ip = "192.168.0.1"; const port = 80; const connection = net.createConnection({host: ip, port: port, timeout: 10000}); connection.on('ready', () => { log("Port offen"); connection .destroy(); //wieder zu machen :-) }); connection.on('error', (e) => { log("Error: " + e.code); if (e.code === 'ECONNREFUSED') { log("Port zu"); } if (e.code === 'EHOSTUNREACH') { log("Gerät offline 2"); } else { log("Anderer Fehler, vermutlich Gerät nicht da?"); } connection .destroy(); //wieder zu machen :-) }); connection.on('timeout', () => { log("Gerät offline"); connection .destroy(); //wieder zu machen :-) }); Den "timout" Fall hatte ich bisher nicht. Könnte aber theoretisch auftreten. Ich hatte im Fall, dass es an der IP gar kein Gerät gab den "EHOSTUNREACH" fall. Am besten wäre für den Fall, dass das Gerät gar nicht da ist eine Funktion zu definieren und die aufzurufen (falls der Fall für dich überhaupt relevant ist). //Edit: achja, damit das sinnvoll ist, also ein Status überwacht wird oder so, müsstest du den ganzen "connection" Block noch regelmäßig aufrufen also mit setTimeout oder schedule oder sowas (keine Ahnung, was du genau vorhast.. ggf. kannst du auch aus einem anderen Skript heraus das Skript aktivieren und am Ende des Skripts es sich selber deaktivieren lassen, das mache ich hin und wieder). Hallo, ich möchte gerne wisssen, wie ich permanent die Port prüfen kann. Das Script oben läuft offenbar nur einmal, oder? Ich habe das mal mit Schedule gemacht. schedule("*/1 * * * *", function () { Gruß Michael
  • NSPanel wie kann man per Script gezielt eine Page anzeigen?

    6
    0 Stimmen
    6 Beiträge
    814 Aufrufe
    T
    @dermurgser Ja, das Problem liegt im Ursprung des Panels.
  • Script Problem

    9
    1
    0 Stimmen
    9 Beiträge
    563 Aufrufe
    HomoranH
    @hippocampus-0 sagte in Script Problem: Bin über Hilfestellungen dankbar um dir besser helfen zu können, bitte einen aussagekräftigen Threadtitel wählen. @hippocampus-0 sagte in Script Problem: Habe den Zustandstyp auf Number gesetzt . Bitte Logs nie als Screenshots, immer als Text in code-tags posten. siehe auch: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
  • Zigbee Steckdosen Stromwerte auf 0 setzten

    2
    0 Stimmen
    2 Beiträge
    114 Aufrufe
    arteckA
    @mico du musst es entweder über den payload DP machen oder mit dem sendTo Befehl das Thema ist nicht neu es steht hier im Forum .. ein wenig Suchen sollte da schon helfen
  • Zigbee true/false tauschen

    2
    1
    0 Stimmen
    2 Beiträge
    195 Aufrufe
    haus-automatisierungH
    @schnitti Alias anlegen, Lesefunktion: !val Fertig
  • Zappi in Abhängigkeit von BYD-Bat. steuern

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    S
    @pir sagte in Zappi in Abhängigkeit von BYD-Bat. steuern: @sigimoe Habe für mich einen Workaround gefunden, indem ich den min-SoC der Batterie bei Aktivierung des Fast-Mode gleichsetzen lassen mit dem aktuellen SoC-Wert. So wird die Batterie bei Aktivierung des Fast-Mode nicht entleert. Nachteil ist, dass auch alle anderen Verbraucher nicht mehr von der Batterie gespeist werden. @PiR könntest du mir dein blockly senden oder wie hast du dies umgesetzt ? Vielen lieben Dank für die Unterstützung
  • Skript für Ansteuerung LED Streifen von Türstation

    5
    0 Stimmen
    5 Beiträge
    485 Aufrufe
    S
    @arteck vielen Dank - ich verstehe es trotzdem nicht... von websockets habe ich keine Ahnung, bin kein programmierer... iobroker habe ich am laufen, javaskript adapter auch - nutze ich mit blockly, soweit kenne ich mich schon aus. axios finde ich nicht als adapter!? vielleicht kannst du mir das etwas genauer erläutern bzw. erstmal eine grundlage? wäre klasse!
  • Shelly script Wasserzähler

    1
    0 Stimmen
    1 Beiträge
    140 Aufrufe
    Niemand hat geantwortet
  • Gelöst: Datenpunkte addieren

    44
    1
    0 Stimmen
    44 Beiträge
    2k Aufrufe
    C
    @mickym ich danke dir für die vielen Tipps und Infos. Die Links schaue ich mir gerne an. Da habe ich jetzt Lust auf mehr. Das macht so viel Spaß, auch wenn man viel rumbasteln/rumprobieren muß. Aber das sind dann alles Erfahrungen.
  • Blockly Geofencing mit Türauslöser

    15
    1
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    U
    Oh man. Danke, das kannt ich trotz der vielen IOB Jahre auch noch nicht. lol
  • S0 Stromzähler umrechnen in aktuelle Verbrauch

    Verschoben
    66
    0 Stimmen
    66 Beiträge
    9k Aufrufe
    leovandavartL
    @paul53 über den Rpi Adapter da kann ich das einstellen
  • TDS Sensor / EC-Messen Hilfe gesucht

    blockly
    3
    1
    0 Stimmen
    3 Beiträge
    664 Aufrufe
    E
    Nach einigen Stunden basteln habe ich es nun mit einem berry script geschafft den richtigen TDS und EC Wert zu berechnen. Die Grundlage für mein Skript habe ich hier gefunden: https://github.com/arendst/Tasmota/discussions/18046 Dieses habe ich dann noch angepasst, damit man die beiden Werte über MQTT in den iobroker bekommt. Hier das tasmota berry script: Spoiler #- - Analog input driver written in Berry - - Support for TDS (Total Dissolved Solids) Meter Sensor_CQRSENTDS01 - http://www.cqrobot.wiki/index.php/TDS_(Total_Dissolved_Solids)_Meter_Sensor_SKU:_CQRSENTDS01 - Based on TMP117-driver driver by sfromis and TomsTek (https://github.com/TomsTek/tasmota-berry-TMP117-driver) -# class CQRSENTDS01: Driver static sensor_name = "CQRSENTDS01" # sensor name static tds_label = "TDS" # label for temperature in language of preference var tds # global TDS value in PPM var comp_temp # global temperature compensation var voltage # global TDS sensor voltage var prev_voltage var calib_offset var percentage_offset var ec def init() # initialize globals self.tds = 0 self.comp_temp = 25.0 self.voltage = 1.0 self.prev_voltage = self.voltage self.ec = 0.00 self.calib_offset = 176 # Minimale, angezeigte Spannung wenn Sensor nicht im Wasser self.percentage_offset = 0.96 # Abweichung des PPM Wertes. Bsp.: Anzeige 4% zu hoch -> 0.96 # create rules to trigger when TDS sensor voltage updates and temp sensor updates tasmota.add_rule("ANALOG#A5", /value -> self.trigger_voltage(value)) # TDS-Sensor festlegen tasmota.add_rule("DS18B20-1#Temperature", /value -> self.trigger_temp(value)) # Temp-Sensor festlegen end def trigger_voltage(voltage) if voltage != nil self.voltage = voltage - self.calib_offset end # print("voltage:", voltage) end def trigger_temp(temp) if temp != nil if tasmota.get_option(8) == 1 self.comp_temp = 1.0 + 0.02 * (((temp - 32.0) * 0.5555) - 25.0) else self.comp_temp = 1.0 + 0.02 * (temp - 25.0) end end # print("temp:", temp, "comp_temp:", self.comp_temp) end #- calculate TDS & EC value from voltage and temp -# def calc_tds() # to reduce cpu usage, only perform calculation if voltage changes if self.prev_voltage != self.voltage self.prev_voltage = self.voltage var comp_voltage = (self.voltage / 1000.0) / self.comp_temp self.tds = (((133.42 * comp_voltage * comp_voltage * comp_voltage - 255.86 * comp_voltage * comp_voltage + 857.39 * comp_voltage) * 0.5) * self.percentage_offset) self.ec = (self.tds * 2) / 1000 # print("comp_temp:", self.comp_temp, ", comp_voltage:", comp_voltage, ", tds:", self.tds, ", EC:", self.ec) end end #- trigger a read every second -# def every_second() self.calc_tds() end #- display sensor TDS & EC value in the web UI -# def web_sensor() import string if ! self.tds self.tds = 0 self.ec = 0 end var msg = string.format("{s}%s %s{m}%s PPM{e}", "TDS-Sensor", "", self.tds) var msg_ec = string.format("{s}%s %s{m}%s EC{e}", "EC-Sensor", "", self.ec) tasmota.web_send_decimal(msg) tasmota.web_send_decimal(msg_ec) end #- add sensor TDS & EC value to teleperiod -# def json_append() import string if ! self.tds self.tds = 0 self.ec = 0 end var msg = string.format(',"%s":{"%s":%s}', "TDS-Sensor", "TDS", self.tds) var msg_ec = string.format(',"%s":{"%s":%s}', "EC-Sensor", "EC", self.ec) tasmota.response_append(msg) tasmota.response_append(msg_ec) end end cqrsentds01 = CQRSENTDS01() tasmota.add_driver(cqrsentds01) Viele Grüsse Chris
  • Systemair Genius Steuerung über Iobroker -Modbus Http

    2
    1
    0 Stimmen
    2 Beiträge
    110 Aufrufe
    T
    keiner ne Ahnung ?
  • kWh für jeden Monat in ein DP

    3
    1
    0 Stimmen
    3 Beiträge
    198 Aufrufe
    mickymM
    Lass einfach Deinen Monatsdatenpunkt triggern, sprich wenn Du den schreibst, starte ein neues Skript und ermittle den aktuellen oder Vormonat und schreibe den Wert in einen entsprechenden Datenpunkt.
  • Internetzugang sperren

    16
    0 Stimmen
    16 Beiträge
    985 Aufrufe
    S
    @marc-berg said in Internetzugang sperren: @stefan341 Das ginge auch mit dem Adapter "Fb-Checkpresence". [image: 1714313036989-4e23a4c8-8682-4b75-a8d8-f011bb607865-grafik.png] Das entsprechende Gerät kannst du über "disabled" vom Internet trennen, ganz ohne Script. Danke für den Hinweis. So ist es natürlich viel einfacher. …und funktioniert
  • Boiler Relais Steuerung

    5
    0 Stimmen
    5 Beiträge
    276 Aufrufe
    paul53P
    @pv-anlage Wenn das Relais nach 19:00 Uhr ausschalten soll, obwohl die Leistung noch > 3000 W ist: [image: 1714233246925-blockly_temp.jpg]
  • erledigt: mqtt Wert nach Alias (Konvertierungsfunktion)

    javascript
    3
    2
    0 Stimmen
    3 Beiträge
    294 Aufrufe
    S
    @paul53 sagte in Wert aus mqtt in Alias mit Konvertierungsfunktion speichern: JSON.parse(val).MT691.Leistung DANKE!!! das wars! :face_palm:
  • Werte aus JSON in Alias-DP zerlegen

    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    L
    @paul53 Ich hatte gehofft, mit dem Logparser komfortabel bestimme Fehlermeldungen des VE-Adapters im Log detektieren zu können. Das generierte JSON dann auf die Fehlermeldung durchsuchen. Mit Hilfe eines Alias. Das wird aber einfach nichts!
  • [gelöst] kwh berechnen und fortlaufend speichern

    Verschoben
    57
    0 Stimmen
    57 Beiträge
    17k Aufrufe
    paul53P
    @socialbeat sagte: Hast du ne Idee was bei mir falsch laufen könnte? Nein. Der Anfangswert war 0? Die Leistung ist immer positiv (>= 0)? Übrigens: kWh ist keine Leistung, sondern Energie. Du hast den Datenpunkt manuell ohne Maßeinheit erstellt? Weshalb verwendest du nicht "0_userdata.0" für eigene Datenpunkte?
  • Javascript adapter RAM wächst

    10
    0 Stimmen
    10 Beiträge
    383 Aufrufe
    F
    ich habe jetzt einen Großteil des Codes in ein Try Catch Statement gepackt, sodass bei einem Fehler immer der Browser geschlossen wird. Seit dem gibt es keine "Probleme" mehr.

752

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge