Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 49.1k Beiträge

NEWS

  • [Suche] Javascript das eine Tabelle im JSON ausgibt

    39
    0 Stimmen
    39 Beiträge
    4k Aufrufe
    liv-in-skyL
    @quorle warum baust du die anleitung nicht nach ? da scheint doch alles drin zu sein es gibt auch noch ein script für offene fenster im forum sorry - eigentlich habe ich nicht vor, dass alles nochmal nachzubauen - ich nutze es eh nicht - ich habe dir bis zur liste geholfen - mir wird das jetzt etwas zu viel. vielleicht findet sich jmd anders
  • ioBroker Szenen vs Alexa Routinen vs Hue Szenen

    1
    0 Stimmen
    1 Beiträge
    221 Aufrufe
    Niemand hat geantwortet
  • DoorBird API: Update Schedule mit Javascript

    2
    1
    0 Stimmen
    2 Beiträge
    211 Aufrufe
    SchmakusS
    Keine Doorbird Anwender hier?
  • Problem mit getState()

    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    T
    @psims Ich würde, um Fehler in Zukunft auszuschließen(späteres editieren), folgende Variante bevorzugen: // Setze Alarmzustand aktiv STATE_ALARM_ZUSTAND = true; setState('0_userdata.0.Alarmanlage.Alarm_Zustand', STATE_ALARM_ZUSTAND); Desweiteren würde ich innerhalb des If Blocks nur die Variable verändern und hinter diesem den State setzten.
  • [Gelöst]Alias mit Script erstellen - Button

    blockly communication javascript
    21
    0 Stimmen
    21 Beiträge
    890 Aufrufe
    WszeneW
    @paul53 OK danke Dir So funktioniert es Da werde ich jetzt erstmal all meine Aliase die als Button sind neu anlegen
  • (gelöst) Trigger auf Gewerk funktioniert nicht

    javascript
    9
    0 Stimmen
    9 Beiträge
    675 Aufrufe
    F
    @paul53 danke für deine Infos. Auch danke an @ticaki für deine Bemühungen. Problem somit gelöst.
  • innerhalb eines Zeitplans Status abfragen

    javascript
    9
    0 Stimmen
    9 Beiträge
    944 Aufrufe
    htreckslerH
    @luebke69 sagte in innerhalb eines Zeitplans Status abfragen: macht er einfach weiter... was spricht dagegen einfach zusätzlich auf "Regenbeginn" (welcher DP das auch immer ist) zu triggern? ...zu früh abgeschickt... so hatte Paul es ja auch vorgeschlagen. Der schedule startet die Begegnung --> Beregnung = true und wenn dann der richtige Regen einsetzt wird durch den Trigger Beregnung = false.
  • Müllabfuhr Skript funktioniert nicht mit allen Terminen

    11
    0 Stimmen
    11 Beiträge
    597 Aufrufe
    M
    Hey, es hat leider immer noch nicht richtig funktioniert. Nachdem ich versucht habe, das skript selber zu verstehen (ich habe es ja aus dem Netz kopiert), habe ich den "Fehler" gefunden. Weiß allerdings nicht, warum das nicht so klappt. Folgender Absatz im Skript wandelt scheinbar das Datum aus ical in ein Datum a la "JAHR-MONAT-TAG" um. hierbei hat mein skript Probleme, wenn ich in Google einen Termin als "ganztägig" hinterlege. // Datum aus dem Kalender zu einem englischen Date formatieren function convertToEngDate(str) { str = str.replace('→', ''); var tempdate = str.trim().split(' '); var date = tempdate[0].split('.'); return date[2]+'-'+date[1]+'-'+date[0]; } // Deutsches Datum ausgeben. function convertToGermanDate(str) { var date = str.split('-'); return date[2]+'.'+date[1]+'.'; } Ich habe im Googlekalender den Termin Restmüll jetzt einfach statt ganztags auf 8:00 Uhr morgens gelegt und es klappt. Vorher hat mir dieser Teil des Skripts statt "JAHR-MONAT-TAG" folgendes ausgegeben "undefined-undefined-→" hierbei steht das letzte für einen Pfeil nach rechts (Unicode), der aber eigentlich durch Zeile 3 verschwinden sollte? Jemand eine Idee, wie ich den Absatz oben ändern kann, damit es auch mit ganztägigen Terminen klappt :)?
  • Programm lässt sich nicht aktualisieren

    3
    0 Stimmen
    3 Beiträge
    170 Aufrufe
    stefan999S
    @paul53 ok danke, da muss ich mich mal einlesen, bis zum nächsten Problem in ein paar Tagen Gruß Stefan
  • serialport lässt sich nicht installieren

    javascript
    9
    0 Stimmen
    9 Beiträge
    528 Aufrufe
    stefan999S
    Es läuft jetzt, nur startet serialport nicht immer, ich muss mal genau beobachten waran das liegt. Vielleicht lässt mein Code ja etwas abstürzen. Hier nun ein Code der funktioniert, zumindest mal die Grundfunktion. Ich kann im Arduino Terminal Zeichen eingeben, und der AsCii code wird mir angezeigt. var Serialport = require('serialport'); var portName = '/dev/ttyUSB0'; const port = new Serialport(portName, { autoOpen: true, baudRate: 115200, dataBits: 8, parity: 'none', stopBits: 1, flowControl: false }); // Read the port data port.on("open", function () { console.log('open'); port.on('data', function(data) { console.log(data); }); }); Ich denke es lag nie daran, dass serialport nicht installiert war!
  • Selector greift nicht nach Umstellung auf redis?

    javascript
    7
    0 Stimmen
    7 Beiträge
    464 Aufrufe
    ?
    @homoran Die erste "Warn"-Zeile fing mit einer "getState"-Warnung an. Davor waren nur die ganz normalen Info-Zeilen (Adapter gestartet, Log-Meldungen von meinen Scripten, etc.). Kein Fehler, kein gar nichts.
  • Editor aktualisieren Log für eigene Scripte

    7
    0 Stimmen
    7 Beiträge
    432 Aufrufe
    htreckslerH
    @hanss Du kannst doch deine Eigenen Log-Einträge immer mit einem z. B. 'xxxxx' beginnen lassen. Dann kannst du danach filtern. Und eigene Log-Einträge schreibe ich immer im log-Level "warn". Dann sind sie im Log farblich hervorgehoben. und ein letztes noch noch...in den Instanzen stelle ich die Log-Stufe in der Regel auf "Error". Dann sind die Einträge der Adapter auf ein Minimum beschränkt
  • mehrere Schedules zur selben Zeit

    6
    0 Stimmen
    6 Beiträge
    404 Aufrufe
    H
    @unclesam hab ich gemacht Github Issue
  • async await Probleme

    javascript
    4
    0 Stimmen
    4 Beiträge
    513 Aufrufe
    GarganoG
    @ljmarkus Sehe ich das richtig, daß Du von einem entfernten Rechner iobroker Objekte abfrägst ? axios wäre ein Weg : const axios = require('axios'); axios.get(url) .then((response) => { console.log(response.data); }) .catch(function (error) { // handle error console.log(error); })
  • Datum aus MariaDB um 1 Tag verschoben

    3
    0 Stimmen
    3 Beiträge
    259 Aufrufe
    G
    @unclesam Hier mein Query: SELECT date(rateTS) rateDatum, (max(rate) - min(rate)) / min(rate) * 100 Quote from ioBroker.Cry_AssetRates where ID = (Select ID from ioBroker.Cry_AssetsDef where AssetShort = &1) and date(rateTS) between subdate(CURRENT_DATE, 3) and subdate(current_date, 1) group by date(rateTS) UNION SELECT CURRENT_DATE rateDatum, AVG(rate) Quote from ioBroker.Cry_AssetRates where ID = (Select ID from ioBroker.Cry_AssetsDef where AssetShort = &1) and date(rateTS) >= subdate(CURRENT_DATE, 4)'; Hier ein kleiner Auszug aus der Datenbank: 1 2021-01-11 20:00:00 886.94601 1 2021-01-11 21:00:00 864.40646 1 2021-01-11 22:00:00 892.45925 1 2021-01-11 23:00:00 911.08562 1 2021-01-12 00:00:00 932.59806 1 2021-01-12 01:00:00 956.29698 1 2021-01-12 02:00:00 936.60696 1 2021-01-12 03:00:00 932.34174 1 2021-01-12 04:00:00 939.57242 1 2021-01-12 05:00:00 955.15450 1 2021-01-12 06:00:00 961.7661 Im phpMyAdmin bekomme das Datumswerte (Stand 14.01.) den 11. bis 14.01. Und wenn ich dann im JavaScript über das ResultSet loope liefert er mit die Daten 10. bis 13.01
  • Zeitbasiertes Script läuft nicht

    12
    0 Stimmen
    12 Beiträge
    647 Aufrufe
    M
    @unclesam Hi, mein Script läuft nun, allerdings ist bei dem ein neuer Tag erst um 12 Uhr nicht um 0 Uhr...
  • Script läuft weiter trotz anhalten

    9
    0 Stimmen
    9 Beiträge
    421 Aufrufe
    GarganoG
    @asgothian Ah, ok. Trotzdem Danke für den Hinweis.
  • Anfängerfrage: Wie komme ich zum Schwester / Parent Objekt

    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    mickymM
    @paul53 oder man nutzt einen "regulären Ausdruck". ;) // Beispiel für id // var id = "0_userdata.0.test"; parent = id.replace(/(.*)\..*$/g,"$1"); allerdings zugegeben ohne Überprüfung auf Existenz.
  • Temperatur vom Thermostat runter, wenn Fenster auf

    javascript
    5
    0 Stimmen
    5 Beiträge
    224 Aufrufe
    Dominik F.D
    @tmartin Hier mal ein Skript was ich längere Zeit genutzt habe, vielleicht hilft es dir ja. Habe da einen Timer eingebaut, weil ich erst wollte, dass die Heizung runter geht, wenn das Fenster 10 min offen ist. Wenn du die Variablen anpasst und eventuell den Timer, dann sollte es funktionieren. //Variablen Wohnzimmer const id_EG_Wohnzimmer = 'javascript.0.Heizung.Fensterauswertung.EG_Wohnzimmer.IsOpen'/*Fenster offen?*/ const id_EG_W_Thermostat_Manu = 'hm-rpc.0.MEQ0236893.2.MANU_MODE'/*Wandthermostat Wohnzimmer MANU MODE*/ const id_EG_W_Thermostat_Auto = 'hm-rpc.0.MEQ0236893.2.AUTO_MODE'/*Wandthermostat Wohnzimmer AUTO MODE*/ var EG_Wohnzimmer = getState(id_EG_Wohnzimmer).val; //Variablen Küche const id_EG_Küche = 'javascript.0.Heizung.Fensterauswertung.EG_Küche.IsOpen'/*Fenster offen?*/ const id_EG_K_Thermostat_Manu = 'hm-rpc.0.NEQ1802941.2.MANU_MODE'/*Wandthermostat Küche MANU MODE*/ const id_EG_K_Thermostat_Auto = 'hm-rpc.0.NEQ1802941.2.AUTO_MODE'/*Wandthermostat Küche AUTO MODE*/ var EG_Küche = getState(id_EG_Küche).val; //Ab hier eigentliches Script var timer = null; //Wohnzimmer function Wmode() { if (EG_Wohnzimmer) { timer = setTimeout(function() { // Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen setState(id_EG_W_Thermostat_Manu, 17); log('Fenster im Wohnzimmer auf - Heizung ist aus'); },600000); // 10 Minuten } else { if(timer) clearTimeout(timer); setState(id_EG_W_Thermostat_Auto, true); log('Fenster im Wohnzimmer zu - Heizung ist an'); } }; //Küche function Kmode() { if (EG_Küche) { timer = setTimeout(function() { // Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen setState(id_EG_K_Thermostat_Manu, 17); log('Fenster in der Küche auf - Heizung ist aus'); },600000); // 10 Minuten } else { if(timer) clearTimeout(timer); setState(id_EG_K_Thermostat_Auto, true); log('Fenster in der Küche zu - Heizung ist an'); } }; Wmode(); // Skripstart Wohnzimmer on({id: id_EG_Wohnzimmer, change: "ne"}, function(obj) { EG_Wohnzimmer = obj.state.val; Wmode(); }); Kmode(); // Skripstart Küche on({id: id_EG_Küche, change: "ne"}, function(obj) { EG_Küche = obj.state.val; Kmode(); });
  • Namen des Datenpunkts in Aufzählung ermitteln

    javascript
    3
    0 Stimmen
    3 Beiträge
    193 Aufrufe
    E
    @paul53 said in Namen des Datenpunkts in Aufzählung ermitteln: log(getObject(windows[i]).common.name); Klasse funktioniert perfekt Danke

617

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge