Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.8k Beiträge

NEWS

  • Timeout in JS einbinden

    24
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    ubeckerU
    @oliverio said in Timeout in JS einbinden: allerdings ist das auch nicht die priorität, ist ja eh nur für debugging genau. @oliverio said in Timeout in JS einbinden: Den Ende timestamp in einem datenpunkt merken und dann regelmäßig prüfen, ob er erreicht wird. Bzw. der datenpunkt existiert nur falls der Adapter neu gestartet wird, damit man wieder neu aufsetzen kann. Dann schreibt man nicht so oft in der Datenbank herum hier eigentlich unkritisch. Dann bleibt die Heizung weitere 5 Std. an. ich lass es erst mal beim normalen Teimout und werde das beobachten. danke an alle
  • ELV-SH-GVI per Java ansteuern / Problem

    8
    0 Stimmen
    8 Beiträge
    441 Aufrufe
    G
    @homoran Habe das Problem, aus einem anderen Forum erfahren. Die Steuerung hat den ON_TIME Befehl nicht erhalten, sondern nur den STATE Befehl. Ich vermute auf Grund der hohen dbM Werte ist ein Befehl "liegen" geblieben. Werde jetzt alles auf COMBINED_PARAMETER umstellen, da hier die ON_TIME und die STATE in einem Befehl geschickt werden. Dann dürfte dies theoretisch nicht mehr passieren. Danke für die Hilfe
  • npm @supabase/supabase-js klappt irgendwie nicht.

    2
    0 Stimmen
    2 Beiträge
    185 Aufrufe
    P
    Ok, also als Javascript scheint es zu klappen, nur Typescript will nicht. Naja, dann mach ich in Javascript weiter. Daten kommen schon mal rein.
  • (Erledigt) Datenpunkt setzen: Datentyp klappt nicht

    blockly javascript
    3
    2
    0 Stimmen
    3 Beiträge
    222 Aufrufe
    amg_666A
    @paul53 Danke, funktioniert.
  • Übersetzungen aus dem Netz ziehen

    14
    0 Stimmen
    14 Beiträge
    725 Aufrufe
    Ben1983B
    @mcm1957 OK, wüsste nicht wo das sein sollte :dog: Aber habe mir jetzt einfach von chatGPT ne übersetzung statisch geben lassen und switch case je nach state
  • [gelöst] desc aus Datenpunk auslesen

    11
    0 Stimmen
    11 Beiträge
    577 Aufrufe
    haus-automatisierungH
    @iob69 sagte in [gelöst] desc aus Datenpunk auslesen: Weiss jemand noch, ob man beim Erstellen eines Status diesen gleich in die history aufnehmen kann (programmatisch) und wenn ja, wie man die Parameter (wie geloggt wird) mitgeben kann? Am einfachsten per sendTo an die History-Instanz: https://github.com/ioBroker/ioBroker.history/blob/master/docs/de/README.md#verlaufsprotokollierung-über-javascript Ich würde nicht direkt die custom Optionen auf dem Objekt setzen (ggf. bekommt das die Instanz dann gar nicht mit und würde das Objekt erst nach einem Neustart der Instanz berücksichtigen).
  • Auslesen von Wert eines Objektes

    4
    0 Stimmen
    4 Beiträge
    216 Aufrufe
    snakepitnetworkS
    Ich danke Euch schon mal für die Aufklärung, ich probiere es gleich mal aus und gebe Rückmeldung!
  • Skript zur Visualisierung von Sendungen (Parcel-Adapter)

    55
    6
    2 Stimmen
    55 Beiträge
    6k Aufrufe
    Ro75R
    @matze55 alles was du wissen musst und was gebraucht wird, findest du im ersten Post. Ro75.
  • sento to photo

    5
    0 Stimmen
    5 Beiträge
    422 Aufrufe
    M
    @kellerkind-86 Sehr einfach ist auch die Variante über den Reolink Adapter /*****Bewegung Teich **************************************************** * Mai 2025 * Adapter: Reolink * geä: *************************************************************************/ const idtuer ="hm-rpc.0.LEQ1176852.1.STATE" const idmotion = "reolink.0.sensor.motion" on({ id: idmotion, change: "any" }, function (obj) { if ((obj.state.val == true) && getState(idtuer).val == false) { log("Motion Teich") sendTo("reolink.0", { action: "snap" }, function (result) { const buffer = Buffer.from(result.base64, "base64"); sendTo('telegram.0', { text: buffer, type: "photo", caption: 'Teich' }); }); } });
  • channelName von einem State holen

    6
    0 Stimmen
    6 Beiträge
    410 Aufrufe
    mcm1957M
    @ben1983 nur falls es nicht klar ist Ein state muss sich nicht unterhalb eines devices oder channels befinden.
  • Passwort Schutz javascript

    security
    10
    1 Stimmen
    10 Beiträge
    787 Aufrufe
    mcm1957M
    @peterfido Ja - das kann aber durchaus der Betreuer sein. Es muss nicht der "user" sein. Sollte auch mit fernwartung gehen. Aber das ist m.E. ein anderes Thema. Derzeit ist mir jedenfalls keine Möglichkeit bekannt das Ändern von Scripts / Blocklies zu sperren außer den Zugang zum System (via admin Passwort) zu sperren. Ich galub das beantwortet die urspüngliche Frage.
  • Smartfox Pro XML keine Daten

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    342 Aufrufe
    OliverIOO
    @peterfido ja genau. ich hätte noch dazu schreiben sollen das ich hiermit die TLDs meine. @oliverio sagte in Smartfox Pro XML keine Daten: In Lan haben die meisten Geräte lan oder local Leider erst seit kurzem mit internal standardisiert, aber keine Pflicht https://www.heise.de/news/Ueberfaellig-ICANN-legt-sich-auf-Namen-fuer-interne-Domain-fest-9612253.html
  • Erste Schritte beim Scripten - Einsteigerfrage

    43
    0 Stimmen
    43 Beiträge
    4k Aufrufe
    D
    @doppellhelix Nach langer Sucherei habe ich es gefunden. Ich hatte im Adapter pv.forecast nicht den Haken gesetzt bei: "Werte in W statt kW." :face_palm:
  • regex von "www.esyoil.com"

    28
    1
    0 Stimmen
    28 Beiträge
    2k Aufrufe
    OliverIOO
    @haus-automatisierung Hab ich mir gedacht. Wie gesagt, es verhindert Adapter Updates. Sobald der Adapter maintainer es eingebaut hat ist es dann nicht mehr empfohlen sondern für Nutzer Pflicht um weitere Updates zu erhalten
  • Datentyp eines Boolean Datenpunktes ist String?

    7
    0 Stimmen
    7 Beiträge
    478 Aufrufe
    I
    @paul53 Ja, aber wie ich geschrieben hab, ordnet der wahr/falsch eben 1/0 zu und nicht true/false. Bin gerade am überlegen, ob ich auf vis2 oder webui wechsle. Die Controls in vis fühlen sich ziemlich gebastelt an und sind nicht standardisiert. (jqui-widgets haben alle andere Grössen und Stile, mal kann man jQuery style rausnehmen, mal nicht usw). Aber ich weiss nicht wie aufwendig es ist, meine rund 30 Seiten auf ein anderes gui umzustellen....
  • Skript läuft seit heute nicht mehr

    21
    0 Stimmen
    21 Beiträge
    2k Aufrufe
    M
    // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.) createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'}); createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'}); createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'}); createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'}); // Variablendeklaration und Initialisierung bei Scriptstart var stateTrigger_auto = getState(trigger_auto).val; var stateTrigger_manu = getState(trigger_manu).val; var stateTrigger_more_img = getState(trigger_more_img).val; var stateDisable = getState(disable).val; var request = require('request'); var fs = require('fs'); var timer; // Funktionen // ------------------------------------------- // Funktion Bilder versenden function sendImage (pfad) { setTimeout(function() { sendTo('telegram.4', { text: pfad, // reply_markup: { // keyboard: [ // ['Mehr Bilder', 'Danke'] // ], // resize_keyboard: true, // one_time_keyboard: true // } }); log('Webcam Bild per telegram verschickt.'); }, 2000); } // Funktion Bilder speichern function saveImage() { //get({url: cam_img, encoding: 'binary'}, function (err, response, body) { httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => { writeFile(img_path + 'cam1_1.jpg', body, 'binary', function(err) { if (err) { log('Fehler beim Speichern von Bild 1: ' + err, 'warn'); } else { log('Bild 1 gespeichert.'); sendImage(img_path + 'cam1_1.jpg'); } }); }); if (timer) { clearTimeout(timer); timer = null; } timer = setTimeout(function () { //get({url: cam_img, encoding: 'binary'}, function (err, response, body) { httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => { writeFile(img_path + 'cam1_2.jpg', body, 'binary', function(err) { if (err) { log('Fehler beim Speichern von Bild 2: ' + err, 'warn'); } else { log('Bild 2 gespeichert.'); } }); }); }, interval); timer = setTimeout(function () { // get({url: cam_img, encoding: 'binary'}, function (err, response, body) { httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => { writeFile(img_path + 'cam1_3.jpg', body, 'binary', function(err) { if (err) { log('Fehler beim Speichern von Bild 3: ' + err, 'warn'); } else { log('Bild 3 gespeichert.'); } }); }); }, 2 * interval); } // Trigger für die verschiedenen Aktionen // ------------------------------------------- // trigger_auto on(trigger_auto, function(dp) { stateTrigger_auto = dp.newState.val; stateDisable = getState(disable).val; if (stateTrigger_auto === true && stateDisable === false) { saveImage(); // setState(trigger_auto, false); // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen. } }); // trigger_more_img on(trigger_more_img, function(dp) { stateTrigger_more_img = dp.newState.val; if (stateTrigger_more_img === true) { sendImage(img_path + 'cam1_2.jpg'); sendImage(img_path + 'cam1_3.jpg'); setState(trigger_more_img, false); } }); // trigger_manu on(trigger_manu, function(dp) { stateTrigger_manu = dp.newState.val; if (stateTrigger_manu === true) { saveImage(); setState(trigger_manu, false); } });
  • Alternative für createState (da deprecated)

    9
    0 Stimmen
    9 Beiträge
    684 Aufrufe
    mcm1957M
    @paul53 said in Alternative für createState (da deprecated): Das sollte wegen Abwärtskompatibilität unterbleiben! Major Releases können und werden immer wieder mal Breaking Changes enthalten. Das ist hier aber nicht wirklich das Thema. Der TE sollte nur mal seine Java Script Version 7 (!) aktualisieten. Dass diese mit js-controller 8 ggF inkompatibel werden könnte (betone könnte, derzeit ist mir das nicht bekannt) ist nicht auszuschliessen.
  • [gelöst/verschwunden] Warnung bei setState eines Alias

    javascript
    9
    0 Stimmen
    9 Beiträge
    675 Aufrufe
    SchmakusS
    Leute, was soll ich sagen….. Problem hat sich in Luft aufgelöst. Keine Ahnung. War von heute auf morgen verschwunden. 🤷‍♂️🤷‍♂️
  • Dateien kopieren mit Fehlerauswertung stdout,stderr,error

    7
    1
    0 Stimmen
    7 Beiträge
    461 Aufrufe
    OliverIOO
    @martinsu Oh Mann. Lese meinen ersten Post nochmal gaaaaanz genau durch. Ganz speziell den Part wo ich das Wort sudo erwähnte. Auch lese die Beschreibung von rsync mal genau durch, Du scheinst die Funktionsweise noch nicht ganz verstanden haben. Woher soll dieser Befehl den nun wissen von wo nach wohin er da was kopieren soll? Auch würde ich ihn nicht mit ssh ausführen. Rsync kann selbst ssh und wendet das beim kopieren auch an, wenn du die richtigen Parameter angibst. Alle Befehle des JavaScript Adapters werden mit dem Benutzer iobroker auf dem lokalen Rechner ausgeführt. Ausprobieren kannst du die shellbefehle wenn du auf der Konsole sudo -u iobroker bash Ausführst. Dann bist du mit der Berechtigung iobroker unterwegs und du kannst rsync oder ssh ausprobieren.
  • Hoymiles WR mit 1600W regeln

    3
    0 Stimmen
    3 Beiträge
    274 Aufrufe
    agreenA
    Da du sowieso OPENDTU verwendest, verwende OpenDTU on Battery. Damit kannst du den Wechselrichter nach aktuellem Strombedarf steuern. https://github.com/hoylabs/OpenDTU-OnBattery

394

Online

32.6k

Benutzer

82.1k

Themen

1.3m

Beiträge