Skip to content

Skripten / Logik

16.6k Topics 214.3k Posts

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

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Topics
    49k Posts
    T
    @Chrunchy sagte: @paul53 sagte: @Chrunchy [sagte]: Funktion createState in der JavaScript-Script-Engine (ab js-controller 6/7) als veraltet (deprecated) betrachtet und durch setObjectNotExists oder extendObject ersetzt. Wie kommst du darauf? Hatt das hier (https://forum.iobroker.net/topic/75919/createstate-deprecated) so verstanden. Das eine ist Adapterentwicklung das andere Javascript-Adapter - ich benutze in beiden "extendObject" - für nicht Adapterentwickler ist createStates() aber besser.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    HumidorH
    @paul53 Danke, du triggerst eine Funktion Alarm1, die selbstständig alle 5min ausgeführt wird, außer der Trigger stoppt diese. [image: 1775796578011-bildschirmfoto-2026-04-10-um-06.49.28.png]
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • keine Wiedergabe der Playlist nach Sayit auf Sonos

    blockly multimedia
    15
    0 Votes
    15 Posts
    2k Views
    T
    @Homoran diesen da: "http://localhost:5005/living room/state" Wie benötigenin den Objekten einen genauen Status des LS. (play oder pause/stop. Da kommt aber nichts brauchbares raus... AH zur Info, ich bin noch auf 1.7.7, weil bei den neuen Versionen TTS nicht funktioniert...
  • Heizungssteuerung

    Moved
    24
    0 Votes
    24 Posts
    4k Views
    paul53P
    @nolimitek sagte: ginge das im Script direkt Ich würde es auf jeden Fall im Script machen. var warmwasser = compareTime('05:00', '06:00', 'between'); function therme() { if(warmwasser) setState(idAktor, true); else { // bisherige Funktion und am Ende des Scripts schedule('0 5 * * *', function() { warmwasser = true; therme(); }); schedule('0 6 * * *', function() { warmwasser = false; therme(); });
  • Anwesenheitssimulator

    security blockly
    3
    0 Votes
    3 Posts
    248 Views
    E
    @htrecksler Servus - vielen Dank für den Tipp - ich werd's mir dann gleich ansehen......
  • Helligkeit ändert sich von alleine

    javascript
    20
    0 Votes
    20 Posts
    1k Views
    M
    es gibt halt so eine Webapp, IP-Adresse eingeben, Passwort und dann schaut es so aus: [image: 1609327084118-bildschirmfoto-2020-12-30-um-12.17.23.png]
  • [gelöst] Countdown erstellen und in VIS

    blockly javascript
    4
    0 Votes
    4 Posts
    408 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
    452 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
    241 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
    282 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
    647 Views
    B
    @paul53 Funktioniert super. Vielen Dank
  • Wie kann man feststellen, von wo der Fehler kommt?

    javascript
    16
    0 Votes
    16 Posts
    566 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].

612

Online

32.8k

Users

82.7k

Topics

1.3m

Posts