Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.5k Topics 213.5k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    Pedder007P
    Hi, na' da habe ich mir jetzt einen geleistet .... natürlich ist das ein anderer Dienst!!! Keine Ahnung, aber das kommt davon, wenn man zu viel parallel macht... :-( Sorry für den Unsinn hier, ich gelobe Besserung :-)
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    haselchenH
    @Fibricus Passt Du den Threadtitel noch bitte an ( auch wenn gelöst). Mit „Denk ich falsch?“ kann kein User was anfangen .
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • HUE Zeitsteuerung ( Skript )

    Moved
    17
    1
    0 Votes
    17 Posts
    3k Views
    C
    Was haltet ihr davon? Gibt es einen eleganteren Weg? 2017-10-31 Lampen als Array Neue Funktion CheckStatus(TimeToSunset,light) pro Lampe Funktion fadeIN(transTime,level_min,level_max) erweitert. Parameter Level_min und Level_max definieren Start- und Endhelligkeit der Lampen. // ==========Einstellungen Start========== // Lampen var lights = [ "hue.0.Philips_hue.Wohnzimmer", "hue.0.Philips_hue.Teich", ]; // Start und Endhelligkeit var level_min = 10; var level_max = 80; // ToDo var color = 0; // ==========Einstellungen Ende========== // Timer jede Minute schedule("* * * * *", function () { log("==========Skript Start: Sunset_Light=========="); log("==========AstroDaten abfragen=========="); // var nightEnd = getAstroDate("nightEnd"); // log(" (0) nightEnd (Ende der Nacht)........................: " + nightEnd.toLocaleTimeString()); // var nauticalDawn = getAstroDate("nauticalDawn"); // log(" (1) nauticalDawn (naut. Dämmerung Morgens)...........: " + nauticalDawn.toLocaleTimeString()); // var dawn = getAstroDate("dawn"); // log(" (2) dawn (Dämmerung Morgens).........................: " + dawn.toLocaleTimeString()); // var sunrise = getAstroDate("sunrise"); // log(" (3) sunrise (Sonnenaufgang)..........................: " + sunrise.toLocaleTimeString()); // var sunriseEnd = getAstroDate("sunriseEnd"); // log(" (4) sunriseEnd (Ende des Sonnenaufgangs).............: " + sunriseEnd.toLocaleTimeString()); // var goldenHourEnd = getAstroDate("goldenHourEnd"); // log(" (5) goldenHourEnd (Ende der Golden Hour VM)..........: " + goldenHourEnd.toLocaleTimeString()); // var solarNoon = getAstroDate("solarNoon"); // log(" (6) solarNoon (Mittag)...............................: " + solarNoon.toLocaleTimeString()); // var goldenHour = getAstroDate("goldenHour"); // log(" (7) goldenHour (Start der Golden Hour NM)............: " + goldenHour.toLocaleTimeString()); var sunsetStart = getAstroDate("sunsetStart"); log(" (8) sunsetStart (Start des Sonnenuntergangs).........: " + sunsetStart.toLocaleTimeString()); var sunset = getAstroDate("sunset"); // log(" (9) sunset (Sonnenuntergang).........................: " + sunset.toLocaleTimeString()); var dusk = getAstroDate("dusk"); log("(10) dusk (Dämmerung Abends)..........................: " + dusk.toLocaleTimeString()); // var nauticalDusk = getAstroDate("nauticalDusk"); // log("(11) nauticalDusk (naut. Dämmerung Abends)...........: " + nauticalDusk.toLocaleTimeString()); // var night = getAstroDate("night"); // log("(12) night (astron. Dämmerung Abends).................: " + night.toLocaleTimeString()); // var nadir = getAstroDate("nadir"); // log("(13) nadir (Dunkelster Moment der Nacht)..............: " + nadir.toLocaleTimeString()); log("==========Funktionen ausführen=========="); // Zeit zwischen 2 Zeiten berechnen // Übergabe: Zeit 1 und Zeit 2 var Time1_2 = TimeBetween(sunsetStart, dusk); // Zeit bis Start Sonnenuntergang berechnen // Übergabe: Start des Sonnenuntergangs. getAstroDate("sunsetStart"); var sunsetrest = TimeToSunset(sunsetStart); // Prüfen pro Lampe ob bereits an und ob Sonnenuntergang begonnen hat. // Wenn true, dann anschalten lights.forEach(function(element) { if (Boolean(CheckStatus(sunsetrest,element))){ FadeIN(Time1_2,level_min,level_max); } }); log("==========Skript Ende: Sunset_Light=========="); }); // Funktionen *************************************************************************************************** // Licht mit level_min einschalten und auf level_max mit transTime blenden // Übergebene Parameter: Zeit für das Einblenden in Minuten, start und end level function FadeIN(transTime,level_min,level_max){ log("Funktion: fadeIN() mit transTime: " + transTime + " , level_min " + level_min + " , level_max " + level_max); // transTime kommt mit Minuten, also transTime *60 / 0.1 = fadeTime // da es zu schnell dunkel wird nur die halbe Zeit nehmen var fadeTime = transTime * 60 / 0.1 / 2; lights.forEach(function(element) { // Command leeren setState(element +".command","{}"); // Lampen anschalten ( command greift sonst nicht ) setState(element +".on",true); // Initial level auf level_min setzen setState(element+".level",level_min); // 3 Sekunden warten, dann command ausfühen ( klappt nicht direkt nach einschalten ) setTimeout(function() { var com = "{\"on\":true,\"level\":" + level_max + ",\"transitiontime\":" + fadeTime + "}"; setState(element+".command",com); },3000); }); } // Berechnungen der restlichen Minnuten bis endTime basierend auf der aktuellen Uhrzeit // Übergebene Parameter: Zeit auf die berechnet werden soll // Return liefert Zeit in Minuten function TimeToSunset(endTime){ log("Funktion: timeToSunset()"); var today = new Date(); var rest = 0; rest = ((endTime.getTime() - today.getTime()) /1000 /60); rest = Math.round(rest); return rest; } // Berechnungen der Zeit zwischen 2 Zeiten // Übergebene Parameter: Zeit1 und Zeit2 auf die berechnet werden soll // Return liefert Zeit in Minuten function TimeBetween(time1, time2){ log("Funktion: TimeBetween()"); var diff = 0; diff = ((time2.getTime() - time1.getTime()) /1000 /60); diff = Math.round(diff); return diff; } // Status der Lampen prüfen und schauen ob Sonnenuntergang bald beginnt // Übergebene Parameter: Zeit bis Sonnenuntergang in Minuten, Lampe // Return liefert true oder false function CheckStatus(TimeToSunset,light){ log("Funktion: CheckStatus() mit TimeToSunset: " + TimeToSunset + " und Lampe " + light); // Wenn Lampe aus if (getState(light+".on").val === false ){ // Wenn restl. Zeit bis Sonneuntergang ( zwischen 2 und 0 Minuten ) if(TimeToSunset <= 2 && TimeToSunset >=0){ return true; // sonst tue nichts. } else { return false; } } // sonst tue nichts. else { return false; } }
  • [gelöst] Hue - Raum auschalten mit transitiontime

    Moved
    2
    1
    0 Votes
    2 Posts
    1k Views
    Holger76H
    so einfach ist das manchmal: irgendwie dachte ich, die transitiontime wird in Milisekunden angegeben. Aber es sind 1/10s, also wenn ich 100 eingebe, dann geht es :-)
  • SQL Datenbank auslesen

    Moved
    14
    0 Votes
    14 Posts
    5k Views
    M
    @ noxx: Hast du mittlerweile eine Lösung für dein Thema gefunden ? Gruß Michael
  • Bei einem Datenpunkt weitere Eigenschaften unter common hinzufügen

    Moved
    9
    0 Votes
    9 Posts
    1k Views
    Jey CeeJ
    Da bin ich gespannt Gesendet von Unterwegs
  • 0 Votes
    1 Posts
    518 Views
    No one has replied
  • Einfach nur eine Lampe schalten

    Moved
    5
    1
    0 Votes
    5 Posts
    2k Views
    C
    hhhmmmmm…. da sich der state wert beim switch von false auf true ändert kommt in diesem fall der befehl bei ioB an und ist meines wissens nach auswertbar bzw. nutzbar. in deinem beispiel kam die wertänderung nicht in ioB an..... wenn ich das richtig verstanden habe .....
  • Fritzbox verpasste anrufe vorlesen lassen?

    Moved
    1
    1
    0 Votes
    1 Posts
    468 Views
    No one has replied
  • Telegram Nachrichten Reihenfolge beeinflussbar ?

    Moved
    5
    2
    0 Votes
    5 Posts
    706 Views
    dslraserD
    @Dutchman: @dslraser: Danke für die Antwort. Ja, so wird es sein, aber ich glaube das ist bei jeder "Harmony Hub" Umschaltung anders ? Ich schaue mir den Umschaltvorgang nochmal genau an. Ich meine in welcher Reihenfolge das abläuft. ` Steuerst du dein harmony mit Aktivitäten? Dann kannst du in harmony einstellen welche Reihenfolge/Geräte Schaltvorgänge haben sollten –----------------------- Send from mobile device ` ja, mache ich mit aktivitäten.
  • [gelöst] HmIP-BSM langer Tastendruck

    Moved
    2
    1
    0 Votes
    2 Posts
    2k Views
    A
    Hallo, Gestern Abend habe ich nach weiter rumprobieren das Problem endlich gelöst. Durch umstellen des „anerkannt ist“ Wertes in den Trigger Objekten Falls von „egal“ auf „Update“ ist das Problem bis jetzt nicht mehr aufgetreten. Gruß Alexander
  • Blockly, Denkfehler oder …? [gelöst]

    Moved
    6
    3
    0 Votes
    6 Posts
    1k Views
    M
    Ich habe es mit deiner Hilfe erfolgreich geschafft, Herzlichen Dank ;) 3576_2017-10-24_22h43_54.png
  • [Blocky] Trigger only one time

    Moved
    11
    1
    0 Votes
    11 Posts
    3k Views
    ldittmarL
    Mein Gedanke ist: warum soll ein Trigger 24 Stunden aktiv sein, wenn er z.B. nur einmal am Tag gebraucht wird? Ich halte mein Speicher gerne sauber. ;) Grüße, ldittmar
  • [gelöst] Blockly - HM-IP Taster

    Moved
    6
    0 Votes
    6 Posts
    2k Views
    rantanplanR
    @easy: Btw. benötigen noch weitere HM(IP) Geräte erst ein Dummy-Programm? ` Batterie betriebene Taster. Grüße
  • Zeitplanung - führende 0 bei Minuten

    Moved
    7
    0 Votes
    7 Posts
    1k Views
    tommyr84T
    scheint zu laufen :) werds morgen gleich mal testen, zur Zeit aktiviert er das Licht. Danke für die Hilfe! Bin noch am lernen was javasript betrifft!
  • Script läuft nicht durchgehend

    Moved
    20
    0 Votes
    20 Posts
    2k Views
    arteckA
    ich habe auch schon geschrieben.. dass die 1.2 sich komisch verhält… auf meinen Pi3 verzeichne ich mehr CPU last.. bei 2 JavaScript instanzen.. hmm...
  • Termin in Google Kalender mit IOBroker eintragen.

    Moved
    1
    0 Votes
    1 Posts
    690 Views
    No one has replied
  • Formatfehler wie beheben

    Moved
    13
    1
    0 Votes
    13 Posts
    1k Views
    rantanplanR
    Wie schon gesagt. Das hat alles nichts mehr mit "Formatfehler…." zu tun. Bitte neuen Thread aufmachen z.B. "[Problem] Blockly Zeittrigger…...." Siehe hier: http://forum.iobroker.net/viewtopic.php?f=8&t=2451 Grüße
  • –- Gelöst --- 2 Aktoren nach Rang schalten mit Blockly.

    Moved
    5
    0 Votes
    5 Posts
    823 Views
    J
    Hallo Rantaplan. Funktioniert Super. Danke. :D
  • BLOCKLY Anfänger such Hilfe

    Moved
    6
    1
    0 Votes
    6 Posts
    1k Views
    B
    Hi, Danke für die Hilfe ich hoffe so passt es jetzt: [image: 654_unbenannt.png] Gruß Lars
  • 1 Votes
    1 Posts
    1k Views
    No one has replied
  • Meine ersten schritte mit JavaScript

    Moved
    22
    0 Votes
    22 Posts
    4k Views
    R
    ähm ja bei meinen schaltern muss es so heisen bei der ccu weis ich gerade nicht. werd ich gleich mal reinschrieben Gesendet von meinem SM-G935F mit Tapatalk

672

Online

32.6k

Users

82.3k

Topics

1.3m

Posts