Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 49.1k Posts

NEWS

  • Kamera Steuerung (PTZ) mit Bewegungsmelder htp

    45
    0 Votes
    45 Posts
    4k Views
    K
    @paul53 ja logisch Sorry mein Fehler. Jetzt passt es. Noch mal vielen vielen DANK...….
  • Script aus altem Tread benutzen

    5
    0 Votes
    5 Posts
    470 Views
    T
    @Baerny Ich suche es dir gerne heute raus. Etwas Geduld bitten
  • [Solved] Globale Scripts referenzierten

    4
    0 Votes
    4 Posts
    348 Views
    T
    @paul53 OK...mit this geht es aber. Danke.
  • Nutzung Hue dimmer Switch

    1
    0 Votes
    1 Posts
    171 Views
    No one has replied
  • USB Sendkey auslesen im Script

    communication javascript
    3
    0 Votes
    3 Posts
    801 Views
    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 Votes
    15 Posts
    2k Views
    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 Votes
    8 Posts
    540 Views
    J
    danke jetzt klappt alles wieder bei mir.
  • Frage Javascript "on-id-change"

    javascript
    45
    0 Votes
    45 Posts
    5k Views
    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 Votes
    2 Posts
    340 Views
    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 Votes
    4 Posts
    472 Views
    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 Votes
    2 Posts
    171 Views
    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 Votes
    1 Posts
    256 Views
    No one has replied
  • Fehlende Scripte....

    1
    0 Votes
    1 Posts
    218 Views
    No one has replied
  • toLocaleTimeString() gibt falsche Werte aus

    6
    0 Votes
    6 Posts
    675 Views
    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 Votes
    2 Posts
    305 Views
    P
    Hat keiner von den Entwicklern eine Idee?? :cry: Gruß
  • SetTimeout ohne Funktion

    3
    0 Votes
    3 Posts
    625 Views
    0
    sehe gerade das es hierzu schon ein issue auf GIT gibt.
  • manuelle/automatische Rollosteuerung

    Moved javascript
    20
    3
    0 Votes
    20 Posts
    1k Views
    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 Votes
    3 Posts
    295 Views
    ?
    @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 Votes
    1 Posts
    155 Views
    No one has replied
  • 0 Votes
    3 Posts
    250 Views
    F
    @paul53 sehr fein, vielen Dank. Sollte eventuell im "Original Post" auch geändert werden ;-)

324

Online

32.7k

Users

82.5k

Topics

1.3m

Posts