Skip to content

Skripten / Logik

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

16.4k Themen 211.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    D
    @maxclaudi Vielen Dank für das ausführliche oben beschriebene Verhalten von smartMode. Es gibt wirklich keine konstante wann er umschaltet. Hatte erst mal.4 Tage ohne umschalten und dann kann sein das er 3 mal am tag umschaltet
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    Dr. BakteriusD
    @Asgothian sagte in Farbe aus R/G/B rechnet falsch: ggf. erwartet dieser die farbwerte in %, nicht 0-255 Danke, das war's.
  • 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
  • Datenpunkte in Google Spreadsheet schreiben

    10
    0 Stimmen
    10 Beiträge
    828 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
    806 Aufrufe
    G
    Ich habe hier einen Neustart versucht
  • Syntax Checker im Editor markiert korrekte Werte

    javascript
    2
    0 Stimmen
    2 Beiträge
    209 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
    775 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
    323 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
    231 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
    103 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
    733 Aufrufe
    FabioF
    @homoran sagte in Wie entschlüsselt man diese Iobroker Script-Warnung?: @fa-bio hoffen auf Infos ja :+1: :+1: :+1: :+1: ich glaube aber nicht das das passiert. ;-)
  • [Lovelace] HTML Code anzeigen

    20
    1
    1 Stimmen
    20 Beiträge
    2k 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
    546 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
    362 Aufrufe
    blue231181B
    @paul53 hat funktioniert, vielen herzlichen Dank
  • Tagesschau-Script ändern!

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    721 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.
  • Node Red Werte aus Objekten

    10
    3
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    Sascha HolzerS
    @mickym Da hab ich mir schon gedacht, aber ich finde es als Anfänger so tatsächlich übersichtlicher und man kann sich schnell was neues zusammenkopieren.
  • [gelöst] Funktionsrückgabe undefined

    6
    0 Stimmen
    6 Beiträge
    487 Aufrufe
    O
    @paul53 wie immer besten Dank:+1: echt klasse wie du hier mit deinem Wissen hilfst und unterstützt. Hast du ne Kaffeekasse?:tea:
  • Ausführen einer Aktion zu bestimmten Zeit

    6
    2
    0 Stimmen
    6 Beiträge
    451 Aufrufe
    R
    Danke euch! Die Systemzeit vom Pi war falsch. Ist jetzt in der richtigen Zeitzone! Ich versuche mich jetzt mal am Zeitplan!
  • Sayit, doppelte Ansage und Lautstärke

    3
    2
    0 Stimmen
    3 Beiträge
    230 Aufrufe
    DJMarc75D
    @nachtfuchs Welche Version vom sayit ist installiert ? Und bitte auch mal die Einstellungen zeigen. Falls da "Cache" aktiviert ist dies dann mal deaktivieren. Skript mit Deinen Anforderungen und in Verbindung mit dem SayIt könnte folgend aussehen: [image: 1682248792429-screenshot-2023-04-23-131934.png] einfach mal so umsetzen, testen und das Ergebnis mitteilen :)
  • Problem mit dem Adapter History

    blockly monitoring
    4
    0 Stimmen
    4 Beiträge
    331 Aufrufe
    C
    @dp20eic Super vielen herzlichen Dank. Das habe ich gar nicht gesehen. Ich habe immer nur bei der Variablen geschaut
  • Alias DP Wert schreiben

    15
    0 Stimmen
    15 Beiträge
    839 Aufrufe
    paul53P
    @ostseeskipper sagte: im Objekte Tab hab ich noch nichts gesehen wie man da einen Alias anlegen kann Einfach Objekte unter "alias.0" erstellen. Bei Datenpunkten gibt es dann einen zusätzlichen Tab für die Alias-Eigenschaften. @ostseeskipper sagte in Alias DP Wert schreiben: über automatisch erstellen Diese Funktion habe ich nie genutzt. Sie könnte das Problem sein.
  • [gelöst]Enum und Trigger

    9
    0 Stimmen
    9 Beiträge
    469 Aufrufe
    O
    @paul53 Ich habs verstanden, war fachlich nicht korrekt ausgedrückt. jedenfalls macht die von @Codierknecht genannt Lösung was ich gesucht habe.

805

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge