Skip to content

JavaScript

2.5k Topics 49.2k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • String (ASCII Zeichen) an USB-Gerät senden

    6
    0 Votes
    6 Posts
    667 Views
    A
    @mickym exec('echo "#ZL 1,1 Test" > /dev/ttyACM0'); SUPER !!! PERFEKT !!! Funktioniert tadellos..., nochmal DANKE dafür. Nur zum Verständnis, muss ich zwingend über "exec('echo "IRGENDWAS" > /dev/ttyACM0')" arbeiten? Geht da nichts über 'usb' ? Schönen Gruß ATARI (Peter)
  • Bits to Word / Word to Bits

    6
    0 Votes
    6 Posts
    657 Views
    paul53P
    @kev-0 sagte: Anregungen und Verbesserungen gerne gewünscht. Die vielen Konstanten benötigt man nicht. Ich verwende 3 globale Funktionen für Bitoperationen: function checkBit(val, bit) { return !!(val >> bit & 1); } function setBit(val, bit) { return val | (1 << bit); } function resetBit(val, bit) { return val & ~(1 << bit); } Das Objekt für die Zuordnung von Bit-Position zu Datenpunkt-IDs könnte so aussehen: const bits = { '0_userdata.0.Test.MyBool': 0, '0_userdata.0.Test.MyBool2': 2 };
  • Alexa Einkaufsliste löschen

    1
    0 Votes
    1 Posts
    155 Views
    No one has replied
  • getIdByName gibt nach Update Dubletten zurück

    8
    0 Votes
    8 Posts
    631 Views
    paul53P
    @watakan sagte: kann man dem näher auf den Grund gehen? Mit "top" und dann mit "Shift m" (großes M) nach RAM-Verbrauch sortieren. Tritt der Effekt nach Neustart der Javascript-Instanz weiterhin auf? Falls ja, auch nach ioBroker Neustart?
  • Abfallkalender Farbe ändern

    9
    0 Votes
    9 Posts
    740 Views
    T
    @australien Wenn was fehlt kannst du auf Github mir was hinterlassen, ich sehe es mir dann an.
  • schedule zu unterschiedlichen Zeiten

    6
    0 Votes
    6 Posts
    551 Views
    Thomas BraunT
    @fenriswolf sagte in schedule zu unterschiedlichen Zeiten: nun würde ich das eine Script gerne jede Stunde um halb laufen lassen und das andere Script zu jeder vollen Stunde. Zu den Zeiten tummeln sich auch noch andere auf den Servern. Nimm für sowas 'krumme' Uhrzeiten her.
  • [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

    2k
    12 Votes
    2k Posts
    599k Views
    T
    https://forum.iobroker.net/topic/68595/test-adapter-weather-warnings
  • ExtendetObject is not allowed to use it

    3
    0 Votes
    3 Posts
    461 Views
    H
    @paul53 Danke das war es. Vielen Dank!
  • JSON String mit Punkt im Objektnamen

    5
    0 Votes
    5 Posts
    252 Views
    Duffy82D
    @paul53 Perfekt!! jetzt läufts. Danke vielmals!
  • Host + Port auf Erreichbarkeit prüfen

    12
    0 Votes
    12 Posts
    664 Views
    CodierknechtC
    @ticaki sagte in Host + Port auf Erreichbarkeit prüfen: ist für mich normal das man darauf auch awaiten muss Das ist wohl der entscheidende Unterschied zwischen Windows und Node/JS ;-)
  • Frage zu Jsonata

    5
    0 Votes
    5 Posts
    494 Views
    T
    @oliverio Danke - keine Ahnung wieso ich das nicht schon im ersten Lesedurchlauf verstanden habe. War wohl zu fixiert auf Arrays. $lookup({'minor':1, 'moderate':2, 'severe':3, 'extreme':4},$lowercase(properties.SEVERITY))
  • WASM-Binary Aufruf friert Javascript-Instanz ein

    1
    0 Votes
    1 Posts
    184 Views
    No one has replied
  • Nur Datenpunkte mit bestimmtem Wert selektieren

    3
    0 Votes
    3 Posts
    276 Views
    C
    @paul53 Danke für die schnelle Rückmeldung und den Code. Was ich eigentlich will ist, alle Geräte die nicht auf "MANUAL" stehen auf "MANUAL" umzuschalten. Ich möchte jedoch gerne ein 10sek delay haben. Dafür hatte ich ursprünglich dieses Script: const devices = $('hmip.*.groups.*.controlMode'); devices.each(function (id, i){ setTimeout(function() { if(getState(id).val != 'MANUAL') { setState(id, 'MANUAL'); } }, i * 10000); }); Jetzt sind allerdings die meistens meiner Geräte bereits auf MANUAL und nur noch die 1-2 die hinzugekommen sind, seit dem letzten Scriptaufruf, müssen umgestellt werden. Dadurch läuft das Script ewig, weil es bei den ganzen bereits auf MANUAL gestellten auch die 10sek wartet. Wie würdest du das lösen?
  • Grünbeck SC18 Daten mit JS auslesen

    132
    2
    1 Votes
    132 Posts
    24k Views
    PreslP
    Ich bräuchte eure Hilfe - ich kann via IOBroker die Daten nicht auslesen -> wird überall null angezeigt. Mache ich hier etwas falsch? Folgendes sehe ich im Log: [image: 1694676032471-f433fd7e-1560-41f3-9606-af6af455b549-image.png] [image: 1694676059700-c66f9518-77ca-438a-a7a6-be6c8c832aba-image-resized.png]
  • [gelöst]: signal-rest-api: Nachricht mit Bild senden

    7
    0 Votes
    7 Posts
    382 Views
    CodierknechtC
    @haus-automatisierung By the way: Was macht Dein Speicher-Projekt?
  • DSB - Abrage

    Moved javascript
    36
    0 Votes
    36 Posts
    5k Views
    Holger76H
    Da mein Kind nun auch diese sehr unübersichtliche App nutzen muss , war ich auf der Suche, ob sich da was für das VIS findet. Leider muss ich feststellen, dass das o.g. Script nicht mehr läuft. Vielleicht findet sich ja doch jemand, der es an den aktuellen Stand anpasst ?!
  • [Vorlage] Screenshots Überwachungskamera Telegramm

    1
    0 Votes
    1 Posts
    232 Views
    No one has replied
  • Muss ich hier updaten?

    3
    1 Votes
    3 Posts
    372 Views
    KusselinK
    @thomas-braun Danke Dir
  • Loop Problem

    4
    0 Votes
    4 Posts
    355 Views
    paul53P
    @smartin sagte: Und wie werden da gültigen Datenpunkt-IDs draus? Den Objektpfad hinzufügen. const path = 'adapter.0.folder.'; // anpassen! function HiLo() { for (let i = 1; i <= 21; i++) { const kursId = path + `Kurs${i}`; // Namen Kurs1 - Kurs21 vergeben const lowId = path + `Low${i}`; // Namen Low1 - Low21 vergeben const highId = path + `High${i}`; // Namen High1 - High21 vergeben Wenn die Namen eindeutig im gesamten ioBroker sind, kann auch getIdByName(name) verwendet werden. const kursId = getIdByName(`Kurs${i}`); // Namen Kurs1 - Kurs21 vergeben const lowId = getIdByName(`Low${i}`); // Namen Low1 - Low21 vergeben const highId = getIdByName(`High${i}`); // Namen High1 - High21 vergeben
  • [gelöst] JS direkt im CSS hqwidgets Window and Shutter

    12
    2
    0 Votes
    12 Posts
    799 Views
    OliverIOO
    @digitalmechanik nein, auch so funktioniert es nicht. wenn du inhalte von datenpunkten in einer formel berücksichtigen willst, dann musst du diese in variable laden. genau so wie du es mit hm-rpc... nach wert gemacht hast. du darfst hier auch mehrere anweisungen mit strichpunkt getrennt aneinander reihen. aber für deine konkrete lösung würde ich das nicht machen, da es besser ist in die widgets möglichst nur einfache logik einzubauen, da es sonst nicht mehr lesbar ist, daher hier ein kleines experiment kopier dir die folgenden css anweisungen in den css reiter in vis auf der rechten seite. achte darauf, das im css reiter projekt ausgewählt ist und du die evtl vorhandene inhalte beim kopieren nicht löschst .red { background-image: url("https://upload.wikimedia.org/wikipedia/commons/7/7f/Red-ff0000.png"); } .yellow { background-image: url("https://upload.wikimedia.org/wikipedia/commons/a/a1/Pure_yellow_screen.png"); } .green { background-image: url("https://upload.wikimedia.org/wikipedia/commons/d/d5/Green_Gradient.png"); } lege einen neuen Datenpunkt an vom typ numerisch und trage dort 1 ein lege ein neues html widget an rechts bei html trägst du mal test ein (ist nur, das wir das widget auch wieder finden als größe trägst du bei width und heigth 64px ein im Abschnitt "general" der widget einstellungen bei CSS Class trägst du das folgende aus dem kasten ein. den datenpunktnamen 0_userdata.0.test.test_11 ersetzt du durch deinen frisch angelegten von oben. {wert:0_userdata.0.test.test_11;wert==0?"red":wert==1?"yellow":wert==2?"green":""} dann gehst du in vis in den runtime modus und das widget müsste gelb sein wenn du den datenpunkt änderst, dann müsste es automatisch die jeweilig andere farbe annehmen. (ich habe bei den bildern welche rausgesucht die einfach den farben entsprechen. du kannst natürlcih auch x beliebige bilder nehmen. auch welche, die in vis gespeichert sind oder du dort hochgeladen hast. an diesem beispiel siehst du, das wir die komplizierten dinge (urls in css anweisungen) dort haben, wo sie hingehören-> css anweisungen und per logik nur noch den klassenname ändern. die css klassennamen kannst du nennen wie du willst, musst die halt dann auch in der formel anpassen.

298

Online

32.8k

Users

82.7k

Topics

1.3m

Posts