Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.9k 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
    paul53P
    @maxclaudi sagte: wenn es nicht mit neuer Firmware verändert wurde Es sieht danach aus. Log von heute: 2026-08-14 03:41:21.984 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (1): timeout of 2000ms exceeded 2026-08-14 03:41:25.004 - info: javascript.0 (838) script.js.common.Solarflow: Verbindung wieder OK 2026-08-14 06:20:27.839 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (1): timeout of 2000ms exceeded 2026-08-14 06:20:30.862 - info: javascript.0 (838) script.js.common.Solarflow: Verbindung wieder OK 2026-08-14 09:04:33.916 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (1): timeout of 2000ms exceeded 2026-08-14 09:04:36.934 - info: javascript.0 (838) script.js.common.Solarflow: Verbindung wieder OK 2026-08-14 10:55:19.354 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (1): timeout of 2000ms exceeded 2026-08-14 10:55:24.190 - info: javascript.0 (838) script.js.common.Solarflow: Verbindung wieder OK 2026-08-14 10:55:34.354 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (1): timeout of 2000ms exceeded 2026-08-14 10:55:39.354 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (2): timeout of 2000ms exceeded 2026-08-14 10:55:42.398 - info: javascript.0 (838) script.js.common.Solarflow: Verbindung wieder OK 2026-08-14 10:55:49.355 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (1): timeout of 2000ms exceeded 2026-08-14 10:55:54.355 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (2): timeout of 2000ms exceeded 2026-08-14 10:55:57.517 - info: javascript.0 (838) script.js.common.Solarflow: Verbindung wieder OK 2026-08-14 11:48:39.606 - info: javascript.0 (838) script.js.common.Solarflow: GET Fehler (1): timeout of 2000ms exceeded 2026-08-14 11:48:42.624 - info: javascript.0 (838) script.js.common.Solarflow: Verbindung wieder OK Der SF ist schon seit Wochen vom Internet getrennt. Mein Nachbar funkt zur Zeit auf dem gleichen Kanal wie ich.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    W
    erledigt
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    A
    @OliverIO ich kopiere morgen mal die Meldungen die mir Node-Red auswirft. Es steht meistens, ....ist kein String....
  • Fehler im Blockly Unexpected token

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    C
    Es scheint als wenn es daran lag als ich die Skripte Exportiert und Importiert habe nun habe ich es auf einer frischen Installation von IO gemacht und ein Script neuerstellt nun geht das wieder. Muss halt leider alle Skripte neu anlegen aber was solls. MFG Maggi
  • [Problem] Buttons schalten Variablen nicht

    Verschoben
    2
    4
    0 Stimmen
    2 Beiträge
    726 Aufrufe
    arteckA
    es ist nicht gleich konfiguriert wie Lüftung ins Bett mach bitte folgendes .. erzeuge die Variable neu aber so ins_Bett ( also ohne Leerzeichen mit Unterstrich)
  • Bewegungsmelder und HM-Schalter

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    E
    So unterschiedlich ist die Anforderung garnicht. Licht per Bewegungsmelder, für die Zeit X, soll immer gehen und bei Tasterdruck Dauerlicht bis zum nächsten Tasterdruck. Ich habe da mal einen eigenen Thread aufgemacht, bin aber gerade etwas frustriert, weil es nicht klappt, wie ich gern möchte. Wie im richtigen Leben halt :-). http://forum.iobroker.net/viewtopic.php?f=21&t=7258
  • Variable aus node-red in vis darstellen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    S
    Hi Homoran, … danke für den Hinweis mit dem IO Broker Out-Node, das war die Lösung. Mit diesem bin ich in der Lage neue Objekte unter Node-Red zu erzeugen und nach außen weiterzugeben. Viele Grüße Stefan
  • Javascript Wecker (1 Std vor Beginn eines Kalendereintrags)

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    E
    Habe es hinbekommen (über Cronjob x Minuten vor dem Event). Falls noch jemand ähnliches vor hat, hier der Code. ! schedule("15 5 * * *", function () { // Weckzeit hier einstellen (Bsp: 05:15) - Dann wird der Cronjob gestartet ! var kalender = getState("ical.0.data.html").val; ! var suche_heute = kalender.indexOf('Heute'); ! var wecker = kalender.slice((suche_heute + 6), (suche_heute + 11)); ! if (wecker == "06:00") ! { ! setState('hue.0.Philips_hue.Schlafzimmer.on', true); ! } ! log(kalender); ! log(suche_heute); ! log(wecker); ! }); Im Codebeispiel wird davon ausgegangen dass das Event (Frühschicht) als einziges Event für den heutigen Tag im Kalender mit Startzeit 06:00 Uhr eingetragen ist und "Zeit als Wort anzeigen" in den Adaptereinstellungen aktiviert ist. Der Wecker soll um 05:15 Uhr das Licht im Schlafzimmer anschalten. Dazu wird um 05:15 Uhr der Cronjob gestartet und geprüft ob ein Event mit Beginn 6 Uhr existiert, wenn ja dann geht das Licht an. Wenn nicht, dann passiert nichts. Für weitere Wecker einfach ein weiteres Script mit anderen Zeiten erstellen.
  • (Gelöst) Blockly - wahrscheinlich bin ich zu doof

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    884 Aufrufe
    E
    Das war´s. Wieder was gelernt :) . Danke Dutch.
  • JSON

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    R
    Danke. Das funktioniert. Ich habe nach bestem wissen nach der korrekten Syntax gesucht data[0] in eckige Klammer zu setzen habe ich nicht vericht. Ich habe runden klammern verwendet. Jetzt komme ich weiter. Prima.
  • [gelöst] JSON - prüfen ob Wert vorhanden ist

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    3k Aufrufe
    bahnuhrB
    Hallo, danke für eure Hinweise. Habe es jetzt so gelöst: if (obj.timer.next) { setState('javascript.0.Status.Mähroboter.Timer.next_date', obj.timer.next.date.substr(0,obj.timer.next.date.length-4)); setState('javascript.0.Status.Mähroboter.Timer.next_time', obj.timer.next.time.substr(0,obj.timer.next.time.length-3)); } else { log ('Mähroboter: - next: date und time - kann nicht gelesen werden.'); } Klappt wunderbar. mfg Dieter
  • [gelöst] Blockly Auslöser 0 Prozent

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    S
    Hallo Rantanplan, manchmal ist die Lösung so einfach. Aber ich habe Sie halt nicht gefunden. Danke für deinen Tipp :-) Funktioniert nun einwandfrei… Danke Gruß Sven
  • [Gelöst] Wie Geo-Position (Länge/Breite) in Javascript abfragen?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    D
    Jupp, das klappt. Dank!
  • Skript Temperaturen basierend auf "Feuchtigkeitsscript" funktioniert nicht ganz

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    512 Aufrufe
    Niemand hat geantwortet
  • Wie einfache Zeitschaltung?

    Verschoben
    34
    1
    0 Stimmen
    34 Beiträge
    10k Aufrufe
    M
    Hallo. Da es in dem ursprünglichen Beitrag ebenfalls um eine Blocky Zeitschaltuhr ging hatte ich gedacht ich klinke mich in das Thema mit ein. Wollte hier ja nicht für Unordnung sorgen. Was ich genau möchte hatte ich ja bereits geschrieben. Aus der Reihe manuell schalten und die Zeitschaltuhr soll erst nach einer Zeit x den Zustand erneut prüfen und ggf korrigieren. Nicht bereits nach 1 Minute. Werde selber noch mal versuchen die Sache auf die Kette zu bekommen. Ansonsten muss ich halt einen neuen Thread auf machen. Gruß Markus Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk
  • [gelöst]Daten splitten und Ausgängen zuweisen

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    T
    Ich denke ich habe es gefunden… Durch weglassen der eckigen Klammern bei " return [ outputMsgs ]; " werden die Daten entsprechend der Ausgänge zugewiesen.
  • Allgemeine Frage zur Umsetzung / Bin ich hier richtig?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    935 Aufrufe
    apollon77A
    Um die originale Frage zu beantworten: Du brauchst ein einfaches JavaScript-chen oder Blockly-Skript um genau das von Dir genannte "aufbereiten" der Daten zu machen, Das Ergebnis schreibst Du in neue States die dann unter z.B. javascript.0.xyz liegen und die kannst Du dann in VIS anzeigen
  • Blockly runterdimmen

    Verschoben
    8
    1
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    P
    Danke für die Antwort. Ja die Variable ist zu Anfang leer (habe sie jetzt aber sicherhaltshalber mal auf 0 gesetzt zu Anfang.) Im Prinzip ist das ja richtig (wenn ich z.B. die Streifen mit dem Tablet anmache überschreibt der Schalter diesen Wert sonst), aber in diesem Fall wäre es erstmal egal. Ich bin dem Problem aber weiter auf der Spur und habe nun evtl. eine Lösung. Und zwar habe ich zwave.0.NODE2.CONFIGURATION.Time_to_complete_the_entire_transition_(for_MODE_2) von 68 auf 10 gesetzt. Dadurch läuft das Dimmen beim Einschalten viel schneller ab, aber das Programm funktioniert nun. Evtl. dimmt der Fibaro Controller zu langsam hoch, sodass iobroker "denkt" das der Befehl nicht ausgeführt wurde und dann wieder zurücknimmt? Naja nun gibt es aber ein neues Problem: Die Zeit bis der LED Controller auf den Tastendruck reagiert ist sehr lang. Beim ersten Tastendruck ( 0 => 10% reagiert der Controller quasi sofort, aber dann läuft es teilweise mit 10 Sekunden verzögerung ab. An was kann es liegen? Macht es einen Unterschied, ob ich direkt den Zustand beim Taster abfrage ("Falls Objekt XY ist wahr") oder Abfrage ob es eine Änderung gibt (wurde aktualisiert) und danach nochmal mit einem If Prüfe ob der Taster gedrückt wurde? Edit: Nachdem es mittlerweile gar nicht mehr reagiert hat (Die Ausgangswerte in iobroker haben sich zwar geändert, die Controller aber nicht mehr reagiert) und ich alles neugestartet habe (nur die Controller neuzustarten bzw. den Adapter zu resetten etc. reichte nicht) geht es nun recht und ohne Zeitverzögerung. Ich werde nun mal weiter testen ;)
  • Homematic LED Dimmer HM-LC-Dim1PWM-CV mittels Taster dimmen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    4k Aufrufe
    S
    Hi Pix, hatte ich leider schon erfolglos probiert. Siehe verlinktes Thema im Startpost.
  • [gelöst]Script nicht unter Objekte sichtbar

    Verschoben
    31
    0 Stimmen
    31 Beiträge
    5k Aufrufe
    HomoranH
    @Superdad: Betreff lässt sich ja nicht ändern? ` Doch! Deinen Initialpost editieren und vorne dran [gelöst] schreiben
  • EBus Befehl über script absetzen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    991 Aufrufe
    Niemand hat geantwortet
  • [gelöst] net.connect() Fehler lässt Javascript Adapter abstürzen.

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    D
    Problem gelöst. Aufrufe von nicht erreichbaren Dienste innerhalb von net.connect() führt zum Absturz des Javascript Adapters. Ich habe es nun etwas umformuliert. Hierbei greift nun auch der Error Handler. Auf diesem Wege habe ich auch direkt einen Timeout-Schutz hinzugefügt. Vielleicht kann es jemand gebrauchen ;-) var net = require('net'); function readTelnet3083() { var client = new net.Socket(); client.setTimeout(1000, function() { client.destroy(); }); client.connect(3083, function() { console.log("Verbunden"); }); client.on('data', function(data) { ... ... Hier wird die Telnet Ausgabe geparsed ... }); client.on('end', function () { console.log('Daten ausgelesen'); }); client.write('command 1\n'); client.write('command 2\n'); client.end(); client.on('error', function(err) { client.destroy(); console.log('Telnet Server nicht erreichbar. Telnet Neustart'); exec('/etc/init.d/telnetservice restart'); }); } setInterval(function() { readTelnet3083(); }, 60000); Werde noch den Thread-Titel anpassen, da dieser ja nun überhaupt nicht mehr passt ;-)
  • 433 Mhz Funksteckdose mit Skript will nicht

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    3k Aufrufe
    AlCalzoneA
    @Matze1708: Aber braucht man diese Konstellation überhaupt? Kann man das nicht über ein skript erledigen? ` Du kannst natürlich ein Skript bauen "Steckdose_an", in dem nur die exec-Befehle stehen und eins "Steckdose_aus", in dem die Befehle zum Ausschalten sind. Die kannst du von Hand starten und wieder stoppen. Die sauberere Variante (wie in artecks Skript) ist aber ein Datenpunkt, der entweder true oder false ist (an oder aus) und von einem Skript überwacht wird. Erkennt das Skript, dass der Datenpunkt true ist, werden die an-Befehle gesendet, sonst die aus-Befehle. –- "javascript.0.scriptEnabled.Skripte.Funksteckdosen.2Dose_dummy" als Datenpunkt-Name ist aber ungünstig. Wo hast du das her? scriptEnabled.*** steht eigentlich für den Zustand (aktiviert /deaktiviert) von Scripts. Geeigneter wäre ein Name wie "javascript.0.Funksteckdosen.2Dose_Status".

419

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge