Skip to content

JavaScript

2.5k Topics 49.2k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • (gelöst) mehrere Datenpunkte mit einem Befehl schalten

    javascript
    7
    0 Votes
    7 Posts
    434 Views
    C
    @percy Danke!!! Genau danach habe ich gesucht. Herzlichen Dank
  • [gelöst] Script stündlich ausgeführt, aber nicht um 0 Uhr

    12
    0 Votes
    12 Posts
    1k Views
    G
    Hallo zusammen Mit der Cron-Syntax wird das Script auch um 0 Uhr ausgeführt. Nun wäre es noch interessant zu wissen, warum die Pattern-Syntax nicht um 0 Uhr ausgeführt wird. Aber für mich hat sich das Thema erledigt und kann geschlossen werden.
  • [Vorlage] LightControl brightness

    3
    0 Votes
    3 Posts
    143 Views
    ?
    @arteck sry, es sollte in die [Vorlage] lightcontrol.
  • objekt-Daten per Script ändern

    5
    0 Votes
    5 Posts
    393 Views
    H
    Hallo paul53, vielen Dank für die Ergänzung. Ich musste allerdings den Wert bei mir auf 35000 hochsetzten ,da bei mir auf meinem PI 3 die JS-Instance mit als Erstes startet und die Shelly fast zum Schluss. Jetzt war der Wert auf jeden Fall nach dem Reboot automatisch gesetzt. Muss dann wahrscheinlich jeder Benutzer bei sich selber den passenden Wert ermitteln. Vielen Dank und einen schönen Sonntag. VG Hasso
  • This topic is deleted!

    2
    0 Votes
    2 Posts
    22 Views
  • Datenpunktwert per JSON als HTTP Post versenden

    6
    0 Votes
    6 Posts
    232 Views
    mickymM
    @dominic-haußmann Wenn Du halt mehrere Datenpuntkte überwachen willst musst halt quasi ein regex nehmen oder einzelne Datenpunkte und die events als globales Array definieren. Hier mal das Bespiel mit 2 Datenpunkten. const request = require('axios'); var events = []; // Überwachen des Datenpunktes oder Wildcards // on({id: /0_userdata.0.*/, change: 'any'}, function (obj) { on({id: '0_userdata.0.doorStatus', change: 'any'}, sendObj); on({id: '0_userdata.0.target', change: 'any'}, sendObj); // Versenden des JSON Strings function sendObj(obj){ var state = getState(obj.id) var date = new Date(state.ts); var event = {"timestamp": date}; event[obj.id] =state.val; events.push(event); var data = JSON.stringify([{"tags": {"host":"iobroker"}, "events" : events}]); var url='$YOUR_HUMIO_URL/api/v1/ingest/humio-structured'; //var data = '[{"tags": {"host":"iobroler"}, "events" : [{"timestamp": "2021-06-06T12:00:00+02:00", "attributes": {"key1":"value1"}}]}]'; var config = { headers: { "Content-Type": "application/json", "Authorization": "Bearer $INGEST_TOKEN" } } request.post(url,data,config); } Das Ergebnis ist dann halt ein immer weiter wachsendes Array mit jeder Aktualisierung als Event: {"tags":{"host":"iobroker"},"events":[{"timestamp":"2022-01-22T16:20:46.811Z","0_userdata.0.target":5},{"timestamp":"2022-01-22T16:20:52.947Z","0_userdata.0.doorStatus":"40 %"},{"timestamp":"2022-01-22T16:22:44.935Z","0_userdata.0.doorStatus":"12.5 %"}]} [image: 1642868639968-a4e60f86-69d2-492c-b9a0-8730f0cddcc3-image.png] EDIT: Die ID des Selectors über eine Variable zu setzen geht natürlich auch. Du musst halt bedenken, dass Du jedes Mal einen neuen Selector generierst. Also müsstest Du mit unsubscribe den erst wieder löschen Mit Wildcards habe ich es auch getestet, aber da ist mein Array im Nu sehr lang. ;). Aber ich bin kein JS Fachmann, arbeite lieber mit NR - aber für weitere Fragen ist Dir @paul53 sicher behilflich.
  • axios Abfragen funktioniet nicht mehr

    4
    0 Votes
    4 Posts
    702 Views
    cashC
    @alcalzone wie peinlich. Ja damit geht es wieder. Vorher hat baseURL aber auch funktioniert.
  • Datenpunkte im Python-Skript lesen/ändern

    3
    0 Votes
    3 Posts
    644 Views
    H
    Danke schön für den Tipp. :)
  • Gelöst! Elemente nach Ereignis am Anfang eines Array [...]

    4
    0 Votes
    4 Posts
    546 Views
    ?
    @paul53 said in Elemente nach Ereignis am Anfang eines Array schreiben: Das gehört nicht in die Funktion count_doors(), sondern in den Trigger. Das war es danke. Manchmal denkt man einfach zu kompliziert. Ich danke dir und @liv-in-sky für euer Input! :)
  • Wake on Lan auf zweite Netzwerkkarte

    8
    0 Votes
    8 Posts
    397 Views
    B
    Hallo zusammen, ich bin jetzt endlich zum weitertesten gekommen. Also es liegt definitiv an den Berechtigungen in der sudoers-Datei. Ich habe mir mal einen test-User angelegt und für den einen Eintrag in meiner custom_iobroker-Datei gemacht. Der darf dann auch den etherwake-Befehl ohne Passwortabfrage machen. Für den iobroker-Benutzer habe ich das mit: sudo -u iobroker sudo /sbin/etherwake -i eth1 xx:xx:xx:1f:12:ab getestet und dort wurde das Passwort des iobroker-users abgefragt. Ich habe dann den gleichen Eintrag, den ich auch in meiner custom_iobroker-Datei gemacht habe, direkt in der /etc/sudoers.d/iobroker-Datei gemacht und es wird kein Passwort mehr abgefragt. Das Script funktioniert dann. Hat einer eine Erklärung dafür warum es nicht mit der custom_iobroker-Datei funktioniert? Ich habe sogar mal testweise ALL ALL=(ALL) NOPASSWD: /sbin/etherwake eingetragen gehabt. Für meinen test-User hat das auch funktioniert. Für den iobroker-User kam weiterhin eine Passwortabfrage. Ich bin verwirrt. Aber zur Not lebe ich damit, dass ich die /etc/sudoers.d/iobroker-Datei anpassen muss. Grüße und noch einen schönen Sonntag :-)
  • IP Devices im Netzwerk - HTML Tabelle, Unbekannte Geräte?

    4
    0 Votes
    4 Posts
    417 Views
    HomoranH
    @assid sagte in IP Devices im Netzwerk - HTML Tabelle, Unbekannte Geräte?: Also dann nicht wirklich erkennbar, um was für ein Gerät es sich handelt. Name, MAC-Adresse wäre schon gut. (Vendor der MAC-Adresse) ich weiß nicht ob @liv-in-sky da noch was eingebaut hat. Wir hatten an so etwas gearbeitet. Ich nutze noch ein uralte Version und da wird der Name wenn vorhanden schon angezeigt. Ich habe aber inzwischen alle Devices im Skript neu benannt, auch damit sie vernünftig sortiert werden: [image: 1642182566341-ip_scan.png] Ein testweise installierter RasPi wird mit seinem hostnamen angezeigt
  • fs.watch läuft weiter

    3
    0 Votes
    3 Posts
    316 Views
    D
    @alcalzone Super, funktioniert und wieder was gelernt! Dankeschön!!!
  • Integrieren in javascript

    12
    0 Votes
    12 Posts
    656 Views
    HomoranH
    @sgtpinback sagte in Integrieren in javascript: wenn ich nach einem Jahr feststelle, die Form der Anzeige gefällt mir nicht Ich lese hier schon länger oberflächlich mit. Einerseits glaube ich zu verstehen was du willst und kann auch den Wunsch nachvollziehen. Andererseits habe ich mit dieser Idee so meine Probleme. Historisierte Daten sind für mich ein Audit-Trail, da kann ich nicht nach einem Jahr sagen: das gefällt mir aber nicht. Zum Weiteren fällt mir auch gar nicht ein worum es da gehen sollte. Die Temperatur von Heiligabend 2019 um 13:42 ist gegeben, was willst du da ändern? Ebenso die Jahressumme der Regenmenge oder des Stromverbrauchs.
  • Parameter Übergabe beim Aufruf von Datenpunkten

    6
    0 Votes
    6 Posts
    288 Views
    arteckA
    @loxdan dann halt andersrum http://[MEINE-IP]:8087/set/javascript.0.scriptEnabled.common.Alexa_Text2Speak.TTS-Alexa-Garage-Test?value=1&tts=Test&prettyPrint hast du doch schon javascript.0.scriptEnabled.common.Alexa_Text2Speak.TTS-Alexa-Garage-Test dann musst du auf änderung dieser variable reagieren und diese auswerten.. du kannst abe rnicht mehrere parameter übergeben.. wenn dann so.. javascript.0.scriptEnabled.common.Alexa_Text2Speak.TTS-Alexa-Garage-Test?value=1Test&prettyPrint und dann dir die Variable zerlegen als das 1 raus holen und Test
  • [Gelöst]Bild von Webcam speichern

    javascript
    13
    0 Votes
    13 Posts
    1k Views
    amg_666A
    @glasfaser DANKE !!!!
  • [gelöst] Script Datenpunkte anlegen inkl. Logging

    9
    0 Votes
    9 Posts
    897 Views
    S
    @paul53 Top!, hat alles bestens funktioniert :)
  • Pushover Textgestaltung

    2
    0 Votes
    2 Posts
    264 Views
    cashC
    @stefanh-0 mir ist keine Möglichkeit bekannt, das zu realisieren. Meines Wissens kannst Du Text farbig machen, bold, italic usw. aber viel mehr geht nicht.
  • [Script] Kamera Alarm ohne Synology oder motion nutzen.

    3
    1 Votes
    3 Posts
    451 Views
    jmeister79J
    @jmeister79 ursprungspost angepasst und script stark optimiert
  • Fehlermeldung : Cannot redeclare block-scoped variable

    3
    0 Votes
    3 Posts
    399 Views
    SokomotoS
    @asgothian sagte in Fehlermeldung : Cannot redeclare block-scoped variable: @sokomoto Die Frage beantwortet dieser Text: *var and let are both used for variable .... Nicht ganz, da der Fehler nur auftritt , sobald man zwischen den Scripten Blockly und JS im Editor umschaltet. Ich interpretiere das ganze jetzt so, im Iobrocker mit der alten Variante var die Variablen deklarieren, das macht weniger Stress. :-)) tschuess peter
  • JS Blockly startet nicht....

    15
    0 Votes
    15 Posts
    853 Views
    Thomas BraunT
    @crunchip which nodejs node npm && nodejs -v && node -v && npm -v && whoami && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs Jetzt passt es aber. :-D Muss mich mal wieder mehr um die Grundfertigkeiten in der bash kümmern.

526

Online

32.8k

Users

82.7k

Topics

1.3m

Posts