Weiter zum Inhalt

JavaScript

2.5k Themen 49.6k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • 0 Stimmen
    6 Beiträge
    924 Aufrufe
    D
    @haiperf Danke dafür, denke das kann ich auch gebrauchen :)
  • Benötige Hilfe bei KlingelScript

    6
    0 Stimmen
    6 Beiträge
    776 Aufrufe
    B
    Danke für die Hilfe !!!! Hatte in einem anderen Script den selben Datenpunkt und dort das kurze Timeout... Nach deaktivieren des anderen Scriptes funktioniert es nun
  • [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang)

    Verschoben
    37
    0 Stimmen
    37 Beiträge
    4k Aufrufe
    BENNI32154B
    @paul53 said in [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang): Mit Alexa habe ich nichts am Hut, bin also der falsche Ansprechpartner. Hmm okay, aber an irgendetwas muss es ja liegen, weil es ja nicht klappt
  • Automatisch COMET DECT auf Temperatur X, wenn draußen die Temperatur sinkt

    1
    0 Stimmen
    1 Beiträge
    195 Aufrufe
    Niemand hat geantwortet
  • Hydrawise Bewässerung JSON in Datenpunkte speichern

    4
    1
    0 Stimmen
    4 Beiträge
    643 Aufrufe
    A
    Hallo paul53, danke für Deine Antwort. Das hatte leider nicht geklappt, sondern brachte auch nur [image: 1556381281991-216b24fd-f7bf-4c9e-88ed-6b158a4be830-grafik.png] Ich hab das jetzt so gelöst (nach etlichem Trial-and-Error): var apiurl = "https://app.hydrawise.com/api/v1/statusschedule.php?api_key=" + apikey + "&#038;tag=hydrawise_all"; function logHydraData() { var request = require('request'); request(apiurl, function (error, response, body) { if (!error && response.statusCode == 200) { var obj = JSON.parse(body); // Objekte in root-Ebene var rkeynames = ["watering_time", "name", "status"]; for (var rkey of rkeynames) { console.log('2:' + rkey + ': ' + obj[rkey]); // bringt nur bei relays.0.name "undefined" } // Nested Objects, unterhalb relays var nkeynames = ["name", "lastwater", "time", "run_seconds", "nicetime"]; for (var i = 0; i < 5; i++) { // Index für Zone (Relays) bilden var nkey = {}; // Var für Objekt var idx = i; for (nkey of nkeynames) { // console.log(idx); console.log(nkey + ': ' + obj.relays[idx][nkey]); } } } }); } logHydraData(); Der Schlüssel lag darin, die Var "nkey" (Zeile 20) als Objekt zu definieren. Viele Grüße, Andreas
  • Javscript mehrere Objekte auslesen und verarbeiten

    javascript
    2
    1
    0 Stimmen
    2 Beiträge
    406 Aufrufe
    paul53P
    @DerT sagte: Gibt es außerdem eine Möglichkeit den Pfad des aktuellen Scriptes auszulesen? Variable name.
  • Erstellen/Setzen Datenpunkt aus JSON in eigener Funktion

    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Daten aus SQL Lite auslesen und Mittelwert errechnen

    javascript
    1
    0 Stimmen
    1 Beiträge
    495 Aufrufe
    Niemand hat geantwortet
  • Umwandlung von TRUE/FALSE auf 1/0

    3
    0 Stimmen
    3 Beiträge
    527 Aufrufe
    paul53P
    @rene3128 Vorschlag: on("wiffi-wz.0.root.192_168_23_69.w_sonne_scheint", function (obj){ var sonne = 0; if(obj.state.val) sonne = 1; setState("modbus.0.holdingRegisters.12502_Sonnenschein", sonne); });
  • [gelöst] Raw-Daten mit JS auslesen

    3
    0 Stimmen
    3 Beiträge
    749 Aufrufe
    A
    Super - hat geklappt. Danke!
  • script wirft fehler anonymos

    4
    0 Stimmen
    4 Beiträge
    357 Aufrufe
    paul53P
    @doctorultra sagte: schreibt er den Wert nicht in die Variable? In welche Variable ? Der Ziel-Datenpunkt (für setState()) ist der gleiche wie der Quell-Datenpunkt (in on()).
  • Wie Error handling

    3
    1
    0 Stimmen
    3 Beiträge
    334 Aufrufe
    W
    @BuZZy Vielen, vielen Dank! Wieder etwas dazu gelernt. Funktioniert so perfekt.
  • [Gelöst] Java-Script API / NPM-Paket einbinden

    5
    0 Stimmen
    5 Beiträge
    662 Aufrufe
    paul53P
    @Singular75 sagte Erfolg Dann markiere bitte das Thema in der Überschrift als [gelöst].
  • In iCal einen Termin mit dem Text "Ferien" oder "Frei" suchen und Variable schalten

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    B
    Ich mache das auch ganz simpel über die Events: on({id: "ical.0.events.0.now.ferien", val: true}, function() { setState("hm-rega.0.7475", false); sendTo("pushover.0", { message: 'beginnen und Schule ist aus', // mandatory - your text message title: 'Ferien', // optional - your message's title, otherwise your app's name is used priority: -1, }); }); on({id: "ical.0.events.0.now.ferien", val: false}, function() { setState("hm-rega.0.7475", true); sendTo("pushover.0", { message: 'enden und Schule geht weiter', // mandatory - your text message title: 'Ferien', // optional - your message's title, otherwise your app's name is used priority: -1, }); }); Funktioniert absolut zuverlässig. "hm-rega.0.7475" ist dabei die Variable "Schulzeit". Grüße Brati
  • Datenpunkte Astro Zeiten

    Gelöst
    7
    2
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    eule66E
    ok danke das wars schon, keine Fehlermeldungen im log mehr :-) bekomme aber nur Sonnenaufgang und Sonnenuntergang angezeigt, die restlichen Zeiten nicht,an was könnte das noch liegen? [image: 1555435312645-astro-neu.png] danke für eure hilfe Gruß Ronny
  • Speicherort von Scripts?

    3
    0 Stimmen
    3 Beiträge
    3k Aufrufe
    AlCalzoneA
    @BuZZy sagte in Speicherort von Scripts?: Die Scripte befinden sich standardmäßig in der Datei /opt/iobroker/iobroker-data/objects.json Gruß Du solltest aus dieser JSON-datei die Objekte script.js.XYZ extrahieren und auf der neuen Installation in diese Datei einfügen (bei ausgeschaltetem ioBroker). Es hilft, wenn dein Editor JSON-Formatierung unterstützt, da du dann die Objekte schneller eingrenzen kannst.
  • Objektinstanz behalten / Singleton

    6
    0 Stimmen
    6 Beiträge
    415 Aufrufe
    AsgothianA
    @synthe Hier muss ich Dir zustimmen. Alleine das Ablegen der Queue selber sorgt nicht für eine Synchrone Abarbeitung - dazu müsste sichergestellt sein das genau eine Instanz die Abarbeitung übernimmt, und andere Instanzen nur etwas hinzufügen können. Auch ist durch das Objekt-Modell vom IoBroker ein Hinzufügen von Queue Objekten kritisch - soweit ich das verstanden habe gibt es keine Funktionalität, die es erlaubt Schreibzugriffe auf einen Datenpunkt von anderen Stellen aus zu blockieren (zeitlich begrenzt, als "Resource Lock"). Da wirst Du dir etwas anderes einfallen lassen müssen.
  • [gelöst] Bitte um Hilfe bei JSON.parse bzw. Array handling

    javascript
    5
    0 Stimmen
    5 Beiträge
    659 Aufrufe
    S
    So, gelöst :-) falls jemand mal über so was stolpert: try { if(typeof flugplan[i].flight.arrival.gates[0].gate == 'undefined') { // does not exist arivalshtml=arrivalshtml + '<th class="tg-2uhc">'; arrivalshtml=arrivalshtml + " "; arrivalshtml=arrivalshtml + '</th>'; } else { // does exist arrivalshtml=arrivalshtml + '<th class="tg-2uhc">'; arrivalshtml=arrivalshtml + flugplan[i].flight.arrival.gates[0].gate; arrivalshtml=arrivalshtml + '</th>'; } } catch (error){ /* ignore */ } macht den Trick. Viele Grüße Christian
  • Mehrdimensionale Arrays

    javascript
    13
    0 Stimmen
    13 Beiträge
    3k Aufrufe
    G
    Danke, jetzt funktioniert es. Das Arraymodell ist irgendwie anders als ich sie kenne. Auch danke für den Hinweis mit der Arraygröße..
  • Heizungs-Skript spinnt relativ oft.

    4
    0 Stimmen
    4 Beiträge
    426 Aufrufe
    H
    Danke für deine Antwort, aber das Problem ist, das die Timer laut logs richtig aufgezogen sind, aber einfach nicht feuern. Verschachtelt hab ich da eigentlich nichts, denn jeder Timer ist für sich einer. Auch die Zeiten passen alle. Sprich kein Timer könnte den anderen behindern da immer 1-2 Stunden unterschied sind. Das komische ist ja, wenn ich das Skript neu starte geht es ja wieder eine Zeit lang

329

Online

33.0k

Benutzer

83.3k

Themen

1.3m

Beiträge