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
    @crunchip ich werde es Morgen nochmal komplett neu Installieren da es trotz Einstellungen nicht funktioniert bzw. Zufriedenstellend. Irgendwas passt da nicht so richtig in den Anzeigen.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    Murphy 0M
    @berny-k Der bypassMode sollte dann so gestellt sein dass die Module weiter produzieren und die Energie ins Haus geben. Probiere das so zu machen. Sicherung würde ich vorher machen 😉
  • 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
  • Lampe nach Zeitplan gedimmt?

    Moved
    14
    0 Votes
    14 Posts
    948 Views
    Beliar_666B
    HM. Ich glaub ich hab es jetzt, zumindest hat jetzt mal der erste Test so geklappt: [image: 9141_zeitplan2.png]
  • Astrofunktion Zeit anzeigen

    Moved
    10
    0 Votes
    10 Posts
    2k Views
    J
    Oder Du lässt es Dir in DPs anzeigen. Blockly Export: <xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id="v72H-N1#%w_*zseA#CMc" x="-62" y="63"><field name="NAME">01-Nachtende</field> <statement name="STATEMENT"><block type="create" id="@kYi)AXak/ydmJCF!oo]"><field name="NAME">02-Morgendämmerung</field> <statement name="STATEMENT"><block type="create" id=";T8PP:ZCKeM4*+*U5?yi"><field name="NAME">03-Sonnenaufgang</field> <statement name="STATEMENT"><block type="create" id="*gIfB:POQ4@(+!BTUapf"><field name="NAME">04-Sonneneaufgang_Ende</field> <statement name="STATEMENT"><block type="create" id="MFJk^e%f2^,QG[vUK4ee"><field name="NAME">05-Golden_Houer_Ende</field> <statement name="STATEMENT"><block type="create" id="hO7B(a7I~WK~vu8.7gDH"><field name="NAME">06-Mittag</field> <statement name="STATEMENT"><block type="create" id="eYe;t8x=FwBT4B,.|`k."><field name="NAME">07-Golden_Houer</field> <statement name="STATEMENT"><block type="create" id="tVROR/kUT3MINh%SOcdY"><field name="NAME">08-Sonnenuntergang_Anfang</field> <statement name="STATEMENT"><block type="create" id="kC`b|+j}(0FzG/abd,q1"><field name="NAME">09-Sonnenuntergang</field> <statement name="STATEMENT"><block type="create" id="4UB*zNj{J`G:`saTpO/G"><field name="NAME">10-Abenddämmerung</field> <statement name="STATEMENT"><block type="create" id="%kf8::E|Nt2i*cPYM.aB"><field name="NAME">11-Nacht</field></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement> <next><block type="schedule" id="c;,oPug#y[hH+R/Az:)Z"><field name="SCHEDULE">0 0,12 * * *</field> <statement name="STATEMENT"><block type="update" id="QIMsUa0@3?Vo;jj}r-*U"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.01-Nachtende</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="^E3;~IY|ubg5}Cw9eYrO"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="J0d,%PB7t8lb@8mXXXZ("><field name="TYPE">nightEnd</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="HB^8MQ(4ds+W5/u^OW4m"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.02-Morgendämmerung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="oN=Uv}fYcHBCDPHtpXiw"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id=":/y;e5awTDC:Cev;TUCS"><field name="TYPE">dawn</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="+A7|YpLw]g_!(9]PC@UH"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.03-Sonnenaufgang</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="AMyc:3*Tp9XP+4kq(nv-"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id=",4bKmH_J8szFEb.4u{OB"><field name="TYPE">sunrise</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="DwtR_scz+f42pEJ/sKn?"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.04-Sonneneaufgang_Ende</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="a~M9OAt|LRQe5:d]~}H?"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="7/scA1O-iX|.x-iB_~X3"><field name="TYPE">sunriseEnd</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="F.Y:ABQw?pppVIMuzXC4"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.05-Golden_Houer_Ende</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="jgDe(t)05^f2gQyGIaI6"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="]qS[Z+Pa`b*WUXun969T"><field name="TYPE">goldenHourEnd</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="FjU7x+vB-{|nz?Ntgi]B"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.06-Mittag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="Ewd`,fX4o;ftqhEAKr)^"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="}2iN_uE[d~xeJMc]9~%p"><field name="TYPE">solarNoon</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="(slH?vH:Tx73fJ(J2HY]"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.07-Golden_Houer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="kh1//%:x4My;~kFU`,E^"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="~MgPI%%B44O6EzrHu._C"><field name="TYPE">goldenHour</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="g|`Q7g?g_fO6AjzFr(le"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.08-Sonnenuntergang_Anfang</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="r6N{VKoWDb6,=`S=QyNF"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="!nNaC0`sNkzDc_CZkch6"><field name="TYPE">sunsetStart</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="5k::E!c_Nzjkf_4MU}_U"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.09-Sonnenuntergang</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id=",z]tcWXKDj7^syvxRkU["><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="e.#C/a~nk+lc9h!VRKIG"><field name="TYPE">sunset</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="okk0X1l~(0(nUW+Re46b"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.10-Abenddämmerung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="jT6:rKIF[@`bgdN2Ei+R"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="CeiV[rNfs^|Wwo/^8]}L"><field name="TYPE">dusk</field> <field name="OFFSET">0</field></block></value></block></value> <next><block type="update" id="y3QMbYJ8biR5l7@~Vd92"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.11-Nacht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="convert_from_date" id="5z?E1xsLp;YRIJ6YIaB!"><mutation format="false" language="false"></mutation> <field name="OPTION">hh:mm:ss</field> <value name="VALUE"><block type="time_astro" id="Y[SLp]Z~a7!a0aht:]j?"><field name="TYPE">night</field> <field name="OFFSET">0</field></block></value></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></xml>
  • Auswerten von Internetseiten via Parser

    Moved
    4
    0 Votes
    4 Posts
    422 Views
    D
    Ah mein Fehler lag am Typen habe es jetzt als JSON angelegt und einen gemischten Zeichentyp dann gings. Vielen Dank
  • Temperaturdifferenzschaltung Blockly

    Moved
    4
    0 Votes
    4 Posts
    583 Views
    R
    Moin, ich steuere meine Lüftung im Bad und nutze dafür die Differenz Luftfeuchtigkeit. Allerdings mache ich das über Homematic und nutze dafür den Wert "LastValue", den Homematic speichert. Das Ganze in ein kleines Skript was die Differenz in eine Variable schreibt + Programm mit passendem Differenzwert funktioniert bei mir hervorragend um das Duschen zu triggern. Evtl. hilft das ja dem Threadersteller. :) dom.GetObject(ID_SYSTEM_VARIABLES).Get("Dusche").State(dom.GetObject("$src$").Value() - dom.GetObject("$src$").LastValue());
  • Lumi.sensor_motion.aq2 mit TRADFRI bulb E27 WS clear 950lm

    Moved
    9
    1
    0 Votes
    9 Posts
    749 Views
    S
    Leider funktioniert es nicht. Die Lampe wird nicht ausgeschaltet bei Sonnenaufganag 9698_firefox.jpg
  • (Problem) Script läuft nicht löst aber 3 Log Einträge aus

    Moved
    3
    0 Votes
    3 Posts
    715 Views
    nukleuzN
    Hallo zusammen, habe genau den gleichen Effekt - Logeinträge werden dreifach angezeigt. Skripte laufen aber alle reibungslos… Prozesse checked: [image: 9401_javascript_prozesse.png] Ist das normal oder könnte das der Grund sein? Danke für Info vorab. EDIT: Hat sich erledigt mit den dreifach-Einträgen im LOG- war ein Fehler im Skript. Sollte die Anzahl der Prozesse wirklich so oft vorhanden sein?
  • Brauche Hilfe bei einem Script für mein Material Design Vis

    Moved
    1
    2
    0 Votes
    1 Posts
    219 Views
    No one has replied
  • 0 Votes
    9 Posts
    3k Views
    JB_SullivanJ
    DANKE, DANKE, DANKE !!!!! Es funktioniert und ich kämpfe seit 3 Tagen damit :cry: Ich Danke Euch vielmals. Es tut mir sehr leid wenn ich hier wie der Depp vor dem Herrn rum komme, aber ich muss mir alles mühsam erarbeiten, weil ich bis vor ein paar Wochen überhaupt keine Ahnung von all dem Smart Home Zeugs hatte. (Leider) macht es sehr viel Spaß wenn man sieht wie dann alles funktioniert und man will immer mehr und es soll immer noch perfekter werden. Ich habe halt das Problem, das es so gut wie keine Vorbildung in dem Bereich gibt (bin Koch von Beruf) und ich mir alles mühsam ergoogeln und anlesen muss. Das alles in Englisch ist, ist für mich nicht gerade hilfreich. Somit verstehe ich oftmals die ganzen Zusammenhänge nicht. Wie ihr an diesem kleinen Beispiel gesehen habt, breche ich mir echt einen daran ab, weil mir das Hintergrundwissen fehlt. Die Profis unter Euch schütteln das mal eben so aus dem Ärmel. Ich glaube die Schere der unwissenden so wie ich es einer bin und den absoluten Cracks geht in diesem Forum wirklich Megamässig auseinander. Schön das die Profis den Dummis dann immer wieder unter Arme greifen. VIELEN HERZLICHEN DANK NOCHMAL DAFÜR !!!!
  • [gelöst]Anfängerfrage Klingelknopf Alexa

    Moved
    6
    0 Votes
    6 Posts
    607 Views
    ?
    Super vielen Dank für Deine Unterstützung. Da wäre ich mit Sicherheit nicht drauf gekommen Vielen Dank
  • [gelöst]JSON parsen, bräuchte Hilfe

    Moved
    31
    0 Votes
    31 Posts
    11k Views
    coyoteC
    Sorry dass ich hier nicht mehr weiter geantwortet habe, hatte das Thema nicht mehr richtig auf dem Schirm. Ich poste mein Script mal, aber ich sage gleich mal dazu, ich bin nicht der große Scripter. Ist mehr so etwas zusammengewürfelt und rumprobiert. Es zeigt das an was ich wollte und mehr habe ich da auch nicht mehr gemacht. Da ist definitv noch einiges mehr rauszuholen und bestimmt noch vieles zu verbessern. Vllt kann sogar jemand einen Adapter draus machen. Es müssen 2 URL's im Parser Adapter eingetragen werden, für die Statelist und Printerlist mit eurem API-Key: Das Script ist für meine 2 Drucker, einmal den AM8 und einmal den NoName. Die ganzen Bezeichnungen sind auch noch nicht wirklich "sauber", wenn ich Zeit habe werde ich mich da nochmal ran setzen. [image: 536_repetier_li.jpg] http://192.168.XXX.XXX:3344/printer/api … XXXXXXXXXX http://192.168.XXX.XXX:3344/printer/api ... XXXXXXXXXX var idJson = "parser.0.drucker"; var idJson2 = "parser.0.druckerlist"; var am8tempakt = "javascript.0.3dDrucker.AM8.Extruder.TempAkt"/*javascript.0.3dDrucker.AM8.Extruder.TempAkt*/; var am8tempset = "javascript.0.3dDrucker.AM8.Extruder.TempSet"; var am8tempbettakt = "javascript.0.3dDrucker.AM8.Bett.TempAkt"; var am8tempbettset = "javascript.0.3dDrucker.AM8.Bett.TempSet"; var nntempakt = "javascript.0.3dDrucker.NoName.Extruder.TempAkt"; var nntempset = "javascript.0.3dDrucker.NoName.Extruder.TempSet"; var nntempbettakt = "javascript.0.3dDrucker.NoName.Bett.TempAkt"; var nntempbettset = "javascript.0.3dDrucker.NoName.Bett.TempSet"; var nnjob = "javascript.0.3dDrucker.NoName.Druckteil"; var nnprinttime = "javascript.0.3dDrucker.NoName.Druckzeit"; var nnprinttimecomp ="javascript.0.3dDrucker.NoName.Restzeit"; var nndone ="javascript.0.3dDrucker.NoName.Prozent"; var am8job = "javascript.0.3dDrucker.AM8.Druckteil"; var am8printtime = "javascript.0.3dDrucker.AM8.Druckzeit"; var am8printtimecomp ="javascript.0.3dDrucker.AM8.Restzeit"; var am8done ="javascript.0.3dDrucker.AM8.Prozent"; createState(am8tempakt, {name: "T1", unit: "°C"}); createState(am8tempset, {name: "T2", unit: "°C"}); createState(am8tempbettakt, {name: "T3", unit: "°C"}); createState(am8tempbettset, {name: "T4", unit: "°C"}); createState(nntempakt, {name: "T5", unit: "°C"}); createState(nntempset, {name: "T6", unit: "°C"}); createState(nntempbettakt, {name: "T7", unit: "°C"}); createState(nntempbettset, {name: "T8", unit: "°C"}); createState(nnjob, {name: "J"}); createState(nnprinttime, {name: "T9"}); createState(nnprinttimecomp, {name: "T10"}); createState(nndone,{name: "Done"}); createState(am8job, {name: "J1"}); createState(am8printtime, {name: "T11"}); createState(am8printtimecomp, {name: "T12"}); createState(am8done,{name: "Done1"}); function werteAuslesen(jsonStr) { var myJson = JSON.parse(jsonStr); var T1 = myJson.AM8.extruder[0].tempRead; var T2 = myJson.AM8.extruder[0].tempSet; var T3 = myJson.AM8.heatedBeds[0].tempRead; var T4 = myJson.AM8.heatedBeds[0].tempSet; var T5 = myJson.NoName.extruder[0].tempRead; var T6 = myJson.NoName.extruder[0].tempSet; var T7 = myJson.NoName.heatedBeds[0].tempRead; var T8 = myJson.NoName.heatedBeds[0].tempSet; setState(am8tempakt, T1.toFixed(2)); setState(am8tempset, T2.toFixed(2)); setState(am8tempbettakt, T3.toFixed(2)); setState(am8tempbettset, T4.toFixed(2)); setState(nntempakt, T5.toFixed(2)); setState(nntempset, T6.toFixed(2)); setState(nntempbettakt, T7.toFixed(2)); setState(nntempbettset, T8.toFixed(2)); } function werteAuslesen2(jsonStr) { var myJson2 = JSON.parse(jsonStr); var J1 = myJson2[0].job; var T11 = Math.round (1 * myJson2[0].printTime /60); // Gesamtzeit AM8 var T12 = Math.round (1 * myJson2[0].printedTimeComp /60) ; // Gedruckte Zeit AM8 var T13 = (T11-T12); // Restzeit AM8 var Done1 = myJson2[0].done; var J = myJson2[1].job; var T9 = Math.round (1 * myJson2[1].printTime /60) ; // Gesamtzeit NN var T10 = Math.round (1 * myJson2[1].printedTimeComp /60) ; // Gedruckte Zeit NN var T14 = (T9-T10); // Restzeit NN var Done = myJson2[1].done; setState(nnjob, J); setState(nnprinttime, T9 + " min"); setState(nnprinttimecomp, T14 + " min"); if (getState("javascript.0.3dDrucker.NoName.Druckteil"/*J*/).val != "none"){ setState(nndone, Done.toFixed(2) + " %"); } setState(am8job, J1); setState(am8printtime, T11 + " min"); setState(am8printtimecomp, T13 + " min"); if (getState("javascript.0.3dDrucker.AM8.Druckteil"/*J1*/).val != "none"){ setState(am8done, Done1.toFixed(2) + " %"); } } on({id:idJson,change:'ne'}, function (obj) { werteAuslesen(obj.state.val); }); on({id:idJson2,change:'ne'}, function (obj) { werteAuslesen2(obj.state.val); });
  • Probleme beim schalten meiner Rollos

    Moved
    5
    1
    0 Votes
    5 Posts
    516 Views
    R
    <ot>und ich hab sie dir so gewünscht ;-) Vlt.sollten wir ja mal einen Text inkl. Screenshots machen "Wie bekomme ich am ehesten Hilfe bei Fragen zu node-red"</ot>
  • Steckdose aus, wenn PC nicht mehr pingt

    Moved
    13
    1
    0 Votes
    13 Posts
    1k Views
    J
    Ja wenn das an Deine DPs so passt schon, wobei Du das auch über den Trigger Wert machen kannst und das ganze etwas schlanker wird. Nein der Timeout sorgt eben für eine verzögerte Ausführung und zwar im Unterschied zum Häkchen "mit Verzögerung" wird der Inhalt auch erst nach der eingestellten Zeit abgearbeitet wenn die Bedingung dann noch steht. Das Häkchen sorgt nur dafür dass verzögert ausgeführt wird, egal ob sich mittlerweile was geändert hat. Das ist ein kleiner aber feiner Unterschied ;) Also das was im Timeout drin steht wird erst in 5 Minuten abgearbeitet und wenn dann die Bedingung eben noch erfüllt ist, passiert was. Das Häkchen würde dafür sorgen, dass egal ob der Zustand sich geändert hat nach 5 Minuten ausgeschaltet wird.
  • [Blockly] Offene Fenster/Türen Benachrichtigen

    Moved
    1
    1
    0 Votes
    1 Posts
    427 Views
    No one has replied
  • Rampe Time bei Homematic Dimmer ändern

    Moved
    4
    0 Votes
    4 Posts
    793 Views
    R
    Ich habe von Flows leider keine Ahnung! Ich kann da den konkreten Ablauf nicht erkennen, im Groben aber schon. Ich kann dir nur sagen, dass die Reihenfolge so sein muss, wie beschrieben. Du kannst es ja mal mit einer direkten Eingabe bei den Objekten probieren. Enrico
  • Json Parsen und Zeitdauer berechnen in Blockly

    Moved
    1
    0 Votes
    1 Posts
    354 Views
    No one has replied
  • Brauche Hilfe! Beim Alarmanlage erstellen

    Moved
    7
    0 Votes
    7 Posts
    1k Views
    W
    Mein Problem konnte ich lösen. 2 Std später hat sich mein Raspi gehimmelt und den FI mit genommen. Super. Jetzt bau ich das alles auf nem NUC nach. Sobald es läuft poste ich hier nen update
  • [Frage] Datenpunkt Name dynamisch ermitteln

    Moved
    1
    1
    0 Votes
    1 Posts
    251 Views
    No one has replied
  • Alle schedule's auflisten lassen

    Moved
    1
    0 Votes
    1 Posts
    188 Views
    No one has replied
  • Wie viele Skripte maximal in einer javascript Instance?

    Moved
    3
    0 Votes
    3 Posts
    447 Views
    S
    Ok danke da werd ich mal schauen
  • Funktionen für Xiaomi Cube

    Locked Moved
    3
    0 Votes
    3 Posts
    437 Views
    K
    @Bockwurst19: Guten Morgen und frohe Weihnacht. Wollte fragen ob es möglich ist mit dem Cube mit einen Befehl z.B. 180 flip das Licht Ein und wieder Aus zu schalten. Über einem Script oder so. Und ist es möglich wenn Ich den Cube Flip 90 nach links mache, das bei Alexa das vorige lied und bei Flip 90 rechts das nächste Lied kommt. Gruss ` Schimmermedia ;) https://youtu.be/hSDTP_OpYI4 Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

435

Online

32.7k

Users

82.5k

Topics

1.3m

Posts