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
    G
    @GombersIOB Danke für deine ausführliche Erläuterung, jetzt ist "fast" alles klar. Nur zur Sicherheit: Der Ladestart erfolgt durch Schalten der Dose in der Shelly-App, an der Dose selbst oder über den Datenpunkt ".relay.0.switch"? Danke Thomas
  • 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....
  • Initialzündung benötigt

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    875 Aufrufe
    T
    ok… der Tipp mit der Aktualisierung hat schon mal weiter geholfen!
  • Nachhilfe in Javascript

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    AlCalzoneA
    @Thisoft: if (err || !client) ```` ` Ich glaube das wichtigste wurde hier noch nicht erwähnt. Nicht sicher ob dir das bewusst ist: Die Variablen err und client sind sehr wahrscheinlich Objekte. Diese sind in JavaScript "truthy" (also "wahr oder so ähnlich"), wenn sie weder null noch undefined sind. Der obige Code prüft also, ob entweder err einen Wert hat oder client keinen hat. Sollte eine dieser Variablen ein boolean sein, kann es seltsam werden. Ausführlich wäre das so: if (err != null || client == null) mit dem Hinweis dass "!= null" prüft ob die Variable weder null noch undefined ist. (!== null würde nur mit null vergleichen) oder if (typeof err !== "undefined" || typeof client === "undefined") Kurz: 1. funktioniert, kann aber unvorhergesehene Auswirkungen haben 2. ist weniger anfällig und mein Favorit 3. ist mir persönlich zu lang, funktioniert aber auch wenn du die Variable vorher nicht definiert hast.
  • [gelöst] Testen von Blockly Scripten

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    4k Aufrufe
    S
    O.k. das schreiben ins Log funktioniert nun. (Ich hatte nicht begriffen dass man die Variable über das hellblaue Feld, das am Baustein Debug Output mit "xy" hängt einfach rüberziehen kann.) Besten Dank
  • Hausstatus Script

    Verschoben
    15
    0 Stimmen
    15 Beiträge
    2k Aufrufe
    lobomauL
    @BuZZy: @lobomau: Inzwischen zählt er doch. Habe nichts geändert (außer js-controller update und damit auch iobroker neugestartet). Mein Problem sind jetzt aber die Geräte von homematic IP, die haben zwei Kanäle mit STATE, die auch beide reagieren wenn Licht angehen. Eine Möglichkeit wäre vielleicht wenn ich dem einen nicht mehr zuordne der Function Licht. Aber man es sicherlich auch so programmieren dass doppelte Namen nicht doppelt gezählt werden sollen. ` createState('Watchdogs.Lichter.WieVieleSindOffen', 0); createState('Watchdogs.Lichter.WelcheSindOffen', " "); var cacheSelectorLICHTER = $('channel(functions=Licht)[state.id=*.STATE]'); function countLichter(obj) { var textLICHTER = []; cacheSelectorLICHTER.each(function (id, i) { var status = getState(id).val; var obj = getObject(id); if (status === true && textLICHTER.indexOf(obj.common.name.substr(0, obj.common.name.indexOf(':'))) === -1) { textLICHTER.push(obj.common.name.substr(0, obj.common.name.indexOf(':'))); } }); setState("Watchdogs.Lichter.WelcheSindOffen", textLICHTER.join(', ')); setState("Watchdogs.Lichter.WieVieleSindOffen", textLICHTER.length); } cacheSelectorLICHTER.on(function(obj) { countLichter(obj); }); schedule("0 */1 * * *", function () { countLichter(); }); Probier es mal da mit.. Gruß ` Cool. Läuft!
  • 0 Stimmen
    15 Beiträge
    3k Aufrufe
    M
    Sorry, dass ich jetzt erst antwortet. Bzgl. der Frage, wann das passiert, kann ich derzeit keine vernünftige Antwort geben. Die genauen Randbedingungen habe ich derzeit noch nicht eingekreist. Optimalerweise sollte es überhaupt keine "verbotenen" Zustände bei der Benutzung eines API geben. Der Adapter sollte die Kommandos so lange verzögern, bis die Sonos Box wieder empfangsbereit ist, ohne Zicken zu machen. Werde noch ein bisschen forschen und dann ein Update geben.
  • Heizungssteuerung mit Siemens-Webserver OZW 672

    Verschoben
    26
    0 Stimmen
    26 Beiträge
    5k Aufrufe
    DutchmanD
    Und siehe da im Log steht jetzt auch der Wert 14.2 also geschafft ! 01:15:01.897 [info] javascript.0 script.js.test40: 14.2 Als nästen Schritt wolltest du das jetzt in ein object schreiben und dan alle x Minuten Update ? –----------------------- Send from mobile device
  • Skript für Alarmanlage

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    PeoplesP
    Hi, hier auch nochmal ein Link:http://forum.iobroker.net/viewtopic.php?f=30&t=2850 Dort im vierten Beitrag habe ich im Spoiler das Script gepostet welches ich in geänderter Form verwende. Leider finde ich den Original-Beitrag vom Ersteller nicht mehr. Gruß Steffen
  • Gelöst: HTPC shutdown mit jsonrpc

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    Jey CeeJ
    Dann bitte den ersten Beitrag editieren und den Betreff am anfang um [Gelöst] ergänzen.
  • GetState - wo kommt der Wert her??

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    etvE
    … alles klar! Ich danke euch für das "Licht ins Dunkel"! Liebe Grüße tom Gesendet mit Tapatalk
  • [Vorlage] Sony Bravia TV ab 2013

    Verschoben
    18
    0 Stimmen
    18 Beiträge
    6k Aufrufe
    M
    Hallo, bekomme folgende Fehlermeldung: host.loxberry 2017-09-21 21:14:22.240 error instance system.adapter.javascript.0 terminated with code 0 (OK) javascript.0 2017-09-21 21:14:22.208 info terminating javascript.0 2017-09-21 21:14:22.181 error at emitNone (events.js:91:20) javascript.0 2017-09-21 21:14:22.181 error at IncomingMessage.g (events.js:292:16) javascript.0 2017-09-21 21:14:22.181 error at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1085:12) javascript.0 2017-09-21 21:14:22.181 error at Request.emit (events.js:188:7) javascript.0 2017-09-21 21:14:22.181 error at emitOne (events.js:96:13) javascript.0 2017-09-21 21:14:22.181 error at Request. (/opt/iobroker/node_modules/request/request.js:1163:10) javascript.0 2017-09-21 21:14:22.181 error at Request.emit (events.js:191:7) javascript.0 2017-09-21 21:14:22.181 error at emitTwo (events.js:106:13) javascript.0 2017-09-21 21:14:22.181 error at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22) javascript.0 2017-09-21 21:14:22.181 error at Request._callback (script.js.Sony_Bravia.Main:270:110) javascript.0 2017-09-21 21:14:22.181 error TypeError: Cannot read property 'title' of undefined javascript.0 2017-09-21 21:14:22.180 error uncaught exception: Cannot read property 'title' of undefined javascript.0 2017-09-21 21:14:22.159 info script.js.Sony_Bravia.Main: Body {"id":24,"result":[object Object]} Kommentiere ich die Zeile 270 aus, geht es. Ich habe ja absolut keine Ahnung, aber kann es daran liegen, dass ich keine Kanäle habe? Benutze den Fernseher nur als Bildschirm. Grüße Mighty
  • Fehlerhafte Json-Abfrage - Bitte um Hilfe

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    767 Aufrufe
    DutchmanD
    Ok eventuell jemand noch eine Idee? Ich Schau sonst Mal was am Wochenende anliegt maar wieder zu viel Project (Arbeit und privat :/) –----------------------- Send from mobile device
  • Hilfe bei Scripterstellung!

    Verschoben
    37
    0 Stimmen
    37 Beiträge
    6k Aufrufe
    D
    Guten Abend. Ich habe das Script von Paul53 deaktiviert. Zum einen bin ich zu keiner Lösung gekommen, und hier im Forum konnte mir auch keiner helfen. Zum Anderen hat sich beim Einschalten des Denon immer die IP im Script geändert, sie wurde erweitert mit <u>NSET1SNM 255</u>. Danach war der Denon logischerweise nicht mehr mit ioBroker verbunden. Mit der Deaktivierung des Scriptes hat sich das Problem gelöst.
  • [Frage] Probleme beim Schalten von Heizgruppen auf Manu

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    608 Aufrufe
    BuZZyB
    Na ganz einfach, wenn du das Fenster öffnest sendet der Fensterkontakt an den Thermostat: "Fenster wurde geöffnet! Temperatur auf 5° stellen!" Ich würde ein Script bauen: wenn Schlafmodus aktiviert und Fenster geöffnet wird, 5 Sekunden später Thermostat auf 4,5° stellen. Edit: Hab mich verlesen. Du schreibst es klappt wenn du den Schlafmodus vorher aktivierst..? Die Fenster auf Temperatur hat wohl Priorität. Würde einfach das Script wie oben erwähnt einsetzen.. Wenn Schlafmodus aktiviert dann einfach ein paar Sekunden nochmal die Temperatur setzen. Gruß
  • Bilder in Telegram, variablen und Funktionen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    S
    Fehler gefunden. Danke Euch für Eure Hilfe. Anscheinend wurde das Bild verschickt bevor es überhaupt richtig gespeichert war. Mit einer Sekunde Verzögerung zwischen speichern und "senden an Telegram" funktioniert es problemlos. setTimeout(function() { sendTo('telegram.0', { text: DoorbirdImagePath, caption: 'Es hat aktuell'+getState("hm-rpc.0.KEQ0174317.1.TEMPERATURE"/*Aussenthermometer Status.TEMPERATURE*/).val + '°C.', disable_notification: true, }); }, 1000); Gruß und Danke nochmals Sebastian
  • Aktion bei bedarf verzögert auslösen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    PeoplesP
    Ja ich habe tatsächlich 48 Stunden Versatz, in der Automatik. Diese greift jedoch seltenst, da ich zwei kleine Kinder habe die sich einen Spaß daraus machen auf dem Sauger rum zu drücken :lol: Gruß Steffen
  • [gelöst] Warnung für Script Tankerkönig zu Homematic Variable

    Verschoben
    8
    3
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    S
    @Homoran: konvert.jpg ` Verdammt, so einfach ist das???????????????? :lol:
  • [Fehler?] beide javascript Adapter werden ausgeführt

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    740 Aufrufe
    DutchmanD
    War glaube ich schon immer so, jedenfalls seit ich diese Konstruktion benutze Anno Januar 2017 –----------------------- Send from mobile device
  • [Gelöst] Wie eine Json Tabelle um einen String ergänzen

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    PeoplesP
    Der Vollständigkeit halber hier nochmal das ganze Script, da es noch einen Fehler hatte falls es doch jemand mal braucht. // Regenmenge in Variable schreiben function strToJson(str) { str = str.split(/Datum:| Regenmenge:/); var json = getState(pfad0 + 'Regen_Historie').val; var tabelle = []; if(json !== "") tabelle = JSON.parse(json); tabelle.push({ "Datum" : str[1], "Regenmenge": str[2], }); return JSON.stringify(tabelle); } function logRegen(regenmenge) { var datum = new Date(); var str = 'Datum: ' + formatDate(new Date().setDate(new Date().getDate()-1), 'DD.MM.YYYY') + ' Regenmenge: ' + regenmenge + ' l/qm'; setState(pfad0 + 'Regen_Historie', strToJson(str)); log('durchlauf'); } on("hm-rega.0.xxxx"/*${sysVarRainYesterday}*/, function (dp) { logRegen(dp.state.val); }); Gruß Steffen
  • On function auch bei gleichem neuen Wert ausführen

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    N
    @paul53: @NightWatcher: Die Reagiert so aber leider nur, wenn der Wert sich ändert. Gibt es hierfür eine Lösung? ` Ja. on({id: "cloud.0.services.ifttt"}, function(obj) {}); ```` ` Sauber danke. Genau das war es. Man sollte die github readme in ner ruhigen Minute auch komplett lesen. Dabei habe ich vorab bereits einige Zeit versucht gehabt, es selbst zu lösen.
  • Wrong Type

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    kmxakK
    on({id: "javascript.0.User.Alarmserver.Treppenhaus"/*Treppenhaus*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('javascript.0.scriptEnabled.User.Telegram.Alarm_Bild_Treppenhaus', true, false, parseInt(0, 10), false); setStateDelayed('javascript.0.User.Alarmserver.Treppenhaus', false, true, parseInt(15000, 10), false); console.debug('test'); }); Bitte

346

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge