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
    P
    Hi @Schimi , danke für das Skript. Ich glaube, es gibt einen kleinen Bug bei den stündlichen Daten. Die Werte für die ersten beiden Stunden des Tages werden falsch zugeordnet. Zum Debuggen habe ich das Skript angepasst und den Datenpunkt "from" mitschreiben lassen. Da ergibt sich folgendes Bild: 0_userdata.0.wetter_com.day_0.hourly.23.from = 2026-04-25T21:00:00Z 0_userdata.0.wetter_com.day_1.hourly.00.from = 2026-04-26T22:00:00Z 0_userdata.0.wetter_com.day_1.hourly.01.from = 2026-04-26T23:00:00Z 0_userdata.0.wetter_com.day_1.hourly.02.from = 2026-04-26T00:00:00Z Die TImestamps sind ja UTC, also 2h Versatz zu Deutschland. Die Uhrzeiten sind alle ok, aber bei 00:00 und 01:00 Uhr stimmt das Datum nicht. Da müsste als Tag der 25. drin stehen.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    Gestern war bei VolMax 3,54V Ladeende 100%, das Entladen stoppt halt dann doch relativ bald wenn ich bei Volmin 3,16V stoppe, aber wird wohl Sinn machen. Damit es ein bisschen hinausgezögert wird habe ich aber aktuell schon von 40% (500W) bis 10% verlaufend das Entladelimmit bis zu nur noch maximal 200W runtergesetzt.
  • Hilfe für Skripterstellung mit Node-RED

    955 13k
    955 Themen
    13k Beiträge
    mickymM
    @Tontechniker Man kann solche Filter aber auch OHNE neue Nodes zu installieren mit einfachen Standard-Switch Nodes realisieren: [image: 1776865319208-af3cab3c-2716-43f4-b7df-7f74e8bf051b-image.jpeg] ggf. einfach nochmal meinen alten Thread anschauen: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
  • [gelöst] Deconz Taster eine SV von Homematic schalten

    3
    2
    0 Stimmen
    3 Beiträge
    147 Aufrufe
    J
    @glasfaser So einfach- ich schäme mich! Danke trotzdem Liebe Grüße Jürgen
  • Philips Hue mit Zigbee Adapter steuern

    15
    1
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    arteckA
    @sentinel zur aufklärung.. der command Befehl war adapter gesteuert.. der hat die einzelnen befehle dann auseinander genommen und hinterher abgefertigt..hatte nix mit dem Netzwerk zu tun
  • Skript ändern ... aber was ?

    7
    0 Stimmen
    7 Beiträge
    287 Aufrufe
    Dr.PieD
    Moin... scheint zu funktionieren 😎👍 1000 Dank
  • [gelöst] Zwave2 - Per Script Interview bei Node auslösen

    blockly monitoring
    6
    0 Stimmen
    6 Beiträge
    457 Aufrufe
    PlasmachefP
    @alcalzone klappt super! herzlichen Dank und schönen Tag :-)
  • Instanz Werte nutzen

    3
    0 Stimmen
    3 Beiträge
    258 Aufrufe
    A
    @oliverio ok, das ist es! vielen dank! edit: so ähnlich zumindest. nicht "common.native" sondern nur "native" danke trotzdem var ob = getObject("system.adapter.hm-rpc.0"); console.log(ob.native.homematicAddress);
  • [gelöst] Daten per NFS kopieren und umbenennen (Zeitstempel)

    12
    1
    0 Stimmen
    12 Beiträge
    480 Aufrufe
    DJMarc75D
    @peterfido sagte in Daten per NFS kopieren und umbenennen (Zeitstempel): etwas aufwändiger Ja das klingt schon sehr aufwändig. Ich habe das jetzt im Blocklyskript gelöst wie @liv-in-sky geschrieben hatte: mount | grep meinMountpoint wird 2 Sekunden nach dem Mountbefehl abgefragt und wenn kein Wert zurück kommt wird das Blockly nicht weiter ausgeführt.
  • async-await sleep stoppen

    5
    0 Stimmen
    5 Beiträge
    447 Aufrufe
    S
    Super, vielen Dank für Eure Tipps, ! Habe es jetzt so umgesetzt var Timeout1 = null; var Timeout2 = null; on({id: RFCode, val: "12345"}, function() { if (getState(Light).val === false) { setState(Light, true); TimerLang(); } else if(Timeout1) { clearTimeout(Timeout1); Timeout1 = null; TimerKurz(); } else if(Timeout2) { clearTimeout(Timeout2); Timeout2 = null; TimerLang(); }}); function TimerLang() { Timeout1= setTimeout(function() { setState(Light, false); Timeout1 = null; }, 600000)}; function TimerKurz() { Timeout2= setTimeout(function() { setState(Light, false); Timeout2 = null; }, 30000)}; Falls man das noch eleganter machen kann, immer her mit den Tipps. Ich bin wie gesagt nicht so der JS Held, aber zumindest funktioniert es
  • Scripte verschwinden in der Ansicht

    9
    0 Stimmen
    9 Beiträge
    632 Aufrufe
    O
    @glasfaser Bin nicht über VNC verbunden. Mit "Problem mit dem Browser" meinte ich die Darstellung in einem Browser. Konnte das Problem jetzt eingrenzen. Die Ansicht fliegt nur bei einem bestimmten JS weg, nicht bei allen.
  • http request Erläuterung für Anfänger

    7
    3
    0 Stimmen
    7 Beiträge
    772 Aufrufe
    mickymM
    Ich hatte zwar an die Umsetzung des Http-Requests gedacht - aber wenn es fertige Nodes bzw. iobroker Adapter gibt - dann ist das ja vielleicht noch einfacher - da kann ich aber nichts zu beitragen.
  • Wert aus JSON in Variable mit Zeitstempel von gestern

    2
    0 Stimmen
    2 Beiträge
    293 Aufrufe
    paul53P
    @oggy1979 sagte: Zeitstempel (iobroker - letzte Änderung, für Verwendung in Grafana) auf den Wert aus dem json setzen?! Die Zeitstempel (ts, lc) eines Datenpunktes werden vom js-controller gesetzt.
  • Div class auslesen / parsen

    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    mickymM
    @ceel Mit snmp müsste es eigentlich gehen. Ich lese das via snmp via NodeRed aus - und das klappt auch mit anderen Marken als meinem HP- Drucker - siehe hier: https://forum.iobroker.net/topic/44337/hp-tintenfüllstände-mit-nodered-und-snmp Ich würde Dir halt generell mal empfehlen, den in dem Thread genannten MIB Browser zu installieren [image: 1662056123128-0f3378a6-3981-49ee-8922-da1604218596-image-resized.png] . Auf dem Screenshot siehst Du die OID 1.3.6.1.2.1.43.11.1 und den Pfad in der herstellerunabhängigen Printer MIB. Jedenfalls kannst Du so sehen, ob Du eine snmp Verbindung aufbauen kannst dich über die MIB durchsuchen, wo die Werte bei Dir drin stehen. Den MIB Browser habe ich mir damals hier runtergeladen: https://www.manageengine.de/produkte-loesungen/kostenlose-produkte-und-editionen/free-snmp-mib-browser-tool.html
  • [Anleitung] Lokal Netatmo Presence Bild -> Telegram

    2
    4 Stimmen
    2 Beiträge
    906 Aufrufe
    A
    Wird dabei auch eine Bewegung erkannt b.z.w. ändert sich das Bild kommt dann eine Nachricht. Ich würde gern ein Bild und eine Nachricht bekommen wenn jemand in den Bereich der Kamera kommt.
  • Markisen Steuerung

    javascript
    18
    0 Stimmen
    18 Beiträge
    532 Aufrufe
    M
    Übrigens: Markise schreibt man mit einem "s". Danke du hast natürlich Recht.
  • Werte aus PV Anlage auslesen

    6
    1
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    P
    @procrastinator Sorry to reply in English, used g-translate to find out what is going on here. I was wondering also the same thing, how to extract the production values from Steca's inverters. Their official way is to pull the data out with RS485 connection, but I wanted to get it out directly via their web server. They even sent the RS485 documentation when I asked how to pull out data over the www interface. After digging a while I found this, which at least gives you current values. By refreshing it, it gives you new values. This does't have yield values available, but those can be calculated roughly if the refresh is done often enough. http://192.168.0.161/measurements.xml (replace the IP with your's Steca IP)
  • LED am Raspberry per Script deaktivieren

    7
    0 Stimmen
    7 Beiträge
    563 Aufrufe
    AndreiosA
    @semmy sagte in LED am Raspberry per Script deaktivieren: @thomas-braun sagte in LED am Raspberry per Script deaktivieren: @semmy https://n.ethz.ch/~dbernhard/disable-led-on-a-raspberry-pi.html Wie bringt man das dann in ein Blockly? Als ich Deinen Beitrag gelesen habe, bin ich davon ausgegangen, dass Du die nur abschalten willst! Wenn das so ist, dann sollte es doch reichen, diese auf Betriebssystemebene abzuschalten, wie im Link beschrieben. Das geht auch dauerhaft!
  • Trigger mehrerer Werte

    javascript
    5
    0 Stimmen
    5 Beiträge
    400 Aufrufe
    S
    @paul53 sagte in Trigger mehrerer Werte: Wenn man die Zählerstanddifferenz zwischen Ein- und Ausschalten des DLE verwendet, werden auch alle parallel laufenden Verbraucher mit erfasst. ja klar, das ist so, deshalb Variante --- der durchschnittliche Verbrauch vorher Trigger wird ermittelt und anschließend abgezogen. // Smartmeter let idPOW = 'smartmeter.0.1-0:16_7_0__255.value'; // aktuelle Leistung in Watt let id_Zaehlerstand = 'smartmeter.0.1-0:1_8_0__255.value'; // aufgelaufener gesamt-Zählerstand in kWh let id_L2 = 'smartmeter.0.1-0:51_7_0__255.value'; // Stromstärke Phase 2 in A let id_L3 = 'smartmeter.0.1-0:71_7_0__255.value'; // Stromstärke Phase 3 in A // Userdata .. DlE = Durclauferhitzer let idDlE_Zustand = '0_userdata.0.Energieverbrauch.Durchlauferhitzer.DL_aktiv'; // DL aktiv|true , inaktiv|false let idDLE_Zaehlerstand = '0_userdata.0.Energieverbrauch.Durchlauferhitzer.Zaehlerstand'; // aufgelaufener Verbrauch in kWh //Trigger const iTrigger = 5000; // Schwellwert ab der aktiver Durchlauferhitzer vermutet wird. const iTrigger2 = 5; // Schwellwert in A bei L2 && L3 bei aktivem Durchlauferhitzer //Programm let fZaehlerStart; var fVerbrauch; // Verbrauch während Trigger var fAlterWert; var bAktiv; // true = Verbrauch wird aufgezeichnet, DLE in Betrieb var aGrundverbrauch = []; // 0-29 des Grundverbrauches var aTimeGrundverbrauch = []; // array 0-29 des Zeitabstand Grundverbrauchswerte var iAvgGrundverbrauch; // Mittelwert der letzten Werte Watt // ************************************************************************ // Mittelwert Grundverbrauch // Parameter myArray [Zeitstempel,Verbrauch] function ArrayMittel(myArray) { var i = 0, sum = 0, ArrayLen = myArray.length; // Verbrauch summieren while (i < ArrayLen) { sum = sum + myArray[i++][1]; } // Zeitspanne ermitteln var t = (myArray[myArray.length-1][0] - myArray[0][0]) / 1000; // Sekunden // Rückgabe KWh return (sum / 1000 / ArrayLen) / 3600 * t; } on({ id: idPOW, change: "ne" }, function (obj) { //if (obj.state.val >= iTrigger && !bAktiv) { if (obj.state.val >= iTrigger && !bAktiv && getState(id_L2).val > iTrigger2 && getState(id_L3).val > iTrigger2 ) { bAktiv = true; setState (idDlE_Zustand,true); fZaehlerStart = getState(id_Zaehlerstand).val; //gesamt-Zählerstand notieren } else if (obj.state.val < iTrigger && bAktiv) { bAktiv = false; setState (idDlE_Zustand,false); fVerbrauch = getState(id_Zaehlerstand).val - fZaehlerStart; // Verbrauch ermitteln fAlterWert = getState (idDLE_Zaehlerstand).val; // negative Werte durch Abzug von Grundverbrauch vermeiden if (fAlterWert + fVerbrauch - iAvgGrundverbrauch >= 0) { setState(idDLE_Zaehlerstand, fAlterWert + fVerbrauch); // Verbrauch abzüglich Grundeverbrauch ermitteln } } else if (!bAktiv) { // den Mittelwert der letzten 30 Werte vor Inbetriebnahme des Durchlauferhitzers ermitteln // laufend .... aGrundverbrauch.push( [new Date().getTime() , obj.state.val] ); // nur die letzten 30 Werte merken, Rest trashen .. if (aGrundverbrauch.length > 30) { aGrundverbrauch.shift(); } // Mittelwert aus den letzten 30 Werten bilden iAvgGrundverbrauch = ArrayMittel(aGrundverbrauch); console.log("aGrundverbrauch: " + JSON.stringify(aGrundverbrauch)); } });
  • Json 2 Datenpunkt

    10
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    paul53P
    @vanom-vine sagte: greife ich die Json von jemand anderes ab Wie? Du musst es in ein Skript bekommen. EDIT: Zeile 17 enthält den Zeitstempel vom 27.08.22 09:05 Uhr MESZ.
  • Zeitsteuerung Umfrage

    7
    0 Stimmen
    7 Beiträge
    796 Aufrufe
    David G.D
    @joker2048 Ich mache es auch per cron. Habe global für alle Timer und für einige der einzelnen einen Datenpunkt zum deaktivieren. Alles in Lovelace. Über den "time input" kann man den Zeitplan auch sehr konfortabel in Lovelace anpassen (man kann den Cron Zeitplan ja auch per Datenpunkt anpassen). Da sollte/wird man optisch was ansprechendes hinbekommen. Darf ich fragen, warum du weg möchtest von Lovelace? Hab mir Jarvis auch öfters mal angesehen. Würde aber ehrlich gesagt nie wechseln 🥰 Edit: Würde es in der Art machen [image: 1661676056551-screenshot_20220828-103149_chrome.jpg] [image: 1661676068387-screenshot_20220828-102739_chrome.jpg]
  • Blockly Script für Steuerung Warmwasser mit PV

    1
    1
    0 Stimmen
    1 Beiträge
    593 Aufrufe
    Niemand hat geantwortet
  • [gelöst] HTTP request geht nicht mehr

    14
    1
    0 Stimmen
    14 Beiträge
    2k Aufrufe
    G
    @oliverio Oliver... Genial!!! Geht alles wieder wie vorher. Vielen vielen dank.

487

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge