Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.3k Beiträge

NEWS

  • Kamera Steuerung (PTZ) mit Bewegungsmelder htp

    45
    0 Stimmen
    45 Beiträge
    3k Aufrufe
    K
    @paul53 ja logisch Sorry mein Fehler. Jetzt passt es. Noch mal vielen vielen DANK...….
  • Script aus altem Tread benutzen

    5
    0 Stimmen
    5 Beiträge
    408 Aufrufe
    T
    @Baerny Ich suche es dir gerne heute raus. Etwas Geduld bitten
  • [Solved] Globale Scripts referenzierten

    4
    0 Stimmen
    4 Beiträge
    289 Aufrufe
    T
    @paul53 OK...mit this geht es aber. Danke.
  • Nutzung Hue dimmer Switch

    1
    0 Stimmen
    1 Beiträge
    158 Aufrufe
    Niemand hat geantwortet
  • USB Sendkey auslesen im Script

    communication javascript
    3
    0 Stimmen
    3 Beiträge
    750 Aufrufe
    P
    Also, serial port klingt schon mal gut. Bisher hatte ich folgende Lösung, aber die ist umständlich. Es gibt das Node-Hid npm, dieses wir auch mitinstalliert mit dem Community-HID-Adapter. Der alte von SOEF scheint nicht mehr zu funktionieren, ist aber noch in der Repo. Könnte man bei Gelegenheit mal ändern. Also, der HID installiert Node-HID mit. Jetzt gibt es die npm Module Node-HID-Stream sowie usb-barcode-transform. Die hochen auf der Vendor ID und wandeln den Buffer dann in Integer. Aber die Lösung ist nicht so dolle, da der User iobroker erst noch Rechte braucht. Also alles sehr umständlich. Serial Port klingt da einfacher und besser. Hast du zufällig ein Beispiel parat? Per Sendkey kommen HEX blöcke rein, die wandeln wir jetzt auch schon in Integer um mit einer Schleife, wollte das aber mal mit dem Readbuffer machen. Scheint wohl so ne Funktion zu sein von Node. sonst, ich könnte dir auch 2 Geräte mal zukommen lassen, wenn du gerade Langeweile hast :-) Könnte mir vorstellen, dass es für einige User interessant sein könnte, da die über USB angeschlossen werden können und kosten nur 6€. Die anderen Varianten kenne ich nur mit Wemos und mqtt z.B. , Aber das auch wieder frickellei. Gruß und Danke Update: So es gibt anscheinend noch einen einfacheren Weg, der auch unter Node 10 usw. läuft. Da der RFID als HID erkannt wird, geht Serialport soweit auch nicht, zumindest was ich gelesen habe. Die Vollständige Anleitung mache ich morgen fertig. Auf die schnelle: usb-barcode-scanner im Javascript mit eintragen, wird soweit auch alles mitinstalliert auch Node-HID. udev Regel anlegen, da der User Iobroker keine Rechte hat, das HID Device zu lesen. Es ist ein Hidraw Devices. sudo nano /etc/udev/rules.d/90-hidraw-permission.rules KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev" User iobroker mit in die Gruppe plugdev. sudo usermod -aG plugdev iobroker Script für USB Device erkennen var hid = require('node-hid'); console.log(JSON.stringify(hid.devices())); Script für ID der RFIDReader auszulesen. let UsbScanner = require('usb-barcode-scanner').UsbScanner; let scanner = new UsbScanner({ vendorId: 65535, productId: 53 }); scanner.on('data', (data) => { console.log(decimalToHex(data)); }); scanner.startScanning(); function decimalToHex(d, padding) { var hex = Number(d).toString(16); padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding; while (hex.length < padding) { hex = "0" + hex; } var s = ""; var i = hex.length; while (i>0) { s += hex.substring(i-2,i); i=i-2; } return s; } Gruß
  • [gelöst] Datum mit Uhrzeit in Unixzeit umwandeln

    15
    0 Stimmen
    15 Beiträge
    2k Aufrufe
    O
    @paul53 said in Datum mit Uhrzeit in Unixzeit umwandeln: on(idDatenpunkt, function(dp) { // triggert bei Wertänderung var zeit = dp.state.val; // Abfrage }); Vielen Dank für deine Hilfe!!
  • DWD EXP

    8
    0 Stimmen
    8 Beiträge
    465 Aufrufe
    J
    danke jetzt klappt alles wieder bei mir.
  • Frage Javascript "on-id-change"

    javascript
    45
    0 Stimmen
    45 Beiträge
    5k Aufrufe
    S
    so, es hat zwar etwas gedauert aber ich habe es hinbekommen. var Rolllaeden = ["hm-rpc.0.WWWW.1.WORKING"/*Terrassentür links.WORKING*/, "hm-rpc.0.XXXX.1.WORKING"/*Terrassentür rechts.WORKING*/, "hm-rpc.0.YYYY.1.WORKING"/*Festverglasung links.WORKING*/, "hm-rpc.0.ZZZZ.1.WORKING"/*Festverglasung rechts.WORKING*/]; var start_position; var end_position; on(Rolllaeden, function(dp) { if(dp.state.val) { start_position = getState((dp.id).replace('WORKING', 'LEVEL')).val; } if(!dp.state.val) { end_position = getState((dp.id).replace('WORKING', 'LEVEL')).val; if(end_position > start_position) sendTo("telegram.0", "send", { text: dp.common.name.replace(".WORKING", "") + " geöffnet auf: " + end_position + "%" }); if(end_position < start_position) sendTo("telegram.0", "send", { text: dp.common.name.replace(".WORKING", "") + " geschlossen auf: " + (100 - end_position) + "%" }); } }); Danke für eure hilfe... :-)
  • [Problem] Falsche Daten in der SQL Datenbank

    2
    2
    0 Stimmen
    2 Beiträge
    290 Aufrufe
    RöstkartoffelR
    Ich habe mich mal vollen Mutes an die Maria5-Datenbank rangetraut, die entsprechenden Daten gelöscht und nun ist wieder alles schick. Bleibt nur noch die Frage von oben: wie kann ich so ein Verhalten in Zukunft vermeiden?
  • [gelöst]Fehler nach Update Javascript-Adapter

    4
    0 Stimmen
    4 Beiträge
    394 Aufrufe
    R
    Habe gerade das Update von Github gemacht, auch den Upload hinterher, der Fehler ist leider geblieben! Danach habe ich noch den js-controller hochgezogen auf 1.5.12 (hatte noch 1.5.8) dann ging es wieder ohne Fehler. Danke! Enrico
  • Mehrfach Aufruf von Topic

    2
    0 Stimmen
    2 Beiträge
    149 Aufrufe
    paul53P
    @Psens Vorschlag: var strRawRequest = "telegram.0.communicate.requestRaw"; var timer = null; on({id:strRawRequest, change: "any"},function(obj){ if(!timer) { timer = setTimeout(function() { log("test"); timer = null; }, 100); } });
  • [Frage] Email Script erweitern

    1
    0 Stimmen
    1 Beiträge
    231 Aufrufe
    Niemand hat geantwortet
  • Fehlende Scripte....

    1
    0 Stimmen
    1 Beiträge
    195 Aufrufe
    Niemand hat geantwortet
  • toLocaleTimeString() gibt falsche Werte aus

    6
    0 Stimmen
    6 Beiträge
    598 Aufrufe
    paul53P
    @0018 sagte: funktioniert bei mir auch nicht mehr richtig. Nimm die JS-Adapter-Version von Github oder ändere eine Zeile.
  • SMA Adapter Node 10, kein "readUIntBE" length 8 Bytes

    javascript communication
    2
    0 Stimmen
    2 Beiträge
    267 Aufrufe
    P
    Hat keiner von den Entwicklern eine Idee?? :cry: Gruß
  • SetTimeout ohne Funktion

    3
    0 Stimmen
    3 Beiträge
    579 Aufrufe
    0
    sehe gerade das es hierzu schon ein issue auf GIT gibt.
  • manuelle/automatische Rollosteuerung

    Verschoben javascript
    20
    3
    0 Stimmen
    20 Beiträge
    1k Aufrufe
    M
    @mguenther sagte in [gelöst]manuelle/automatische Rollosteuerung: nachdem HIER der entscheidene Hinweis kam, Skript zum Setzen des Datenpunkts Rollo_manuell komplett umgestellt: const idManu = 'javascript.0.Kueche.Rollo_manuell'/*Rollo manuell*/; const idRollo = 'hm-rpc.3.MEQ0078539.3.LEVEL'/*Rollo EG04 Küche:3 LEVEL*/; const idTaste1='hm-rpc.3.MEQ0078539.1.PRESS_SHORT'/*Rollo EG04 Küche:1 PRESS SHORT*/; const idTaste2='hm-rpc.3.MEQ0078539.1.PRESS_LONG'/*Rollo EG04 Küche:1 PRESS LONG*/ const idTaste3='hm-rpc.3.MEQ0078539.2.PRESS_SHORT'/*Rollo EG04 Küche:2 PRESS SHORT*/; const idTaste4='hm-rpc.3.MEQ0078539.2.PRESS_LONG'/*Rollo EG04 Küche:2 PRESS LONG*/ const idLaufzeit ='javascript.0.Rollosteuerung.Zeit_virtuell'/*Zeit virtuell in Stunden*/; const idTaster_virtu = 'javascript.0.Kueche.Rollo_virtueller_Taster'/*Rollo virtueller Taster*/; var timer = null; var taster_virtu = getState(idTaster_virtu).val; var laufzeit = getState(idLaufzeit).val *60*60000; //Laufzeit in Stunden on(idTaster_virtu, function(dp) { taster_virtu = dp.state.val; var manu = false; if(timer) clearTimeout(timer); // Stopp Timer timer = null; if (taster_virtu) { manu = true; timer = setTimeout(function() { timer = null; setState(idManu, false, true); setState(idTaster_virtu, false, true); }, laufzeit); } setState(idManu, manu, true); }); on(idRollo, function(dp) { if(dp.state.val === 0 || dp.state.val == 100) setState(idManu, false, true); }); on({id: idTaste1}, function() { setState(idManu, true, true); }); on({id: idTaste2}, function() { setState(idManu, true, true); }); on({id: idTaste3}, function() { setState(idManu, true, true); }); on({id: idTaste4}, function() { setState(idManu, true, true); }); Danke Paul, wie immer... Hallo Zusammen, irgendwie klappt es leider nicht so ganz. Wenn das Rollo auf 100% geht, wird nicht immer die Variable Rollo_manuell auf false gesetzt - warum, weiß ich nicht, trotz der Zeile: on(idRollo, function(dp) { if(dp.state.val === 0 || dp.state.val == 100) setState(idManu, false, true); }); :( Ich finde den Fehler nicht, es ist halt auch nicht reproduzierbar. Mal taucht dieser Fall auf. Erste Idee wäre jetzt nen Workaround. Frage alle 5 Minuten ab, ob (Rollo_manuell = true), dann prüfe den Rollo-Level. Wenn Wert = 0 oder 100, dann (Rollo_manuell = false) oder? wie mach ich das mit dem Schedule? Zweite Idee wäre ne kurze Verzögerung beim Setzen der Variable Rollo_auto -irgendwie denke ich, dass es da ein Überlagern gibt...
  • Stromverbrauch Skript zurücksetzen?

    javascript
    3
    0 Stimmen
    3 Beiträge
    284 Aufrufe
    ?
    @sigi234 Hab das installiert aber es erscheint nicht in der Instanzen Liste. Nur wenn ich den Adapter anklicke sehe ich das er schon einmal installiert ist. Wenn ich bei Objekte bei einem Zhäler auf den Power Counter auf den Schlüssel klicke erscheint kein Menü oder Fenster für den Adapter. Nur History. Hab es nochmal installiert und nun kam ein Fenster zum konfigurieren. Was muss ich bei Start Values eingeben?
  • LED am I2C Bus blinkt nicht

    1
    0 Stimmen
    1 Beiträge
    139 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Countdown Script zählt nicht bis null (bleibt bei 1 stecken)

    javascript
    3
    0 Stimmen
    3 Beiträge
    234 Aufrufe
    F
    @paul53 sehr fein, vielen Dank. Sollte eventuell im "Original Post" auch geändert werden ;-)

579

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge