Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.7k Posts

NEWS

  • schedule / on({time: - was ist stabiler/sinnvoller/besser?

    javascript
    3
    0 Votes
    3 Posts
    238 Views
    etvE
    @ticaki, danke dir für die Info. Ja, ich bin nun auch auf schedule umgestiegen. Im Prinzip ging's mir darum, welche Funktion bei einem restart vom ioBroker auch funktioniert, weil's unser Wecker Script betrifft :slightly_smiling_face: Aber wahrscheinlich ist es eh egal und wie du richtig sagst, mir gefällt schedule auch besser! Liebe Grüße tom
  • [gelöst] zu warn-log (664) Object "xyz" does not exist

    4
    0 Votes
    4 Posts
    214 Views
    paul53P
    @joerg55 sagte: finde ich existsState nicht. Diese Funktion ist undokumentiert.
  • [HILFE] Datumsberechnung

    2
    0 Votes
    2 Posts
    319 Views
    T
    Erster Treffer von Bing :) var now = new Date(); var start = new Date(now.getFullYear(), 0, 0); var diff = (now - start) + ((start.getTimezoneOffset() - now.getTimezoneOffset()) * 60 * 1000); var oneDay = 1000 * 60 * 60 * 24; var day = Math.floor(diff / oneDay);
  • [Frage] Timer oder Interval in Funktion löschen

    11
    1
    0 Votes
    11 Posts
    570 Views
    paul53P
    @CruziX sagte : in JavaScript werden alle primitiven Datentypen call by value und alle Objekte call by reference übergeben Das stimmt schon, weshalb man innerhalb einer Funktion auch die Attribute eines Objektes ändern kann, aber nicht das Objekt selbst. Im ersten Post ist time eine lokale Variable und es bewirkt nichts, diese auf null zu setzen.
  • Logik problem in 2 scripts .

    2
    1
    0 Votes
    2 Posts
    204 Views
    D
    [image: 1583661844223-bildschirmfoto-2020-03-08-um-11.03.48.png] habe es so geändert und alles gut aber , theoretisch musste das andere script auch laufen
  • [Vorlage] E2 Kanalliste auslesen und per Alexa umschalten

    5
    0 Votes
    5 Posts
    508 Views
    L
    Dann lass uns das Script perfektionieren mit Hilfe des Forums :) EDIT: Ich schrieb, dass eventuell die Timeouts angepasst werden müssen! Bei mir ist Zap aus, dann werden channels gelöscht und neu geschrieben und dann ist Zap wieder an. Ich bin leider noch nicht so mit callbacks bei JavaScript involviert um es wirklich asynchron laufen zu lassen. Sollte es bei Dir zappen, dann ist entweder das Script beim Channel-Update nicht aus, oder du musst die Timeouts erhöhen bis keine Fehlermedung mehr zu sehen ist
  • Fehler Im Skript Cannot find name 'data' Engine 4.4.3

    4
    0 Votes
    4 Posts
    345 Views
    paul53P
    @imushroom sagte: Jedoch habe ich let data ganz oben im Skript deklariert... Das geht natürlich auch. Sonst bei der ersten Wertzuweisung.
  • MQTT states an Rhasspy URL schicken

    2
    0 Votes
    2 Posts
    569 Views
    tobetobeT
    @hiasii12 @Bluefox Hallo, ich hatte meine Anfrage wohl gestern nicht richtig gepostet. Da ihr euch mit ähnlichen Themen bereits befasst habt, würde ich euch daher nun gern direkt ansprechen und um Hilfe bitten. Worum es einigen anderen ioBroker Usern und mir geht, habe ich hier kurz ausgeführt: MQTT states an Rhasspy URL schicken Und dazu auf das verwiesen, was ich bisher bereits unternommen habe: Rhasspy Offline Sprachsteuerung Leider bin ich nun mit meinem Wissen über JS am Ende. Vielleicht könntet ihr mal einen Blick auf den Code werfen und mir einen Hiweis geben, wie man hier zu einer Lösung kommen kann. Oder mich ggf an jemand anderen verweisen. Recht herzlichen Dank jedenfalls schon einmal vorab. Beste Grüße Thomas
  • [Frage] Aufrufen einer Funktion mit Namen in einer Variable

    3
    0 Votes
    3 Posts
    289 Views
    C
    @ticaki Danke, hab eval auch schon gefunden, aber erst nicht so ganz verstanden. Ich hab gelesen, es wird empfohlen eher Function zu nutzen und das hat jetzt so geklappt: Spoiler // Externe Function calls onMessage('call', (data, callback) => {console.log('Received data: ' + data); Function('"use strict";'+data)(); callback(null, Date.now())}); So kann ich jede Funktion der Skriptinstanz auch außerhalb aufrufen und muss gewisse Funktionen nicht in mehreren Skripts haben oder in globale setzen. Edit: Noch besser, dadurch, dass der Code jetzt in einem global Skript ist, kann ich Instanzübergreifend jede Funktion aufrufen ^^
  • [gelöst]: in eigene Datenbank schreiben

    javascript
    5
    0 Votes
    5 Posts
    246 Views
    OliverIOO
    @hanss sagte in Hilfe: in eigene Datenbank schreiben: @OliverIO Vielen Dank. Leider kenne ich da die Syntax nicht für den sql Adapter. Es wäre sehr schön, wenn Du mir da weiterhelfen könntest: Datenbank: dts Tabelle: wtc_vt var myQuery="INSERT INTO dts.wtc_vt // wie werden die Werte den Spalten vt_soll == 1 rt_soll == 2 at_m == 3 zugewiesen und dann einfach so abschicken? sendTo('sql.0', 'query', myQuery, function (result) { ja, aber so wie es aussieht passt der syntax deines sql-befehls noch nicht. hast du die links mal durchgelesen?
  • [gelöst]Abfrage für Relais Status

    3
    0 Votes
    3 Posts
    178 Views
    M
    Hi Paul, nach dem Edit klappte es :-) Ich musste nur die states noch vorher anlegen weil es nichts zum reinschreiben gab und habe dabei den Namen noch angepasst. createState('javascript.0.Controme.hkv.out-1', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-2', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-3', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-4', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-5', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-6', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-7', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-8', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-9', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-10', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-11', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-12', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-13', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-14', 0, {type: 'boolean', unit: ''}); createState('javascript.0.Controme.hkv.out-15', 0, {type: 'boolean', unit: ''}); const url = 'http://192.168.xx.xx/get/xx-xx-xx-01-1d-20/all/'; const dpPath = 'javascript.0.Controme.hkv.out-'; // 15 Datenpunkte Z1 ... Z15, Typ "boolean" schedule('* * * * *', function() { // jede Minute request(url, function(error, response, result) { result = result.substring(1, result.indexOf('>')); // < und > entfernen let arr = result.split(';'); for(let i = 0; i < arr.length; i++) { setState(dpPath + (i + 1), !!parseInt(arr[i]), true); } }); }); Jetzt versuche ich als nächstes mit der Abfrage von den States in drei Räumen die Klimaanlage zum heizen einzuschalten wenn ein state länger als 20 Minuten true ist. Bin mal gespannt ob ich das mit Blocky schaffe :-) Dir schon mal - wie immer - ganz lieben Dank für die schnelle Hilfe !!! vg Marc
  • Garmin LiveTrack per Telegram

    1
    2
    0 Votes
    1 Posts
    655 Views
    No one has replied
  • JSON aus diesem Link - Ist das machbar ? MELCLOUD

    17
    0 Votes
    17 Posts
    1k Views
    M
    @Lenny-CB ich bin gar nicht so weit das ich bei euch mitreden könnte :-) Ich könnte aus einer fast funktionierenden Lösung was umbauen aber selber bekomme ich das leider nicht hin. Für Melcloud bin ich jetzt einen anderen Weg gegangen und habe mit die Daten über Openhab reingeholt. Schöner wäre es natürlich wenn man das mit Java hinbekommen würde und richtig schick wäre ein Adapter. Aber ich kann da, außer das ich die Hardware habe zum testen, nicht weiter helfen ... :-( Leider ... Ich würde es so gerne können ... vg Marc
  • [gelöst] Homematic: Namen auslesen

    3
    0 Votes
    3 Posts
    279 Views
    D
    @paul53 Vielen, vielen Dank! Das ist genau das, was ich brauche. :) Ich hatte es mit getState versucht... Besten Dank nochmal :)
  • 0 Votes
    2 Posts
    822 Views
    GlasfaserG
    So ... alle 320 Scriptleichen sind gelöscht . Es gibt bestimmt einen anderen Weg ... aber es hat geklappt. Habe mit dem Google-Chrom Plugin " JSON Editor" mir mal die Struktur angeschaut wo eine Leiche hinterlegt ist, dann ist mir aufgefallen das die Leichen in den Datenpunkten scriptEnable / scriptProblem hinterlegt sind : [image: 1583417821253-zig3.jpg] [image: 1583418556044-zig2.jpg] Nach löschen des kompletten Ordners javascript.1.(Testumgebung) , dann waren nur noch 9 Leichen da , in javascript.0 Ordnern Datenpunkten scriptEnabled / scriptProblem [image: 1583418315673-zig4.jpg] Die Restlichen 9 wurden dann in den javascript.0 Ordnern Datenpunkten scriptEnabled / scriptProblem gelöscht . Ein Test wurde trotzdem jetzt nochmal durchgeführt ,sie werden auch in den Ordnern scriptEnabled / scriptProblem jeweils auch gelöscht . Muß wohl irgendwann ein Synchronisationsfehler längere Zeit gewesen sein ... zumindest sind jetzt alle Leichen gelöscht .
  • sitze seit gestern im dunkeln Hue Szenen script ausgefallen

    14
    1
    0 Votes
    14 Posts
    1k Views
    G
    echt, das wusste ich nicht. in den Objekten den der normale Hue Adapter erzeugt sind jedenfalls keine Szenen zu sehen. hab jetzt mal den Hue Extended genommen, da ist alle dabei, toll! Vielen Dank für den tipp. So ist das eben, man richtet irgendwann mal was ein und das funktioniert dann auch, weiter kümmert man sich meist nicht. es war immer etwas umständlich mit dem extra script. aber der extendet adapter hat alles was man sich wünscht. hatte den schon mal gesehen, dachte aber er ist für eine neue Generation von Hue-Bridges. Also sorry leute, bin aus einem Datendorf gerade in die grosse stadt gekommen XDD Vielen Dank
  • Vorstellung: TestIo - ioBroker JavaScript Test Framework

    javascript
    1
    2 Votes
    1 Posts
    453 Views
    No one has replied
  • Kann nicht mehr auf Objekte zugreifen

    20
    0 Votes
    20 Posts
    2k Views
    apollon77A
    @Chaot Ist vllt ne Idee
  • Verbrauchszaehler Fehler Tag 8 / Woche 5

    16
    1
    0 Votes
    16 Posts
    769 Views
    T
    @XBiT Dann leg die Datenpunkte an ist die einfachste Version, funktioniert sicher und stört ja niemanden :grin: EDIT: Ich denke nicht das die Werte relevant für die Berechnungen sind. Es gibt kumulierte Werte für den Zeitraum für den Preisberechnungen durchgeführt werden
  • [Vorlage] Alexa History Befehle in VIS anzeigen

    12
    1
    4 Votes
    12 Posts
    2k Views
    NegaleinN
    @Mic sagte in [Vorlage] Alexa History Befehle in VIS anzeigen: Das kannst du nun alles mit dem neuen Log-Script Version 4.10 lösen. Cool, danke! Schau ich mir gleich an.

896

Online

32.6k

Users

81.9k

Topics

1.3m

Posts