Skip to content

JavaScript

2.5k Topics 49.9k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

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

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

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

    12
    0 Votes
    12 Posts
    874 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
    607 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
    222 Views
    No one has replied
  • Nur Datenpunkte mit bestimmtem Wert selektieren

    3
    0 Votes
    3 Posts
    353 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
    29k 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
    504 Views
    CodierknechtC
    @haus-automatisierung By the way: Was macht Dein Speicher-Projekt?
  • DSB - Abrage

    Moved javascript
    36
    0 Votes
    36 Posts
    6k 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
    266 Views
    No one has replied
  • Muss ich hier updaten?

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

    4
    0 Votes
    4 Posts
    442 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
    1k 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.
  • Wie kann ich ein Script mit scheduler starten

    3
    0 Votes
    3 Posts
    314 Views
    M
    @oliverio said in Wie kann ich ein Script mit scheduler starten: schedule('*/2 * * * *',()=>{ Funktioniert! Vielen Dank
  • Entwicklungsumgebung für Script Entwicklung?

    19
    0 Votes
    19 Posts
    3k Views
    liv-in-skyL
    @ticaki manchmal ist es ganz gut anstatt im forum direkt in google mit dem ersten wort iobroker zu suchen z.b. "iobroker entwicklungsumgebung" EDIT: ich weiß nicht, ob es bei diesem thema so ist
  • Date an schedule übergeben

    24
    0 Votes
    24 Posts
    1k Views
    G
    @oliverio Danke für deine Hilfe. Wie weiter oben schon geschrieben, habe ich es bereits (genau so) hinbekommen.... Problem war auch eher die falsche Verwendung es callbacks. Grüße Giraffe
  • [gelöst] Objektdaten ändern

    3
    0 Votes
    3 Posts
    367 Views
    Ro75R
    @paul53 sagte in Objektdaten ändern: extendObject(id, {common: {type: 'string'}}); Danke @paul53 , das war/ist ja einfach. Ro75.
  • JavaScript für Sayit Adapter

    7
    0 Votes
    7 Posts
    604 Views
    paul53P
    @maxtor62 sagte: Kommt auch immer "Das Küchenfenster ist zu" Hast recht. Setze eine Klammer: const idSayIt = "sayit.0.tts.text"; const idGarage = "0_userdata.0.Haus.Garagentor"; on(idGarage, function (dp) { // 0 = "offen", 1 = "zu" setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + (dp.state.val ? "zu" : "offen")); });
  • JSON Tabelle in Intervallen befüllen

    3
    0 Votes
    3 Posts
    324 Views
    F
    @hansanaut schau dir mal den Adapter statistics an. Der macht das (die Durchschnittswerte für die Kalenderwoche, Monat und Jahr...) automatisch.

343

Online

33.1k

Users

83.7k

Topics

1.3m

Posts