Skip to content

Skripten / Logik

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

16.4k Themen 211.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    P
    @ArnoD Ich hatte an diesen Tagen keine Ladevorgänge gestartet oder abgeschlossen.
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    mcm1957M
    @zolpetol sagte in Frequenz Update Datenpunkt / Blockly-Zähler: Ich plane eine Wasseruhr mit Reedkontakt am Shelly Addon zu installieren. Bei einem Impuls je 0,25 Liter ergibt das beim Füllen eines 10 Liter Eimers in 30 Sekunden (ca. 4 bar), ca. 40 Impulse in 30 Sekunden, also 1 Impuls / 0,75 Sekunden. Beim Füllen einer Badewanne sind das ca. 800 Impulse in 10 Minuten. Kann der entsprechende Datenpunkt so schnell zwischen true/false wechseln und kann ein Blockly da den Wasserverbrauch mitzählen/summieren? Der Shelly sollte dir wahrscheinlich die Daten senden können. Habs aber nicht getestet. Sind ja nur ca 3 Meldungen / s. Ob es ioBroker verarbeiten kann hängt dann von deinem System ab - ein Pi2 ist da langsamer als ein ausgewachsener Rechner :-) Du kannst du aber auch den Shelly Plus Uni ansehen. Der hat einen COUNTER Eingang der bis zu 1kHz zählen kann. Das ist eher schon zu empfindlich. Dort kannst du einstellen nach wie vielen Impulsen du einen Statusupdate haben willst. https://www.shelly.com/blogs/documentation/shelly-plus-uni
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • Script läuft nicht

    Verschoben
    9
    1
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    R
    Du hast für "falls" die Trigger-Blöcke genommen, du musst aber die "falls"-Blöcke aus dem Logic-Teil (blau,türkis) nehmen! Enrico
  • Problem mit getAstroDate - Fehler in suncalc?

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    771 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
    825 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
    776 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
    627 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
    763 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
    696 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
    2k 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
    589 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
    2k 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
    987 Aufrufe
    Niemand hat geantwortet
  • Schleifen und Timeouts

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    589 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
    2k 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
    791 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
    445 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

730

Online

32.4k

Benutzer

81.6k

Themen

1.3m

Beiträge