Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.3k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    maxclaudiM
    @Daniel-8 sagte: Also habe ich das richtig interpretiert, das eine 8 Sekundenabfrage kein Problem darstellt Richtig. Es kann auch mit 6 Sek. gefahrlos getestet werden. Das Skript arbeitet mit einer Warteschlange (Queue). Das heißt, alle Anfragen (Watt lesen oder Werte schreiben) werden nacheinander abgearbeitet. Damit das stabil bleibt, müssen die Intervalle auf die Timeout-Zeit (2 Sek.) abgestimmt sein. Voraussetzung ist eine gute, stabile und nicht überlastete WLAN-Verbindung. Evtl. ein extra WLAN mit Access Point (AP) nur für Zendure-Gerät(e). Abfrage-Intervall (GET) const intervalGet = 8; Standard (Empfohlen): 8 Sekunden Technisches Minimum: 5 Sekunden @Daniel-8 sagte: und zwischen dem senden immer 5 Sekunden Pause sind? Richtig. Man kann zwar theoretisch schneller Befehle im ioBroker auslösen, aber das Skript lässt diese erst nach der eingestellten Pause, der Reihe nach, in die Warteschlange. Sende-Pause (POST) const minTimeBreakForSetDpSec = 5; Standard (Empfohlen): 5 Sekunden Technisches Minimum: 4 Sekunden Warum diese Mindestwerte? Stabilität. Die 2x-Timeout-Regel: Sobald Du einen Wert sendest (POST), schickt das Skript sofort eine Abfrage (GET) hinterher, um den Status zu aktualisieren. Im Fehlerfall (WLAN-Lag) dauert dieser Vorgang bis zu 4 Sekunden (2x 2 Sek. bei 2000ms Timeout). Die Sende-Pause muss also immer länger als diese 4 Sekunden sein, sonst stauen sich die Befehle in der Warteschlange.. Abfrage-Puffer: Das Abfrage-Intervall (GET) muss deutlich über dem Timeout liegen, damit das Skript Zeit hat, die Warteschlange nach einem Fehler sauber zu leeren. Wichtig: Bei schlechtem WLAN Wenn das WLAN nicht absolut stabil ist, sollte man die Zeiten nicht verringern, sondern eher erhöhen: intervalGet: auf 10–12 Sekunden minTimeBreak (Pause): auf 8 Sekunden Bei schlechtem Empfang laufen Anfragen evtl. oft in den 2-Sekunden-Timeout. Wenn man dann zu schnell neue Anfragen nachschiebt, "verstopft" die Kommunikation zum Zendure-Gerät komplett und der interne Prozessor (ESP) kommt nicht mehr hinterher. Könnte evtl. sogar die Kommunikation beenden. Nur so ist sichergestellt, dass über HTTP alles reibungslos funktioniert. Mir ist kein Weg bekannt, das auf andere Weise "sicherer" über HTTP zu gewährleisten. Mit den Standard-Einstellungen funktioniert es im Dauerbetrieb sehr zuverlässig.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    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 Themen
    13k Beiträge
    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
  • Liste von Meldungen für Alexa füllen

    javascript blockly
    11
    0 Stimmen
    11 Beiträge
    386 Aufrufe
    C
    @frankyboy73 said in Liste von Meldungen für Alexa füllen: @chrbo80 Hi, du kannst ja in den Datenpunkt Text Message einfach mal was reinschreiben, um es zu testen. [image: 1586700456901-text2.jpg] Mach ich - danke
  • IoBroker iVm. Alexa-ZigBee-Hub

    communication
    2
    0 Stimmen
    2 Beiträge
    372 Aufrufe
    PlasmachefP
    Hallo nochmal, könnte sich jemand kurz Zeit nehmen und mir meine Fragen beantworten ... oder einen anderen Thread verlinken? Grüße und schöne Ostern Plasma :-)
  • Hilfe bei Script zur Aufzählung benötigt

    javascript
    7
    1
    0 Stimmen
    7 Beiträge
    729 Aufrufe
    Mrs-BM
    @paul53 said in Hilfe bei Script zur Aufzählung benötigt: var idDev = id.substring(0, id.lastIndexOf('.')); var name = getObject(idDev).common.name; Ganz lieben Dank!! Funtioniert super!
  • [Gelöst] Script Performance: Blockly oder JS? Ein großes Script oder viele kleine?

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    padrinoP
    Denke, die Optimierungen sind vermutlich im Alltag kaum zu spüren, aber es zu wissen (und zu nutzen), gibt einem ein gutes Gefühl. :D Macht es eigentlich einen Unterschied (Performance), ob ich Falls A, mache Falls b, mache... oder Falls A und B, mache... nutze? =)
  • Wenn Steuerung aus Skript dann ändere Objekt nicht

    javascript blockly
    31
    5
    0 Stimmen
    31 Beiträge
    2k Aufrufe
    madjack84M
    mal ein ganz andrer Ansatz: Bei Level schaue ich ob ein Javascript Kommando rein kommt und setze eine Variable "fromJS". Dann warte ich bis Direction auf 0 zurück fällt und werte über die Variable "fomJS" aus. Dort dann die Automatik komplett zurück setzen bis zur nächsten Bewegung. [image: 1586546966562-fca97669-2cb5-49bb-a41f-8084f44f227d-image.png] Somit entfällt der Timer komplett und es wird ausgewertet sobald der Rolladen wieder steht. Debug muss natürlich raus, aber ansonsten hats eben ganz gut funktioniert. Findet ihr nen Fehler? Hier das Skript: Spoiler <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="" id="lY7^WQ2@/#Q80+BzHyx">blind_moving</variable> <variable type="" id="o=kS9?GhG|!3U6s/P!Q!">fromJS</variable> </variables> <block type="on" id="nT7C=4NMT[KJ*mm~XQod" x="-163" y="-413"> <field name="OID">javascript.0.sun_protection_active</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="#pfd6}j{ge@E%!(j}[l#"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Rolladen.auto_active_Rollo_WZ</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Zjg@-Ffn|FUP7+KEm%)"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> <block type="timeouts_settimeout" id="W,!iXT,2WEDRs5JM-%i(" disabled="true" x="-163" y="-163"> <field name="NAME">timeout2</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="62lw2h9$1+!]FFC-EmE"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.MEQ0735994.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="l3In5$CIy$uL^T{*kV!D"> <field name="NUM">80</field> </block> </value> </block> </statement> </block> <block type="variables_set" id="@:.{J)S.86[LRkTFUjAm" x="-88" y="38"> <field name="VAR" id="lY7^WQ2@/#Q80+BzHyx" variabletype="">blind_moving</field> <value name="VALUE"> <block type="logic_boolean" id="nrZ}F^h)59a7{UutP:Xo"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="SQzGexCD+-mtFkDD%|Xm"> <field name="VAR" id="o=kS9?GhG|!3U6s/P!Q!" variabletype="">fromJS</field> <value name="VALUE"> <block type="logic_boolean" id="m.g9RWer/2zE#HP(=E4h"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="0#X(g}On.E,4.oiB;owO"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="(Ly^wv*{wh:C/dmuHoMc"> <field name="oid">hm-rpc.0.MEQ0735994.1.LEVEL</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="#GUL)N(T0h|w~:l2!Rv"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="pqF)/_kGlvEeTEZ3E9zX"> <field name="TEXT">from funktioniert</field> </shadow> <block type="text_join" id="O=1]UAu|L%qu,JvTs]Hg"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="cUjfbsY3XUZc|24XTTZ7"> <field name="TEXT">Ursprung Rollo Links Aktion = </field> </block> </value> <value name="ADD1"> <block type="on_source" id="PS_Xn(@3TGY|WEeZG{bP"> <field name="ATTR">state.from</field> </block> </value> <value name="ADD2"> <block type="text" id="k?Ei(?=mb,ta]QHa0yy"> <field name="TEXT"> , mit Wert</field> </block> </value> <value name="ADD3"> <block type="on_source" id="f._eITYe58wX-0o$=H/"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="variables_set" id="^xNxZa#MAqkZj(MmkPh"> <field name="VAR" id="lY7^WQ2@/#Q80+BzHyx" variabletype="">blind_moving</field> <value name="VALUE"> <block type="logic_boolean" id="8G7vLNZ^S=2Ot.Fntztn"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_if" id="npU+h406jggC_pJ=E(X"> <value name="IF0"> <block type="logic_compare" id="+9GZrRTu[4@z2d1btjo"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="E^z6J-Y3SW2*7I5_+.g~"> <field name="ATTR">state.from</field> </block> </value> <value name="B"> <block type="text" id="fTZx9r8ej6=)g^SJTi?,"> <field name="TEXT">system.adapter.javascript.0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="5MyRXFSkqb]tLg[GutL"> <field name="VAR" id="o=kS9?GhG|!3U6s/P!Q!" variabletype="">fromJS</field> <value name="VALUE"> <block type="logic_boolean" id="|EcxeQVLUsy1?]w[Fk9I"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="g2v{4jv,CZ:=cTXQ;m}$"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="62#Ox;ukN9xi9S;2zhsI"> <field name="oid">hm-rpc.0.MEQ0735994.1.DIRECTION</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="uq;(k^tNDrnLR4aD@kQ"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="pqF)/_kGlvEeTEZ3E9zX"> <field name="TEXT">from funktioniert</field> </shadow> <block type="text_join" id="8t_v,43^EU~J#A2?3ba"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="q8cUT`f6B;hf]8wyJ-`G"> <field name="TEXT">Ursprung Direction Rollo Links Aktion = </field> </block> </value> <value name="ADD1"> <block type="on_source" id="$X|(:Gy!wiaH~L%tYaDL"> <field name="ATTR">state.from</field> </block> </value> <value name="ADD2"> <block type="text" id="GuJ,L$:~}=3}LBL-kkT"> <field name="TEXT">, Wert = </field> </block> </value> <value name="ADD3"> <block type="on_source" id="H39j(RFDwn?G}~uj8-WG"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="controls_if" id="}(%|KxulU933=rFKcVK{"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="!pfy8bQv9[?r5zV0Wql8" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="=bI7j6UcxWFqmVN5m-kl"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=":2~hN%ByW,kbCjK0TnSm"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="Zpbb8jjQ63V|ajb4$(K"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="}s55P;/vo6E|%?s]9c#"> <field name="VAR" id="lY7^WQ2@/#Q80+Bz`Hyx" variabletype="">blind_moving</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="bqAYMk^%4Egeb!_p]jnc"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_negate" id="iaGYRaC@FAncu!2q:Rtq"> <value name="BOOL"> <block type="variables_get" id="EJ){DJ:|6,Y`e,fhCogj"> <field name="VAR" id="o=kS9?GhG|!3U6s/P!Q!" variabletype="">fromJS</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="X7zt^nhoFPv%iSn|0RIF"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="[QW`1~y=-?)wnc#.#yu"> <field name="TEXT">Direction Methode: Manuell</field> </shadow> </value> <next> <block type="control" id="xcp[t$/M0%:yKCW]E=g5" disabled="true"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Rolladen.auto_active_Rollo_WZ</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="-AD/I;/W_yl-=LAj%Be8"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="debug" id="Tb]inMLQLwv{6=Y+n,9("> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=":yun`pic7Z8f3IJsBY?w"> <field name="TEXT">Directton Methode: Automatik</field> </shadow> </value> </block> </statement> <next> <block type="variables_set" id="FlUDV8^L;A:,trj}J8D="> <field name="VAR" id="lY7^WQ2@/#Q80+Bz`Hyx" variabletype="">blind_moving</field> <value name="VALUE"> <block type="logic_boolean" id="d4#D%i%My}XFD5jV/eT~"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="NCJ$0-+3-VSV#[:8CUZE"> <field name="VAR" id="o=kS9?GhG|!3U6s/P!Q!" variabletype="">fromJS</field> <value name="VALUE"> <block type="logic_boolean" id="0IgUHF`z?SX~%X38CG7B"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="3^-OG_A=[@O8P$#dnGyu"> <field name="VAR" id="lY7^WQ2@/#Q80+Bz`Hyx" variabletype="">blind_moving</field> <value name="VALUE"> <block type="logic_boolean" id="fCNRF*dkui}$MrvR_gCu"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </xml>
  • Gelöst: Logik-Frage zur FALLS-Abarbeitung in Blockly

    javascript blockly
    11
    0 Stimmen
    11 Beiträge
    815 Aufrufe
    B
    @padrino sagte in Logik-Frage zur FALLS-Abarbeitung in Blockly: @Homoran Vielleicht will er Performance sparen und setzt das, was seltener vorkommt als erste Bedingung. :) Richtig. Das war der Hintergund ;-)
  • Infos in Datei schreiben

    blockly communication
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    padrinoP
    @eubecker Also theoretisch solltest Du mit einem einfachen "echo" in eine Datei schreiben können, z.B. so [image: 1586371560203-echo2txt.png] Das Ergebnis auf dem Echo, auf dem das Skript läuft: [image: 1586371742171-txtindat.png]
  • [Gelöst] Zufallszahlen mit Blockly OHNE die Ziffer Null

    blockly
    14
    0 Stimmen
    14 Beiträge
    2k Aufrufe
    B
    Das wird in eine SV geschrieben die von meiner Homematic CCU benötigt wird. Die ist schon als "Zahl" angelegt. Funktioniert soweit.
  • Status einer Zigebee Lampe ob eingeschaltet

    node-red communication
    3
    0 Stimmen
    3 Beiträge
    461 Aufrufe
    E
    @mech sagte in Status einer Zigebee Lampe ob eingeschaltet: Doch meine Frau möchte ihre Lampe auch immer noch per Hand ein/ausschalten. Besteht die Möglichkeit irgendwie den Status der Lampe einzufangen? Das ich ggf. wenn die Lampe physisch ausgeschaltet ist eine Nachricht ala "Die Lampe ist ausgeschaltet" darstellen kann. Mit "per Hand ein/ausschalten" und "Lampe physisch ausgeschaltet" meinst du das die Lampe keine Spannung mehr hat? Also du hast die Zigbee Lampe einfach in die Fassung gedreht und deine Installation so gelassen? Eigentlich müsste dann unter den Zigbee Adapter der "available" Datenpunkt auf "false" gehen oder nicht? Oder ist der zu träge? Aber macht es nicht mehr Sinn deinen Schalter "smart" zu machen? Dann kannst du vom Schalter und von der VIS die Lampe ein/aus schalten. EDIT: @arteck war schneller
  • Hue Lampen: einzeln oder Zimmer schalten?

    javascript blockly
    3
    0 Stimmen
    3 Beiträge
    318 Aufrufe
    ?
    Generell kann die Hue-Bridge nur eine gewisse Anzahl an requests gleichzeitig verarbeiten. Bei mir kann ich aber keinen Unterschied bei 5 Lampen einzeln vs. Raum in Hue feststellen. Hast Du mal getestet, ob der Raum bei Dir ein ähnliches Verhalten beim Schalten der Lampen zeigt?
  • [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

    javascript template
    26
    2 Stimmen
    26 Beiträge
    5k Aufrufe
    W
    @AlCalzone Vielen Dank für das Script bzw. die Idee, wie die Sache mit der gelegentlichen Kartenrotation gelöst werden könnte. Sieht spannend aus. Allerdings habe ich mit dem Script (Version 1) diverse Probleme, die ich noch gelöst bekommen muss: (0) Ich habe auch ein //@ts-ignore vor dem import axios from "axios"; gebraucht, damit das Script überhaupt läuft. OK. (1) Wenn ich den Sauger in einem Raum ohne die Dockingstation laufen lasse und danach auf die Station zurückstelle, enthält die letzte Karte keine Position "charger" und das Script hängt. Das Hängen kann ich programmatisch lösen, indem ich für charger und robot irgendwelche Werte vordefiniere, die dann überschrieben werden, wenn etwas zurückkommt. Ich weiß nur noch nicht, wie ich darauf sinnvoll reagieren könnte. Vielleicht kurz zum Saugen schicken und wieder heim, damit er die Karte neu aufbaut. Vielleicht reicht auch ein "Home"-Befehl. Muss ich noch ausprobieren. (2) Problematischer ist, dass die Funktion setStateAsync nicht zuverlässig funktioniert. function setStateAsync(id: string, state: any): Promise<void> { return new Promise(res => { setState(id, state, () => res()); }); } Nicht zuverlässig funktioniert heißt in dem Fall, es wartet nicht und dann erhalte ich als Kartenrotation für die Raumreinigung manchmal (meistens) -1 anstatt dem berechneten Wert. Das lässt sich auch lösen, indem ich den Wert nicht mit der Kombination aus function rememberMapRotation(rotation: number): Promise<void> { return setStateAsync(idMapRotated, rotation); //Funktioniert nicht zuverlässig } und function getMapRotation(): number { return getState(idMapRotated).val; } schreibe und wieder hole, sondern die Raumreinigung so starte: cleanRoom(room,await testMapRotation()); aber das kommt mir doch recht seltsam vor. Da kann man sich den zusätzlichen state ja gleich sparen. Und Du hättest es ja wohl nicht so gemacht, wenn es nicht eigentlich funktionieren würde. Was habe ich übersehen? Beste Grüße
  • Geofency und Webhook Frage

    monitoring communication
    1
    0 Stimmen
    1 Beiträge
    291 Aufrufe
    Niemand hat geantwortet
  • [Frage] Phyton über JavaScript starten

    Verschoben
    18
    0 Stimmen
    18 Beiträge
    8k Aufrufe
    C
    Hallo, bevor ich einen neuen Thread eröffne, möchte ich hier anknüpfen. Auch ich habe ein Python Script auf meinem Raspberry und ich bekomme das mit dem oben aufgeführten JavaScript zum laufen. Mein Skript startet einen Motor, bzw. ein Relais, und schaltet es nach 10 Sekunden wieder ab. Wenn ich den State auf True setze, wird auch ordentlich das Skript gestartet. (Als das geklappt hat, hab ich vor Freude fast den Schreibtisch umgeworfen, da ich mit Java vorher eigentlich noch nie was zu tun hatte). Kann ich den State auch automatisch von True auf False zurück ändern lassen? Hintergrund ist nun der, dass ich das Objekt in Vis mit einem Button verknüpft habe, und wenn ich den toggle, ändert sich der Status korrekter Weise auf True, aber da bleibt er dann auch. Ich könnte über den Button auch erst wieder auf False umschalten, aber ich fände es schöner wenn ich am Button auch sehen kann, dass der Vorgang am Motor nach 10 Sekunden beendet wurde. Vielen Dank im Voraus vg
  • Frage zu Timer

    javascript blockly
    8
    1
    0 Stimmen
    8 Beiträge
    301 Aufrufe
    Uli977U
    @Homoran Was hälst du hiervon? [image: 1586193136769-855b2f21-3bf7-454a-b8c8-5af4ef6330f9-image.png]
  • Fenster offen Meldung (Blockly)

    Verschoben
    24
    0 Stimmen
    24 Beiträge
    8k Aufrufe
    M
    Ich werde weiter testen
  • Timeout Zeit über VIS an variable übegeben

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    padrinoP
    @ErazorVIP Nur um das Thema komplett abzuschließen... =) Das geht mit Variablen in Blockly schon, aber die Einheit der Zeit muss. "ms" sein, mit "sek" und "min" geht es nicht. Soweit ich das sehe, liegt es daran, dass die beiden intern durch eine Formel mit "ms" ersetzt werden, was zu Problemen führt. :)
  • Zeitplan funktioniert nicht, spezifischer Intervall

    blockly javascript
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    M
    Hallo, so Problem gelöst. Ich habe für meinen alle 2 Wochen am Dienstag Intervall es einfach so gemacht es soll jede Woche am Dienstag schauen ob der Tag gerade oder Ungerade ist und je nachdem eine entsprechende Nachricht abgesetzt werden. schedule("30 17 * * 2", function () { if (parseFloat(formatDate(new Date(), "TT")) % 2 == 1) { sendTo("telegram", "send", { text: 'Hallo denk bitte an die Schwarze Mülltonne', user: 'FailX, Fabienne' }); console.error('test'); } else { sendTo("telegram", "send", { text: 'Hallo denk bitte an die Braune Mülltonne', user: 'FailX, Fabienne' }); } }); Grüße Monsterkiller PS: kann man hier Blocklys direkt einfügen oder geht das nur per Screenshot?
  • Dumme Frage..... Zeitplan

    javascript blockly
    4
    1
    0 Stimmen
    4 Beiträge
    247 Aufrufe
    Uli977U
    @simatec Stimmt, jetzt gehts! Danke dir!
  • ([gelöst]) Daten Sonnensystem Resol auslesen per VBUS

    Gesperrt Verschoben
    118
    0 Stimmen
    118 Beiträge
    34k Aufrufe
    DutchmanD
    Und damit schließe ich diese Thema, Script nicht mehr supported auf zum Adapter! :)
  • Skripte nach Gerätetausch anpassen

    Verschoben
    23
    0 Stimmen
    23 Beiträge
    3k Aufrufe
    I
    @paul53 Danke. So etwas habe ich gesucht. Händig etwas mühsam (Da ist die Lösung mit den Variablen einfacher), aber mit den Scripten wird es dann handlich.

269

Online

32.8k

Benutzer

82.7k

Themen

1.3m

Beiträge