Weiter zum Inhalt

JavaScript

2.5k Themen 49.9k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Skript EXEC geht nicht

    Verschoben
    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    NamrennerN
    @bananajoe ja, Danke
  • werte von url im json format

    4
    0 Stimmen
    4 Beiträge
    390 Aufrufe
    mickymM
    @fischi87 Was ist denn Deine präferierte Logikmaschine? Du kannst das mit allem machen: Javascript, Blockly oder NodeRed?
  • Name eine Verzeichnisses/Kanals eines Datenpunktes auslesen

    2
    1
    0 Stimmen
    2 Beiträge
    284 Aufrufe
    paul53P
    @sesamstrasse sagte: Namen eins Kanals von einem Datenpunkt per JavaScript zu ermitteln. function parentName(id) { // Datenpunkt-ID id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id)) return getObject(id).common.name; }
  • Debuggen von JavaScript über VSCode per Definitionsdatei

    8
    0 Stimmen
    8 Beiträge
    961 Aufrufe
    S
    @oliverio @AlCalzone OK Danke. Dann scheint das debuggen eines Adapters über VBCode tatsächlicher einfacher zu sein als das einzelne Script im Java Adapter. Ist irgendwie auch logisch. Also der einzige Weg das über VSCode zu machen: (Scripte werden wohl in /opt/iobroker/iobroker-data/objects.json gespeichert, also die direkt zu editieren geht wohl nicht.) IOBroker: iobroker stop javascript node --inspect-brk=0.0.0.0:9229 node_modules/iobroker.javascript/main.js --force –logs VSCode: Scripte herunterladen mit z.B. der Extension IOBroker.javascript VSCode: Script bearbeiten VSCode: Script wieder hochladen VSCode: launch.json starten Habe mir zwei Fenster in VBCode geöffnet. Im ersten ioBroker Extension geöffnet und hier editiere ich dann die Java Datei aus dem IOBroker Sobald diese geändert wurden ist (Einstellungen -Auto Save auf after delay oder einfach nur speichern) erscheint sie unter Changed Scripts und kann dann wieder hochgeladen werden. In der zweiten Sitzung den Debugger geöffnet und auf Weiter gedrückt. Änderungen sind da und man kann jede einzelne Variable debuggen. Damit kann ich dann eventuell doch alles mit VBCode machen. [image: 1645197944215-vscode_debuggen.png]
  • Thinkspeak, Datenexport, Json --Aktuellster Wert...Gelöst

    3
    0 Stimmen
    3 Beiträge
    205 Aufrufe
    M
    @paul53 Danke , genau so hat es wunderbar geklappt!
  • gelöst Name im Datenpunkt ändern mit Variable als Name

    9
    1 Stimmen
    9 Beiträge
    781 Aufrufe
    paul53P
    @flehmann1234 sagte: diese neu anlegen lassen. Dann kann man die Tatsache verwenden, dass "Ordner" die "device-id" enthält. createState("0_userdata.0."+ Ordner +".ALARM", 0, {name: Ordner.split('.')[3] + " ALARM", unit: "", read: true, write: true, desc: "ALARM", type: "number", role: 'indicator.alarm'});
  • enums Abfrage

    javascript
    1
    0 Stimmen
    1 Beiträge
    193 Aufrufe
    Niemand hat geantwortet
  • Script Hilfe (Array)

    6
    0 Stimmen
    6 Beiträge
    539 Aufrufe
    fischi87F
    GELÖST: if (this.config.total) { var cPrice_btc = apiResult[0].price.replace("€", ""); var cPrice_btc = cPrice_btc.replace(".","").replace(",", "."); var btc_euro = (this.config.wallet[0] * cPrice_btc || 0)//.toFixed(2); var cPrice_eth = apiResult[1].price.replace("€", ""); var cPrice_eth = cPrice_eth.replace(".","").replace(",", "."); var eth_euro = (this.config.wallet[1] * cPrice_eth || 0)//.toFixed(2); var gesamt = (btc_euro + eth_euro).toFixed(2); var euroWrapper = document.createElement('td'); euroWrapper.className = "totalpreis"; euroWrapper.style.fontSize = 'medium'; euroWrapper.innerHTML = 'Total: ' + gesamt + '€'; total_euroWrapper.appendChild(euroWrapper); }
  • Javascript Hausverbrauch berechnen und anzeigen

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    823 Aufrufe
    T
    @paul53 Oh man ... sorry ... habs bei einem geändert und bei diesem hier noch nicht ... VIELEN DANK!!!
  • Script.js - undefined

    7
    0 Stimmen
    7 Beiträge
    634 Aufrufe
    R
    Danke euch beiden, das war der Schlüssel, und natürlich ein klassischer Namensfehler( ich werde heute noch Asche auf mein haupt tun). Klar kommt da sum(val) hin!!!! Also wieder was gelernt und nicht nur Sport gekuckt. Dann kann ich ja jetzt meine Solartabellen über die Monate und Jahre aufbauen. Gruß Reinald
  • Anfänger: const vs var; übergreifend möglich [solved]

    Verschoben javascript
    6
    1
    0 Stimmen
    6 Beiträge
    762 Aufrufe
    T
    @paul53 sagte in Anfänger: const vs var; übergreifend möglich [solved]: @ticaki sagte: dass die Deklaration nicht beim ersten Aufruf erfolgen muß: Das gilt nur für var, nicht aber für const/let. Und wieder was gelernt.
  • Datenpunkte aus enum löschen und hinzufügen

    3
    0 Stimmen
    3 Beiträge
    320 Aufrufe
    Alexander PeterA
    @paul53 danke! funktioniert perfekt
  • python script starten und wieder stoppen

    15
    0 Stimmen
    15 Beiträge
    3k Aufrufe
    I
    So, nach etwas längerem Rumprobieren habe ich jetzt eine Lösung gefunden, die bisher zu funktionieren scheint. So ganz gefällt mir das nicht, dass ich auf die child_proc.pid immer 1 draufaddieren muss, aber besser bekomme ich es jetzt erstmal nicht hin: // Python-Skript auf Systemebene ausführen const child_proc = exec("python3 Skriptpfad.py", function(err, stdout, stderr) { if(err) log('Exec-Fehler: '+ stderr, 'error'); }); var child_pid = child_proc.pid + 1; // die PID des Python Skripts ist eine größer als die Shell console.log(`Die PID ist ${child_pid}`); // PID in Konsole ausgeben // Wenn das js-Skript beendet wird, soll das Python-Skript ebenfalls beendet werden (entspricht Strg+C) onStop(() => { exec(`kill -2 ${child_pid}`); // Child Prozess beenden mit Signal -2 (entspricht SIGINT) console.log("Skript beendet!"); }); Vielen Dank allen Helfern!
  • last change timestamp javascript (für node-red)

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    F
    @marc-berg Hi Marc Thank you for quick response. it works this is my code thank you for helping: (two different formats for testing) // --- sensor.neulcT = (new Date(msg.payload[i].lc)).toLocaleTimeString(); sensor.neulc = (new Date(msg.payload[i].lc)).toLocaleString();
  • HomematicIP Gerätenamen auslesen [gelöst]

    6
    1
    0 Stimmen
    6 Beiträge
    515 Aufrufe
    S
    @paul53 ja!!! jetzt hab ichs! super, vielen lieben Dank!
  • Jeden ersten Samstag des Monats

    javascript
    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    amg_666A
    @homoran ich habe ja nicht gesagt, dass der Ausdruck Sinn macht (macht er ja auch nicht wenn ich einmal sage "Tage 1-7" und dann noch sage "jeden Donnerstag"
  • Fehlermeldung 490 in alle Scripten

    7
    0 Stimmen
    7 Beiträge
    918 Aufrufe
    HomoranH
    @sokomoto Ach so! Das Verzeichnis hatte ich natürlich nicht auf dem Schirm.
  • Scheduled Loop with setIntervall (gelöst)

    3
    0 Stimmen
    3 Beiträge
    180 Aufrufe
    U
    @sborg boah.. vielen dank für die schnelle Hilfe. wieder etwas gelernt. Vielen vielen Dank!
  • Ochsner Web2Com Adapter

    Verschoben
    3
    1 Stimmen
    3 Beiträge
    875 Aufrufe
    M
    @jarek Hi, Ja läuft schon bei mir. Habs irgendwie nicht hinbekommen mich am Ochsner Terminal anzumelden mit selbst geschriebenen Script. Jetzt läuft halt auf dem ioBroker Rechner zusätzlich a nginx Server wo besagtes Script aufgerufen wird. Den eigentlich aufruf mache ich dann per ioBroker JS Script zum abrufen aller Daten. Ein 2. kleines Blockly hab ich auch probiert, zum Aussentemperatur lesen und auf den KNX Bus schreiben. Läuft eigentlich sehr stabil... Maxx
  • JS XML Enigma Timers import

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    520 Aufrufe
    R
    @paul53 hast du eine Kaffee Adresse? Den hast du dir verdient Das geht 😊 Danke für die Hilfe

324

Online

33.1k

Benutzende

83.7k

Themen

1.3m

Beiträge