Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.7k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    maxclaudiM
    Hier ist der zweite Teil des Archivs zum Download. Bitte denkt daran, diese Datei (zendure_Info.z01) zusammen mit der Hauptdatei aus dem ersten Beitrag in denselben Ordner zu legen, bevor ihr den Entpackvorgang startet. download part 2v2: zendure_Info.z01
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    U
    @matze55 sagte: die stehen in der API dann zeig doch mal wie die Attribute des Json aussehen. Dann kann Dir auch jemand helfen
  • Hilfe für Skripterstellung mit Node-RED

    962 13k
    962 Themen
    13k Beiträge
    Marc BergM
    @Thomas-Braun sagte: In der Konfigurationsdatei von Node Red, also in der settings.js, kann durch hinzufügen der Zeitzone das Problem behoben werden. Wenn man den Adapter nutzt, werden Änderungen in der settings.js immer wieder überschrieben. Das bringt nichts. @taddy81 Was konkret ist denn das Problem? Lösen die inject Nodes falsch aus? Oder geht es nur um diese Meldung, bei der niemand weiß, woher sie kommt? @Taddy81 sagte: Auszug: 7/26/2026, 11:15:23 AMnode: debug 3msg.payload : string[24]
  • Bei Eingabe über Tastatur oder Tablet Timer zurücksetzen

    2
    0 Stimmen
    2 Beiträge
    295 Aufrufe
    liv-in-skyL
    @fleck-a87 das problem dabei ist , dass die vis das wissen muss, wann du etwas eingibst und die vis dann den timeout unterbrechen soll du müßtest ein script in der vis am laufen haben, dass dies überprüft und ausführt - machbar - aber nicht ganz trivial du könntest dir aber einen button machen, der das unterbricht - also einen extra schalter dafür (der auf jeder view zu sehen ist, der einen datenpunkt setzt. den dp fügst du dann in dein obiges script ein (if-abfrage ob true/false und stoppen des timeouts) .
  • Uhrzeitabhängiges Dimmen mit Skript

    3
    0 Stimmen
    3 Beiträge
    344 Aufrufe
    T
    @ft-knorr Hier ein Ausschnitt aus meinem Skript das etwas ähnliches tut. Der Code unten ist aus dem Skript kopiert das deutlich umfangreicher ist. EDIT: Dachte ich wäre im Unterforum Javascript. :) const DEBUG = false; const maxCt = 500; const minCt = 250; const maxBri = 190; const minBri = 80; const endHourOfFade = 22;//1-24 const startHourOfFade = 20 ; function main() { var currentSunSet = getAstroDate("sunset"); if (timeIsBetween(new Date(),currentSunSet, endHourOfFade+':00') ) { if (DEBUG) console.log('Fade 1. Abschnitt: Sonnenuntergang:'+currentSunSet+' aktuelle Zeit:'+new Date()); fadeLights(currentSunSet, new Date()); myInterval = setInterval(function(){ fadeLights(currentSunSet, new Date()); },5000); // bleibe Nachts bei den zurückhaltenden Einstellungen, ab 4 Uhr ist die Automatik beendet } else if (timeIsBetween(currentTime,endHourOfFade+':00','04:00')){ if (DEBUG) console.log('Fade 2. Abschnitt'); setState('deconz.0.lights.0017880103a0037c.action', '"on": true, "bri": '+minBri+', "ct": '+maxCt); } else { setState('deconz.0.lights.0017880103a0037c.on', true); } } function fadeLights (currentSunSet,currentTime) { var endTime = new Date(currentSunSet); endTime.setHours(endHourOfFade, 0, 0); endTime = currentSunSet < endTime ? endTime : new Date(new Date(currentSunSet).setMinutes(new Date(currentSunSet).getMinutes() + 15)); var startTime = new Date(new Date(currentSunSet).setHours(startHourOfFade,0,0)); startTime = currentSunSet < startTime ? startTime : new Date(currentSunSet); var currentDiff = (endTime.getTime() - currentTime.getTime()); var currentMaxDiff = (endTime.getTime() - startTime.getTime()); if (currentDiff > currentMaxDiff) currentDiff = currentMaxDiff; var ct = minCt + (maxCt - minCt) * (currentMaxDiff - currentDiff) / currentMaxDiff; ct = Math.round(ct); if (ct > maxCt) ct = maxCt; //Passe die Helligkeit an var bri = maxBri; if (currentTime > startTime) { bri = minBri + (maxBri - minBri) * currentDiff / currentMaxDiff; bri = Math.round(bri); } setState('deconz.0.lights.0017880103a0037c.action', '"on": true, "bri": '+bri+', "ct": '+ct); } // Hilfsfunktion: function timeIsBetween(fTime,start,ende) {//Dateobjekt,hh:mm,hh:mm var eTime = new Date(), sTime = new Date(); if (typeof start == 'object') { sTime = new Date(start); } else { start = start.split(':'); sTime.setHours(parseInt(start[0]), parseInt(start[1]), 0); } if (typeof ende === 'object') { eTime = new Date(ende); } else { ende = ende.split(':'); eTime.setHours(parseInt(ende[0]), parseInt(ende[1]), 0); } if (sTime.getTime()>eTime.getTime()) { if (fTime.getTime() < eTime.getTime()) sTime.setDate(eTime.getDate()-1); if (fTime.getTime() > sTime.getTime()) eTime.setDate(sTime.getDate()+1); } if ( compareTime(sTime, eTime, 'between', fTime) ) return true; return false; }
  • Variable verzögert setzen und wieder löschen (Fehler)

    javascript
    5
    0 Stimmen
    5 Beiträge
    214 Aufrufe
    liv-in-skyL
    @alcalzone Ich glaube dass war früher anderes Hatte auch plötzlich irgendwann ein Problem mit einem Script, was vorher lief Ist aber schon länger her. Kann mich nur noch daran erinnern, dass es mit dem setstatedelayed war
  • (GELÖST) JSON Zeitplan auslesen

    javascript
    4
    0 Stimmen
    4 Beiträge
    219 Aufrufe
    L
    @paul53 @mickym Guten Morgen Ihr beiden, Danke für die Hilfe, hat funktioniert!!!! MfG Wastl
  • Javascript für UDP Protokolle

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    SKBS
    Hi, ich habe hier einmal anhand der Möglichkeiten etwas gebaut. Vielleicht hilft es dem Ein oder Anderen: https://www.kreyenborg.koeln/proscenic-roboter-in-iobroker-integrieren/
  • CCU Firmware Script

    3
    0 Stimmen
    3 Beiträge
    233 Aufrufe
    bahnuhrB
    @glasfaser Super, Danke für den Link. Offensichtlich hat sich der request Link für raspberrymatic geändert. Jetzt läuft es wieder. Danke. mfg Dieter
  • Wert aus Website auslesen

    15
    0 Stimmen
    15 Beiträge
    828 Aufrufe
    David G.D
    @liv-in-sky Klappt jetzt wunderbar. Vielen Dank [image: 1632205539196-screenshot_20210921-082206_telegram.jpg]
  • [gelöst] Wert (JSON) an URL senden

    82
    0 Stimmen
    82 Beiträge
    10k Aufrufe
    K
    @paul53 anderes Gerät, aber auch JSON an URL senden. [image: 1632176272522-c4419a2c-f3bf-4d87-ae92-d6ea05ddda91-image.png] Der Befehl ist wie folgt : curl -i -d '{"method": "getSystemInformation","id": 65,"params": [],"version": "1.4"}' http://192.168.1.254:10000/sony/system Eine Antwort erhalte ich, somit funktioniert die Kommunikation. Nun versuche ich aber, einen anderen Befehl zu senden, welche ich auf folgender Seite finde: API reference Als Beispiel folgender JSON: { "method":"notifyPowerStatus", "params":[ { "status":"standby" } ], "version":"1.0" } Nun habe ich folgenden exec-Befehl probiert: curl -i -d '{"method": "notifyPowerStatus","params":[{"status":"standby"}],"version": "1.0" }' http://192.168.1.254:10000/sony/system Folgender Fehler erscheint jetzt: HTTP/1.1 200 OK Connection: close Content-Length: 28 Content-Type: application/json {"error":[5,"Illegal JSON"]} Kann mir jemand weiterhelfen?
  • Buderus KM 200 Adapter

    2
    2
    0 Stimmen
    2 Beiträge
    273 Aufrufe
    I
    Hier mal wie das im Log aussieht, wenn ich schalte: [image: 1632082120679-fehler-km.jpg]
  • Firebase DB via Script ansprechen

    javascript
    4
    0 Stimmen
    4 Beiträge
    689 Aufrufe
    BobbyB
    @braindead Hast du vielleicht ein kleines Tutorial wie der Adapter zu benutzen ist? Die Verbindung habe ich bereits hinbekommen, heißt der Adapter steht komplett auf grün. Allerdings habe ich keine Ahnung wie ich Daten zwischen Firebase und meinen Objecten synchronisiere. Grüße
  • Script erwartet String statt Boolean

    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    AlCalzoneA
    @ralle1 sagte in Script erwartet String statt Boolean: Er liefert beim Drücken den Wert von 1002 und beim Loslassen dann wieder den Ursprungswert 0. Dann setz den Auslöser am besten auf ist 1002, statt "wurde geändert"
  • [gelöst] Status Trigger für Homeconnect Adapter

    11
    1
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    T
    @Claus1985 Sagmal, wenn das Gerät im Fernstart ist, welches Objekt muss ich denn steuern damit das programm startet? Reicht es diesen dann einfach auf "true" zu setzen?
  • Termine mit Vorlauf über Alexa ansagen

    4
    0 Stimmen
    4 Beiträge
    337 Aufrufe
    amg_666A
    @liv-in-sky Hey, vielen Dank für das Skript, bin erst heute dazu gekommen damit etwas rumzuspielen. Ich muss da natürlich noch diverse Anpassungen machen aber vom Grundsatz her passt das. Danke auch im Namen meiner Faulheit :-)
  • Codeschnipsel - Datei löschen auf Synology

    javascript
    13
    0 Stimmen
    13 Beiträge
    654 Aufrufe
    liv-in-skyL
    @bahnuhr bei mir funktioniert das auf der console: curl -v -u user:passwort ftp://192.168.178.1/test/filmstatus.txt -Q '-DELE filmstatus.txt'
  • Mit Datenpunkt zählen

    2
    1
    0 Stimmen
    2 Beiträge
    282 Aufrufe
    paul53P
    @bodo-krollpfeiffer sagte: Kann mir da BITTE jemand mal auf die Sprünge helfen? Das liegt an der asynchronen Abarbeitung von "steuere": Wenn der Wert erneut eingelesen wird, ist "steuere" noch nicht fertig. Deshalb verwendet man Variablen. [image: 1631264680397-bild_2021-09-10_110439.png] Spoiler <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="j(#`e^fJSfCBuPqf~uuU">fu</variable> </variables> <block type="on_ext" id="F)y(oPeAFI(Xn(XJXdfU" x="88" y="-512"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="`rI#4#iDM}_*Kh@RwtVh"> <field name="oid">0_userdata.0.Gartensteuerung.Hauptventil</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id=";/$hyF!RSJLXos**LWUR"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Frequenzumrichter-läuft</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="on_source" id="|^yF0d=dVnQ(7una2qd8"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="controls_if" id="O:g4U2T;~B8jsTKC2zoh"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="yq4(^Mw%3~W?j*16Svim"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="request" id="SoV|5q,dWw?%eYO|FI(0"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="U0*};h%}s]iSz|:IWt,y"> <field name="TEXT">text</field> </shadow> <block type="text" id="m8=qo~0a9M#/0g+ya9)s"> <field name="TEXT">http://192.168.188.158/control?cmd=gpio,5,1</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="request" id="YNK9Z[vzd6}I{CF#sd2k"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="L8(U4;^ayR*aW)s%]hfF"> <field name="TEXT">text</field> </shadow> <block type="text" id="df8E1ZxO!S-,XBTS@}Af"> <field name="TEXT">http://192.168.188.158/control?cmd=gpio,5,0</field> </block> </value> <next> <block type="variables_set" id="B1AIs:[TWUt0(cw?cL3p"> <field name="VAR" id="j(#`e^fJSfCBuPqf~uuU">fu</field> <value name="VALUE"> <block type="get_value" id="32{lye0+$,NoKJa-64S6"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Frequenzumrichter-Anforderung.50-Hz-Anforderung</field> </block> </value> <next> <block type="math_change" id="@:dSMzu;+JzX^=3C=qB9"> <field name="VAR" id="j(#`e^fJSfCBuPqf~uuU">fu</field> <value name="DELTA"> <shadow type="math_number" id="6c9DuSUj)OoonqI~w$kz"> <field name="NUM">1</field> </shadow> </value> <next> <block type="update" id="8!JhHNeK`3{s=Iu(dP@]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Frequenzumrichter-Anforderung.50-Hz-Anforderung</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="variables_get" id="{+wD1#/A66t/D}!vIm{!"> <field name="VAR" id="j(#`e^fJSfCBuPqf~uuU">fu</field> </block> </value> <next> <block type="math_change" id="4g^!,6]GK,yiu^[5?fQf"> <field name="VAR" id="j(#`e^fJSfCBuPqf~uuU">fu</field> <value name="DELTA"> <shadow type="math_number" id="ZRa?6Gc?HlC%dF1S;4tg"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="update" id="jlc7ZQ[Pa|9`DvS3Qc=|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Frequenzumrichter-Anforderung.50-Hz-Anforderung</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="variables_get" id="gsXt[D4[.v`S9}/Y20J6"> <field name="VAR" id="j(#`e^fJSfCBuPqf~uuU">fu</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
  • Versteckten Trigger lokalisieren...

    9
    0 Stimmen
    9 Beiträge
    795 Aufrufe
    W
    @radi Hatte ich doch oben schon geschrieben und wurde von @reini84 aber ausgeschlossen. Gruß, Jürgen
  • Blockly-Request scheitert an Synology-Webhook

    blockly javascript
    3
    3
    0 Stimmen
    3 Beiträge
    587 Aufrufe
    B
    @karstent huch, dass hier tatsächlich noch jemand antwortet – ich hatte das Forum schon abgeschrieben😅. Ja, in der FB-Gruppe wurde mir auch schon in diese Richtung ein Hinweis gegeben. Nach Wechsel von https auf http und von Port 5001 auf 5000 funktionierte es bei mir! Danke für Deinen Hinweis aber auf alle Fälle
  • Blockly Sonnenaufgang minus 1 Std. berechnen

    5
    2
    0 Stimmen
    5 Beiträge
    731 Aufrufe
    M
    @paul53 Mega... hat direkt geklappt. Wäre ich nie drauf gekommen. Wieder was dazugelernt! Vielen Dank!
  • WLED- Garagefahrt Scriptfehler?

    9
    1
    0 Stimmen
    9 Beiträge
    501 Aufrufe
    Rene55R
    @paul53 Tausend Dank. Das wars - wäre ich nie drauf gekommen, da der Haken schon seit 'ewigen' Zeiten drin war und noch nie Probleme gemacht hat.
  • Spiegelheizung steuern - Tipps?

    3
    0 Stimmen
    3 Beiträge
    398 Aufrufe
    G
    @paul53 Ist natürlich was dran, ich drehe die Werte mal hoch. Kann mich aber dran erinnern, dass ich teilweise dann das Problem genau anders herum hatte. Also beschlagener Spiegel und Heizung aus. Abwarten. Danke!

414

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge