Skip to content

Skripten / Logik

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

16.4k Themen 211.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    Thomas BraunT
    @psrelax sagte in E3DC Hauskraftwerk steuern: Sollte aber ohne ein Update auch funktionieren, meine ich. nodejs 20 ist auf der Palliativ-Station. Update es jetzt, solange das noch gepflegt wird. Warum scheut ihr eigentlich immer wie der Teufel das Weihwasser updates auf die aktuell vorgesehene, empfohlene und noch halbwegs gepflegte Version?
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    geschildG
    Ändere im Trigger mal "ist wahr" auf "ist größer als letztes", Dann sollte die Auswahlnur noch auf Flankenwechsel von falsch -> wahr reagieren.
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • Frage: RegExp in on()

    Verschoben
    28
    0 Stimmen
    28 Beiträge
    6k Aufrufe
    blauholstenB
    Hi, Danke deine Erklärungen, aber genau hier liegt meine Frage:… @Jey Cee: Was bei mir noch offen ist, ist in on() auf die Änderung zu reagieren das will einfach nicht klappen. `
  • MAX Fensterkontakte Batterieprüfung

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    M
    Hallo, ich habe mal Homegear installiert und verzweifle an der Verbindung. [image: 721_lsusb.jpg] [image: 721_homegear.jpg] [image: 721_homegear2.jpg] Er findet den CUL-Stick nicht. Was muss ich in den physicalinterfaces.conf ändern? Gruß MArco
  • URL aus E-Mail (HTML-Format) in ioBroker Objekt schreiben

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    BluefoxB
    @andre: Hallo, nachdem ich mich jetzt bereits erfolgreich in Javascript versucht habe, habe ich mich gestern einmal ein wenig um Node Red gekümmert und schon das ein oder andere darüber gelesen bzw. gelernt. Trotzdem will mein erster Versuch nicht so recht gelingen. :( Folgende Aufgabe habe ich mir gestellt: Ziel soll es sein, eine URL aus einer automatisch generierten E-Mail (im HTML -Format) in ein ioBroker Objekt zu schreiben. Das "Abrufen" der E-Mail über die E-Mail-Node funktioniert bereits. Die Daten kommen an und werden in den entsprechenden Variablen übergeben. Allerdings bin ich dabei jetzt auf die erste Hürde gestoßen, dich mich schon den ganzen Nachmittag verzweifeln lässt… Die Daten die mir die E-Mail-Node in msg.payload oder msg.html übergibt, werden im Format base64 übergeben (Debug: Content-Transfer-Encoding: base64...). Mein Versuch die Daten mittels einer Funktion in utf8 zu wandeln sind (vermutlich mangels Hintergrundwissen) kläglich gescheitert. Auch der Versuch die Daten mittels base84-Node zu konvertieren hat nicht gefruchtet. Soweit ich das ergründen konnte, waren die Werte anschließend zwar in einem Anderen format (binary???) aber trotzdem für mich nicht zu verwenden.... :) Was kann ich tun um die Daten wieder in ein (für mich) "verarbeitbares" Format zu bekommen? Meine weiteren Schritte wären dann, den HTML-Code der E-Mail mit z.b. der HTML-Node zu analysieren und dann die extrahierte URL an ioBroker zu senden (letzteres habe ich während meiner Tests auch schon geschafft). Gibt es vielleicht sogar einen noch besseren Weg/ einen anderen Ansatz? Vielen Dank. MfG, André ` Eigentlich muss es einfach sein. Kannst du hier einen Beispiel posten?
  • Netzausfall und Akku bei einer S.USV überwachen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • (gelöst) Buffer-Behandlung?

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    ruhr70R
    @Headroom68: Hallo, ja, ich fürchte nur, dass danach noch etwas zu tun ist. '4c00' it z.b. Apple https://www.bluetooth.com/specification … dentifiers Ich habe mich noch nicht näher damit beschäftigt. Ich hatte versucht eine Anwesenheitserkennung mit btwatch zu machen. Leider nur mit begrenztem Erfolg. Leider wird das iPhone von noble beim scannen nicht erkannt. ` Hi Headroom68, Deine Antwort ist in meinem Urlaub untergegangen. Es ist wirklich einfach Hex. Danke! Unabhängig davon, hatte ich das mittlerweile auch gefunden und eingebaut :-) Zu Deinem Problem: Vorab. Sind das nicht zwei Themen? iPhone und btwatch? Wir die btwatch nicht gefunden? Wenn doch, kannst Du doch schon damit arbeiten. Zum iPhone: Das BLE Skript sucht nur BLE Geräte (Geräte, die dauern Ihre Info per Bluetooth senden, z.B. das Gigaset G-Tag, solange es nicht an der App angemeldet ist). Sehr gut sind da die diversen Fitnesstrecker geeignet. Deine btwatch nicht? Beim iPhone kannst Du es umgekehrt machen. Du benötigst ein Bacon, bzw. ein iBeacon, auf welches Du dann mit Geofency und dem Geofency Adapter reagieren kannst. So nutze ich das bisher schon länger mit einem Raspberry 2 als iBeacon, Geofency und dem Geofency Adapter. Wenn ich mit meinem BLE Skript durch bin, kommt noch ein viel kürzeres Skript, mit dem Du aus dem Raspberry Pi 3 (oder andere kompatible Geräte, wie bei noble) ein Beacon/iBeacon machen kannst, sowie einen Bacon Scanner. Dafür gibt es das node.js Modul bleacon, vom gleichen Entwickler, der auch noble veröffentlicht hat. Ist ganz Simpel zu nutzen. Bei meinem Tests hat der BLE Scanner und das Skript für das iBeacon auch parallel auf einem Pi 3 funktioniert. Vorab die Kurzversion für ein iBeacon Skript (Bluez (wenn es ein Linux Rechner ist) und und das node Modul "bleacon" müssen installiert sein): ! var Bleacon = require('bleacon'); ! var uuid = 'e2c56db5dffb48d2b060d0f5a71096e0'; var major = 0; // 0 - 65535 var minor = 0; // 0 - 65535 var measuredPower = -59; // -128 - 127 (measured RSSI at 1 meter) ! Bleacon.removeAllListeners('discover'); ! Bleacon.startAdvertising(uuid, major, minor, measuredPower); Bleacon.startScanning(); logs("#### START BEACON ####","warn"); ! Bleacon.on('discover', function(bleacon) { logs("uuid: " + bleacon.uuid + ", Major: " + bleacon.major + ", Minor: " + bleacon.minor,"info","darkorange"); }); ! /* setTimeout(function () { Bleacon.stopAdvertising(); logs("#### STOP BEACON ####","warn"); Bleacon.stopScanning(); //Bleacon.removeListener('discover'); Bleacon.removeAllListeners('discover'); }, 100000); ! */ ! Ohne das aaskommentierte Timeout am Ende sendet es dann dauerhaft, bis zum Neustart der Javascript-Instanz. Was man sehr einfach machen kann: kurzes zweites Skript als Watchdog, welches den Listener ausschaltet, wenn das iBeacon Skript gestoppt wird. Die im Skript eingestellt iBeacon Kennung findest Du auch in der iPhone App "Beccon". Dort ist es das Haustier :-) Wenn Du das Skript inkl. dem Timeout am Ende startest, wird das Haustier für 10 Sekunden vom iPhone mit Beecon gefunden. Danach würde ich Geofency probieren. Von mir wird mit der Zeit folgendes kommen: BLE Scanner als Skript in der Aerotouch Version (komplett automatisch, jede Instanz, ohne Eingriffe) BLE Scanner Adapter (hoffentlich g9 iBeacon/Beacon Skript für ein Beaconn und als Scanner und dann der Adapter dafür (mache ich wohl vor den BLE Adapter, da das schneller geht) bleacon findest Du hier: https://github.com/sandeepmistry/node-bleacon
  • MiLight Ansteuerung per node-red

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    3k Aufrufe
    Niemand hat geantwortet
  • Bei Druck eines Tasters Toggeln

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    paul53P
    @pix: Steht das ! fürs Umkehren des Wertes? ` Ja, ! vor einem Wert (boolean) bedeutet https://wiki.selfhtml.org/wiki/JavaScript/Operatoren/Logische_Operatoren.
  • [gelöst] setStateDelayed

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    7k Aufrufe
    R
    Nach einigem Herumprobieren und testen habe ich jetzt glaube ich eine Lösung die funktioniert. Kann man vielleicht Code-mäßig noch optimieren, aber im Moment bin ich nur froh, dass es so geht, wie ich will :) var temp_switch = 2.5; //über welcher Differenztemperatur die Sonne scheint var timer_ein; var timer_aus; on({id: "hm-rpc.0.LEQ0244813.3.TEMPERATURE"/*Sonnensensor_3.TEMPERATURE*/, change: "any"}, function(dp) { if(dp.state.val >= temp_switch) { log("----------------test sonne_temp true"); setState("javascript.1.Variablen.Sonne_temp"/*Sonne_temp*/, true); } else { log("----------------test sonne_temp false"); setState("javascript.1.Variablen.Sonne_temp"/*Sonne_temp*/, false); } }); on({id: "javascript.1.Variablen.Sonne_temp"/*Sonne_temp*/, change: "any"}, function(dp) { var old = dp.oldState.val; log("------------------ test sonne old: "+old+" new: "+dp.state.val, "info"); if(dp.state.val === true && old === false) { log("-------------------test sonnenvar auf ein"); clearTimeout("hm-rega.0.64510"/*Sonne_ccu*/); setStateDelayed("hm-rega.0.64510"/*Sonne_ccu*/, true, 300000); } if(dp.state.val === false && old === true) { log("-------------------test sonnenvar auf aus"); clearTimeout("hm-rega.0.64510"/*Sonne_ccu*/); setStateDelayed("hm-rega.0.64510"/*Sonne_ccu*/, false, 900000); } }); und so hat der heutige Tag dazu ausgeschaut: [image: 421_unbenannt.jpg]
  • Erste Gehversuche…Hilfe

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    3k Aufrufe
    V
    Hallo, du musst zuerst den Wert holen und kannst ihn dann prüfen: FALSCH: if(obj.newState.val && getState(TAG2 === false).val) RICHTIG: if(obj.newState.val && getState(TAG2).val === false) Mit getState(XXX).val bekommst du den Inhalt der Variable und danach auf Inhalt prüfen. LG Christian
  • Sysinfo Flow - node-red-contrib-os

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • [gelöst]HTTP Get Problem

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    4k Aufrufe
    S
    So nun alles probiert und funktioniert alles. Warum es nur mit der MyFritz Freigabe als URL funktioniert weiß ich leider immer noch nicht. Danke nochmal an alle die sich für mich ins grübeln gebracht haben. Grüße
  • [gelöst]Anfängerfragen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    M
    Vielen Dank für die schnelle und ausführliche Antwort! Das hilft mir sehr weiter. Gesendet von meinem A0001 mit Tapatalk
  • Meldung von Bewegung bei Abwesenheit

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    778 Aufrufe
    T
    Klasse! Danke dir Bluefox läuft jetzt!
  • Script zum umschalten der Werte

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    3k Aufrufe
    M
    [{"tpl":"tplSegmentClock","data":{"oid":"modbus.0.inputRegisters.30865_Bezug","visibility-cond":"==","visibility-val":"1","clock":false,"seconds":false,"pattern":"#####","colorOn":"#fd1717","colorOff":"rgba(0, 0, 0, 0.1)","runStepInterval":"0","segmentCount":"7","displayAngle":"9","digitHeight":"25","digitWidth":"20","digitDistance":"2","segmentWidth":"2","segmentDistance":"0.5","cornerType":"PointedCorner","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":"","text":"","locked":false,"visibility-oid":"javascript.0.Displayzaehler"},"style":{"left":"796px","top":"6px","width":"334px","height":"92px","text-align":"","color":"#fd0808"},"widgetSet":"timeandweather"},{"tpl":"tplSegmentClock","data":{"oid":"modbus.0.inputRegisters.30775_PVLeistung","visibility-cond":"==","visibility-val":"2","clock":false,"seconds":false,"pattern":"#####","colorOn":"#fd1717","colorOff":"rgba(0, 0, 0, 0.1)","runStepInterval":"0","segmentCount":"7","displayAngle":"9","digitHeight":"25","digitWidth":"20","digitDistance":"2","segmentWidth":"2","segmentDistance":"0.5","cornerType":"PointedCorner","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":"","text":"","locked":false,"visibility-oid":"javascript.0.Displayzaehler"},"style":{"left":"796px","top":"7px","width":"334px","height":"92px","text-align":"","color":"#fd0808","font-style":"normal"},"widgetSet":"timeandweather"},{"tpl":"tplSegmentClock","data":{"oid":"modbus.0.inputRegisters.30867_Einspeisung","visibility-cond":"==","visibility-val":"3","clock":false,"seconds":false,"pattern":"#####","colorOn":"#fd1717","colorOff":"rgba(0, 0, 0, 0.1)","runStepInterval":"0","segmentCount":"7","displayAngle":"9","digitHeight":"25","digitWidth":"20","digitDistance":"2","segmentWidth":"2","segmentDistance":"0.5","cornerType":"PointedCorner","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":"","text":"","locked":false,"visibility-oid":"javascript.0.Displayzaehler"},"style":{"left":"798px","top":"7px","width":"334px","height":"92px","text-align":"","color":"#fd0808"},"widgetSet":"timeandweather"}]
  • [gelöst]Wie Variablen einlesen

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    760 Aufrufe
    BluefoxB
    @Patrick: perfekt vielen dank so einfach wahr es ` Punkt 1: http://forum.iobroker.net/viewtopic.php?f=8&t=2451 8-)
  • Duplicate Name bei speichern eines Scripts !

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    549 Aufrufe
    W
    Hallo Bluefox, durch den großen Sprung von der Javascript Version und dem neuen Aufbau mit linker Spalte Namen der Scripte und rechte Spalte das geöffnete Script mußte ich mich erstmal zurechtfinden. Das Problem was ich jetzt hatte war das z.B das Script Waschmaschine rechts geöffnet war und ich nochmals links in der Spalte auf das 3.Symbol von links geklickt habe und das Script Waschmaschine wurde nochmals erstellt…somit war es 2mal vorhanden. Das habe ich nicht sofort mitbekommen und durch das abspeichern der Änderung im 1.Script kam das Popup Fenster mit Duplicate Name. Schau mal ob du es reproduzieren kannst und ob es ein Fehler ist oder das Symbol bedeutet einfach Script kopieren. Wenn ja dann Asche auf mein Haupt !!! Gruß Sebastian
  • Javascript Adapter 2.0.4 nach update - Anzeige im Skript-Tab fehlerhaft

    Verschoben
    22
    2
    0 Stimmen
    22 Beiträge
    3k Aufrufe
    BluefoxB
    Probier mal mit: iobroker object del "_alle_10_Minutenfunction_MHS()_{___createState(\'Meterhomeserver_Datum\');_createState(\'Meterhomeserver_Stunde\');_createState(\'Meterhomeserver_Minuten\');_createState(\'Zaehler_views\');___}_schedule(\"*/10_*_*_*_*\",_function_()_{____________________________________________________//oder!!_soll_entweder_ausgelöst_werden_alle_10_Minuten____log(\"===>Start_neues_Skript\");_____log(\"===>Solar_-_Werte_berechnen_-_Start_all_10_minutes!\");_____MHS_();_});"
  • [beantwortet] createChannel ?

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    BluefoxB
    @ruhr70: @Bluefox: @ruhr70: Bluetooth Scanner -> muss viel abgefangen werden -> Bedarf? Eventuell für Anwesenheitserkennung und Geräteüberwachung ohne IP -> als Script ist es fast fertig :-) Danke für die Hinweise! Diesen will ich sogar machen. Problem ist es muss klick, klick gehen und wenn man anfängt zu denken: welche module ich installieren muss, wie konfiguriere ich das… Da wird man es lieber nicht machen. ` > Als Script ist es schon so weit, dass man im Prinzip nur "noble" in der Instanz des Javascript-Adapters eintragen muss. Dann kann das Script ohne Änderung mit den Default-Einstellungen auf einem Raspberry Pi 3 laufen. Ich stell es nachher mal rein, auch wenn es erst bei 90% des geplanten Ergebnis ist. Aber hätte ich das vorher gewusst, dass da noch ein Adapter kommt, hätte ich mir die Arbeit gesparrt :lol: :lol: Als Adapter wären meine Ansprüche zu hoch. Das Script hat jetzt zwei Tage gebraucht. Für den Adapter würde ich bei meine Kenntnisstand ein paar Wochen benötigen. > Aber hätte ich das vorher gewusst, dass da noch ein Adapter kommt, hätte ich mir die Arbeit gesparrt Ich will den schreiben, aber es heißt lange nicht, dass ich die Zeit dafür habe :)
  • [beantwortet] mehrfach Reaktion bei externen Subscription

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    ruhr70R
    @Bluefox: removeAllListeners wird dein Problem lösen. ` Danke! :) :) Versuche ich gleich. Ansonsten schaut es schon ganz gut aus ;-)
  • Skripte schreiben geht nicht mehr

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    654 Aufrufe
    Niemand hat geantwortet

916

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge