Skip to content

Skripten / Logik

16.6k Topics 214.5k 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
    D
    Ich habe heute mal angefangen mein ganzes Steuerungsscript umzuschreiben mit deinem Script zur Abfrage. Da ist mir aufgefallen, das im pass Modus der wert nicht 1 sondern 2 ist. [image: 1776934145376-screenshot-2026-04-23-104848.jpg]
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    hg6806H
    Danke für die Antworten. Der Adapter ist dafür etwas überdosiert, ist aber interessant, dass es sowas gibt. Das mit dem Zeitplan hatte ich mir auch schon überlegt, dachte es gibt was anderes oder besseres. Ich denke stündlich reicht in dem Fall.
  • Hilfe für Skripterstellung mit Node-RED

    955 13k
    955 Topics
    13k Posts
    mickymM
    @Tontechniker Man kann solche Filter aber auch OHNE neue Nodes zu installieren mit einfachen Standard-Switch Nodes realisieren: [image: 1776865319208-af3cab3c-2716-43f4-b7df-7f74e8bf051b-image.jpeg] ggf. einfach nochmal meinen alten Thread anschauen: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
  • Mittelwertbildung für die Windrichtung mit JavaScript

    1
    2
    2 Votes
    1 Posts
    675 Views
    No one has replied
  • [GELÖST] Im Skript eigene ID (Name) ermitteln?

    3
    0 Votes
    3 Posts
    232 Views
    NewpicselN
    @paul53 Ja richtig perfekt! Ich danke dir
  • Bei Eingabe über Tastatur oder Tablet Timer zurücksetzen

    2
    0 Votes
    2 Posts
    255 Views
    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 Votes
    3 Posts
    285 Views
    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 Votes
    5 Posts
    163 Views
    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 Votes
    4 Posts
    155 Views
    L
    @paul53 @mickym Guten Morgen Ihr beiden, Danke für die Hilfe, hat funktioniert!!!! MfG Wastl
  • Javascript für UDP Protokolle

    Moved
    8
    0 Votes
    8 Posts
    2k Views
    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 Votes
    3 Posts
    203 Views
    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 Votes
    15 Posts
    650 Views
    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 Votes
    82 Posts
    8k Views
    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 Votes
    2 Posts
    225 Views
    I
    Hier mal wie das im Log aussieht, wenn ich schalte: [image: 1632082120679-fehler-km.jpg]
  • Firebase DB via Script ansprechen

    javascript
    4
    0 Votes
    4 Posts
    596 Views
    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 Votes
    14 Posts
    1k Views
    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 Votes
    11 Posts
    1k Views
    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 Votes
    4 Posts
    292 Views
    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 Votes
    13 Posts
    466 Views
    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 Votes
    2 Posts
    250 Views
    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 Votes
    9 Posts
    666 Views
    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 Votes
    3 Posts
    512 Views
    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 Votes
    5 Posts
    653 Views
    M
    @paul53 Mega... hat direkt geklappt. Wäre ich nie drauf gekommen. Wieder was dazugelernt! Vielen Dank!

544

Online

32.8k

Users

82.8k

Topics

1.3m

Posts