Skip to content

Skripten / Logik

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

16.5k Themen 213.2k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    P
    Oben steht, dass der Server öfter mal offline ist. Da ist ping meine erste Idee. Ob der Server auf Pings antwortet, weiß ich nicht. Reagiert der Server nicht auf ping, dann evtl. als Ersatz einen httpcheck nehmen. httpcheck nutze ich auf der Synology, bevor die auf den ioBroker zugreift. # ===== HTTP-Check statt Ping ===== curl -s --connect-timeout 3 "$BASE/system.adapter.admin.0.alive" > /dev/null || exit 1 Ist allerdings ein Bash-Skript. Das muss für die Zwecke angepasst werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    M
    Ich habe einen zweiten Statuspunkt (Briefkasten_State) dazu genommen, den ich über einen Button immer wieder zurücksetze. [image: 1769854217178-screenshot-2026-01-31-110831.png]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • Variable Zeit/Schedule Funktion

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    4k Aufrufe
    coyoteC
    Ja ich werde mir dein Script nochmal genauer ansehen. Hab da noch nicht so den Durchblick ;-) Ich probiere einfach mal aus Gesendet von meinem Nexus 5X mit Tapatalk
  • Probleme seit update

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    N
    Ich würde erstmal node-red in der aktuellen Version drüber installierten. Unter Linux geht das mit den folgenden Kommandos cd /opt/iobroker/node_modules/iobroker.node-red iobroker stop node-red.0 npm install –unsafe-perm node-red iobroker start node-red.0 Gesendet von meinem SM-G900F mit Tapatalk
  • Länge/Breite in Javascript Adapter einbinden

    Verschoben
    25
    0 Stimmen
    25 Beiträge
    4k Aufrufe
    ruhr70R
    @Bluefox: Du hast es nicht ganz verstanden. Asynchron heißt: es wird als Auftrag gespeichert und irgendwann später ausgeführt. Und wenn es fertig ist, dann wird die ready Funktion ausgeführt. "Irgendwann später" heißt, wenn er nichts zu tun haben wird und bei dir muss er was tun, nämlich, log ausgeben. ` Ich danke Dir für Deine Erklärung. Das Ergebnis spielt sich ja auch im Log wieder. Das bedeutet aber doch, dass ich um eine setTimeout() Funktion nicht drumherum komme, wenn ich den geschriebenen Datenpunkt im weiteren Verlauf benötige oder? Mit setTimeout() habe ich das jetzt realisiert. Hatte die Hoffnung, dass es auch "eleganter" geht.
  • Funktion wird bei Scriptstart ausgeführt, warum?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    676 Aufrufe
    R
    dankeschön
  • Script beenden

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    5k Aufrufe
    BluefoxB
    @paul53: Eine JS-Funktion kann mit https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/break beendet werden. ` Mit break kann es nicht funktionieren. Weil break nur in den Schleifen funktioniert. ruhr70 hat gute Lösung vorgeschlagen.
  • Email bei Tür wird geöffnet

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    867 Aufrufe
    C
    super danke , hat geklappt
  • [gelöst] Globale Scripte

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    OstfrieseUnterwegsO
    Danke, so mache ich das.
  • Programmierphilosophie - wie geh ich's an?

    Verschoben
    10
    1
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    P
    Eine Riesenerleichterung! Danke! :lol: Gruß Pix
  • Hilfe beim skripten

    Verschoben
    47
    0 Stimmen
    47 Beiträge
    7k Aufrufe
    R
    Ich meinte zum testen hatte ich eine true/false variable verwendet Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk
  • oder Verknüpfung

    Verschoben Gelöst javascript
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    paul53P
    @stephan61: buegeleisen und trigger haben den Wert 0 oder 1 ` Dann sollte auch das funktionieren (implizite Typwandlung): if (buegeleisen || trigger) { setState(idSayIt, "Achtung Bügeleisen ist an "); }
  • Javascript.0.scriptEnable ?

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    678 Aufrufe
    P
    Hallo Stephan, das ist richtig. Genau dafür ist das gedacht. Du kannst Skripte damit aktivieren/deaktivieren (zB aus VIS oder per Skript oder Szenenadapter). Beispiele: Skript zur Kontrolle des Rollladens Balkontür abschalten, während die Balkontür offen steht (Aussperrschutz). Skript zur Überwachung der Fenster und Türen einschalten, wenn Abwesenheit Theoretisch lässt sich das alles auch innerhalb des Skriptes programmieren. Für Einsteiger ist ScriptEnable aber sicher der übersichtlichere Weg, vor allem, da Skripte per VIS-Widget aktiviert/Deaktiviert werden können. Gruß Pix
  • Gelösst Ansage Fenster offen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    S
    habe den Fehler gefunden ich habe die text Datei vom Script Fenster zählen genommen in dieser Textdatei werden zwischen den textestellen ein als zeilenumbruch eingefügt das führte zu der komischen Ansage . Habe nun in dem Script Fenster eine 2 textdatei erzeugt mit einem Und als trenner und jetzt ist die Ansage in Ordnung Gruß Stephan
  • Widget schaltet HTTP GET Befehl

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    BluefoxB
    @akamia: Geht. Setze ich zur direkten Steuerung meines DENON Verstärkers ein. Z.B.: http://192.168.xxx.yyy/goform/formiPhon … ?1+MuteOff Widget: jqui - Icon Http Get Die 433 MHz billig Funksteckdosen hatte ich auch über das Mediola Gateway gesteuert. ` Es sit empfohlen die Skriptversion zu nutzen, weil Widget Lösung funktioniert nur von zuhause. Falls man unterwegs ist, landen die HTTP Befehle in Nirvana. Und dann noch, falls man HTTPS einschaltet, kann man die Requests auch nicht machen, weil die Browser weigern von HTTPS auf HTTP zu greifen. Falls man von Zuhause und nur über HTTP vis laufen lässt, dann kann man die widgets auch benutzen.
  • [gelöst] Reaktion auf Kalendereintrag

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    2k Aufrufe
    S
    Merci, Ich schaue morgen mal und werde berichten…danke!
  • Node-Red Deployment Probleme *** Gelöst ***

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    6k Aufrufe
    T
    Hallo, hab nun die die aktuelle Node-red Version 0.13.2 installiert. Damit sind meine Deployment-Probleme mit "Error: connection to server lost" auch endlich gelöst. cd /opt/iobroker/node_modules/iobroker.node-red iobroker stop node-red.0 npm i --unsafe-perm node-red@0.13.2 iobroker start node-red.0 Es läuft nun alles stabil…. :) :) :)
  • Einschaltdauer

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    P
    Hey Pix, danke für die Tipps :D Ich bin für jeden Tipp dankbar. Gerade wenn diese einem das Leben langfristig erleichtern. Werde meine Scripte demnächst mal umbauen. Gruß Phantomio
  • [gelöst] String Inhalt durchsuchen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    P
    Danke euch beiden für die schnelle Antwort. Mit dem Code von Bluefox funktioniert es :) Hier noch einmal die Funktion falls es mal jemand brauchen kann. Soll die letzte Sprachausgabe wiedergeben :lol: ! function fSprachausgabeWiederholen (){ lastsay = getState("sayit.0.tts.text").val; if (lastsay.indexOf("Nerv") != -1){ // Nerv kommt vor }else{ if (lastsay.indexOf("Gut") != -1){ setState (idSayIt, "Nerv mich nicht. Ich habe mich bereits wiederholt. "); }else{ if (lastsay.indexOf("Ich") != -1){ setState (idSayIt, "Gut zuhören. Ich wiederhole mich nur noch einmal. " + lastsay); }else{ setState (idSayIt, "Ich habe gesagt: " + lastsay); } } } setStateDelayed ("javascript.0.SprachausgabeWiederholen", true, 14000); } ! Gruß Phantomio
  • [fixed] on ID - Ausführung doppelt ?

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    3k Aufrufe
    P
    Da ich diese globale Funktion auch für andere Sachen benutze, und diese nur eine e-Mail senden würde ich das erst mal ausschließen. Die globale Funktion ist genau wie die Mail Funktion aufgebaut. Liegt halt nur in einem Globalen Script.
  • Per Skript widget ausführen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    BluefoxB
    @Konni: Jetzt bin ich es schon wieder, wenn ich es in mein vorhandenes Script einbaue, öffnet sich zwar der Dialog, schließt sich aber nicht mehr :( /* Bewegung zaehlen und in VIS anzeigen für hofi77 http://forum.iobroker.net/viewtopic.php?f=21&t=1703#p14520 Bitte anpassen mit eigener Seriennummer erstellt: 14.11.2015 von Pix */ var idSayIt2 = "sayit.2.tts.text"; var vol2 ="sayit.2.tts.volume"; createState('VIS.Klingel_zeigen', false, { read: true, write: true, type: 'boolean', name: 'Klingel im VIS Widget anzeigen', desc: 'Steuervariable für VIS Widget Sichtbarkeit' }); createState('VIS.Klingel_zaehlen', 0, { read: true, write: true, type: 'number', name: 'Klingel zählen', desc: 'Counter für Klingeln' }); var idKlingelsensor = "hm-rpc.0.MEQ0657356.1.PRESS_SHORT"/*HM-Sen-DB-PCB MEQ0657356:1.PRESS_SHORT*/, idCountKlingel = 'VIS.Klingel_zaehlen', idShowKlingel = 'VIS.Klingel_zeigen'; on({ id: idKlingelsensor, val: true }, function (obj) { var counter = getState(idCountKlingel).val; // bisherige Zahl aus Variable einlesen setState(idCountKlingel, ++counter); // eins hochzählen setState (vol2,99); setState (idSayIt2, "Es klingelt oben"); setState("vis.0.control.data", 'w00104'); // hier ist Widget-name setState("vis.0.control.instance", 'FFFFFFFF'); setState("vis.0.control.command", 'dialogOpen'); setStateDelayed("vis.0.control.command", 'dialogClose', 5000); //setState(idShowKlingel, true); // Steuerung VIS-Widget Sichtrbarkeit auf wahr //setStateDelayed(idShowKlingel, false, 5000); // nach 10.000 ms wieder ausblenden }); // Mitternacht Zähler zurücksetzen schedule('0 * * * *', function () { setState(idCountKlingel, 0); }); ```` ` Dann mach beim schlissen das gleiche: setStateDelayed("vis.0.control.command", {instance: 'FFFFFFFF', data: 'w00104', command: 'dialogOpen'}, 5000);
  • Scriptstart bei Aufruf einer URL

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    6k Aufrufe
    M
    Super, klappt einwandfrei. Danke

575

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge