Skip to content

Skripten / Logik

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

16.4k Themen 211.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    RaspiUserR
    @peterfido sagte in Abruf PSA Corsa Daten: vergleich doch mal die Javascripte miteinander ... da ich Null-Ahnung von der Materie habe müßte ich jeden einzelnen Befehl / dessen Funktion nachschlagen, das kann nur schief gehen. Ich hatte / habe die Hoffnung, dass ein Script-Spezialisten das ursprüngliche Script reparieren kann ... oder ich nutze deinen oder meinen Vorschlag ...
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    I
    Hallo Paul, beide Deiner Vorschläge funktionieren! Und auch Deine Beobachtung, dass, wenn man den Punkt vor UNREACH weglässt, auch STICKY_UNREACH mitgeliefert wird, stimmt. Ich könnte schwören, dass ich an dem Ausdruck seit Monaten nichts verändert habe. Vielen Dank!
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • Sql query Rückgabewert verwenden

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    5k Aufrufe
    D
    Hi ich verzweifel. Finde keine Lösung Alle Themen die ich gefunden habe helfen nicht das Thema umzusetzen. EDIT: Habe nun eine Lösung gefunden http://forum.iobroker.net/viewtopic.php … 20#p109828 Gruß Jürgen
  • [auf Umweg gelöst] Fritzbox-LEDs via Telnet steuern

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    513 Aufrufe
    F
    Problem gelöst, wenn vielleicht auch mit Umweg Expect-Pakete lokal nachinstalliert ("apt-get install expect") Für jede der 4 Stati jeweils ein Script geschrieben. Script des Beispiels "Zuhause" (Abgelegt als "/home/pi/Documents/PresetZuhause"): ! ```` spawn telnet 192.168.100.3 set timeout 10 expect "Fritz!Box web password:" send "<pass>\r" expect "# " send "echo 13,4 >/var/led\r" expect "# " send "echo 14,1 >/var/led\r" expect "# " send "echo 4,1 >/var/led\r" expect "# " send "echo 7,1 >/var/led\r" expect "# " send "exit\r"</pass> - Den Aufruf des Scripts dann in Blockly-Script als "Aktionen"-"exec" (Kommando="expect -f /home/pi/Documents/PresetZuhause") Komplettes "Blockly"-Script: >! ```` on({id: "javascript.0.Homewizard.Preset.PresetHome"/*PresetHome*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.Homewizard.Preset.PresetHome").val == 0) { exec('expect -f /home/pi/Documents/PresetZuhause'); } else if (getState("javascript.0.Homewizard.Preset.PresetHome").val == 1) { exec('expect -f /home/pi/Documents/PresetAbwesend'); } else if (getState("javascript.0.Homewizard.Preset.PresetHome").val == 2) { exec('expect -f /home/pi/Documents/PresetSchlafen'); } else if (getState("javascript.0.Homewizard.Preset.PresetHome").val == 3) { exec('expect -f /home/pi/Documents/PresetUrlaub'); } else { setState("sayit.0.tts.text", "de-DE_CLOUD_Male;" + 'Fehlerhafter Preset Status'); console.error("sayIt[de-DE_CLOUD_Male]: " + 'Fehlerhafter Preset Status'); } }); Es scheint so zu tun wie es soll. Weitere Tests werden es zeigen. Vielleicht hat jemand noch eine bessere Lösung… (Als direktes Javascript/o.ähnl.) Gruß Florian
  • In Node Red Informationen aus einen Script empfangen und auswerten

    Verschoben
    14
    0 Stimmen
    14 Beiträge
    5k Aufrufe
    N
    Hallo Habe es mal mit var get = require('simple-get'); get('http://192.168.2.87:1880/test?temperature=22', function (err, res) { if (err) throw err; console.log(res.statusCode); // 200 res.pipe(process.stdout); // `res` is a stream }); versucht. Geht viel schneller. Start braucht auch ca 2sek., danach ist das Script sofort durchgelaufen und Node Red reagiert auch sofort danach. var request = require('request'); braucht wohl so lange. Das ganze läuft auf einem RPi Zero W. Gruß NetFritz
  • [gelöst] Werte ändern am Objekte z.B. obj.common.summe

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    709 Aufrufe
    T
    Hallo Dutchman, vielen Dank für deinen Hinweis. Die Funktion var obj = getObject ('adapter.N.objectName'); obj.native.settings = 1; hat bei mir nie funktioniert. Nur mit dem zusätzlichen Befehl setObject('adapter.N.objectName', obj, function (err) { if (err) log('Cannot write object: ' + err); }); wird der Wert geschrieben. Ich dachte immer, das dies nicht erforderlich ist, da ich keine Fehlerabfrage benötige. Gruß Thomas
  • Blocky, Timeout

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    965 Aufrufe
    rantanplanR
    @ludino: Wobei es ja eigentlich ganz einfach ist. ahh! ` Ist es eigentlich auch ;) Die Bausteine werden von oben nach unten abgearbeitet. Einfach mal das Blockly, sich selbst, von oben nach unten vorlesen. Und bedenken das das Script genau das macht was da steht. Grüße
  • Asynchron bzw mir fehlt der Lösungsansatz

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    590 Aufrufe
    BlackmikeB
    thnx, wieder einiges gelernt…
  • [Frage] SQL-Abfrage und Zugriff auf einen Wert des results

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    apollon77A
    JSON ist eine Textform der Datenstruktur, das heisst nacj JSON.stringify is es einfach ein Text-String. Da kannst Du auf nichts mehr zugreifen :-)
  • [Frage]Aufzählungen/Gewerke STATES nicht CHANNELS abfragen

    Verschoben
    3
    2
    0 Stimmen
    3 Beiträge
    816 Aufrufe
    andreaskosA
    > Frage: Wie muss ich den Selektor abändern, damit die States durchgezählt werden? Das würde mich auch interessieren! Wenn nämlich die Datem aus einer CCU übernommen werden, dann werden in den Gewerken (also den enum.functions) die Einträge als "channels" und nicht als "states" eingetragen. Manuell habe ich dazu aber noch keine Möglichkeit gefunden. Weiß hier jemand Abhilfe?
  • Sonoff skript als Taster "gelöst"

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    993 Aufrufe
    N
    Geil! Dankeschön!!! Ich hab das ganze Wochenende probiert.
  • Node-Red abgeschossen, bekomme es nicht mehr zu laufen, wer kann Helfen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    HomoranH
    Zusätzliche npm-Module kannst du doch ganz einfach installieren, indem du sie in der Konfiguration der Instanz in das dafür vorgesehene Feld einträgst. Anschließend die Instanz neu starten und alles ist gut. Gruß Rainer
  • [FRAGE]Verbrauchsdaten aus Basis der Daten aus History Adapter

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    E
    mir ist noch eingefallen, dass mein Skript ein paar, bei mir als global, definierte Funktionen nutzt: function datum_jahresanfang (date) { return (date).getFullYear()+"-01-01"; } function datum_monatsanfang (date) { var monat=1+date.getMonth(); return (date).getFullYear()+"-"+monat+"-01"; } function datum_tagesanfang (date) { var jahr=(date).getFullYear(); var monat=1+date.getMonth(); var tag = date.getDate(); return jahr+"-"+monat+"-"+tag; } function datum_wochenanfang(date){ var iDayOfWeek = date.getDay(); var iDifference = date.getDate() - iDayOfWeek + (iDayOfWeek === 0 ? -6:1); var woa=new Date(date.setDate(iDifference)); return woa.toISOString().slice(0,10); } function datum_gestern(datum){ var yesterday = new Date(datum.valueOf() - 1000*60*60*24); return yesterday.toISOString().slice(0,10); } function kalenderwoche (d){ // Copy date so don't modify original d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())); // Set to nearest Thursday: current date + 4 - current day number // Make Sunday's day number 7 d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7)); // Get first day of year var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1)); // Calculate full weeks to nearest Thursday var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7); // Return array of year and week number return weekNo; } function currentDate2() { var d = new Date(); return new Date(d.getFullYear(), d.getMonth(), d.getDate()); } function addDate(strDate) { var date = strDate.split('.'); var d = currentDate2(); d.setDate(date[0]); d.setMonth(date[1]-1); d.setFullYear(date[2]); return d; } function isDateInRange(strLower, strUpper) { var now = new Date(); var lower = addDate(strLower); var upper = addDate(strUpper); var inRange = false; if (upper > lower) inRange = (now >= lower && now <= upper) ? true : false; else log('isDateInRange meldet Fehler! "von"-Datum ist nicht früher als "bis"-Datum', 'error'); return inRange; } damit sollte das Skript dann auch funktionieren …..
  • Log Einträge von Require Node-Modulen sehen?

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    335 Aufrufe
    Niemand hat geantwortet
  • Hilfe gesucht bei Werteänderung ohne Ausführung :)

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    445 Aufrufe
    arteckA
    kannst du den Code in Code Tag reinschreiben.. dann ist es lesbarer
  • Script nur ausführen, wenn Systemvariable abc = true UND Sonnenuntergang = true

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    907 Aufrufe
    R
    @MontgomeryB: 1. ist mit dem Script gesichert, dass der jeweilige 'Zeitplan' nur greift, wenn die oberen Bedingungen erfüllt sind? ` Es wird geschaltet, wenn die Zeit erreicht wird und die falls-Bedingungen bereits erfüllt sind! @MontgomeryB: 2. Schaltet das Script auch dann, wenn es erst aktiviert wird, während alle Bedingungen bereits erfüllt sind? Sprich: Ich möchte, dass das Script auch schaltet, wenn ich es erst aktiviere, nachdem die Sonne z.B. bereits vor 60 Min. untergegangen ist. ` Dann musst du noch ein, oder eben mehrere Scripte erstellen, wo der Trigger eben nicht die Zeit, sondern dein "Schalter" und die Zeit muss dann in den falls-Block! Als Zeitvergleich eignet sich z.B. der Block "aktuelle Zeit ist zwischen" da musst du dann z.B. 00:00 Uhr und "Morgendämmerung" abfragen! Enrico
  • [gelöst] Blockly-Frage: Skript1 triggert Skript 2

    Verschoben
    3
    3
    0 Stimmen
    3 Beiträge
    485 Aufrufe
    C
    @Matzebhv: Moin, trigger mal direkt auf den Datenpunkt und nicht auf den Wert. Und dann ändere nach "wurde aktualisiert" Gruß Matze ` Super, das war es, jetzt geht es. Vielen Dank! Gesendet von meinem SM-G920F mit Tapatalk
  • [Frage] Auslesen bestimmter States

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    912 Aufrufe
    Z
    habe schonmal einen kleinen Teil hinbekommen. vielen dank euch beiden. var vrooms = ["Wohnzimmer", "Esszimmer", "Keller_Buero"]; var selectedIDs = []; var aussentemperatur = []; var selectedIDs_aussen = []; for (var f=0, j=vrooms.length; f jetzt möchte ich die selecteIDs nur erhöhen wenn die aussentemperatur <5°C ist. so gesehen ist das ja kein Problem, nur müsste ich irgendwie die alten Temperaturen speichern damit sich das system nicht hochschaukelt.
  • [Frage] Prüfen, ob Wert -1 ist

    Verschoben
    5
    2
    0 Stimmen
    5 Beiträge
    510 Aufrufe
    P
    Das wars :-) Vielen Dank!
  • [Gelöst] Blockly: Tür abschließen nach Abwesenheit mehr als 5 Minuten

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    S
    Dann haben wir es. Danke ihr zwei. Gute Nacht. Stefan
  • Brauche Hilfe mit Blockly

    Verschoben
    18
    0 Stimmen
    18 Beiträge
    1k Aufrufe
    M
    @Matzebhv: Hier ist das Problem beschrieben: http://forum.iobroker.net/viewtopic.php … 6&start=20 Und das ist die Lösung dafür: ` > So, habe es herausgefunden. Warum auch immer das in dem einen DP nicht gestimmt hat. Bei dem funktionierendem DP -> "name": "javascript.0.TESTDP2", Bei dem nicht funktionierendem DP -> "name": "TESTDP", Der Name ist hier nicht vollständig. Nach abändern in -> "name": "javascript.0.TESTDP", lässt sich der DP korrekt einbinden. ` Gruß Matze ` Das war es. Ich habe einfach ne namen "Power" in "javascript.0.Power" umbenannt, auch wenn es kein Javascript ist. Nun konnte ich es auch in der Cloud hinzufügen und der Receiver geht per Sprachbefehl an und aus. Vielen Dank dafür! VG Modjo
  • ScriptEnabled unter Javascript.0 fehlt

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    638 Aufrufe
    Paulchen67P
    Habe es hinbekommen. Habe einfach die Objektstruktur als JSON Datei heruntergeladen und ins neue System hochgeladen.

907

Online

32.4k

Benutzer

81.5k

Themen

1.3m

Beiträge