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
    A
    @Dave69-CH Die Fehler kommen vom e3dc-rscp Adapter? Hast du eine E3DC Wallbox ?
  • 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

    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
  • Batterielevel auslesen

    7
    0 Stimmen
    7 Beiträge
    622 Aufrufe
    S
    @codierknecht Danke, dann habe ich es falsch verstanden. Ich bin nicht unbedingt auf Windows fixiert, Linux wäre auch möglich. Bei SNMP und wmi bin ich bis jetzt nicht fündig geworden den Ladezustand bequem auszulesen Das sieht auch sehr nett aus, werde ich mal testen. Anscheinend funktionieren die Funktionen vom Fully Kiosk Browser unter Windows, wundert mich das noch keiner die 2-3 verschiedenen Ansätze zu einem Browser verbunden hat. Ich kann leider nicht programmieren
  • Wenn Wochentag X dann Wert von Objekt Y

    7
    0 Stimmen
    7 Beiträge
    896 Aufrufe
    B
    @miwi Hallo miwi, klappt das Script bei dir einwandfrei bzw. zeigt die richtigen Werte an ? Bei mir kommt es immer mal wieder vor, dass er einen Tag verschluckt und nicht den Wert von z. B. vorgestern übernimmt.
  • (GELÖST) Syntax API REST Swagger via Curl etc.

    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    M
    @pischleuder die Zugangsdaten sind das Token welches du beginnst wenn du dich via API mit den Login Daten authentifiziert. Also API token erstellen Mit token über die API die gewünschten Daten abfragen. Token ist nur begrenzt gültig
  • Script anhalten und wieder starten über ein anderes Script

    45
    0 Stimmen
    45 Beiträge
    3k Aufrufe
    AlexAtHomeA
    @bahnuhr Dann baue ich es vielleicht doch wieder um, aber erst nach meinem Urlaub... :-) Wobei, wie gesagt, "ständig" in dem Fall ja nur 1-3 mal pro Jahr wäre.
  • UND-Verknüpfung in Blockly

    5
    0 Stimmen
    5 Beiträge
    461 Aufrufe
    D
    @cluni Besten Dank für die Unterstützung, ich habe jetzt auch auf positive logik umgestellt und arbeite mit ODER (Fenster auf). [image: 1683199356496-ba2b8a3e-3378-4498-961c-99052d1a8ff0-image.png] Gruß Klaus
  • Befehl an Alexa - Zahl als Text in Nummer umwandeln

    3
    0 Stimmen
    3 Beiträge
    330 Aufrufe
    T
    du musst die Antwort zerlegen, die Worte per ersetze in Ziffern wandeln und richtig zusammensetzen. Danke. Ich hatte die wahnsinnige Hoffnung, dass man schon irgendwie eine Sprachanalyse von Alexa, Google oder ChatGPT nutzen kann... Dann werde ich wohl oder übel Routinen anlegen müssen und den Status dieser Routinen auswerten. Gruß Tom
  • Mit PV-Überschuss E-Auto laden: Wolkenerkennung?

    16
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    JohGreJ
    @badsnoopy667 Ja genau, bei mit hat tatsächlich Netz-OÖ im Bescheid die Einspeisebegrenzung vorgeschrieben. Bei der Abnahme der Anlage war der PV-Installateur und ein Techniker von Netz-OÖ da und der hat sich die Beschränkung in der Anlage explizit zeigen lassen. Liegt an unserem Trafo wo wir draufhängen, hab schon um Erhöhung angefragt und zurückgemeldet bekommen um 24.000€ erweitern sie mir den Trafo und dauert aufgrund Lieferschwierigkeiten 1-2 Jahre.
  • Datenpunkte in Google Spreadsheet schreiben

    10
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    P
    @simplyclever Vielen Dank!!! Ich werd mich am WE mal dransetzen. Sollte aber definitv mein Problem lösen. Melde mich danach zurück. VG Dominik
  • Steuerung JVC Projektor über TCP/IP

    javascript node-red blockly
    5
    0 Stimmen
    5 Beiträge
    923 Aufrufe
    G
    Ich habe hier einen Neustart versucht
  • Syntax Checker im Editor markiert korrekte Werte

    javascript
    2
    0 Stimmen
    2 Beiträge
    254 Aufrufe
    CodierknechtC
    @marty56 Gute Frage - würde mich auch interessieren. [image: 1683007556374-0224ca86-5d76-4f3d-bce4-83200fc8cfb9-image.png] Ich hab's bislang immer als "ist halt so" abgetan und es ignoriert.
  • Display ansteuern // "xrandr -d :0 --output HDMI-1 --off"

    7
    1
    0 Stimmen
    7 Beiträge
    841 Aufrufe
    mickymM
    @mrjeschke Danke, für Deine Rückmeldung. Mir geht es ja genauso und ich war sehr froh, dass Du mir damals geholfen hast, aber von den technischen Background habe ich auch keine Ahnung.
  • gezielt Werte aus InfluxDB mit Telegram verschicken

    2
    0 Stimmen
    2 Beiträge
    369 Aufrufe
    W
    @einencool Hi, ich kenne AhoiDTU nicht. Der "Yield.Day" hört sich aber schon mal gut an und mir scheint, dass du ihn schon in influxdb speicherst. Mit dem folgenden Blockly kannst du ihn aus influxDB auslesen und und über 7 Tage summieren. Das Versenden über Telegram funktioniert so, wie du es schon für die Einzelwerte geschafft hast. [image: 1682847782864-blockly_influxdb-anfrage.png] Spoiler var end, start, result, wertesumme, i, wert, zeit; // Get history from influxdb adapter end = (new Date().getTime()); start = parseFloat(end) - parseFloat(7) * 3600000; sendTo("influxdb.0", "getHistory", { "id": 'AhoiDTU.0.Yield.Day', "options": {start: start, end: end, aggregate: "none"} }, async function (result) { console.log('Ergebnis der Abfrage:'); // Rückmeldung von influxDB ausgeben: console.log(result); console.log('Die Einzelwerte:'); wertesumme = 0; // Rückmeldung von influxDB auswerten: var i_end = parseFloat(getAttr(result, 'result').length) - 1; var i_inc = 1; if (0 > i_end) { i_inc = -i_inc; } for (i = 0; i_inc >= 0 ? i <= i_end : i >= i_end; i += i_inc) { wert = getAttr(result, (['result.',i,'.val'].join(''))); wertesumme = (typeof wertesumme == 'number' ? wertesumme : 0) + wert; zeit = getAttr(result, (['result.',i,'.ts'].join(''))); console.log((['Wert: ',wert,' Zeit: ',formatDate(getDateObject(zeit), "TT.MM.JJJJ SS:mm:ss")].join(''))); } console.log(('Die Summe aller Werte: ' + String(wertesumme))); }); Falls du übrigens die influxDB-Abfrage anpassen möchtest, ist hier die Hilfeseite: https://github.com/ioBroker/ioBroker.influxdb Grüße, Philipp
  • JSON wird in "vis-inventwo - JSON Table" falsch dargestellt

    javascript
    2
    2
    0 Stimmen
    2 Beiträge
    281 Aufrufe
    OliverIOO
    @langer sagte in JSON wird in "vis-inventwo - JSON Table" falsch dargestellt: Am json ist nix falsch https://jsonlint.com/
  • zugriff auf last change eines DP in Alias möglich?

    2
    1
    0 Stimmen
    2 Beiträge
    112 Aufrufe
    paul53P
    @chris299 sagte: Die aufwändige Alternative über user-variable und Skript würde ich gern vermeiden.... Lässt sich aber nicht vermeiden. Der Alias spiegelt nur den Zustand eines Referenz-Datenpunktes. Konvertierungen sind nur mit dem Wert (val) möglich.
  • Wie entschlüsselt man diese Iobroker Script-Warnung?

    12
    0 Stimmen
    12 Beiträge
    887 Aufrufe
    FabioF
    @homoran sagte in Wie entschlüsselt man diese Iobroker Script-Warnung?: @fa-bio hoffen auf Infos ja ich glaube aber nicht das das passiert. ;-)
  • [Lovelace] HTML Code anzeigen

    20
    1
    1 Stimmen
    20 Beiträge
    3k Aufrufe
    planetkeaneP
    Ich habe mir jetzt ein neues Skript gebaut, dass direkt aus den Objekten von Sourceanalytix eine HTML Tabelle erstellt. Diese funktioniert auch ganz gut, obwohl ich da bestimmt noch ein paar Verbesserungen durchführen werde. Falls es jemanden interessiert: // Erstelle ein HTML-Objekt im Verzeichnis 0_userdata.0.test /* * >>>>>>> Hier Eingabewerte <<<<<<< */ var anzeigeName = 'Computer'; var verzeichnisSave = '0_userdata.0.HTML.StromverbrauchComputer'; var verzeichnisPfad = 'sourceanalytix.0.0_userdata__0__Energiezaehler__Computer'; // 1 für "consumed", 2 für delivered var methode = 2; //>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<< createState(verzeichnisSave, { type: 'string', common: { name: 'HTML-Objekt', role: 'html', read: true, write: false, }, native: {}, }); //schedule("*/30 * * * *", async function () { on({ id: [].concat(['0_userdata.0.TabellenHTMLAktualisieren']), change: "any" }, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; // Jahresvariablen var aktuellesDatum = new Date(), jahr = aktuellesDatum.getFullYear(), vorJahr = jahr - 1; // Gesamtvariable var GesamtJetzt = 0, GesamtVorher = 0, GesamtKostenJetzt = 0, GesamtKostenVorher = 0; /* * Hier den Spaltennamen eingeben */ // Erstelle den HTML-Code für die Tabelle var tableHTML = '<table><thead><tr><th>' + anzeigeName + '</th><th>Dieses Jahr</th><th>Letztes Jahr</th><th>Kosten</th></tr></thead><tbody>'; var names = ""; for (var i = 1; i <= 12; i++) { var month = (i < 10) ? "0" + i : i; if (i == 1) { names = "January"; } else if (i == 2) { names = "February"; } else if (i == 3) { names = "March"; } else if (i == 4) { names = "April"; } else if (i == 5) { names = "May"; } else if (i == 6) { names = "June"; } else if (i == 7) { names = "July"; } else if (i == 8) { names = "August"; } else if (i == 9) { names = "September"; } else if (i == 10) { names = "October"; } else if (i == 11) { names = "November"; } else if (i == 12) { names = "December"; } /* * Hier den Quellpfad angeben */ if (methode == 1) { var valueThisYear = getState(verzeichnisPfad + '.' + jahr + ".consumed.months." + month + "_" + names).val; var cost = valueThisYear * 0.33; GesamtJetzt += valueThisYear; var valueLastYear = getState(verzeichnisPfad + '.' + vorJahr + ".consumed.months." + month + "_" + names).val; var costLast = valueLastYear * 0.33; GesamtVorher += valueLastYear; GesamtKostenJetzt += cost; tableHTML += '<tr><td>' + i + '</td><td>' + valueThisYear + '</td><td>' + valueLastYear + '</td><td>' + cost.toFixed(2) + ' | ' + costLast.toFixed(2) + '</td></tr>'; } else if (methode == 2) { var valueThisYear = getState(verzeichnisPfad + '.' + jahr + ".delivered.months." + month + "_" + names).val; var cost = valueThisYear * 0.33; GesamtJetzt += valueThisYear; var valueLastYear = getState(verzeichnisPfad + '.' + vorJahr + ".delivered.months." + month + "_" + names).val; GesamtVorher += valueLastYear; var costLast = valueLastYear * 0.33; GesamtKostenJetzt += cost; tableHTML += '<tr><td>' + i + '</td><td>' + valueThisYear + '</td><td>' + valueLastYear + '</td><td>' + cost.toFixed(2) + ' | ' + costLast.toFixed(2) + '</td></tr>'; } } // Zwei Nachkommastellen GesamtJetzt = Math.round(GesamtJetzt * 100) / 100; GesamtVorher = Math.round(GesamtVorher * 100) / 100; GesamtKostenJetzt = Math.round(GesamtKostenJetzt * 100) / 100; GesamtKostenVorher = GesamtVorher * 0.33; GesamtKostenVorher = Math.round(GesamtKostenVorher * 100) / 100; tableHTML += '<tr><td>' + "Ge" + '</td><td>' + GesamtJetzt + '</td><td>' + GesamtVorher + '</td><td>' + GesamtKostenJetzt + ' | ' + GesamtKostenVorher + '</td></tr>'; tableHTML += '</tbody></table>'; /* * Hier den Speicherpfad angeben (2x) */ // Schreibe den HTML-Code in den HTML-Objektzustand als Zeichenfolge setState(verzeichnisSave, { val: tableHTML, ack: true }); // Lese den HTML-Code als Zeichenfolge var tableHTMLString = getState(verzeichnisSave).val; // Gib den HTML-Code in der Konsole aus // console.log(tableHTMLString); });
  • Ordner Überwachung und per SFTP weitergeben

    8
    0 Stimmen
    8 Beiträge
    676 Aufrufe
    bahnuhrB
    @liv-in-sky Vielen lieben Dank. Top Beschreibung von dir. Jetzt klappt es. Hab mich irgendwie zu blöd angestellt (Error 50 halt). mfg Dieter
  • [gelöst] Weckzeit Blockly löst falsch oder garnicht aus

    6
    2
    0 Stimmen
    6 Beiträge
    455 Aufrufe
    blue231181B
    @paul53 hat funktioniert, vielen herzlichen Dank
  • Tagesschau-Script ändern!

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    774 Aufrufe
    bahnuhrB
    @quarkmax ich hab jetzt dies: https://www.tagesschau.de/multimedia/livestreams/index~player.html einfach in den DP geschrieben. Mal schauen obs morgen noch geht. Für mich liegt es an dem Index, der gestern noch durch eine Zahlenfolge ersetzt wurde. kann dies aber nicht im Quelltext erkennen.
  • Bewegungsmeldung mit Frigate

    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    WalW
    Da das Skript immer grösser wurde, habe ich alles in einen Adapter migriert.

447

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge