Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.6k Posts

NEWS

  • (gelöst) Trigger auf Gewerk funktioniert nicht

    javascript
    9
    0 Votes
    9 Posts
    569 Views
    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 Votes
    9 Posts
    865 Views
    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 Votes
    11 Posts
    563 Views
    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 Votes
    3 Posts
    149 Views
    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 Votes
    9 Posts
    447 Views
    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 Votes
    7 Posts
    435 Views
    ?
    @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 Votes
    7 Posts
    375 Views
    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 Votes
    6 Posts
    385 Views
    H
    @unclesam hab ich gemacht Github Issue
  • async await Probleme

    javascript
    4
    0 Votes
    4 Posts
    485 Views
    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 Votes
    3 Posts
    236 Views
    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 Votes
    12 Posts
    534 Views
    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 Votes
    9 Posts
    395 Views
    GarganoG
    @asgothian Ah, ok. Trotzdem Danke für den Hinweis.
  • Anfängerfrage: Wie komme ich zum Schwester / Parent Objekt

    11
    0 Votes
    11 Posts
    914 Views
    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 Votes
    5 Posts
    214 Views
    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 Votes
    3 Posts
    183 Views
    E
    @paul53 said in Namen des Datenpunkts in Aufzählung ermitteln: log(getObject(windows[i]).common.name); Klasse funktioniert perfekt Danke
  • Astrozeiten spinnen?

    12
    0 Votes
    12 Posts
    581 Views
    E
    @ente34 Heute pünktlich angegangen, ich kann den gestrigen Fehler nicht reproduzieren. Closed
  • Absolute Luftfeuchte Skript

    4
    1
    0 Votes
    4 Posts
    1k Views
    AsgothianA
    @toni Code tags sind Dein Freund. Auch logs gehören in Code tags. Im Editor werden code tags durch dieses Symbol </> dargestellt. Zum Fehler selber: Da das Script auf Github liegt gibt es da jemanden der sich (hoffentlich) drum kümmert. Daher bitte da einen issue aufmachen. A.
  • Telegram Antwort vom Bot an den angefragten User

    5
    0 Votes
    5 Posts
    523 Views
    I
    @UncleSam vielen Dank - wer lesen kann... sorry dafür
  • Hilfe zur JavaScript on() mehtod

    javascript
    5
    0 Votes
    5 Posts
    182 Views
    H
    @paul53 danke, ich bin ein koffer, warum hab ich das nicht gefunden? DANKEEEE
  • Enums vergleichen

    5
    0 Votes
    5 Posts
    437 Views
    AutoBrokerA
    @AutoBroker zu früh gefreut, die Syntax geht zwar aber der Inhalt ist Schrott, es kommt nur [Objekt objekt] dabei raus

747

Online

32.5k

Users

81.7k

Topics

1.3m

Posts