Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.9k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    S
    Ich habe hier einen 2400 AC (ohne +).. da gibt es (noch?) keine 2.0.1...
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    D
    Nochmals herzlichen Dank!!!
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    A
    @OliverIO Für mich als ex. Elektroninstallateur ist es eben vielfach einfacher in einer Maske zu sehen was der Code eigentlich machen sollte, als in einem strukturierten Text. Wir verwenden bei uns im Job auch sehr viel strukturierte Text für Steuerungsfunktionen, aber das ist in der Regel eine andere Abteilung, ich bin nur zuständig, dass die Elektropläne korrekt und vollständig für alle sind. Klar, dass interesse an den Möglichkeiten ist schon lange geweckt, aber wie bei allem, wenn man das nicht oft macht, vergisst man sehr vieles wieder. Bei mir ist entstehen solche Dinge eben manchmal aus "dummen" Ideen, oder eben aus "herausforderungen" die man nicht direkt sucht. Ich arbeite mich jetzt mal rund um und schaue was da raus kommt. Nochmals herzlichen Dank Gruss Andi (aus der überhitzten Schweiz)
  • Problem mit getAstroDate - Fehler in suncalc?

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    831 Aufrufe
    Niemand hat geantwortet
  • Variablen aus ccu

    Verschoben
    21
    1
    0 Stimmen
    21 Beiträge
    2k Aufrufe
    DutchmanD
    @totocotonio: Hätte also auch die "36" nehmen können. Das mit den virtuellen Tastern war mir bekannt, nur wusste ich nicht deren andere Funktion die man nutzen kann. Danke nochmal für die Hilfe. ` Genau, du musst halt nur den HM-Rega adapter dies bezueglich konfigurieren standard is daar der "50" als poll eingegeben ~Dutch
  • Onkyo Receiver, Alexa, Blockly

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    987 Aufrufe
    HomoranH
    Hallo und Willkommen im Forum! @hypuh: Hat da jemand Erfahrung in Verbindung mit Onkyo Receivern und vielleicht ein passendes Script für mich da? ` Dass es einen Adapter gibt weisst du? Solltest du das wissen und trotzdem noch etwas suchen, wäre hier vielleicht noch etwas: http://forum.iobroker.net/viewtopic.php … eer#p99034 Gruß Rainer
  • GELÖST: Skript und modbus

    Verschoben
    7
    2
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    D
    Das passt schon so, jetzt merk ich mir den Unterschied sicher :D
  • [Skript] Philips TV steuern

    Verschoben
    14
    0 Stimmen
    14 Beiträge
    7k Aufrufe
    AlCalzoneA
    => http://forum.iobroker.net/viewtopic.php?f=36&t=9299 Tester willkommen!
  • In welchem Script wird Schalter genutzt

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    813 Aufrufe
    OstfrieseUnterwegsO
    Ich hatte mal vor langer Zeit einen Erweiterungswunsch in Jira eingestellt. Ich hätte gerne die Möglichkeit bei jedem Objekt einfach feststellen zu können wo es benutzt wird. Also welche Subscriptions es gibt, ob es in irgendwelchen Scenes drin ist, Enums, Scripte usw. Ich weiß aber nicht, ob das irgendwie in Trello übertragen wurde.
  • [UMFRAGE] Wie organisiert ihr eure Skripts?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    873 Aufrufe
    P
    Hallo, ich lass mal einen Screenshot sprechen: [image: 261_bildschirmfoto_2017-11-26_um_02.15.08.jpg] Es gibt Skripte, die nur eine kleine Sache erledigen und es gibt ganz komplexe Skripte, die zB via RegExp mehrere Objekte überwachen. Ich mag schon gern diese komplexen Dinger, die mit RegExp zB alle LOWBAT Datenpunkte oder so überwachen und gleich automatisch die richtigen Logs auswerfen. Leider sind die sehr schwer zu lesen und benötigen oft so viele Kommentar- und Erklärtextzeilen, dass man auch gleich einfachen Code auf mehrere Skripte verteilen könnte. Es gibt also alle Variationen (nach Raum, nach Gewerk, nach Funktion, …). Chaos mit System eben :lol: Pix
  • [gelöst] ioBroker Werte werden nicht in Scripte übernommen

    Verschoben
    5
    3
    0 Stimmen
    5 Beiträge
    855 Aufrufe
    L
    Hallo zusammen, erstmal danke für die Antworten. Ich habe mir das Ganze nochmal angeschaut, da der Fehler doch noch da zu sein schien. Es war am Ende aber ganz trivial… Ich Idiot habe auf die falschen Objektpunkte getriggert und in einem anderen Script einen Fehler in meiner Berechnung gehabt. Beides zusammen hat mich dann glauben lassen, dass in Skripten die Werte aus dem Objektbaum nicht berücksichtigt werden. Ich habe jetzt auch die Scripte nach meinen Vorstellungen sortiert, ohne Probleme. Gruß Larry
  • Probleme mit Astro-Funktion

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    3k Aufrufe
    S
    Hi! In dem ersten Beitrag hatte ich dieses Skript schon mal angeführt. Insgesamt sieht es bei mir so aus: schedule({astro: "sunset", shift: 0}, function () { setState("hm-rpc.0.XXX.1.STATE", true); //Lichtschlauch am Spieltrum setState("hm-rpc.0.XXX.1.STATE", true); //Lichtschläuche an der Magnolie log('Abenddämmerung - Außenbeleuchtung wird eingeschaltet'); sendTo("system.adapter.pushover.0",'Abenddämmerung - Außenbeleuchtung wird eingeschaltet'); }); Das andere Skript speichert inzwischen sauber die Zeiten in die angelegte Variablen. Aber dieses hier löst nicht aus. Habe zum Testen das pushover aktiviert.
  • Konvertierung von Werten

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    R
    Hier mal ein Beispiel: [image: 2216_berechnen.jpg] Für "steuere Objekt" musst du noch ein Objekt anlegen. Dann bei der Berechnung das gleiche Objekt auswählen (bei dir LEVEL) wie im Trigger. Danach wird dann bei jeder Änderung des Ursprungsobjektes die Berechnung ausgeführt. Was ich jetzt nicht weiß, wie das bei Javaskript mit Punkt- und Strichrechnung ist. Musst du dir ausprobieren. :D Enrico
  • Mehrere Trigger fuer eine bestimmte Zeit abfangen (z.B. Sturmklingeln) (Blockly)

    Verschoben
    14
    0 Stimmen
    14 Beiträge
    3k Aufrufe
    N
    Danke, ich wollte auch nur sicher sein. Nur nicht, dass es Grundsaetzlich anders sein soll, ich gewoehne mir das an, und hinterher wundere ich mich, warum die Haelfte nicht funktioniert oder sowas. Administration ist mir nicht fremd, aber Programmieren ist einfach doch sehr neu fuer mich, da will ich nicht gleich bei den grundsaetzlichen Sachen mir Fehler angewoehnen…
  • Anfänger Frage: Wie ein bash script mit Alexa verbinden?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    699 Aufrufe
    DutchmanD
    @NyanCat: So, falls jemand anders noch das Problem haben sollte, ich habs geschafft. Habe mit Blocky jetzt erst mal einen testscript zusammengestellt. (siehe Bild) Bitte sagen, falls jemand da noch ne elegantere Lösung kennt. Danke und Grüße. ` Sieht schon ok aus so, mit anderen Worten: abhängig von der Variable schickst du das nötige Kommando per Konsolen Befehl –----------------------- Send from mobile device
  • Rollladen Script mit Sunrise/Sunset und zusätzlicher Bedingung

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    3k Aufrufe
    L
    mensch was eine komplexe logik, aber ich habs verstanden mit deiner Hilfe, Danke! :) naja eigentlich nicht komplex, aber da muss man erstmal drauf kommen wenn man das nicht tag für tag programmiert :) Ich habs mal versucht selbst um die abendliche Funktion zu erweitern! Habs jetzt so mal ans Laufen gebracht und bin gespannt obs klappt :) // Datenpunkt-IDs const idAuto = 'Dummyschalter.0.Automation.Rolloautomatik'; // Dummyschalter für Rolladenautomatik const idWinter = 'Dummyschalter.0.Automation.Rollo_winter'; // Dummyschalter für Winterbetrieb const idWinterRauf = 'scene.0.Rollo_hoch'; // Szene Rolladen rauf im Winter const idSommerRauf = 'scene.0.Rollo_hoch'; // Szene Rolladen rauf im Sommer const idWinterZu = 'scene.0.Rollo_winter_runter'; // Szene Rolladen runter im Winter const idSommerZu = 'scene.0.Rollo_sommer_runter'; // Szene Rolladen runter im Sommer // Variablen werden bei Skriptstart initialisiert var auto = getState(idAuto).val; var winter = getState(idWinter).val; var tag = isAstroDay(); var morgens = compareTime('6:30', '8:00', 'between'); var abends = compareTime('17:00', '21:50', 'between'); function Rollosrauf() { if(auto) { if(winter) setState(idWinterRauf, true); else setState(idSommerRauf, true); } } function Rollosrunter() { if(auto) { if(winter) setState(idWinterZu, true); else setState(idSommerZu, true); } } schedule('30 6 * * *', function() { morgens = true; if(tag) Rollosrauf(); }); schedule('0 8 * * *', function() { morgens = false; if(!tag) Rollosrauf(); }); schedule('0 17 * * *', function() { abends = true; if(!tag) Rollosrunter(); }); schedule('50 21 * * *', function() { abends = false; if(tag) Rollosrunter(); }); schedule({astro: 'sunrise'}, function () { tag = true; if(morgens) Rollosrauf(); }); schedule({astro: 'sunset'}, function () { tag = false; if(abends) Rollosrunter(); }); on(idAuto, function(dp) { auto = dp.state.val; }); on(idWinter, function(dp) { winter = dp.state.val; });
  • [ VORLAGE ] Nächste X Termine anzeigen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Schleifen und Timeouts

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    632 Aufrufe
    AlCalzoneA
    Im Prinzip kannst du das fast so machen wie du geschrieben hast - aber die Schleife ist humbug. Aktuell schaltest du nach 2 Minuten die Lampe 6x aus und beendest das Intervall sofort. Stattdessen brauchst du eine Variable, die du vor dem 2-Minuten-Intervall auf 0 setzt und in jedem Intervalldurchlauf um 1 erhöhst. Ist diese gleich 6, Licht ausschalten und Intervall beenden. Oder du benutzt Dutch's Vorschlag: Funktion "Licht aus" (damit du den Schaltvorgang nur 1x definieren musst) Timer A mit 2 Minuten Verzögerung => "Licht aus" aufrufen, Timer B stoppen. Timer B mit 12 Minuten Verzögerung => "Licht aus" aufrufen. Bei Trigger: Wenn Timer laufen, diese stoppen. Dann Timer A/B starten.
  • Frage zu JS Code (Neuling kenn sich noch nicht so aus)

    Verschoben
    21
    0 Stimmen
    21 Beiträge
    3k Aufrufe
    P
    Hallo, hab das mal schnell im Online-Editor geschrieben. Das sollte auch gehen und nutzt RegExp. Als Beispiel und Denkanstoß debug kann man weglassen (natürlich dann auch die Logzeile) Einzeilige Kommentare mit // beginnen, mehrzeilige Kommentare in /* und */ einschließen Hinweis: in der if-Abfrage ist das Ausrufezeichen genutzt. Das ist die Kurzschreibweise für die Abfrage auf false. Grundsätzlich gilt ja: wenn mindestens ein Gerät auf true, dann anwesend. Wenn alle Geräte auf false, dann abwesend. /* Andrea und Christian Handy auf Anwesenheit prüfen Regexp auf radar.0.Christian_Tablet.here und radar.0.Andrea_Handy.here */ var debug = true; // Bei Änderung on(/^radar\.[0-9]\.*here$/, function (obj) { // Triggert bei Wertänderung if (debug) log('Anwesenheitserkennung: ' + obj.common.name + ' auf ' + obj.state.val + ' gesetzt ' >; if (obj.state.val) setState("hm-rega.0.950", true); // wenn ein Trigger true, dann anwesend else { if (!getState('radar.0.Andrea_Handy.here').val && !getState('radar.0.Christian_Tablet.here').val) setState("hm-rega.0.950", false); // wenn jetzt beide false dann abwesend } }); // bei Skriptstart if (getState('radar.0.Andrea_Handy.here').val || getState('radar.0.Christian_Tablet.here').val) setState("hm-rega.0.950", true); else setState("hm-rega.0.950", false); Ach, mit der Vorschau Funktion im Forum-Editor kann man den Text nochmal prüfen und ggf. Schreibfehler finden :-D Gruß Pix
  • [Script] Abfrage Wertänderung ?

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    992 Aufrufe
    C
    Ah jetzt ja :) Dann passt das doch und ich brauche einfach ein zweites was dann beim ausschalten triggert also wenn die watt absinken. Danke! LG Michael
  • [FRAGE] Balkengrafik mit javascript über simple-api

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    536 Aufrufe
    Niemand hat geantwortet
  • Bri Wert bei Philips Hue

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    M
    Guten Morgen, dank der vorangegangenen Hinweise konnte ich feststellen das es etwas mit den Variablen zu tun hat. Im Vorsystem habe ich zu besseren Erkennbarkeit die Variablen auf ein deutsches: ein und aus umgestellt. Diese Variablen werden als String über mqtt versendet. Ich sehe dass auch so unter Objekte (siehe Anhang). Mein Script sieht derzeit so aus wie im 2ten Bild im Anhang, aber es läuft nicht, nur die Fehlermeldung kommt. Ist da noch was im MQTT-Teil verkehrt? Ich tappe völlig im dunkeln! Danke für Eure Zeit! Gruß Marko 4195_mqtt-hue_3.jpg 4195_mqtt-hue_4.jpg
  • Farbe aus einen Bild auslesen

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    T
    …Danke euch beiden. Beides sehr hilfreich! ! ```` ! var Jimp = require("jimp"); var pixel; var RGB; var pixel_rgb; var red_value; var green_value; var blue_value; ! //Return as RGB ;-) //######################################## Jimp.read("E:/test.jpg", function (err, image) { pixel = image.getPixelColor(100,100); RGB = Jimp.intToRGBA(pixel); pixel_rgb = JSON.stringify(RGB); red_value = RGB['r']; green_value = RGB['g']; blue_value = RGB['b']; console.log(pixel_rgb); console.log(red_value); console.log(green_value); console.log(blue_value); //Return as HEX //######################################## function padStart(source, targetLength,padString) { targetLength = targetLength>>0; //floor if number or convert non-number to 0; padString = String(padString || ' '); if (source.length > targetLength) { return source; } else { targetLength = targetLength - source.length; if (targetLength > padString.length) { padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed } return padString.slice(0,targetLength) + String(source); } } ! console.log('#' + padStart(pixel.toString(16), 8)); }); ! ```` …..wenn es noch jemand benötigt! Grüße, Torsten

449

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge