Skip to content

Skripten / Logik

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

16.6k Topics 213.8k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    OliverIOO
    @BertDerKleine Am besten zeigst du mal dein Script, dann kann man bessere Empfehlungen abgeben. Bitte auch mal schreiben warum du aufteilen möchtest obwohl es so funktioniert.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    paul53P
    @13patrick37 sagt: muss ich das "none" unten mit einbauen? Nicht, wenn es nur 3 mögliche Werte gibt.
  • 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
  • Fenster länger als 10min geöffnet -> Alarm

    Moved
    3
    1
    0 Votes
    3 Posts
    876 Views
    A
    Vielen Dank. Bei mir jetzt so. 4677_blocky.jpg
  • Zusätzliche NPM-Module aktualisieren

    Moved
    1
    0 Votes
    1 Posts
    444 Views
    No one has replied
  • Umwandlung DEC in BIN bzw. Aufteilung in einzelner BITS

    Moved
    4
    1
    0 Votes
    4 Posts
    831 Views
    T
    Hallo Paul, schon mal vielen Dank für deine Antwort und LÖSUNG!!! :D Ich habe diese heute morgen mal Studiert und ausprobiert. Da meine JS-Kenntnisse sich auf 0,1% definieren lassen(0,1% = ich weiß das es einen JS-Adapter gibt. ENDE :lol: ), war es nicht ganz so einfach wie gedacht :lol: Aber ich denke ich habe es jetzt verstanden und mal versucht es für JS-Anfänger zu beschreiben. Ich hatte bei dem Import noch eine Fehlermeldung die ich jetzt hoffentlich berichtigt habe? function dec2bool(in) { (habe ich in dp geändert) for(var i = 0; i < 8; i++) { var b = !!(in >> i & 1); (habe ich in dp geändert) (Es läuft auf jeden fall bei mir mal) Nur ich denke das der Weg "Rückwärts", also DOs zu schreiben doch nicht so einfach ist wie gedacht. Aber ich werde es demnächst versuchen und mein Ergebnis Posten :D `const idVar = 'ASIM.Telegram.MODBUS_DI2'; // Datenpunkt-ID Modbus Input var name = 'Modbus.DI_2'; //Legt 8 Datenpunkte im Javascript-Objektordner an var bits = [false,false,false,false,false,false,false,false]; for(var i = 0; i < 8; i++) { var di = 8 - i; createState(name + di, false, {type: 'boolean'}); } function dec2bool(dp) { // function = js befehl / dec2bool = frei vergebener Name für die Funktion / dp = temporäre Variable für die funktion for(var i = 0; i < 8; i++) { var b = !!(dp >> i & 1); if(b != bits[i]) { var di = 8 - i; setState(name + di, b, true); bits[i] = b; } } } on(idVar, function(dp) { // Triggern bei Wertänderung dec2bool(dp.state.val); })`[/i][/i]
  • Ausschalttimer in Blockly

    Moved
    13
    0 Votes
    13 Posts
    4k Views
    R
    ich wollte mich nochmal bedanken und ein feedback geben …. ich habe das jetzt alles mal so nachgebaut, und es funktioniert , vielen dank das mir so schnell und auch so einfach geholfen wurde .... war echt überrascht das die lösung direkt in der ersten antwort kam .... 1000 dank nochmal :)
  • Switch Anfangsstatus

    Moved
    3
    0 Votes
    3 Posts
    629 Views
    T
    Der Punkt ist aber, er muss nicht angeschaltet werden. In den switch node können sachen reinfließen und alle werden zu dem entsprechenden Status des switches geändert geändert. Also kommt eine 1 an den switch folgt ein "true" wenn er eingeschaltet ist. Kommt die 1 wenn der schalter ausgeschaltet ist folgt ein "false". Diese 1 die ich schicke soll aber nicht den Status des schalters ändern können, ich brauch aber ein anfängliches "true" für den schalter. Ich hoffe das war irgendwie verständlich …
  • Verknüpfen mehrerer Objekte mit Blockly

    Moved
    31
    0 Votes
    31 Posts
    6k Views
    paul53P
    @rantanplan: "Objekt ID" liefert nichts. ` Habe gerade mal mit boolschen Test-Datenpunkten getestet: "Objekt ID" liefert die ID des auslösenden Datenpunktes, das Script funktioniert wie erwartet.
  • Problem beim Skript für Farbwechsel mit Hue

    Moved
    5
    0 Votes
    5 Posts
    1k Views
    J
    hmm also dein Skript hab ich versucht, es regt sich da allerdings rein gar nix ^^ Ich hab mir in der Zeit mal ein zweites Skript mit Blockly gebastelt. Das funktioniert soweit. Allerdings ist die Problematik, dass das Objekt Philips_hue.Innr_r1.b (Der der die blaue Farbe der LED steuert) auch die Helligkeit ändert. Durch einfügen vom Objekt Helligkeit_Wohnzimmer. Springt die Helligkeit zwar wieder auf den Ursprungswert zurück. Jedoch erhöht sich die Helligkeit einmal auf 100% und fällt dann runter, was ein unschönen "Blitz"-Effekt erzeugt. Wer eine Idee wieso Philips_hue.Innr_r1.b die Änderung der Helligkeit (Philips_hue.Innr_r1.bri bzw. Philips_hue.Innr_r1.level) vornimmt? [image: yaqgnxrd.jpg]~~![](</s><URL url=)http://fs1.directupload.net/images/180331/yaqgnxrd.jpg" /> [image: dqpncdvx.jpg]![](</s><URL url=)http://fs1.directupload.net/images/180331/dqpncdvx.jpg" />~~
  • Blockly Exec und Multihost ?

    Moved
    5
    0 Votes
    5 Posts
    785 Views
    HomoranH
    genau! und ein Script mit einem EXEC für den Slave muss dann der Instanz .1 zugewiesen werden. Gruß rainer
  • [gelöst] Ist es möglich einen Ordnerinhalt einzulesen

    Moved
    5
    0 Votes
    5 Posts
    554 Views
    PeoplesP
    Irgendwo gibt es anscheinend eine Verwendung von fs. Obwohl ich nur deinen Codeschippsel in einem eigenen Script verwendet habe. Wo weis ich aber nicht. Doch wenn ich das ganzen auf fs1 ändere funktioniert alles bestens Dank dir
  • Script für Fritzbox incoming calls mit http request

    Moved
    4
    0 Votes
    4 Posts
    1k Views
    D
    Habe gerade gesehen, dass es jetzt geht, dass es erst gefüllt wird, wenn ein Anruf kommt. Aber eine Rückwärtssuche ist das nicht, hat da jemand bereits mal das oertliche angesehen, da gibt es eine api? http://www.dasoertliche.de/?form_name=s … =%callerid
  • Javascript schedule alle 15 min /15 funktioniert nicht

    Moved
    5
    0 Votes
    5 Posts
    3k Views
    SteffS
    Hallo Zippolighter, hattest du vielleicht beim erstellen der Cron-Ausgabe statt "Alle N Minuten" die Eingabebox "Jede ausgewählte Minute" benutzt? Das könnte den Fehler erklären (bin selber auch schon in die Falle getappt) :D Gruß Steffen
  • Super simples Skript für Steckdosenüberwachung / Waschmaschine

    Moved
    1
    0 Votes
    1 Posts
    593 Views
    No one has replied
  • Backup - iobroker stoppen bei redis-server

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    apollon77A
    Ohje … bin nur mit Handy bewaffnet, daher jetzt nur Stichworte zum selbst googeln. Wenn ich am Wochenende mal Zeit hab tipper ich mal was längeres zusammen: generell „Redis persistent“ Redis kann snapshots machen als file. Automatisch (konfigfile von Redis einstellbar) oder per Redis-cli mit Kommando BGSAVE. Das file kannst du dann sichern. Und falls er mal neu startet lädt er das auch wieder. Sind halt nur snapshots zu Zeitpunkten. Alles was danach sich ändert ist nicht gesichert. adf auch konfig im Redis konfig. Dann schreibt er zusätzlich eine Art logfile und hat damit auch bei einem Neustart immer den aktuellsten stand. Aber ist für sd Karten eher nicht geeignet ;-) Das skript was alle States rauszieht und in ein file speichert geht auch. Am Ende ist es die Frage welche Sicherheit du haben willst vor allem wenn du Redis mal Updates und er dabei Neustartet. Im default sind alle Daten weg.
  • Werte aus Ical bzw. google kalendar auslesen

    Moved
    7
    1
    0 Votes
    7 Posts
    2k Views
    juergen2908J
    Hallo, Zur Info: Mit ifttt funktioniert es jetzt :) War doch einfacher als im ical! Werde jetzt mit blockly weiterarbeiten. Jetzt muss ich noch schauen, wie ich die Minutes und Seconds auf Deutsch umwandle? [image: 1693_ifttt_stracva.png] LG
  • [GELÖST] state auslesen und state setzen

    Moved
    6
    0 Votes
    6 Posts
    2k Views
    T
    Guten Morgen Paul, erstmal, Danke, Danke und nochmal Danke. Der Grund warum ich den Typ "String" gewählt habe ist Copy&Paste… Ich versuche gerade endlich Javascript zu verstehen und zu Lernen und deswegen versuche ich mich an kleinen Scripts um zu verstehen wie sieh funktionieren. Es ist für mich sehr Hilfreich das du mir auch bestimmte Zustände erklärt hast, wie z.B. das der Datenpunkt erst Aktuallisiert wird wenn er geändert wird und mir aber auch aufzeigst wie mann dies erzwingen kann. Vielen Dank, da habe ich wieder etwas gelernt! :D Schöne Ostern und Gruß, Tom
  • State automatisch erfragen Hue Lichter

    Moved
    16
    0 Votes
    16 Posts
    3k Views
    P
    @mickyboys: Das funktioniert aber nur einmal! Wurde das Licht manuell ausgeschalten und man versucht es im VIS anzuschalten bleibt der Status im VIS auf ON. Da das Skript ja nur triggered sobald der reachable Status von True auf False wechselt. In dem oberen Fall ist reachble aber schon auf False und aendert deshalb nicht mehr den Status im VIS… Noch eine Idee - ich kann doch nicht der einzige sein der seine Hue Lichter versucht sinnvoll zu schalten - Danke, Axel ` Verbiete im VIS einfach das schalten bzw. verstecke das Widget, wenn reachable auf false steht, du kannst dann ja eh nicht einschalten. Alternativ triggere ebenfalls auf "on" bei "false->true" und frage dann reachable ab. Wenn reachable noch auf false steht setze "on" wieder auf false. Ggf. noch mit Verzögerung vor der reachable-Abfrage, um auf Aktualisierung nach Schalten am Wandschalter zu warten. Und nein, so richtig sinnvoll wird es leider nicht werden, wenn du HUE-Lampen zusätzlich mit den Wandschaltern stromlos schaltest. weitere Lösung: Die Wandschalter durch Zigbee Schalter ersetzen und die Auslässe dauerhaft bestromen.
  • Sonnenuntergang als Trigger

    Moved
    4
    0 Votes
    4 Posts
    1k Views
    modmaxM
    Um mehr als JA zu sagen: In Blockly den Auswahlpunkt "trigger" auswählen. Dort finden man das Blockly für "Astro", das per default auf Sonnenuntergang steht, aber direkt im Blockly geändert werden kann.
  • [GELÖST] Datum heute, morgen, übermorgen etc.

    Moved
    10
    0 Votes
    10 Posts
    3k Views
    T
    Hi Buzzy, dann wird uebermorgen aber zum 01.04.2018 und nicht zum 31.03.2018. Gruß, Tom
  • Keine Log Ausgabe mehr innerhalb der javascript Instanz

    Moved
    4
    1
    0 Votes
    4 Posts
    732 Views
    GoerschG
    bei Verwendung von redis klappen auch die Log Ausgaben. Ich sah da keinen Zusammenhang, weshalb ich nicht erwähnt habe, dass ich von redis auf Datei gewechselt bin :oops:
  • Rechnen mit Blockly

    Moved
    2
    0 Votes
    2 Posts
    976 Views
    G
    Hallo, ich bin zwar ganz neu in der ioBroker-Welt, aber als Lösungsansatz würde ich so etwas versuchen (geht sicherlich einfacher). [image: 6538_unbenannt.jpg] ! ```` <xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule" id="D)hjst=#bI8.q{.M8fo%" x="13" y="13"><field name="SCHEDULE">/30 * 23 * * </field> <statement name="STATEMENT"><block type="comment" id="o9y2~.e+vl#wd5,emL%K"><field name="COMMENT">folgend nur als Platzhalter. Müssen natürlich Fenster rein</field> <next><block type="variables_set" id="H;Lll,Sw2!-bbt%,3/GB"><field name="VAR">1</field> <value name="VALUE"><block type="logic_boolean" id="nBU_d4mW]MSVU%p~0SA"><field name="BOOL">TRUE</field></block></value> <next><block type="variables_set" id="bz.(J_3V2bd}T8H#UCW"><field name="VAR">2</field> <value name="VALUE"><block type="logic_boolean" id="249z^BAWy_HNwO[[kxv"><field name="BOOL">TRUE</field></block></value> <next><block type="variables_set" id=".hVrZQaUq^I%+Or/_b~K"><field name="VAR">3</field> <value name="VALUE"><block type="logic_boolean" id="fX3yd}EAb?YAce9l6*#"><field name="BOOL">TRUE</field></block></value> <next><block type="variables_set" id="F]vJ:rMtL-9TZD7-|c+"><field name="VAR">4</field> <value name="VALUE"><block type="logic_boolean" id="TjC~)yjRJ/9-Ra#QD]q"><field name="BOOL">TRUE</field></block></value> <next><block type="variables_set" id="x/I11bjv7svsunHvlpeL"><field name="VAR">zähler</field> <value name="VALUE"><block type="math_number" id="ab.EyO6l5M++q!g/SF(4"><field name="NUM">0</field></block></value> <next><block type="comment" id="[4iH@I@/}|xy/=YEMS.{"><field name="COMMENT">jedes Fenster Prüfen und Variable zählen lassen</field> <next><block type="controls_if" id="OZ+StWRC@Zqcye+/E~{i"><value name="IF0"><block type="logic_compare" id="~QXY]|v4b-wp#]:AT~vF"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="-H5XGpx!5(7lVzV:A!-T"><field name="VAR">1</field></block></value> <value name="B"><block type="logic_boolean" id="GeU#JdwRus3FEyifXNpf"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="math_change" id="h#SsZj1*Ye8r1?LmM1Q#"><field name="VAR">zähler</field> <value name="DELTA"><shadow type="math_number" id="N%H;6~+E3!W@xS+cGqX/"><field name="NUM">1</field></shadow></value> <next><block type="debug" id="8o4=8V.}Iuny[%A~Sd,"><field name="Severity">warn</field> <value name="TEXT"><shadow type="text" id="j,-n2A{leL_s%W=@LzMF"><field name="TEXT">in if</field></shadow></value></block></next></block></statement> <next><block type="controls_if" id="z:EaXZkW~FyI{Ed/LTtf"><value name="IF0"><block type="logic_compare" id="Y0f2m+Z+[0gzPF]CioL"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="9^Ybgh/WErrq6RmJQA^k"><field name="VAR">2</field></block></value> <value name="B"><block type="logic_boolean" id="tK*pH~1ef([hAml|48u("><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="math_change" id="A8@B~xf+KZkI+IENd3jf"><field name="VAR">zähler</field> <value name="DELTA"><shadow type="math_number" id="OiiqN#NTd}Gc=KaP)iJ"><field name="NUM">1</field></shadow></value></block></statement> <next><block type="controls_if" id="nO?BtyB%s35K/vv/q22-"><value name="IF0"><block type="logic_compare" id=".aN)Ni##oiN+~?!LWd|H"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="MTL=c1~7jf+6R8h5eisF"><field name="VAR">3</field></block></value> <value name="B"><block type="logic_boolean" id="yN0.eUv]0N9cAB,6KRiq"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="math_change" id="s1wJ?e,Icyms5~O4q1=F"><field name="VAR">zähler</field> <value name="DELTA"><shadow type="math_number" id="5H5:q7S,K~u_1V^7H,52"><field name="NUM">1</field></shadow></value></block></statement> <next><block type="controls_if" id="@5p=K|.2lM[O:VfQl]."><value name="IF0"><block type="logic_compare" id="@QfQx7Q%~cC3LzyV{+J|"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="U0/!q|W{dy|^u1|NykyS"><field name="VAR">4</field></block></value> <value name="B"><block type="logic_boolean" id="Q#SGuc.5Z:G969o!G:K?"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="math_change" id="|*{16Ec]c@|88#e#IkHg"><field name="VAR">zähler</field> <value name="DELTA"><shadow type="math_number" id="avk,t|,CMHEjnLLC%cCu"><field name="NUM">1</field></shadow></value></block></statement> <next><block type="comment" id="T,.QZ#!H6=;-9ZE?P8"><field name="COMMENT">Ergebnis ein Datenpunkt schreiben</field> <next><block type="control" id="X;]{87[yzCK?CKF~{pAM"><mutation delay_input="false"></mutation> <field name="OID">vis.0.counter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_tonumber" id="Z+i4oT~C:;cYj4Q+i5ca"><value name="VALUE"><block type="variables_get" id="T0._2!.Ud1eeI2A:oPAu"><field name="VAR">zähler</field></block></value></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml>

554

Online

32.7k

Users

82.4k

Topics

1.3m

Posts