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
    Ro75R
    Es kommt der Fehler 500 - vorrübergehend nicht zu erreichen. Das war vor längerer Zeit schonmal über eeiiinnnige Tage. Mehr kann ich dazu nicht sagen, da ich dieses Script abgelöst habe gegen mein Wetterscript was mit der OWM API arbeitet. Nur bin ich im Moment nicht bereit das ganze System hier zu veröffentlichen, da es 6 Adapter restlos ersetzt und 6500 Zeilen Code beinhaltet. Da ist mir der Support zu gewaltig, auch wenn die Konfig nur 5 Werte sind. Ro75.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    W
    @paul53 Bombe! Vielen Dank! Gleich die erste Version passt perfekt. Möchte nur um 11 Uhr entscheiden ob es sinnvoll ist die Klima einzuschalten. Brauch das nur im Sommer, drum interessiert Winterzeit nicht. Vielen Dank Dir
  • Hilfe für Skripterstellung mit Node-RED

    963 13k
    963 Themen
    13k Beiträge
    A
    @Marc-Berg sagte: @ak68 sagte: Wie kann ich den Adapter manuell updaten ? Gar nicht, du müsstest warten, bis der Adapter hochgezogen wird. Alternativ den sun-position Node downgraden, oder benötigst du das Update fachlich? Danke, habe jetzt down-gegraded :(
  • Skript Vis (vis.setValue)

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    539 Aufrufe
    Niemand hat geantwortet
  • Gelöst:Blockly: Addition 2er Variablen, stehe auf dem Schlauch

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    MatzebhvM
    Hi, der Wert kommt tatsächlich über den FHEM-Adapter als Text. Danke für den Hinweis! So geht das nun wie gewünscht: [image: 3514_blockly2.png] Matze
  • Schrankbeleuchtung

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    CKMartensC
    Hab es jetzt wie paul53 mir empfohlen hat gemacht und heute früh hat es funktionert. Danke nochmals an alle. Carsten
  • Blockly, Radar, Alexa und Anwesenheitserkennung

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    MessiahsM
    Hallo Tom, für die Anwesenheitserkennung habe ich das AddOn "Radar" in ioBroker laufen. Sobald mein Handy in Reichweite ist, wird es somit von Radar erkannt (Bluetooth). In Radar kann für jedes Bluetooth-Gerät bereits einen Namen vergeben werden… also z.B. "Person1", deshalb wollte ich ungern weitere Variablen (Person1-Anwesend) erstellen. Ich habe es in JS wie folgt gelöst: function diffArray(arr1, arr2) { return arr1.concat(arr2).filter(function (val) { if (!(arr1.includes(val) && arr2.includes(val))) return val; }); } on({id: 'radar.0.whoHere', change: "ne"}, function (obj) { console.log('+++++++++ Anwesenheit +++++++++++ '); var newState = '', oldState ='', newStateArray = [], oldStateArray = [], changedPerson = '', sayString = "", delay=0; newState = (obj.newState.val ? obj.newState.val : ""); oldState = (obj.oldState.val ? obj.oldState.val : ""); console.log('newState: ' + newState); console.log('oldState: ' + oldState); if(newState.length>0){ newStateArray = (newState.split(", ") ? newState.split(", ") : newStateArray.push(newState) ); } if(oldState.length>0){ oldStateArray = (oldState.split(", ") ? oldState.split(", ") : oldStateArray.push(oldState) ); } // console.log('newStateArray.length: ' + newStateArray.length); // console.log('oldStateArray.length: ' + oldStateArray.length); changedPerson = diffArray(newStateArray, oldStateArray).toString(); changedPerson = changedPerson.replace(',',' und '); console.log('changedPerson: ' + changedPerson); if (newStateArray.length > oldStateArray.length){ // Person neu hinzugekommen sayString = "Willkommen zuhause " +changedPerson; delay =5000; } else { // Person hat den Bereich verlassen sayString = "Tschüss " + changedPerson; delay =0; } //Alexa ansteuern setState("alexa2.0.Echo-Devices.G000Jxxx.Commands.speak-volume"/*volume*/, 35); setStateDelayed("alexa2.0.Echo-Devices.G000xxx.Commands.speak"/*controlNext*/, sayString, delay, false); }); Grüße Markus Edit: code angepasst
  • Node Red Array in ioBroker nutzen

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    12k Aufrufe
    A
    Hallo, vielen Dank für den Tip. Habe es jetzt mit dem Array hinbekommen. André
  • WOL Skript Fehler

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    800 Aufrufe
    M
    @arteck: hast du auch die javainstanz kofiguriert ` nein, ging aber anscheinend auch ohne. danke trotzdem euch beiden
  • Blockly Anfänger möchte Rollos steuern Homematic Geräte

    Verschoben
    8
    1
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    H
    @zakuma: Danke probiere ich mal so aus. Die Homematic Zentrale kann aber nur Tageszeit Sonnen auf/Untergang und dies ist mir zumindest bei Untergang eigentlich zu Früh. Hast schon recht das man die Grundfunktionen gut in der Zentrale nutzen kann, weiß aber nicht wann die Zentrale zu überladen ist. Man liest ja davon schon mal das zu viele Funktionen die Zentrale überladen deshalb wollte ich es direkt auslagern. ` Ich habe als eines der wenigen Scripte das Tageszeitenscript (such danach per Suchfunktion im Homematic-Forum) in der CCU laufen. Es befüllt eine Systemvariable mit den Werten Nacht;Frühmorgens;Morgengrauen;Vormittag;Mittag;Nachmittag;Dämmerung;Abend. Damit hast du genügend Zeitpunkte über den Tag verteilt, mit denen du arbeiten kannst. Dazu noch gewisse Verzögerungen in den Aktionen der Programme und fertig. Und was die Belastung der CCU betrifft, wirst du auch als Power-Anwender mit > 100 Geräten nicht an deren Grenzen kommen. Vorausgesetzt die von dir eingerichteten Programme arbeiten Funkhygienisch sauber und es gibt keine schlecht programmierten Scripte, die das System ausbremsen könnten. Gruß Manfred
  • Blockly 14 Tage timer

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    A
    @Dutchman: Warum so kompliziert ? Jeden Tag laufen lassen und immer object + 1, Dan ne If wen object 13 für aus und setze auf null ` … wenn's auch einfach geht :-) Stimmt, so ist es eleganter.
  • Alle Unterobjekte abfragen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    967 Aufrufe
    P
    Oder mit regexp: https://github.com/ioBroker/ioBroker.ja ... some-state Scroll nach unten. Pix
  • [Vorlage] Denon Skript

    Verschoben
    141
    1
    0 Stimmen
    141 Beiträge
    41k Aufrufe
    MicM
    @djtale2003: Danke für den Tip. Das Script funktionert. Aber wie kann ich dort den Trigger auslesen? Und wie kann ich in meiner Homematic die Systemvariablen für den Inputkanal und Power binden? Mit dem "alten" Script hat das wundebar funktioniert. ` Welcher Trigger? Dieser Thread hier handelt nicht vom Denon-Adapter, daher empfehle ich Dir, einen neuen Thread aufzumachen mit Bezug auf den Denon-Adapter und möglichst genauer Fragestellung.
  • Homematic Ramp_time in blockly

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    401 Aufrufe
    Niemand hat geantwortet
  • Umrechnung einer Variablen von Minuten in Stunden und Minuten

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    W
    Ich wollte, wenn ich die Betriebsstunden über snips abfrage, das der Wert, der in der wago in Minuten eingetragen ist, umgerechnet ausgegeben wird.
  • Blockly Skript licht schalten

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    B
    Hallo ihr zwei, Ich werde versuchen eure beiden Lösungsansätze in die Tat umzusetzen und Berichte euch anschließend. Vielen Dank für eure Unterstützung. Gesendet von meinem SM-A520F mit Tapatalk
  • Http-Befehl ausführen

    Verschoben
    5
    -1 Stimmen
    5 Beiträge
    2k Aufrufe
    BuZZyB
    var request = require("request"); request('http://192.168.178.78/test', function (error, response, body) { ..... hier dein Code um den body zu verarbeiten ..... }); Gruß
  • [gelöst] on Methode wird nicht ausgeführt

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    818 Aufrufe
    P
    Hallo, ich empfehle dir, den langen ID-Namen in eine Konstante zu packen. Der ändert sich ja nicht und so kannst du den Code übersichtlicher machen und eine Fehlerquelle ausschließen. Denn ich glaube, hier liegt auch das Problem. Während createState() automatisch die Instanz des Javascript-Adapters auswählt, in der das Skript abgespeichert wurde, braucht on() den Adapternamen und die Instanz immer in der ID. const idLueften = "javascript." + instance + ".RaumklimaBerechnung.Wohnzimmer.Lueften"; createState(idLueften, false, { read: true, write: true, desc: "", type: "boolean", def: 0 }); schedule("* * * * *", function() { var ra = getState("xxx").val; var ri = getState("xxx").val; if (ri > (ra + 1)) { setState(idLueften, true); } if (ri < (ra)) { setState(idLueften, false); } }); //Telegram Nachicht senden on({id: idLueften, val: true}, function(obj) { console.log("Telegram Lüften versenden"); }); Gruß Pix PS: Oder ändere ergänze einfach deinen Code um die Instanz in der on()-Funktion (hier als Beispiel mit Instanz 0) ! //Telegram Nachicht senden on({id: "javascript.0.RaumklimaBerechnung.Wohnzimmer.Lueften", val: true}, function (obj) { console.log("Telegram Lüften versenden"); }); !
  • Blockly Variable mit Wert erzeugen

    Verschoben
    15
    1
    0 Stimmen
    15 Beiträge
    12k Aufrufe
    strikegunS
    Danke, das Wissen hat mir gefehlt! @umbm: Die eigentliche Funktion ist der Einzeiler-Block und über das Zahnrad links kannst du Parameter hinzufügen und benennen. Die Funktion selbst erstellst du dann über die 3 Punkte rechts im Block direkt als Javascript. Der große zusätzliche Block, der (erst) dann entsteht und im Blockly-Script eingefügt werden kann ist dann der Aufruf der eigentlichen Funktion mit Übergabe der Parameter. `
  • [Gelöst] Skript Lichtzählen verweigert Namen Homematic-Geräte

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    307 Aufrufe
    Niemand hat geantwortet
  • Fhem adapter - auf Aliasname von obj zugreifen

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    490 Aufrufe
    paul53P
    @intershopper: Funktioniert ` Das Thema im Betreff des ersten Beitrags bitte als [gelöst] markieren.
  • Blocky: Teilerwert ermitteln und in Variable speichern =?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    733 Aufrufe
    Espace0401E
    Ich habe zu der genannten Art den Ferraris Zähler auszulesen auch mal eine Frage bzw. seit kurzem ein Problem. Mir wird unter Objecte/mqtt beim Stromzähler unter dem Reiter "Qualitätscode" device not connected angezeigt. Wenn ich den mqtt Stoppe und Starte, ist dieses Meldung für einige Zeit weg, kommt aber dann wieder. Das ESP Modul ist dabei jeder Zeit erreichbar. Jemand eine Idee woher das kommt? [image: 2622_bildschirmfoto_2018-11-04_um_19.46.07.png]
  • Rechenfehler?

    Verschoben Gelöst blockly
    4
    2
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    I
    Kurz nach dem Absenden habe ich dann auch diese Erleuchtung gehabt. Der Wert von Dist_umgerechnet war so, wie er außerhalb stand, natürlich noch von der vorhergehenden Messung. Aber danke für euer schnelles Feedback! So funktioniert es jetzt: [image: 9586_javascript_-_iobroker3.png] Gruß ixy

262

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge