Skip to content

Skripten / Logik

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

16.6k Topics 214.0k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    RoddiEFR
    Ok dann warte ich lieber und fang eine frische Installation an wenn die neue Version fertig ist. Wäre es möglich beim aktuallisieren vom ersten Beitrag auch die Versionsnummern zu ändern wie schon jemand Vorgeschlagen hatte? Das macht das es einfacher wenn Änderungen anliegen. Thx
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    B
    @Murphy-0 Heute endlich mal wieder Sonne, so dass die beiden Akkus geladen wurden. Allerdings war es nicht möglich die Akkus auf eine Zellspannung maxVol 3,5V zu bringen. Die höchste Zellspannung war 3,41V und der SOC war 99%. Die jeweilige Akkuspannung war dabei bei 50,2V. Weiter wurde der Akku nicht geladen obwohl immer noch ca. 350W für das Laden zur Verfügung standen. Von daher bin ich, was das Laden bis maxVol 3,5 betrifft noch nicht weiter gekommen. Inzwischen ist maxVol wieder auf 3,34 gefallen und der SOC ist weiterhin bei 99%. Habe auch mal im Adapter den control DP fullChargeNeeded auf true gesetzt, hat aber auch nichts geändert.
  • 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
  • [gelöst] Countdown erstellen und in VIS

    blockly javascript
    4
    0 Votes
    4 Posts
    407 Views
    WszeneW
    @UweRLP Danke ich habe es dann durch eine anders Blockly gefunden wie ich das einrichten muss @Knallochse Danke bit dem Adapter hat mein Vorhaben geklappt
  • Nuki-Extended

    javascript
    4
    0 Votes
    4 Posts
    217 Views
    mcBirneM
    @mcBirne leider hat es keine Auswirkung auf den User. Wenn ich nuki-extended.0.smartlocks.[smartlockname].users.[username].enabled auf false setze ist der Benutzer immer noch aktiv und kann das Schloss öffnen und schließen.
  • [Gelöst] Sonoff MQTT Temperaturwert auslesen

    climate javascript
    22
    2
    0 Votes
    22 Posts
    2k Views
    liv-in-skyL
    @Stefan-Otten das ist ja klasse - hatte schon selbstzweifel :-) meld dich, wenn du noch was dazu brauchst
  • MQTT Datenpunkte automatisch erstellen

    template javascript
    12
    0 Votes
    12 Posts
    2k Views
    HomoranH
    @peterfido sagte in MQTT Datenpunkte automatisch erstellen: Unicode e4 ist demnach ein ä. Das weiß ich. Ich benutze auch keine Umlaute. @peterfido sagte in MQTT Datenpunkte automatisch erstellen: Bei mir werden die Datenpunkte der MQTT Clienten (ESP...) automatisch angelegt. Bei mir auch! auch beim TE! Aber der hat seine clients so programmiert , dass sie viele Werte In einem JSON liefern. Dieses muss er jetzt zerpflücken .
  • Bash auf Influx

    communication
    7
    0 Votes
    7 Posts
    436 Views
    paul53P
    @Megaheat sagte: Gibt es eventuell einen direkten JSON import ? Ich kenne die Webseiten nicht, die Du ausliest. Wenn sie direkt ein JSON liefern, sollte man das auch per Javascript einlesen können. const url = '...'; request(url, function(err, response, json) { if(!err && json) { let obj = JSON.parse(json); // Temp, rH ermitteln } });
  • Javascript Expression Logic Hilfe

    javascript
    11
    0 Votes
    11 Posts
    802 Views
    M
    @paul53 Das stimmt, dankeschön. Man lernt eben nur richtig wenn man ausprobiert und selber dahinter kommt. Vielen dank für die schnelle Hilfe!
  • Soll-/Ist-Zustand erweitert

    javascript
    3
    0 Votes
    3 Posts
    238 Views
    A
    @Asgothian Daran habe ich auch schon gedacht, quasi eine kleine State Machine... Die Idee finde ich gut, das würde ja bedeuten, dass ich mit dem Steuer-Datenpunkt z.B. sage: Einschalten. Zuerst schaltet das Skript dann den Strom ein und setzt den Zustand "startet". Dann fährt der PC hoch, irgendwann erhalte ich z.B. einen Ping als Lebenszeichen und setze den Zustand "läuft". Was passiert, wenn ich während des Hochfahrens bereits den Steuer-Datenpunkt auf "ausschalten" setze? Während des Hochfahrens kann ich ja keinen Shutdown-Befehl setzen und Strom einfach abschalten ist auch eine schlechte Idee. Was meint Ihr, wäre dann das Beste? Die Änderung des Steuer-Datenpunkts nur während "aus" und "läuft" zulassen? Den Befehl fürs Herunterfahren sofort ausführen, sobald der Zustand "läuft" erreicht ist? Den Steuer-Datenpunkt wieder auf "einschalten" zurücksetzen, weil der Zustand noch nicht erreicht ist? Was passiert, wenn der PC nicht startet (z.B. manuelle Eingabe für fsck nötig)? Man könnte einen Timer starten, sobald der Einschalt-Befehl kommt - und wenn der PC sich nicht in einer bestimmten Zeit meldet, wird ein eigener Status "Fehler" gesetzt? Oder wie könnte man so einen Fall abdecken? Was meint Ihr dazu?
  • Skript zum Auslesen der S.USV

    Moved
    6
    1
    0 Votes
    6 Posts
    1k Views
    inlineI
    Liebes Forum, nicht dass mein Skript viele Fragen aufgeworfen hätte, aber der guten Ordnung halber möchte ich euch trotzdem mitteilen dass ich ab sofort keine großartige Hilfe mehr geben kann. Die Batterie meines SUSV ist schon wieder defekt und diesmal hat es auch die Platine erwischt. Da ich sowieso schon ewig keinen Stromausfall mehr hatte und das Ding doch recht teuer ist, werde ich es nicht ersetzen. Ich kann also nichts mehr testen. Liebe Grüße, nachträglich frohe Weihnachten und einen guten Rutsch! Ralf
  • KNX Szene triggern

    blockly scenes javascript
    2
    0 Votes
    2 Posts
    271 Views
    paul53P
    @Steve-MASSARD: bleibt und eben nur beim Betätigen ein 1-Wahr-Telegramm sendet. Trigger auf "wurde aktualisiert". on({id: 'knx.0.xyz'}, function() { //Reaktion });
  • [Frage] Namen der States von Wertetabelle

    Moved
    12
    0 Votes
    12 Posts
    2k Views
    D
    Danke für eure Hilfe. Ich bin irrtümlich davon ausgegangen, dass diese Meldung des Skript-Editors die Ursache dafür sein könnte, dass mein Skript nicht mehr funktioniert. [image: 1608999957882-2020-12-26-17-25-12.png] Es war aber gar nicht der Grund. Ursache war vielmehr, dass ich hier //+++++ Zurücksetzen aller Timer-Werte mit Reset-Button on({id: path+'setVitoTimerReset', change: 'any', val: 'true'}, function(){ for(i = 1; i <= 4; i++){ setState(path+'setVitoTimer'+i+'hAn', 24); setState(path+'setVitoTimer'+i+'mAn', 6); setState(path+'setVitoTimer'+i+'hAus', 24); setState(path+'setVitoTimer'+i+'mAus', 6); } setState(path+'setVitoTimerSetzen', false); setState(path+'setVitoTimerLaden', false); }); das "true" im on-Trigger als String und nicht als boolean deklariert hatte. Mit //+++++ Zurücksetzen aller Timer-Werte mit Reset-Button on({id: path+'setVitoTimerReset', change: 'any', val: true}, function(){ for(i = 1; i <= 4; i++){ setState(path+'setVitoTimer'+i+'hAn', 24); setState(path+'setVitoTimer'+i+'mAn', 6); setState(path+'setVitoTimer'+i+'hAus', 24); setState(path+'setVitoTimer'+i+'mAus', 6); } setState(path+'setVitoTimerSetzen', false); setState(path+'setVitoTimerLaden', false); }); funktioniert es nun wieder, wie gewünscht. Wünsche euch noch schöne Restweihnachten, Thorsten
  • Blockly => x Sekunden zu einer Uhrzeit dazu addieren

    Moved
    14
    1
    0 Votes
    14 Posts
    6k Views
    paul53P
    @FrankDCE sagte: Welches Datenformat muss der Datenpunkt "Auto-Ende Laden Auto" haben? Text? @paul53 sagte in Blockly => x Sekunden zu einer Uhrzeit dazu addieren: ein eigener Datenpunkt vom Typ "Zeichenkette" (string)
  • [gelöst]Licht anlassen, wenn Bewegung erkannt wird

    blockly
    4
    1
    0 Votes
    4 Posts
    646 Views
    B
    @paul53 Funktioniert super. Vielen Dank
  • Wie kann man feststellen, von wo der Fehler kommt?

    javascript
    16
    0 Votes
    16 Posts
    565 Views
    liv-in-skyL
    @bergjet kein thema - dachte mir schon, dass du neu installiert hast
  • [gelöst] Lichtwecker mit Cron -> fehler im Blockly

    blockly javascript
    13
    2
    0 Votes
    13 Posts
    1k Views
    F
    Danke allen! Funktioniert soweit alles wie gewollt. Ob der Script so "sauber" ist kann ich aber nicht beurteilen... :-) Anbei noch die funktionierende Lösung: <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="cron" id="wecker1">wecker1</variable> <variable type="interval" id="Intervall">Intervall</variable> </variables> <block type="procedures_defnoreturn" id="Pgc8VNiU%XB3z~a2X^p7" x="-458" y="-1040"> <field name="NAME">wecker_stellen</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="schedule_create" id="^iAKAEL!OxvNk0=QpqG$"> <field name="NAME">wecker1</field> <value name="SCHEDULE"> <shadow type="field_cron" id="w2^$(SL4_;c5sRlw/h??"> <field name="CRON">* * * * *</field> </shadow> <block type="cron_builder" id="gDhUBD5ldAtbDmD.0Zfp"> <mutation xmlns="http://www.w3.org/1999/xhtml" seconds="false" as_line="false"></mutation> <field name="LINE">FALSE</field> <field name="WITH_SECONDS">FALSE</field> <value name="DOW"> <shadow type="text" id="h6C=GuqgX-~UD,Z}X5(F"> <field name="TEXT">*</field> </shadow> <block type="get_value" id="V-`#Kw,duWYJ{LZlS3.g"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Wecker.Wecker_1.Wecktage_Cron</field> </block> </value> <value name="MONTHS"> <shadow type="text" id=".{W]66rbs0=@Sq@Qv9QG"> <field name="TEXT">*</field> </shadow> </value> <value name="DAYS"> <shadow type="text" id="D`01~Uh)t%vn-kJK8z`^"> <field name="TEXT">*</field> </shadow> </value> <value name="HOURS"> <shadow type="text" id="0WU.?a?.U_v`!]I*=bG("> <field name="TEXT">15</field> </shadow> <block type="get_value" id="lpsX;;UoT4@$yCpZdRm2"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Wecker.Wecker_1.Weckzeit_h</field> </block> </value> <value name="MINUTES"> <shadow type="text" id="JQ6+=ex4?rhrs+0tH,E_"> <field name="TEXT">31</field> </shadow> <block type="get_value" id="$QCPxPRzPz2h:pV!(M*g"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Wecker.Wecker_1.Weckzeit_min</field> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="comment" id="Q^N01Djl}n;wE11)K29F"> <field name="COMMENT">Wecker Schlafzimmer</field> <next> <block type="controls_if" id="a;HC95+9[)vOBU!%K[%A"> <value name="IF0"> <block type="logic_compare" id="v$~UJxDyyN]dOr615,s+"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Ud1:8vQ`p6NI|0s]3m~z"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Wecker.Wecker_1.Wecker_1_MaPa</field> </block> </value> <value name="B"> <block type="logic_boolean" id="CD~yAiHTL7ekiP9.Ou~{"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="XIiw%a#I%Po0S*}WR4)g"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Lights.13.level</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="~K6+(10R^8f^/U#.Yr4$"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="kAsCx*Xi*`U6/yaSItWI"> <value name="IF0"> <block type="logic_compare" id="1oZ)+,56=72R=9~8l9Bx"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ssa9cS}.`cKRTVZvk$P8"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.13.on</field> </block> </value> <value name="B"> <block type="logic_boolean" id="mUd}67#E{t!E6wZ61|Va"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id="7j#xTY@WFY!W#._KBBN="> <field name="NAME">Intervall</field> <field name="INTERVAL">1</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="controls_if" id="mKJHkCt|kSDAgU(d;{]B"> <value name="IF0"> <block type="logic_compare" id=";y[XM99UkG~vC*07FI~I"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id=";0.(oVgLd~7b=r@HWH(O"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.13.level</field> </block> </value> <value name="B"> <block type="get_value" id="nyku|N[WzsUZGO:zlivd"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Licht.Standart_Schlafen_Decke</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="Y+oC)TA*y[,JS:?=5@5:"> <field name="NAME">Intervall</field> </block> </statement> <next> <block type="control" id="M!mZ7~CJiWlyGhZGj=wt"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Lights.13.level</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="+!X,.0Q[?j:o@o@IOVmO"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="qGG|lrOhAo$?@{m3+wl5"> <field name="NUM">1</field> </shadow> <block type="get_value" id="L%$,93y1eurif-Z.xB1~"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.13.level</field> </block> </value> <value name="B"> <shadow type="math_number" id=".sOjyfd/*xTl8rdQB@SI"> <field name="NUM">1</field> </shadow> <block type="math_number" id="eyKM=I]e{@Qw3G-Rz~A-"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_callnoreturn" id="C%`+c}i:!vBV/0VO}9R-" x="263" y="-1063"> <mutation name="wecker_stellen"></mutation> <next> <block type="on_ext" id="/lAG.lcf1y2q^QEZ|g_q"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="2lv[IPb2*kcN(BWc|B!d"> <field name="oid">0_userdata.0.Wecker.Wecker_1.Weckzeit_h</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="oJqNA37,QD@Z(S-SS`-7"> <field name="oid">0_userdata.0.Wecker.Wecker_1.Weckzeit_min</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id=",T]qK|ai~5!bQ#e61kVa"> <field name="oid">0_userdata.0.Wecker.Wecker_1.Wecktage_Cron</field> </shadow> </value> <statement name="STATEMENT"> <block type="schedule_clear" id="$8;=Omg|6,#rx(FXwyYV"> <field name="NAME">wecker1</field> <next> <block type="procedures_callnoreturn" id=",MfiO70pOA[nXP/MdMti"> <mutation name="wecker_stellen"></mutation> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="*k8[E)%1p5,8h%;BYEJA" x="-332" y="-602"> <field name="COMMENT">Wecker Schlafzimmer MaPa</field> </block> </xml> [image: 1608915373424-sharedscreenshot.jpg]
  • Blockly variable Timeout Steuerung

    Moved
    9
    1
    0 Votes
    9 Posts
    4k Views
    peterk34P
    @TGerwald der Fehler ist ziemlich trivial ... das mit der Variable funktioniert nur in MilliSekunden (keine Ahnung warum)
  • 0 Votes
    15 Posts
    1k Views
    Meister MopperM
    @Nas007 Prima, dann setz mal vor den Titel im ersten Beitrag ein [gelöst].
  • Skripte richtig verwalten/anlegen

    blockly
    8
    0 Votes
    8 Posts
    1k Views
    dslraserD
    Ich mache es so... [image: 1608724567581-screenshot_20201223-125533_chrome.jpg]
  • [gelöst]Blockly Cron-Job / Zeitplan

    blockly
    3
    2
    0 Votes
    3 Posts
    287 Views
    GregorSG
    @Meister-Mopper Hat funktioniert. Danke
  • View wechseln

    Moved
    51
    0 Votes
    51 Posts
    11k Views
    D
    Hat sich erledigt, Danke
  • Fehlermeldung im log entschlüsseln

    javascript
    13
    0 Votes
    13 Posts
    740 Views
    M
    @paul53 @Homoran Ich habe den Fehler gefunden. Ich arbeite ausschließlich mit den Aliasen. Bei mir heist der Alias Light_005. In deconz ist es lights/13. Das muss man erst einmal herausfinden... Besten dank aber für eure Hilfe! Ich habe aber noch ein anderes Problem, was unregelmäßig immer dann auftritt, wenn ich in Blockly einen Datenpunkt auswählen will, also z.B. hier den Datenpunkt Lights_Info_Blink: [image: 1608661098522-8e7b750d-adb1-4bba-9246-1ab68dd5be1e-image.png] Ich hatte schonmal im Forum gefragt, aber leider konnte mir hier keiner helfen, vielleicht habt ihr ja noch eine Idee. Der Fehler äußert sich darin, dass ca. 30 Sekunden nichts passiert und der drehende Halbkreis kommt bis dann wieder alles normal funktioniert. Hier die Fehlermeldung: admin.0 2020-12-22 19:16:40.998 warn (24290) Terminated (UNCAUGHT_EXCEPTION): Without reason admin.0 2020-12-22 19:16:40.028 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.028 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.026 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.026 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.024 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.023 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.021 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.020 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.019 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.018 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.015 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.015 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:39.995 info (24290) terminating http server on port 8081 admin.0 2020-12-22 19:16:39.992 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:39.986 error (24290) uncaught exception: Cannot set property 'source' of undefined JS-controller: 3.1.6 Node.js: 12.20 Habt ihr auch hier eine Idee?

634

Online

32.7k

Users

82.5k

Topics

1.3m

Posts