Skip to content

JavaScript

2.5k Topics 49.4k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • import Syntax

    24
    0 Votes
    24 Posts
    1k Views
    W
    @paul53 Das funktioniert taatsächlich, ist aber ziemlich blöd wenn man etwas entwickeln möchte. Bei jedem Fehler oder jeder Änderung die JS Instanz neu starten. Das muss auch irgendwie aders gehen.
  • Lüftungssteuerung

    8
    0 Votes
    8 Posts
    648 Views
    HomoranH
    @phil_discount sagte in Lüftungssteuerung: aber wenn ich dich richtig verstehe, trotzden lüften Natürlich! Der @phil_discount sagte in Lüftungssteuerung: tau auf dem feld ist ja nur wegen der niedrigen Temperatur vorhanden. Die Feuchtekapazität der Luft verdoppelt sich in etwa je 10 Grad. Ein Luftentfeuchter funktioniert ja auch nach dem Kondensationsprinzip. Temperatur runter und schon fällt das Wasser aus der Luft aus und tropft in den Behälter. Trockene Luft bleibt übrig. Deswegen vergleicht man ja nur den Wassergehalt der Luft innen und außen. Um das Ganze noch verwirrender zu machen Das Wohlfühl "klima" hängt allerdings von der relativen Feuchte ab.
  • Über Mqtt empfangenes Bild in Datei speichern

    5
    0 Votes
    5 Posts
    595 Views
    V
    @haus-automatisierung Danke nochmal. Scheint tatsächlich kein jpg oder anderes Bildformat zu sein. Als ausgabe kommt lediglich "data". Ich glaube ich versuche mal auf einem anderen weg die Bilder zu holen. Eventuell kann ich mir vom Server den Pfad schicken lassen und das Bld dann per SFTP holen. Trotzdem noch einmal vielen lieben Dank für die Unterstützung.
  • schedule, welche syntax

    3
    0 Votes
    3 Posts
    351 Views
    A
    @homoran Danke, genau daran hat es gelegen.
  • settimeout - leider wird nicht gewartet

    7
    0 Votes
    7 Posts
    269 Views
    N
    @paul53 erst mal Danke für den andere Denkansatz.
  • (erledigt)Hilfe bei Bit operation and / or

    5
    0 Votes
    5 Posts
    409 Views
    ubeckerU
    @haus-automatisierung da hast du ja Recht, im Prinzip ist da alles. Mein Problem ist das ich die Syntax von JS noch nicht drin habe und mich damit schwer tue. Manchmal aber auch in Umwegen denke. Ich habe erst im November letztn Jahr mit IOBroker angefangen und da dann erste mal mit JS zu tun gehabt habe. Mein Schwerpunkt ist Hardware und nicht Software. Dafür läuft bei mir mittlerweile MQTT, Modbus, HM, HMIP, Z-Wave. Ich werde mich wohl noch mehrmals melden müssen. danke für die noch kommende Unterstützung.
  • Google API OAuth2 - Wie?

    5
    0 Votes
    5 Posts
    566 Views
    M
    Okay, herausgefunden, dass die Datei in den JavaScript Ordner gehört. Dort hab ich es auf oberster Ebene mal getestet. Der Fehler bleibt der gleiche.
  • Adapter-Update führt zu Neukompilieren des NPM-Moduls

    Unsolved
    11
    0 Votes
    11 Posts
    820 Views
    foxriver76F
    Lkonnte ich in letzter Zeit auch wieder bei jedem Update beobachten dass die von mir im JavaScript Adapter hinzugefügten Module nach jedem Update durch npm gelöscht wurden. Wir haben ein Ticket wird allerdings was größeres vermute ich. https://github.com/ioBroker/ioBroker.js-controller/issues/2006
  • Wie kann man einem Scheduler Callback einen Wert übergeben?

    2
    0 Votes
    2 Posts
    106 Views
    B
    @burningfrog neuer Scope für item, damit scheint es zu gehen: var list = [ {time:"22:33", dp_execute:"a"}, {time:"22:34", dp_execute:"b"}, {time:"22:35", dp_execute:"c"}, ]; for (var i=0; i<list.length;i++) { var item = list[i]; (function(item) { schedule('{"time":{"exactTime":true,"start":"'+item.time+'"},"period":{"days":1}}', function () { console.log(item.dp_execute); } ); })(item); }
  • JSON Liste sortieren (Funktion)

    62
    4
    0 Votes
    62 Posts
    9k Views
    M
    @djmarc75 ja es landet auch alles sortiert im Datenpunkt. vielen dank noch mal.
  • [gelöst]Enum während Laufzeit ändern

    2
    0 Votes
    2 Posts
    134 Views
    paul53P
    @ben1983 sagte: Id aus „Weihnachtsbeleuchtung“ heraus zu nehmen und wo anders mit rein? Versuche es mal so: const idEnum1 = 'enum.functions.weihnachtsbeleuchtng'; const idEnum2 = 'enum.functions.anderes_Gewerk'; const idDP = 'xyz'; // Steckdose const obj1 = getObject(idEnum1); const obj2 = getObject(idEnum2); var idx = obj1.common.members.indexOf(idDP); if(idx > -1) { obj1.common.members.splice(idx, 1); // entfernen obj2.common.members.push(idDP); // hinzufügen } else { idx = obj2.common.members.indexOf(idDP); if(idx > -1) { obj2.common.members.splice(idx, 1); // entfernen obj1.common.members.push(idDP); // hinzufügen } } if(idx > -1) { setObject(idEnum1, obj1); setObject(idEnum2, obj2); }
  • Logging ohne Scripname in der Nachricht

    javascript
    6
    0 Votes
    6 Posts
    585 Views
    F
    @bourton88 sagte in Logging ohne Scripname in der Nachricht: Kann das jemand erklären? richtige Fehler sind nur die welche im Log zur Laufzeit auftauchen. Die roten Kringel sind 'nur' Hinweise und oft fehlerhaft.
  • "Gesunde" Anzahl von registrierten Triggern

    20
    0 Votes
    20 Posts
    615 Views
    haus-automatisierungH
    @paul53 Ja, aber nicht alle. Rolle geht z.B. nicht.
  • sourcesanalytix per JS aktivieren

    7
    0 Votes
    7 Posts
    229 Views
    bahnuhrB
    Hat sich erledigt. Hab mir ein Script geschrieben.
  • Abruf von JSON vom Truckstick

    4
    0 Votes
    4 Posts
    600 Views
    CodierknechtC
    @robbsen Deine lokalen IP's musst Du nicht X'en. Die sehen bei allen gleich aus. @robbsen sagte in Abruf von JSON vom Truckstick: Leider habe ich sonst immer Blockly genutzt und das ist hier vermutlich fehl am Platz. Geht mit Blockly genau so gut. Wie sieht denn das JSON aus?
  • getState - außerhalb einer Funktion

    3
    3
    0 Votes
    3 Posts
    174 Views
    N
    @paul53 DANKE, für diesen schei... Haken habe ich einen Tag am Kopf gekratzt. Danke für den Hinweis, dass bei späteren Problemen eher der Text als Bilder helfen.
  • (gelöst) SQL Abfrage als Function in einem javascript

    Moved
    2
    0 Votes
    2 Posts
    353 Views
    Norwegen60N
    OK, ich habe es selbst herausbekommen. Die Hürden waren nicht genau zu wissen, wie bei JavaScript function und deren Parameter funktionieren die Erkenntnis, dass bei SQL die Ergebnisse zeitverzögert zurück kommen. Wenn man in der Function das Ergebnis als result zurück gegeben hat, hat der Wert im Log nie gestimmt. Die Suche warum die Werte nie gestimmt haben, hat einiges an Zeit verschlungen Ich habe es deshalb wie folgt realisiert. Der Einfacheit halber verwende ich die Funktion um Jahresergebnisse zu liefern. Da muss nicht Jahr/Monat verschlüsselt werden (Monatsabfrage steht ja schon im vorigen Post) function GetEnergyYear(ID, Year, DataPoint, DataPointCurrent = '') { let ValueCurrent = 0; let sSQL1 = 'use ioBroker DECLARE @ID int = ' +String(ID) +', @Year int ='+String(Year); let sSQL2 = 'select max(val) from ts_number where ((id = @ID) and (year(DATEADD(s, ts/1000, \'1970-01-01\')) = year(getdate())-@Year-1)) or (id = 0)'; let sSQL =sSQL1 + ' select max(val) -(' + sSQL2 +') from ts_number where ((id = @ID) and (year(DATEADD(s, ts/1000, \'1970-01-01\')) = year(getdate())-@Year)) or (id = 0)'; sendTo('sql.0', 'query', sSQL, async (result) =>{ setState(DataPoint , getAttr((getAttr(result, 'result')[0]), ''), true); }); // Wenn Korrekturwert (aktueller Tages-Wert) mit übergeben wurde, diesen zum Wert addieren // Hier muss man wissen, dass immer nur der Endwert eines jeden Tages abliegt. // Der Stand des aktuellen Tages fehlt also. Der kann per DataPointCurrent übergeben und hinzuaddiert werden if (String(DataPointCurrent) != '') { ValueCurrent = getState(DataPointCurrent).val; if (Logging) {console.log('###2: ValueCurrent = ' + String(ValueCurrent))}; setState(DataPoint /* rEnergyRateDay */, (getState(DataPoint).val + ValueCurrent), true); }; if (Logging) {console.log('###2: '+ String(DataPoint) + ' = ' + String(getState(DataPoint).val))}; } // ############################################################################################################################# // alle 2 Minute aktuelle Monatsverbräuche berechnen schedule('{"time":{"start":"00:00","end":"24:00","interval":2,"mode":"minutes"},"period":{"days":1}}', async () => { console.log(('### Verbrauch aktueller Monat ###')); // Und so erfolgt die Abfrage. 88 und 100 sind die Datapoint ID des Tagesendwertes GetEnergyYear(88,0,'0_userdata.0.PV.rPV_Energy_RateYear','0_userdata.0.PV.rPV_Energy_Day'); GetEnergyYear(88,1,'0_userdata.0.PV.rPV_Energy_RateYearBefore'); // der benötigt keine Korrektur da ja alle Tage abgelegt sind GetEnergyYear(100,0,'0_userdata.0.PV.rUsed_Energy_RateYear','0_userdata.0.PV.rUsed_Energy_Day'); GetEnergyYear(100,1,'0_userdata.0.PV.rUsed_Energy_RateYearBefore'); }); Kann sein, dass es einfacher geht, aber so funktioniert es Grüße Gerd
  • HTML-Tabelle für Time-Switch Adapter

    javascript
    49
    2
    5 Votes
    49 Posts
    7k Views
    liv-in-skyL
    @buchner51 sorry - muss ich sehen - mir fällt im moment nix ein
  • Typescript setObejct kompelier fehler

    13
    1
    0 Votes
    13 Posts
    1k Views
    I
    Ich muss das Thema leider noch mal hochholen. Meine Test Version funktioniert ja. const testPath = "0_userdata.0.dev.color_mode" const obj= getObject(testPath) as iobJS.StateObject; Als ich das ganze aber dynamisch machen wollte z.b. async function updateEnum(path:string, states, statesLength){ const obj= getObject(path) as iobJS.StateObject; hatte ich wieder den Fehler. Wenn ich aus dem const ein var machen geht es auch nicht mehr var testPath = "0_userdata.0.dev.color_mode" const obj= getObject(testPath) as iobJS.StateObject; und es reicht nicht aus den string in ein const zu packen async function updateEnum(path:string, states, statesLength){ const testPath = path const obj= getObject(testPath) as iobJS.StateObject; immer bekommen ich script.js.common.dev: TypeScript compilation failed: const obj = getObject(path) as iobJS.StateObject; ^ERROR: Conversion of type '{ type: "meta" | "config" | "user" | "state" | "instance" | "adapter" | "channel" | "folder" | "device" | "script" | "enum" | "group" | "host" | "chart"; ts: number; from: string; common: { ...; }; ... 8 more ...; encryptedNative: string[]; }' to type 'StateObject' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Types of property 'common' are incompatible. Type '{ [x: string]: any; [x: number]: any; }' is missing the following properties from type 'StateCommon': read, write, role, name Leider fehlt mir da echt tiefergehendes Javascript/typescript wissen um das zu verstehen. Würde mir noch mal jemand auf die Sprünge helfen?
  • IP Devices im Netzwerk - HTML Tabelle vis, Iqontrol

    javascript template
    493
    3
    9 Votes
    493 Posts
    114k Views
    O
    @liv-in-sky Super, danke dir

497

Online

32.9k

Users

83.0k

Topics

1.3m

Posts