Skip to content

JavaScript

2.5k Topics 49.6k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • 0 Votes
    6 Posts
    924 Views
    D
    @haiperf Danke dafür, denke das kann ich auch gebrauchen :)
  • Benötige Hilfe bei KlingelScript

    6
    0 Votes
    6 Posts
    776 Views
    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
  • 0 Votes
    37 Posts
    4k Views
    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
  • 0 Votes
    1 Posts
    195 Views
    No one has replied
  • Hydrawise Bewässerung JSON in Datenpunkte speichern

    4
    1
    0 Votes
    4 Posts
    643 Views
    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 Votes
    2 Posts
    406 Views
    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 Votes
    1 Posts
    1k Views
    No one has replied
  • Daten aus SQL Lite auslesen und Mittelwert errechnen

    javascript
    1
    0 Votes
    1 Posts
    495 Views
    No one has replied
  • Umwandlung von TRUE/FALSE auf 1/0

    3
    0 Votes
    3 Posts
    527 Views
    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 Votes
    3 Posts
    749 Views
    A
    Super - hat geklappt. Danke!
  • script wirft fehler anonymos

    4
    0 Votes
    4 Posts
    357 Views
    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 Votes
    3 Posts
    334 Views
    W
    @BuZZy Vielen, vielen Dank! Wieder etwas dazu gelernt. Funktioniert so perfekt.
  • [Gelöst] Java-Script API / NPM-Paket einbinden

    5
    0 Votes
    5 Posts
    662 Views
    paul53P
    @Singular75 sagte Erfolg Dann markiere bitte das Thema in der Überschrift als [gelöst].
  • 0 Votes
    8 Posts
    1k Views
    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

    Solved
    7
    2
    0 Votes
    7 Posts
    2k Views
    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 Votes
    3 Posts
    3k Views
    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 Votes
    6 Posts
    415 Views
    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 Votes
    5 Posts
    659 Views
    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 Votes
    13 Posts
    3k Views
    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 Votes
    4 Posts
    426 Views
    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

383

Online

33.0k

Users

83.3k

Topics

1.3m

Posts