Skip to content

Skripten / Logik

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

16.4k Themen 211.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    P
    @ArnoD sagte in E3DC Hauskraftwerk steuern: @psrelax sagte in E3DC Hauskraftwerk steuern: Hier sollte nicht geladen werden, da kurz darauf der Preis fällt. Bin ja gespannt, ob da wirklich geladen wird. Jetzt wurde es geändert auf 01:30 Uhr, warum auch immer das so ist, dass vorher ein anderer Zeitraum geplant wird. :-)
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    paul53P
    @Flowski sagte: habe es mal nachgebaut: Weshalb haben die Trigger-DP andere Namen als die DP, die geprüft werden? Das darf nicht sein! [image: 1765123294309-blockly_temp.jpg] Anmerkung: Es macht keinen Sinn, die Subnetzadresse "192.168.178" der Fritzbox unkenntlich zu machen.
  • 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
  • [gelöst] Zwave2 - Per Script Interview bei Node auslösen

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

    3
    0 Stimmen
    3 Beiträge
    223 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
    453 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
    376 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 :blush:
  • Scripte verschwinden in der Ansicht

    9
    0 Stimmen
    9 Beiträge
    500 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
    633 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
    266 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
    828 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
    498 Aufrufe
    M
    Übrigens: Markise schreibt man mit einem "s". Danke du hast natürlich Recht. :+1:
  • Werte aus PV Anlage auslesen

    6
    1
    0 Stimmen
    6 Beiträge
    979 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
    431 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
    335 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
    918 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
    688 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
    573 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.
  • Homematic IP Rollo Positions Angaben umwandeln

    8
    0 Stimmen
    8 Beiträge
    645 Aufrufe
    HomoranH
    @mws sagte in Homematic IP Rollo Positions Angaben umwandeln: HmIP-HDM1 wo finde ich denn so was? Das führt mich zu der Annahme, dass dieser (seltsame) Aktor möglicherweise nicht sauber eingebunden ist. Ob jetzt schon bei EQ-3 oder nur bei ioBroker bleibt erst mal offen. Da solltest du auf jeden Fall mal ein Issue beim Adapteraufmachen, mit ausreichend Informationen über dieses Gerät. Ich habe nämlich auf die Schnelle nichts finden können EDIT: alles was ich bisher nach längerer Suche finde klingt ziemlich ernüchternd was die Implementierung seitens EQ-3 angeht, ist allerdings auch oft noch Stand von vor einem Jahr oder mehr
  • [gelöst] Szene Adapter Shelly

    6
    1
    0 Stimmen
    6 Beiträge
    324 Aufrufe
    D
    @paul53 perfekt, Danke dir.
  • Unbestätigten Wert schreiben lassen

    20
    1
    0 Stimmen
    20 Beiträge
    1k Aufrufe
    paul53P
    @fir3drag0n sagte: was bewirkt die Änderung der Rolle? Jarvis schreibt dann vielleicht eine Zahl in den Datenpunkt? Ich habe gelesen, dass Visualisierungen die Rolle auswerten. Da es ein r/w Datenpunkt ist, nimm die Rolle "level".

849

Online

32.5k

Benutzer

81.6k

Themen

1.3m

Beiträge