Skip to content

Skripten / Logik

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

16.5k Themen 213.3k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    A
    Neue Version Charge-Control auf GitHub hochgeladen. Version: 1.6.8 Änderungen: Fehler in der Funktion Prognosen_Berechnen() behoben. Hysteresewert für Batterie SOC Schwankungen auf 4% angepasst und neue, frei konfigurierbare Variable am Skriptanfang hinzugefügt.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    D
    Oha. Das war einfach. Danke sehr :-)
  • 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?
  • [gelöst] Fadingzeit von HUE Lampen verlängern?

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    3k Aufrufe
    R
    Hab nur Ccu2, aber virtuelle Tasten gibts da ja auch. Schneller weiß ich nicht [emoji848][emoji6] Gesendet von iPad mit Tapatalk
  • Dynamische Event-Registrierung

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    T
    Ich habe das Skript noch weiter angepasst. Jetzt läuft es :) Für Interessierte: ! Das Skript speichert in der Variablen "LichterAn" ein Array mit den IDs der Lichter. Wird ein Licht ausgeschaltet, wird die ID aus der Liste entfernt. ! Mit "javascript.0.LichterAn.length" kann man die Anzahl der Lichter abfragen. ! "enum.functions.${funcLight}" ersetzen durch andere Werte natürlich möglich ;-) ! ```` // Skript zum prüfen ob Lichter an sind und einen EventHandler bei allen Lichtern registrieren. // Bei Änderung eines Lichts, wird die Variable 'javascript.0.LichterAn' geändert ! log("Rooms" + JSON.stringify(getObject("enum.functions.${funcLight}"))); ! createState('LichterAn', { name: 'Lichter an', desc: 'Lichter die an sind' }); ! var lightsOn = []; ! function filterValues(value) { return value != this; } ! function processObject (v, i, ar) { var state = getState(v); if (state.val === "null" || state.val === null) { setState(v, 0); log(v + ", State: false gesetzt"); log(v + ", State: " + getState(v).val); } else { log(v + ", State: " + state.val); if (state.val || state.val === 1) { lightsOn.push(v); } } setState('javascript.0.LichterAn', lightsOn); on({id: v, change: 'ne'}, function(obj) { var status = getState(v).val; var objList = getState('javascript.0.LichterAn', lightsOn); if (objList.val === null) { objList.val = []; } if (status) { log(v + ": an"); objList.val.push(v); setState('javascript.0.LichterAn', objList); } else { log (v + ": aus"); var list2 = objList.val.filter(filterValues, v); objList.val = list2; if (list2.length === 0) { objList.val = []; } setState('javascript.0.LichterAn', objList); } }); ! } ! var objects = getObject("enum.functions.${funcLight}").common.members; objects.forEach(processObject);
  • Blockly Dimmer

    Verschoben
    8
    1
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    T
    Ein Neustart von iobroker hat geholfen. Hätteich vor Stunden mal machen sollen :evil:
  • Datei auf Raspberry Pi löschen

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    B
    Habe es jetzt anders gelöst und zwar: > exec('rm /tmp/screenshots/1.png'); aber denoch wäre Interessant, wo mein Fehler da war.
  • Generelle Frage Objekt aufbau

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    923 Aufrufe
    AlCalzoneA
    Schau mal hier, das dürfte einige deiner Fragen beantworten: https://developer.mozilla.org/en-US/doc … pt/Objects Ansonsten gibt es in der neuesten JS-Version (noch nicht überall vollständig unterstützt) "richtige" Klassen: https://developer.mozilla.org/de/docs/W ... ce/Klassen
  • [Problem] blockly: Harmony Status auslesen

    Verschoben
    3
    2
    0 Stimmen
    3 Beiträge
    674 Aufrufe
    E
    Ja, hatte ich schon versucht: [image: 3415_blockly3.jpg] Leider ohne Erfolg…
  • Javacript Absturz bei HTML

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    737 Aufrufe
    Mr. BurnsM
    Hi, > request(html).on ('error', function (e) { console.error (e);}); Funktoniert…bzw. der adapter stürzt nicht mehr ab. Eine Fehlermeldung wird dennoch produziert: > javascript.0 2017-08-29 13:33:01.133 error script.js.Gartentor_oeffnen: Error: Parse Error > Steht in den Skripten wirklich ' anstelle einem Anführungszeichen? Wenn ja dann ist das der Grund! Das verstehe ich nicht. ' steht doch nicht in meinem Script. Den verlinkten Thread hab ich noch nicht ganz verstanden. ` > "HTTP/1.1 200 OK" "Content-Type: text/html" "Connection: close" "" ` …sollte in den Homeduino code? muss ich mir noch einmal ansehen. Gruß
  • [Frage] Blockly: alle Sonoslautsprecher in Schleife ansprechen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    R
    Hallo BBTown, hallo rantanplan, vielen Dank für Eure Ausdauer mit meinem Problem. Die Lösungen sind sehr gut, aber wieder wenig flexibel. Eventuell ist das ja sowieso "to much", was ich mir da vorgenommen habe und mehrere statische Scripte mit dedizierten Schaltern in VIS sind besser. Ich komme die nächsten Tage nur sporadisch dazu, weiter rumzuprobieren. Eventuell hat ja in der Zwischenzeit noch jemand eine Idee, für etwas flexibles. Denn eine sauber programmierte Schleife könnte man zur Sicherheit auch zweimal durchlaufen, oder auch eine weitere Schleife anschließen, die prüft, ob das Zusammenschalten funktioniert hat. Ich stelle wieder fest (das gab es auch schon gelegentlich in der originalen Sonos App), dass beim Gruppieren eine oder zwei Boxen "vergessen" werden und dann außerhalb der Party-Gruppe bleiben. Und ebenso beim Gruppierung aufheben: manchmal bleiben zwei Boxen gruppiert und man muss sie ein zweites mal ent-gruppieren. So ist es derzeit bei mir auch beim Nutzen der Lösung aus dem Szenen-HowTo (Step 2). Wenn man dann aber beim Entgruppieren die Favorites-set setzt, spielt die Box (bekanntermaßen) sofort los. Da das Gruppieren und Entgruppieren teilweise mehrere Sekunden dauert (ich frage mich manchmal: nur bei mir? und: ich wollte deshalb sowieso mal den Sonos Support kontaktieren), sollte man eh etwas abwarten, damit die jeweilige Aktion beim Sonos wirklich ausgeführt wurde, bevor man eine Zweite startet. Z.B. wenn ich Abends, wenn die Kinder schon im Bett sind, die Gruppierung aller Zimmer (ich habe in insgesamt 7 Zimmern jeweils eine Sonos-Box stehen) aufhebe und die Favorites-set für die morgendlichen Wecker setzte - während die Entgruppierung noch nicht fertig ist - spielen die Boxen bei den schlafenden Kindern ja einfach los. :-( VG Peter
  • NodeRed Serielle Schnittstelle von UTF8 -> ASCII ???

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    3k Aufrufe
    M
    Hallo, ich habe jetzt einen WR per RS232 angeklemmt und umgestellt. Mit 'Screen' kommen die Daten im Klartext rüber: 00.00.0000 05:39:30 4 499.6 3.15 1573 23 512 50 1414 50 00.00.0000 05:39:40 4 499.6 3.14 1568 239.8 5.90 1410 50 mit NodeRed erhalte ich wieder diese kryptischen Zeichen. Ich gehe mal davon aus, dass irgendwas mit Node-Red nicht stimmt. Hat da einer eine Idee? Gruß Marco
  • Anfänger Frage zu Schleife mit Timeout/Interval

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    P
    @AlCalzone: @ple: Besteht da auch die Möglichkeit die erzeugten Timer irgendwie abzubrechen? ` Da müsstest du alle Timer in ein Array packen und die dann zum Abbrechen nutzen: var timers = []; // Erstellen: for (var i=0; i<5; i++) { timers.push(setTimeout(saveImage, i*3000)); } // abbrechen: while (timers.length > 0) { clearTimeout(timers.pop()); } ```` ` Eh, ja, guck ich mir nach dem Urlaub an ;-) Danke
  • WR Diehl Platinum RS485 auslesen.

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    806 Aufrufe
    Niemand hat geantwortet
  • Bilder/Snapshots von ftp in Vis und Benachrichtigung verarbeiten

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    992 Aufrufe
    BuZZyB
    Aber auch so gut wie jede Kamera hat eine URL wo man ein aktuelles Bild erhält.. Somit kannst du es auch einfach direkt mit ioBroker abrufen und auf die Platte speichern - ohne FTP Server. Da muss man auch nur von Kamera zu Kamera die URL anpassen. :) Gruß
  • Script und Anbindung im VIS

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    4k Aufrufe
    paul53P
    @pix: Durch Einfügen von Punkten im Namen kannst du eine Ordnerstruktur bauen. Z.B. Objektname = "javascript.0.Ordner.Unterodner.Datenpunkt" ` Genauer: createState('Ordner.Unterordner.Datenpunkt', Init-Wert, { type: 'boolean', read: true, write: false }); unter der JS-Instanz 0 erzeugt eine Datenpunkt mit dem Namen "Ordner.Unterordner.Datenpunkt" und der ID "javascript.0.Ordner.Unterodner.Datenpunkt".
  • (gelöst) Über Java ( Blockly ) im Multiost datei auf dem zweiten Pi öffnen

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    D
    Knutsch ich danke dir vielmals. ich hatte es so ähnlich leihen haft versucht. Mit dementsprechenden nicht erfolg ^^ vor allem auch noch mit Fehler Antwort ist das Cool ^^ Danke createState('LedringPi2ALAN', false, { type: 'boolean', read: true, write: true }); on({id: 'LedringPi2ALAN', val: true}, function(dp) { exec('python3 /home/pi/codes/ledring.py ALAN', function(err, stderr, stdout) { if(err) log('Fehler Pythonstart: ' + stderr, 'error'); else log('Ergebnis: ' + stdout); setState(dp.id, false); }); });
  • [gelöst]_Blockly Script - Fehlermeldung im Log

    Verschoben
    53
    1
    0 Stimmen
    53 Beiträge
    8k Aufrufe
    BBTownB
    @BBTown: @rantanplan: @BBTown: Das ist Hintergrund meiner "Log-Level" Philosophie und Argumentation. 8-) Wir bleibe trotzdem Freunde! :D 8-) Aber 100%ig :lol: ` ich kann ja deine Sorge bzgl. zusätzlichem support bei unbedachten Einstellungen/Änderungen gut verstehen !!!
  • Status von Aufzählung in JS Regelmäßig abfragen

    Verschoben
    4
    2
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    N
    Und hier noch mein halbfertiger Code für die Nachwelt ;) Mein Schädel brummt - reicht für heute :lol: createState('Fensterkontakt.Offen.Anzahl', 0); createState('Fensterkontakt.Offen.Text', ''); createState('Fensterkontakt.Gekippt.Anzahl', 0); createState('Fensterkontakt.Gekippt.Text', ''); var fensterkontakt = $('state(functions="fensterkontakt")'); setInterval(function () { var AnzahlOffen = 0; var TextOffen = 'Folgende Fenster sind offen: '; var AnzahlGekippt = 0; var TextGekippt = 'Folgende Fenster sind gekippt: '; fensterkontakt.each(function(id) { // 0 = Geschlossen // 1 = Offen // 2 = Gekippt var val = getState(id).val; var obj = getObject(id); if(val > 0) { if(val == 1) { AnzahlOffen++; TextOffen = TextOffen + obj.common.name + ', '; } else if(val == 2) { AnzahlGekippt++; TextGekippt = TextGekippt + obj.common.name + ', '; } } }); setState("Fensterkontakt.Offen.Anzahl", AnzahlOffen); setState("Fensterkontakt.Offen.Text", TextOffen.substring(0, TextOffen.length - 2)); setState("Fensterkontakt.Gekippt.Anzahl", AnzahlGekippt); setState("Fensterkontakt.Gekippt.Text", TextGekippt.substring(0, TextGekippt.length - 2)); }, 1000);
  • JSON File Auswerten

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    3k Aufrufe
    dietlmanD
    @ALLE Vielen Dank für eure Hilfe. Funktioniert perfekt jetzt, hab wieder etwas dazugelernt :-) LG Duke
  • [Gelöst] Blockly Lampen nach Dämmerungswert schalten "HM-Sen-MDIR-O"

    Verschoben
    15
    0 Stimmen
    15 Beiträge
    2k Aufrufe
    K
    wollte kurz noch hier Erfolg vermelden.. :mrgreen: Ich habe noch ein Zeitglied eingebaut! EDIT: den Heligkeitswert stelle ich noch auf 140 um. 1526_unbenannt1.png
  • Licht AN Warnung (Script Hilfe)

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    969 Aufrufe
    D
    Läuft nun seit Tagen DANKE!!!!!
  • [gelöst] Blockly Anfängerfrage - Scripte starten nicht

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    lobomauL
    @weimaraner: Darf ich mich hier mal mit einer Frage einklinken? Wo ist eigentlich der Unterschied bei den beiden triggern? Welche Vor- oder Nachteile haben die zueinander? Machen die nicht das Selbe? Ich wollte das immer schonmal fragen. Grüße Andreas ` Ja, machen das gleiche. Ich nehme immer die linke Version, da kann man es schnell um weitere Trigger erweitern.

352

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge