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
    BananaJoeB
    @peterfido und ping heißt nicht das ein http-Aufruf funktioniert
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    K
    Hallo, wollt mich nur nochmal schnell zurückmelden - es funktioniert jetzt! Vielen Dank an alle für eure Unterstützung! :) Mfg Marcus
  • 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?
  • Zugriff auf Raum

    Verschoben
    27
    0 Stimmen
    27 Beiträge
    8k Aufrufe
    T
    Hallo, vielleicht war der vorige Beitrag etwas unklar formuliert. Ich habe das Testskript erweitert und vergleiche jetzt den Datenpunkt enumNames der "on"-Funktion direkt mit dem Datenpunkt der "getObject"-Funktion. on({id: id_Dimmer.level, change: "ne", val: 0, logic: "and"}, function(obj) { console.log("EnumNames mit on: " + obj.enumNames); var obj2 = getObject(obj.id, '*'); console.log("EnumNames mit getObject: " + obj2.enumNames); }); Auf dem JSAdapter.0 erscheint folgende Ausgabe: ` > javascript.0 script.js.02_Test.checkScript.testObj: EnumNames mit on: Dimmer,Licht,OG javascript.0 script.js.02_Test.checkScript.testObj: EnumNames mit getObject: Dimmer,Licht,OG Auf dem JSAdapter.1 bleiben die "EnumNames mit on" leider leer :| > javascript.1 script.js.02_Test.checkScript.testObj: EnumNames mit on: javascript.1 script.js.02_Test.checkScript.testObj: EnumNames mit getObject: Dimmer,Licht,OG ` Bei einem anderen Produktivskript bleiben die "EnumNames mit on" meistens auf beiden Adaptern leer. Deshalb glaube ich nicht, dass es ein Instanzen-Problem ist. Jedenfalls scheint "getObject" die Daten anders auszulesen, als die "on"-Funktion. Könnte mal jemand testen, ob es auf einem anderen System auch auftritt :?:
  • GetState.val Nachkommastellen festlegen

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    3k Aufrufe
    0
    Perfekt, danke :)
  • Allgemeine Frage zum Einbinden von Scripten

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    A
    Danke euch allen. Die Kombination eurer Infos war genau das was ich benötigt habe. Ich mache mich gleich mal ans Werk und probiere mein Glück. Vielen Dank :)
  • Datei auf Netzlaufwerk öffnen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    ThisoftT
    Muss leider nochmal um Hilfe rufen da ich den Fehler nicht mehr verstehe. Ich erhalte folgende Fehlermeldung: script.js.Test.Testen: Error: EPERM: operation not permitted, open '\\192.168.137.52\BidCos\log\bidcos-2017-01-29.log' Ich habe über den Dateimanager von dem Rechner aus auf welchem ioBroker läuft definitiv Schreibzugriff auf diese Datei (hab's auch mit verschiedenen Dateien auf diesem Laufwerk getestet). Läuft ioBroker irgendwie mit anderen Rechten als der angemeldete Benutzer? Wo könnte denn hier noch das Problem liegen?
  • Hilfe: Scripte Zusammenfassen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    655 Aufrufe
    paul53P
    Das lässt sich in einem Skript realisieren: // Versuche Play, Pause, Stop, Enter via Alexa an Kodi zu senden var request = require('request'); var idStop = 'javascript.0.Manuell.Systemvariable.Badezimmer.Kodi_Stop'; // Stop var idStop_URL = 'http://192.168.1.16:8081/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.Stop%22,%22params%22:{%22playerid%22:%201},%22id%22:2}}}'; var idPlay = 'javascript.0.Manuell.Systemvariable.Badezimmer.Abspielen'; // Play var idPlay_URL = 'http://192.168.1.16:8081/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.PlayPause%22,%22params%22:{%22playerid%22:%201},%22id%22:2}}}'; on({id: idStop, val: true}, function (obj) { // Frage wie kann ich eine URL z.B. var idStop_URL absenden request(idStop_URL, function(error, response){ if(error){ log(error, 'error'); } }); }); on({id: idPlay, val: true}, function (obj) { // wenn neuer Wert true // Frage wie kann ich eine URL z.B. var idStop_URL absenden request(idPlay_URL, function(error, response){ if(error){ log(error, 'error'); } }); });
  • Gibt es eigentlich eine Erklärung zum Java Skript Adapter?

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    808 Aufrufe
    P
    Hallo skorpil, der css-Befehl dafür lautet "selection". Allerdings muss der in der CSS-Steuerdatei in den tiefen des Editor Moduls geändert werden (oder zumindest dessen Parameter/Farbe). Die Änderung ist vermutlich nach dem nächsten Update wieder weg. Evtl kannst du in deinem Browser eine EInstellung finden, die blaue Auswahl zu übersteuern. Gruß Pix
  • Script per Button aufrufen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    3k Aufrufe
    P
    Oder man nutzt die Möglichkeit, einzelne Skripte per Datenpunkt scriptEnabled ein/auszuschalten. Dazu muss man das Skript standardmäßig ausschalten (Pause Knopf). Nehmen wir an, es heisst "Heizung" und liegt im common-Ordner von Javascript Instanz 0. Dann im VIS-Widget den entsprechenden Datenpunkt "javascript.0.scriptEnabled.common.Heizung" zum Skript suchen und in OID einsetzen. Und schließlich im Script am Ende noch den Befehl```` stopScript() Gruß Pix
  • Skript nur einmal am Tag ausführen und dann sperren

    Verschoben
    36
    0 Stimmen
    36 Beiträge
    5k Aufrufe
    T
    Hallo Rainer, ich verstehe Nordlicht sehr gut und finde es super, dass du dir darüber Gedanken machst. ioBroker entwickelt sich seit Beginn mit großen Schritten weiter und auch die Doku hat sich durch eure ständige Arbeit wesentlich verbessert. Was ihr da leistet, ist bemerkenswert. Ein Anfänger kann mit Tutorials im Internet oder mit Literatur JS erlernen, doch bezieht sich das Meiste davon auf Webseiten-Programmierung mit HTML und CSS. All das wird in ioBroker auch eingesetzt, aber nur selten auf die gleiche Art und Weise, wie es die Literatur erklärt. Jedenfalls fehlt dem Anfänger hier noch das Transfervermögen. Ich selbst stehe da irgendwo in der Mitte dieser Phase ;) Speziell beim JavaScript-Adapter würde ich mir zu den Funktionen noch mehr Details mit Erklärungen wünschen. Trotz des gesamten Umfanges sind die einzelnen Beschreibungen extrem kompakt gehalten. Es ist vielmehr ein Nachschlagewerk für erfahrene Anwender, als eine Beschreibung für Einsteiger. Als Beispiel und zur Erklärung möchte ich die "on"-Funktion nennen, mit deren Parametern ich mich zur Zeit intensiver auseinandersetze. Nehmen wir davon mal den ersten Parameter: ` > You can use following parameters to specify the trigger: parameter______type/value _____description –--------------------------------------------------------------------------- logic___________string__________"and" or "or" logic to combine the conditions (default: "and") ` Hierzu ergaben sich folgende Fragen: 1. Lassen sich beliebig viele Parameter verunden bzw. verodern? 2. Kann "and" mit "or" kombiniert werden? z.B. (Licht1 and Licht2) or (Licht3 and Licht4) 3. Wenn ja, wie sieht die Syntax dazu aus? Wer genug Erfahrung hat, würde die Fragen so beantworten 1. Es wurden keine Grenzen angegeben, deshalb können beliebig viele Parameter verwendet werden. 2. Da steht "and" or "or", also geht nur eines von beiden. 3. Geht nicht, wegen Antwort von Frage 2. Als weiteres Beispiel nehme ich einen Ausschnitt aus dem diskutierten Skript von Nordlicht: > on({id: bwm, val: true}, function (obj) { // Trigger auslösen Bei val steht In der Beschreibung: New value must be equal to given one. Als Anfänger bin ich davon ausgegangen, dass sich ein neuer Wert von einem alten Wert im Wert unterscheiden muss, sonst ist es kein neuer Wert. Daher hätte ich erwartet, dass der Trigger nur auslöst, wenn der Wert des bwm von "false" auf "true" wechselt. Das tut er sogar, aber er löst auch aus, wenn der "Zeitstempel" des Wertes aktualisiert wird, weil dann der Wert "true" durch ein neues "true" ersetzt wurde. Im Skript von Nordlicht hat das keine Auswirkungen, da er noch eine Sperrvariabale verwendet, aber in einem anderen Skript sorgt es erstmal für Verwirrung. Zumindest zu dem zweiten Beispiel gab es schon einige Diskussionen, die mit einer etwas umfangreicheren Doku wahrscheinlich nicht entstanden wären. Die Doku ist das wichtigste Instrument, um neue User bei den ersten Schritten mit ioBroker zu begleiten und um den Spaß an der Sache aufrechtzuerhalten. Ich möchte in Bezug auf den JS-Adapter vorschlagen, die Funktionen in der bestehenden GitHubDoku mit weiterführenden Links zu Detailbeschreibungen zu versehen. Die verlinkten Seiten beschreiben dann die gewählte Funktion noch mal genauer (evtl. in Denglisch) und zeigen weitere Beispiele (Codeschnipsel) mit Kommentierung auf. Man könnte das mit den Linux Man-Pages vergleichen, die man dann aufruft, wenn die Kurz-Referenz des –help-Parameters nicht ausreicht. Grüße
  • WebCam Bild refresh per klick

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    Z
    @pix: Schnell von unterwegs: wenn du mit einem Widget mehrere Datenpunkte setzen willst, empfiehlt sich der Scenes Adapter. Da kann man alle Datenpunkte mit Zielzustand, ggf. verzögert, in einer Szene zusammen fassen. Diese Szene lässt sich dann leicht per Widget in Vis einschalten. Gruß Pix ` Hi Pix, danke für die Antwort - aber irgendwie fehlt mir da der zusammenhang. An sich will ich ja nur einen Datenpunkt setzen wenn ich auf das Webcam bild klicke und nicht mehrere. Hast du evtl ein Bsp. für mich? Evtl seh ich den Wald vor lauter Bäumen nicht. Gruß ztark edit Hab selbst die lösung gefunden: Mit dem widget "HTML STATE" ließ es sich ohne weiteres realisieren. Zum einen kann ich damit ein Objekt setzen und zum anderen den oben erwähnten HTML-Code einfügen. (Eine verzögerung scheint nicht nötig zu sein) Gruß ztark
  • Laufenden Timer abfragen?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    paul53P
    @MistyReblaus: Schau mal hier: ` oder http://forum.iobroker.net/viewtopic.php?f=21&t=4796&p=47065#p47065.
  • [gelöst] JavaScript Fehler seit letztem Update undefined function…

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    619 Aufrufe
    apollon77A
    machste bitte ein "gelöst" ins Thread Subject !? Danke
  • Homewizard schalten

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    978 Aufrufe
    G
    Danke für die schnelle Antwort genaueres werde ich morgen beschreiben :) nach der arbeit. Gruß Gesendet von meinem SM-G925F mit Tapatalk
  • Einführung in JavaScript - Diskussionsthread

    Verschoben
    23
    0 Stimmen
    23 Beiträge
    4k Aufrufe
    M
    Ich bin beeindruckt vom Umfang und der Aufmachung der Einführung. Vielen Dank dafür! Ich komme aus der C\C++\C# Entwicklung und überfliege gerade mal die Doku, da ich mit Javascript bisher nichts zu tun hatte. Mir sind da ein paar Kleinigkeiten aufgefallen: > Wenn es wärmer als 25°C sind sollen sich die Fenster öffnen (1\. Punkt). Erst wenn es 20°C sind, sollen sie sich wieder schließen (2\. Punkt). Im Code schließen die Fenster nicht bei 20°C, sondern wenn es unter 25°C ist. if (temp>25) { setState("hm-rpc.1.IEQ057xxxx.3.State",true); //Fenster öffnen } else if (temp<25) { setState("hm-rpc.1.IEQ057xxxx.3.State",true); //Fenster schließen Weiter unten bei 'Logische Operatoren' ist die Darstellung etwas verunglückt und dadurch haben sich auch zwei Fehler eingeschlichen: ` > A B A && B A || B !A false false true false true false true false true false true false false true false true true true true false ` > In der ersten Zeile wird das Modul util geladen. Was es damit auf sich hat, lassen wir mal offen. Ein kurzer Hinweis, dass util ein Javascript Modul (oder wie auch immer man das nennt) ist und 'Inspect' einen string ausgibt, der das Objekt repräsentiert, wäre schon hilfreich. Ich hatte mich jedenfalls erst mal gewundert, da ich keine Ahnung hatte, ob es etwas ioBroker spezifisches ist oder mit einem Adapter zu tun hat oder was auch immer. Noch eine letzte Sache. Bei der Beschreibung von Funktionen wird in den Code Beispielen an mehreren Stellen '<' statt '<' angezeigt. Bin jetzt damit durch und habe wirklich eine Menge gelernt. Prima Einführung und vielen Dank nochmal! Viele Grüße Michael
  • Wunsch: Favoriten für Blocky

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    699 Aufrufe
    ldittmarL
    @rantanplan: Favoriten Ordner erleiden meißtens das selbe Schicksal. Man packt alles Mögliche darein und sucht dann im Favoriten Ordner. ` Ja gut… kann schon sein, aber das liegt dann an den jeweiligen User. Ich kenne Leute die haben 100te Seiten im Browser als Favorit gespeichert. Dann kann er genau so gut danach googlen. Ich persönlich habe nur Seiten gespeichert, die ich täglich nutze. Es liegt also immer beim User was er aus den Möglichkeiten macht. @rantanplan: Da würde ich mir lieber noch ein paar Bausteine wünschen. ` Da bin ich auch bei dir und da werden bestimmt noch einige dazu kommen. Was wird eigentlich noch gebraucht? Sobald ich mich ein bisschen eingearbeitet habe, könnte ich da Bluefox unter die Arme greifen ;) Grüße, ldittmar
  • ToLocaleTimeString Problem

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    854 Aufrufe
    a200A
    @Bluefox: Kann es sein, dass du die Longitude und Latitude nicht konfiguriert hast? ` ja. genau das war's. jetzt geht es. jetzt gehe ich in die ecke und werde mich schämen… :roll: Danke.
  • Speech2ioBroker

    Verschoben
    28
    0 Stimmen
    28 Beiträge
    5k Aufrufe
    D
    @wendy2702: @derrapf: Mit IOS hab ich leider nix am Hut. Bzgl externem Mikro bin ich grad an einem Raspi am rumexperimentieren…. Gruss Ralf ` Das war/ist auch mein Plan. Allerdings die nächsten Wochen nur selten zu Hause so das ich nicht viel testen kann. :cry: ` Dann bin ich dafür du nimmst Urlaub ^^ Habe zur Zeit eine 30Euro beatbox aus der Türkei dran hängen für ton aus und geht super. hatte dann noch ein usb mic dran, das hat mich schlechter verstanden wie mein Pad …
  • Script verursacht Fehlfunktionen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    546 Aufrufe
    Niemand hat geantwortet
  • Fritzbox Adapter / tr-064 –>> Bilder einlesen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    wendy2702W
    Danke. Werde ich machen. Schönen Abend
  • DVB Viewer - Stream darstellen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    546 Aufrufe
    Niemand hat geantwortet
  • Vis-View ändern abhängig vom Wert einer Systemvariablen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    P
    Hallo, habe noch etwas im Forum zum Thema "View per Widget" gefunden: [{"tpl":"tplHtml","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0,"gestures-swiping-value":"","gestures-rotating-value":"","gestures-pinching-value":"","gestures-swipeRight-value":"","gestures-swipeLeft-value":"","gestures-swipeUp-value":"","gestures-swipeDown-value":"","gestures-rotateLeft-value":"","gestures-rotateRight-value":"","gestures-pinchIn-value":"","gestures-pinchOut-value":"","html":""},"style":{"left":"772px","top":"46px"},"widgetSet":"basic"}] Nun die Frage: wie kann ich hier noch den Status meiner Systemvariable abfragen: Ich hätte gedacht, dass dies mit der Änderung gehen müsste: Hier scheint aber das Coding grundlegend falsch zu sein. Besteht da eventuell gerade kein Zugriff auf die Systemvariable oder muss diese vorher noch definiert werden? Vielen Dank und viele Grüße Matze

685

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge