Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.8k 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
    @Daniel-8 sagte: Das ist ja ganz schön merkwürdig. Wir sind halt leider immer noch ein wenig von der Cloud abhängig.... Bei mir gab es keine socSet veränderungen. Bei mir gerade wieder und hat sich dann durch Blockly gleich wieder geändert. Temperaturen: 1600AC+ 35°C Bat 1: 33°C Bat 2: 32°C SoC: 72% socSet: 85% Nachdem ich ihn per Script zwinge, schaltet er jetzt einfach auf pass:2 und gibt die Leistung ins Hausnetz durch, statt zu laden. und jetzt, beim schreiben des Textes schaltet er nun doch auf pass:0 und ladet. Unglaublich. 33°C mag jetzt nicht ideal sein aber dennoch... Gerät wird gekühlt. Außerdem verstehe ich nicht warum inverseMaxPower 2x auf 200 gesetzt wurde - ohne Script etc. edit/PS 19.00h: Wechselt immer wieder zwischen pass:0 und pass:2 Zwar nicht schnell aber mit SoCset 85% ist er mit SoC 72% und mit aktuell ca. 70W PV-Leistung (19Uhr) noch weit weg von 85% und garantiert nicht überfordert. edit/PPS: 19.04h: schon wieder wurde inverseMaxPower auf 200 geändert und durch mein script zurück auf 1600 gesetzt. edit/PPPS: 19.07h: Wenn es nicht von der Cloud kommt dann muss es die Firmware sein. Es gibt nur die 2 Kandidaten. Vermute dass bei ca. +33°C irgend ein Batterieschutz greift. Was aber nicht die inverseMaxPower erklärt. Denn das Gerät sollte mit 35°C entspannt sein.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    @oliverio Ja, genauso ist meine Installation (MariaDB, phpmyadmin und jeweils im Docker Container). Der SQL läuft bereits und ist mit ioBroker über den SQL Adapter verbunden.
  • 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]
  • Anwesenheitssimulator

    security blockly
    3
    0 Stimmen
    3 Beiträge
    281 Aufrufe
    E
    @htrecksler Servus - vielen Dank für den Tipp - ich werd's mir dann gleich ansehen......
  • Helligkeit ändert sich von alleine

    javascript
    20
    0 Stimmen
    20 Beiträge
    2k Aufrufe
    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 Stimmen
    4 Beiträge
    479 Aufrufe
    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 Stimmen
    4 Beiträge
    261 Aufrufe
    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 Stimmen
    22 Beiträge
    3k Aufrufe
    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 Stimmen
    12 Beiträge
    2k Aufrufe
    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 Stimmen
    7 Beiträge
    539 Aufrufe
    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 Stimmen
    11 Beiträge
    1k Aufrufe
    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 Stimmen
    3 Beiträge
    400 Aufrufe
    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

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    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 Stimmen
    2 Beiträge
    318 Aufrufe
    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

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    2k Aufrufe
    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

    Verschoben
    14
    1
    0 Stimmen
    14 Beiträge
    7k Aufrufe
    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 Stimmen
    4 Beiträge
    719 Aufrufe
    B
    @paul53 Funktioniert super. Vielen Dank
  • Wie kann man feststellen, von wo der Fehler kommt?

    javascript
    16
    0 Stimmen
    16 Beiträge
    802 Aufrufe
    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 Stimmen
    13 Beiträge
    2k Aufrufe
    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

    Verschoben
    9
    1
    0 Stimmen
    9 Beiträge
    4k Aufrufe
    peterk34P
    @TGerwald der Fehler ist ziemlich trivial ... das mit der Variable funktioniert nur in MilliSekunden (keine Ahnung warum)
  • [gelöst] Probleme mit telegram Kommunikation?

    javascript blockly node-red communication
    15
    0 Stimmen
    15 Beiträge
    2k Aufrufe
    Meister MopperM
    @Nas007 Prima, dann setz mal vor den Titel im ersten Beitrag ein [gelöst].
  • Skripte richtig verwalten/anlegen

    blockly
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    dslraserD
    Ich mache es so... [image: 1608724567581-screenshot_20201223-125533_chrome.jpg]
  • [gelöst]Blockly Cron-Job / Zeitplan

    blockly
    3
    2
    0 Stimmen
    3 Beiträge
    325 Aufrufe
    GregorSG
    @Meister-Mopper Hat funktioniert. Danke

402

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge