Skip to content

Skripten / Logik

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

16.5k Themen 213.4k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    S
    @Berny-K oh sorry, da habe ich das irgendwie überlesen das es bei dir um ein 800 Pro ging.... Sorry!! Du kannst es testen, theoretisch sollte es auch funktionieren, würde nur interessant werden was bei Überschuss am Netzpunkt passiert... ob der 800pro anfängt dann über AC zu laden... Aber da "stecke" ich gar nicht im Thema
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    M
    @schweiger2 Übergabe der Daten an command? z.B. DP: hue.0.Hue_Bridge.Schubladen.command {"on":true,"bri":128,"r":255,"g":0,"b":0,"transitiontime":0}
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    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

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    863 Aufrufe
    A
    Vielen Dank. Bei mir jetzt so. 4677_blocky.jpg
  • Zusätzliche NPM-Module aktualisieren

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    444 Aufrufe
    Niemand hat geantwortet
  • Umwandlung DEC in BIN bzw. Aufteilung in einzelner BITS

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    828 Aufrufe
    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

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    4k Aufrufe
    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

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    629 Aufrufe
    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

    Verschoben
    31
    0 Stimmen
    31 Beiträge
    6k Aufrufe
    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

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    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 ?

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    775 Aufrufe
    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

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    553 Aufrufe
    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

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    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

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    3k Aufrufe
    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

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    592 Aufrufe
    Niemand hat geantwortet
  • Backup - iobroker stoppen bei redis-server

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    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

    Verschoben
    7
    1
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    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

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    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

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    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

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    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.

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    3k Aufrufe
    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

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    732 Aufrufe
    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

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    974 Aufrufe
    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>

706

Online

32.6k

Benutzer

82.3k

Themen

1.3m

Beiträge