Skip to content

Skripten / Logik

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

16.5k Themen 213.4k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    A
    hy ist es möglich die Preisdaten Tibber simulieren Tibberadapter pausiert nu sagt das skript Pausiert-keine Preisdaten! in VIS hab meine aktuellen preise von anderen Anbieter händisch eingetragen jedoch wird nicht damit geregelt was kann da angepasst werden um es wieder zum laufen zu bekommen da die berechnung dahinter mir schon gefällt
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    M
    @schweiger2 Übergabe der Daten an command? z.B. DP: hue.0.Hue_Bridge.Schubladen.command {"on":true,"bri":128,"r":255,"g":0,"b":0,"transitiontime":0}
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • Sonoff Neustart per http bei Verbindungsabbruch im LOG

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    365 Aufrufe
    J
    Kann man Daten aus dem Log iwie in Blockly einfügen?!
  • Variablen 0 / 1 und wahr / False Blockly

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    754 Aufrufe
    P
    man kann in der EasyESP oberfläche einstellen was er machen soll, wenn gedrückt wird. Wie du schon sagtest.. Wert 1 so lange gedrückt wird oder er wächselt den wert immer, wenn gedrückt wird, also er behält den Wert 1, bis noch mal gedrückt wird. Leider halt nur 1 und 0 (was ich persönlich besser finde) und nicht Wahr und False
  • Datenfile in Blockly aufrufen und Daten vergleichen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    230 Aufrufe
    Niemand hat geantwortet
  • Wie name/role/type/def usw. mit js auslesen?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    506 Aufrufe
    N
    Vielen Dank :-)
  • [gelöst]Zeit zwischen Aktualisierung eines Datenpunktes ermitteln

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    S
    es kann so einfach sein… vielen dank, klappt wunderbar! on({id: 'javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input', change:'any'}, function(data) { // in data.state.ts steht der aktuelle Timestamp // in data.oldState.ts steht der Timestamp der letzten Aktualisierung // Sind Zahlen in ms, also mit ... console.log(((data.state.ts-data.oldState.ts)/1000) + ' Sekunden seit letzter Aktualisierung'); setState("javascript.0.Stromzaehler.Normalstrom.Umdrehung_Zeit"/*Umdrehung_Zeit*/, ((data.state.ts-data.oldState.ts)/1000), true); });
  • Dimmwert mit Zeitsteuerung

    Verschoben
    25
    0 Stimmen
    25 Beiträge
    3k Aufrufe
    madjack84M
    ich habe gleiches mit dem virtuellen Kanal 2 gelöst. Ein CCU2 Programm setzt nun Kanal 2 um 21:00 auf 40% und um 5:00 wieder auf 100% Das Licht schaltet nachts nur auf 40%. soweit ok. Leider lässt sich dann allerdings der Dimmwert per Taster am Dimmer nicht mehr nach oben regulieren, da der Taster Kanal 1 steuert. >> Unter 40% geht dann noch aber durch die Verknüpfung nicht über 40% Setze ich dann in den Einstellungen die Taster am Kanal 2 nicht mehr auf inaktiv, sondern ein/aus heller/dunkler, dann lässt sich der Dimmer gar nicht mehr aktivieren. Wie wäre die Einstellung hier richtig um abends trotzdem bei Bedarf das Licht per Tastern noch zu erhöhen? Kann das leider aus den Beschreibungen nicht herauslesen :/ ja ich nutze auch ioBroker, aber ging davon aus, dass dies auch über die virtuellen Kanäle gehen muss. Bin ja eh schon begeistert über das Vorhandensein dieser Funktion :D grüße
  • Blockly Problem mit Variable

    Verschoben
    11
    1
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    wendy2702W
    OK. Dann geht es nur über Script.
  • Servicemeldungen per Mail?

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    paul53P
    Wenn Du ausschließlich eine Mail versenden willst, kann das Script stark vereinfacht werden, function sendMail(txt) { sendTo("email", { subject: "Servicemeldung", text: formatDate(new Date(), "YYYY-MM-DD hh:mm:ss.sss ") + txt + "\n" }); } on(/\.UNREACH|LOWBAT|CONFIG_PENDING|FAULT_REPORTING$/, function(dp) { var val = dp.state.val; var old = dp.oldState.val; if (val != old) { if(dp.common.name) sendMail(dp.common.name + ": " + val); else sendMail(dp.id + ": " + val); } });
  • [gelöst] exec-Prozess abbrechen.

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    232 Aufrufe
    J
    Mit "ps -ax" in der Konsole zeigt er mir folgendes an: 10902 ? S 0:00 /bin/sh -c omxplayer /opt/Ansagen/CountDown.mp3 10903 ? S 0:00 /bin/bash /usr/bin/omxplayer /opt/Ansagen/CountDown.mp3 10911 ? Sl 0:00 /usr/bin/omxplayer.bin /opt/Ansagen/CountDown.mp3 Zum Erfolg bringt mich der Befehl: killall omxplayer.bin Mein Problem ist alsogelöst ….. natürlich erst nachdem ich hier gefragt habe. Sorry Gruß Jörg
  • [gelöst]js-Skript runden auf 3 Stellen nach dem Komma

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    S
    okay… hab den Fehler gefunden, eine Klammer war fasch gesetzt... function precisionRound(number, precision) { var factor = Math.pow(10, precision); return Math.round(number * factor) / factor; } on({id: 'javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_kWh"/*Zaehlerstand_kWh*/, (precisionRound((getState("javascript.0.Stromzaehler.Normalstrom.Zaehlerstand_input").val / 75), 3)), true); });
  • 0 Stimmen
    11 Beiträge
    1k Aufrufe
    K
    Das Problem war, dass ich nach einer Lösung mit Socket IO gesucht habe (so wie Eingangs vorgeschlagen wurde). Aber der benötigte Adapter hierzu heißt nicht Socketio sondern Simple API ;)! Inzw. läuft mein Versuchsaufbau wunderbar! Vielen Dank für die Hilfe.
  • [Gelöst] Wert in Telegram ausgeben

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    BuZZyB
    Kann jedem mal passieren.. Dafür haben wir ja so eine tolle Community. :) Gruß
  • Google-Kalenderdaten usw. morgens täglich an Telegram

    Verschoben
    14
    1
    0 Stimmen
    14 Beiträge
    2k Aufrufe
    Paulchen67P
    @tempestas: Mit diesem Skript ! ```` // Skript schaut täglich um 18h, ob im Kalender das Wort "Morgen" vorkommt. Wenn ja, wird ein Telegram geschickt mit dem betreffenden Termin bzw Terminen // tempestas 13.2.2018 ! // Skripteinstellungen ! var debug = false; ! // Suchfunktion für Termin-Cutoff function nthIndex(str, pat, n){ var L= str.length, i= -1; while(n-- && i++ <l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" funktion/function/warnung()/{/var/inhalt="getState("ical.0.data.html").val.toString();" hier/deine/müll-kalender/instanz/eingeben/count="inhalt.split("Morgen").length" -1;/wie/häufig/wird/"morgen"/gefunden?/posstart="inhalt.indexOf(" 'morgen',/0);/sucht/das/erste/mal/if(debug)/log("posstart/"+posstart);/if(posstart/!="-1){" falls/gefunden/wurde/gehts/weiter/stringshort="inhalt.substring(posStart," inhalt.length);/abschneiden/von/allem,/was/links/vom/ersten/treffer/steht/log("gekürzt/:"/+stringshort);/nthindex(stringshort,/'</span="">', count); // hier wird nun geschaut, wo es rechts abgeschnitten werden muss stringCut = stringShort.slice(0,i_search); // hier wird alles rechts abgeschnitten und so der finale String extrahiert if(debug) log("Fast Final: "+stringCut); ! // aufbereiten für telegram, entfernen von HTML Tags ! stringCut = stringCut.replace(' ',"\n"); // Zeilenumbruch html durch telegram umbruch ersetzen ! // remove all inside SCRIPT and STYLE tags stringCut=stringCut.replace(/<script.>[\w\W]{1,}(.?)[\w\W]{1,}</script>/gi, ""); stringCut=stringCut.replace(/<style.>[\w\W]{1,}(.?)[\w\W]{1,}</style>/gi, ""); // remove BR tags. stringCut=stringCut.replace(/ /gi, ""); stringCut=stringCut.replace(/<br\s>/gi, ""); stringCut=stringCut.replace(/<br>/gi, ""); // remove all else stringCut=stringCut.replace(/<(?:.|\s)*?>/g, ""); // get rid of html-encoded characters: stringCut=stringCut.replace(/ /gi," "); stringCut=stringCut.replace(/&/gi,"&"); stringCut=stringCut.replace(/"/gi,'"'); stringCut=stringCut.replace(//gi,'>'); ! sendTo('telegram', stringCut); } } ! // Trigger Schedule ! schedule('0 18 * * ', function(){ // Täglich um 18h ! Warnung(); }); ! // Bei Start ! Warnung();</br></br\s></style.></script.*></l){> erhälst du eine Telegram Nachricht mit allen Terminen (sei es Müll, Omas Geburtstag..), die morgen anstehen. Voraussetzung ist, dass dein Kalender "ersetze Datum mit Worten" aktiviert hat. Wenn du überall wo "Morgen" steht es auf "Heute" abwandelst, bekommst du alle Termine von heute ` Bei mir läuft das Script nicht. Ersetze Datum mit Worten ist aktiviert. Hab zum testen schedule('0 18 * * *', function(){ // Täglich um 18h auf aktuelle Zeit plus 2 Minuten gestell, aber da tut sich nichts. EDIT!!! Funktioniert jetzt.
  • Gelöst - Erstelltes Script via Shell löschen?

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    P
    @AlCalzone: Hmmmm… dachte das geht. Das iobroker stop javascript.0 sollte aber tun. ` Top. Das geht. Ich habe den Adapter gestoppt, Script gelöscht, Adapter wieder gestartet. Vielen Dank
  • Erkennen von manuellen Änderungen am HMIP WTH

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    170 Aufrufe
    Niemand hat geantwortet
  • Gelöst - Blockly - "kleiner als letztes" Problem bzw. selbst Vergleichen :)

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    4k Aufrufe
    W
    Super Danke, jetzt habe ich es auch verstanden :) Top Support!!! Schönes Wochenende noch!
  • Javascript Adapter keine Ausgabe im Log Bereich des Editors

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    T
    Ist ein bekannter Fehler: viewtopic.php?f=22&t=11875&hilit=javascript+kein+log
  • Bräuchte Hilfe bei Steuerung von Luftfeuchtigkeit

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    741 Aufrufe
    V
    super danke ich habs geschafft allerdings dauert es ewig bis er wieder abschaltet… Wie häufig wird der Sensor nach dem Wert abgefragt? 4030_test3.png
  • HUE Gruppen - Erkennung wenn eine Lampe an, dann Gruppe als an markieren

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    649 Aufrufe
    M
    Ich habe das gerade noch mal getestet, bei mir geht die HUE Gruppe NICHT auf on wenn nur eine Lampe aus der Gruppe eingeschaltet ist. Erst wenn alle Lampen der Gruppe aktiv sind geht auch die Gruppe auf on. Daher hilft mir mein Script da weiter. Es sei denn es gibt noch was das ich übersehen habe. Malc
  • [gelöst] Datenpunkt aktualisieren ohne aktion

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    paul53P
    @doctorultra: was bedeutet das dp in function ist, damit das Object gemeint? ` Ja, das ist das Datenpunkt-Objekt, das mit dem Namen dp an die Funktion übergeben wird. Datenpunkte unterscheiden sich von anderen Objekten, da sie zusätzlich noch einen Zustand (state und oldState) enthalten. @doctorultra: Super hat funktioniert ` Dann markiere bitte das Thema als gelöst (im Betreff des ersten Beitrags).

440

Online

32.6k

Benutzer

82.3k

Themen

1.3m

Beiträge