Skip to content

Skripten / Logik

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

16.6k Themen 213.6k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    A
    @Dave69-CH sagte in E3DC Hauskraftwerk steuern: Oder was hast Du da reingemacht? Die Objekt iDs haben sich geändert. Ist aber bereits länger her, weiß schon gar nicht mehr, mit welcher Version :-) Das sollte jetzt so aussehen: [image: 1771696284744-3e7b5969-f68c-4ea4-ac9d-95dc36c01efd-grafik.png] Im Editor den Text und die Objekt-ID 0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt eintragen, dann sollte es wieder stimmen. Prüfe auch die Objekt-ID "aktuell erzeugte Energie" dort sollte die Objekt-ID 0_userdata.0.Charge_Control.Allgemein.IstPvErtragLM0_kWh eingetragen sein.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    paul53P
    @13patrick37 sagte: Habe es jetzt so gemacht: Der Trigger auf die Szenen muss auf "ist wahr" reagieren. Wert und manuellein müssen anders ausgewertet werden. [image: 1771708375656-blockly_temp.jpg] @13patrick37 sagte in Beleuchtungssteurung//Zeit + Präsenzmelder: die Szenen, auf welche ich trigger, sollten vermutlich nicht die sein, die der BWM auslöst, oder? Es sollten die Szenen sein, die manuell aktiviert werden sollen. @13patrick37 sagte in Beleuchtungssteurung//Zeit + Präsenzmelder: "Abschalten" ist einfach eine Hue Szene Poste mal die komplette ID einer Szene für die Bildung eines Selektors, der alle Szenen eines Raumes erfasst.
  • 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
  • Funk-Master-Slave-Steckdose umsetzen

    multimedia communication
    3
    0 Stimmen
    3 Beiträge
    737 Aufrufe
    D
    Vielen Dank für die Antwort. Leider hat direkt am nächsten Tag mein NAS defekt angemeldet, so dass ich hier nicht mehr mitlesen konnte... Ich habe es jetzt über PING und folgendes Blockly gelöst: [image: 1581632940910-3aef070a-7a35-4585-9d21-48119c181ca9-grafik-resized.png] Der rechte Teil ist nicht direkt notwendig, aber aus folgenden Gründen vorhanden: Der obere Teil reduziert die Verzögerung beim Einschalten Der untere Teil (Workaround) fordert die Uhrzeit vom Sensor durch Überschreiben des Wertes mit "" erneut an. In ein paar fällen hatte sich die RTC noch nicht aktualisiert und den 01.01.1970 als Wert genannt. Anmerkung: Den Trigger-Parameter "was updated" habe ich noch auf "was changed" geändert, damit nicht so viele Aktionen gefeuert werden.
  • AbstraktionsSchicht

    javascript
    13
    0 Stimmen
    13 Beiträge
    520 Aufrufe
    A
    Vielleicht noch ein möglicher Ansatz zur Steuerung: Ich finde MQTT als Kommunikationsprotokoll genial. Ich habe mir in ioBroker einen eigenen Tree für Wohnung/Stockwerke/Zimmer/Gewerke gebaut und die States mit der Visualisierung verbunden. Über MQTT sind diese Datenpunkte dann mit anderen Devices (entweder innerhalb von ioBroker oder externe Systeme) synchronisiert. Das ist auch eine Abstraktionsschicht, die ich mir gebaut habe, damit ich z.B. Hue-Bewegungsmelder, HomeMatic-Bewegungsmelder oder selbstgebaute über eine einheitliche Schnittstelle ansprechen kann. Möglicherweise ist da für dich auch ein passender Impuls dabei...
  • Doppelte Ansagen über SayIT bei einfachem Blockly

    Verschoben
    8
    2
    0 Stimmen
    8 Beiträge
    869 Aufrufe
    M
    Hi, trotz des älteren Themas mein Senf dazu. Hatte vor kurzem auch das Problem. Meine Lösung war beim Trigger das "anerkannt ist" auf Update zu setzen und dadurch waren die doppelten Ansagen weg. Kann Zufall sein aber bei mir hat's was gebracht.
  • Status Änderungen Debuggen / Nachvollziehen

    blockly
    4
    0 Stimmen
    4 Beiträge
    372 Aufrufe
    paul53P
    @btiegel sagte in Status Änderungen Debuggen / Nachvollziehen: Komme ich auf der Ebene auch an das auslösende Skript? Nein, es sollten nur ein bis zwei Scripte infrage kommen, in denen der Datenpunkt mit steuere (Bestätigt: false) bzw. aktualisiere(Bestätigt: true) aktualisiert wird.
  • Ansage Fenster geöffnet

    blockly
    12
    1
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    C
    @panik Ne, welches Fenster offen ist steht ja dann in der neuen Variable FensterText, nur das du so auf eben diese Variable prüfen kannst ob mindestens ein Fenster geöffnet ist. Ich mache mal heute Abend -ich hoffe ich denke dran :P - ein Beispiel
  • [Gelöst] Math-Kanäle erstellen und in InfluxDB speichern

    monitoring javascript blockly
    1
    0 Stimmen
    1 Beiträge
    147 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Script "Zählen von Fenstern" zeigt keine offenen Fenster an

    Verschoben
    132
    3
    0 Stimmen
    132 Beiträge
    21k Aufrufe
    NegaleinN
    @e-i-k-e sagte in [gelöst] Script "Zählen von Fenstern" zeigt keine offenen Fenster an: Keiner eine Idee dazu? ich hab das in Verwendung. Fenster zählen /* Status Zahl Fenster Homematic var cacheSelectorLevel = $('channel[state.id=*.STATE](functions="Fenster")'); Mi var cacheSelectorState = $('state[id=*.state](functions="Fenster")'); {1} */ var logging = true; var idAnzahlEin = 'javascript.0.Status.Fenster.Anzahl_auf', idAnzahl = 'javascript.0.Status.Fenster.Anzahl', idText = 'javascript.0.Status.Fenster.Text', idRaum = 'javascript.0.Status.Fenster.Raum', // <---- NEU idAnsage = 'javascript.0.Status.Fenster.Ansage'; // Ab hier nix mehr ändern createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter type: 'number', name: 'Anzahl aller Fenster', min: 0, def: 0, role: 'value' }); createState(idAnzahlEin, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen type: 'number', name: 'Anzahl der offenen Fenster', min: 0, def: 0, role: 'value' }); createState(idText, { // Anzahl der brennenden Lichter und deren Namen als Variable unter Javascript.0 anlegen type: 'string', name: 'Offene Fenster', desc: 'Namen der offenen Fenster', def: ' ', role: 'value' }); createState(idAnsage, { type: 'string', name: 'Offene Fenster (Ansage)', desc: 'Namen der offenen Fenster (für Ansage aufbereitet)', def: ' ', role: 'value' }); createState(idRaum, { // Räume, in denen Lichter brennen // <---- NEU type: 'string', name: 'Räume mit offenen Fenster', desc: 'Namen der Räume, in denen Fenster offen sind', def: ' ', role: 'value' }); //var cacheSelectorState = $('channel[state.id=*.STATE](functions="Licht")'); // Gewerk Licht var cacheSelectorLevel = $('channel[state.id=*.LEVEL](functions="XXX")'); //var cacheSelectorHue = $('state[id=*.on](functions=Licht)'); var cacheSelectorState2 = $('channel[state.id=*.STATE](functions="Fenster")'); //Homematic var cacheSelectorState = $('state[id=*.state](functions="Fenster")'); //Mi function checkDevices(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Licht auf 0 var anzahlLichterAn = 0; var anzahlLichter = 0; var textLichterAn = []; var textRaum = []; if (logging) { log('++++++ Fenster Anzahl ++++ '); log('#### Mi ##### '); } cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.state im Gewerk Fenster var status = getState(id).val; // Zustand *.state abfragen (jedes Element) var deviceId = id.substring(0, id.lastIndexOf(".")); var devicename = getObject(deviceId).common.name; var raumname = getObject(id, "rooms").enumNames[0]; if (logging) { log('---Mi----'); log('Raum: ' + JSON.stringify(raumname)); log('Status: ' + status); } if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status }); cacheSelectorState2.each(function(id, i) { // Schleife für jedes gefundenen Element *.ON im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { if (logging) { log('---Homematic----'); log('Kanal: ' + name); log('Status: ' + status); } if (status) { // wenn Zustand = true, dann wird die Anzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage }); if (logging) log('#### DIMMER ##### '); cacheSelectorLevel.each(function(id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.LEVEL abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".LEVEL")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status + '%'); } if (parseFloat(status) > 0) { // Wenn Dimmwert über 0 ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // Ende Abfrage VK }); // Array mit Lichternamen sortieren textLichterAn.sort(); textRaum.sort(); // <---- NEU // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben if (logging) log("Text: " + textLichterAn); if (logging) log("Anzahl Fenster: " + anzahlLichter + " # davon Fenster offen: " + anzahlLichterAn); // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS) setState(idText, textLichterAn.join(', ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht // setState(idRaum, textRaum.join(',<br>')); // Räume, in denen Licht brennt // <---- NEU setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU } // Trigger cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Licht if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); cacheSelectorState2.on(function(obj) { // bei Zustandänderung *.ON von HUE Lampen im Gewerk Licht if (logging) log('Auslösende Homematic: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.LEVEL im Gewerk Licht if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); function main() { setTimeout(function() { if (logging) log('Auslöser Skriptstart'); checkDevices(); }, 2000); } main(); // Skriptstart-Auslöser // Aufbereitung für Ansage function strip_tags(data) { var rueckgabe = data.replace(/(&nbsp;|<([^>]+)>)/ig, " "); return (rueckgabe); } on(idText, function(obj) { var text = obj.state.val; text = (getState(idAnzahl).val > 0) ? 'Fenster offen: ' + strip_tags(text) : 'Alle Fenster geschlossen'; setState(idAnsage, text); }); oder hier in Blockly (Fenster, Licht, usw.)
  • Kleine Alarmanlage

    blockly
    8
    1
    0 Stimmen
    8 Beiträge
    866 Aufrufe
    CinimodC
    Dann trigger doch die tür/fensterkontakte, oder was du sonst so als melder benutzen willst und schalte über vis oder yahka dein javascript (alarm) ein und aus [image: 1581272608126-bildschirmfoto-2020-02-09-um-19.19.21.png] mit nem zweiten script kannst dir ja auch über die Anwesenheit, dieses script ein oder ausschalten
  • scenes adapter handling

    scenes
    9
    0 Stimmen
    9 Beiträge
    515 Aufrufe
    jpgorganizerJ
    @Homoran said in scenes adapter handling: Dann kannst du direkt ein Issue anlegen mit feature request - Stop scene done https://github.com/ioBroker/ioBroker.scenes/issues/42
  • SQL Adapter flutet Log

    monitoring
    13
    0 Stimmen
    13 Beiträge
    771 Aufrufe
    C
    Hallo zusammen, Hatte das selbe Problem nach Update der node Version (8 auf 10). Mir hat diese Anleitung geholfen: https://forum.iobroker.net/topic/22867/how-to-node-js-für-iobroker-richtig-updaten Gruß Charly
  • Hilfe parser auslesen Wind aus .txt

    monitoring
    12
    0 Stimmen
    12 Beiträge
    669 Aufrufe
    HomoranH
    @ChrisXY ist aber kein Hexenwerk. du musst nur die Klammern verschieben, je nachdem welchen Teil des Timestamps du haben willst: last24h_wind0_speedmax_time\s+\d\d\d\d\d\d\d\d\d\d\d\d(\d\d) Hier Sekunden
  • [Gelöst]Automatisch zum Standardview nach 2 Minuten

    javascript
    5
    0 Stimmen
    5 Beiträge
    709 Aufrufe
    T
    @Feuersturm Dann dürftest du die richtigen Stichwörter verwendet haben! Trotzdem danke für die Mühe. LG Thomas
  • [Gelöst] Fensterkontakt + Thermostat: Wie Verzögerung einbauen

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    C
    Hi, leider nur Javascript. Die Funktion Timeout ist aber schön zu erkennen: Hier wird 60 Sekunden bei Fenster auf gewartet und erneut geprüft. Ich kann also in Ruhe ein Bier vom Balkon holen... //Wohnzimmer: on({id: 'javascript.0.Smarthome.fenster_wohnzimmer', change: 'any'}, function (obj) { if (obj.state.val===true) { setTimeout(function(){ if (obj.state.val===true) { setState('fritzdect.0.Comet_119610277592.mode',1); } }, 60000); } else setState('fritzdect.0.Comet_119610277592.mode',0); }); Und falls du Fenster zusammenfassen möchtest (Wohnzimmer hat bei mir 2 Fenster + Balkontür: //Das Script fasst die Wohnzimmer Fenster zusammen const idSammel = 'javascript.0.Smarthome.fenster_wohnzimmer'; const id1 = 'javascript.0.Smarthome.Fenster.Fenster_1'; // ID von 1\. Meldung const id2 = 'javascript.0.Smarthome.Fenster.Fenster_2'; const id3 = 'javascript.0.Smarthome.Fenster.Fenster_3'; const ids = [id1, id2, id3]; var vals = [getState(id1).val, getState(id2).val, getState(id3).val]; function sammel() { if(vals[0] || vals[1] || vals[2] ) setState(idSammel, true, true); else setState(idSammel, false, true); } on(ids, function(dp) { var pos = ids.indexOf(dp.id); if(pos != -1) { vals[pos] = dp.state.val; sammel(); } else log('Trigger-ID nicht im Array !', 'warn'); });
  • (gelöst) Sonos Lautstärke über Alexa "softer" steuern

    blockly javascript
    8
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    padrinoP
    Hi, "etwas lauter" sollte auch klappen. ;) Ich denke, es wäre am Besten, wenn man dann die Lautstärke komplett selbst steuert, sprich die Finger ganz von nur "lauter" und "leiser" lässt.. Diese kann man dann ja z.B. durch (obige) "mach..." ersetzen. Eigentlich sind "lauter" und "leiser" ja +/-10% ("+" und "-" am Gerät ergeben +/- 0, 3, 7 - was inzwischen auch die kleinstmöglichen Schritte fürs Einstellen über "volume" sind).. "Pfuscht" man aber darin herum, kommt Alexa etwas aus dem Tritt :nerd_face: Wie z.B. Volume = 23% lauter -> 30% Volume = 27% lauter -> 40% Denke, ich werde mein Skript demnächst dahingehend auch mal überarbeiten... :relieved:
  • Helligkeitsabhängiges Script

    javascript blockly
    19
    0 Stimmen
    19 Beiträge
    605 Aufrufe
    C
    ihr habt beide Recht - und ich 2 dinge vermischt! ich versuche jetzt beide von Euch vorgeschlagenen Scripte und möchte mich sehr herzlich bedanken! :-)
  • Wake on lan mit vis und button

    javascript
    6
    0 Stimmen
    6 Beiträge
    885 Aufrufe
    JohGreJ
    Bitte schön on('javascript.1.VIS.wakeOnLan', function (obj) { var wol = require('wake_on_lan'); if ( obj.state.val ) { log('wakeOnLan: ' + obj.state.val) if ( !getState('radar2.0.Synology._here'/*Synology here*/).val) { wol.wake('xx:xx:xx:xx:xx:xx'); } else if (getState('radar2.0.Synology._here'/*Synology here*/).val) { setTimeout(function(){this.shutDownNAS;},10*1000); } setState("javascript.1.VIS.wakeOnLan",false); } }); function shutDownNAS() { var SSH = require('simple-ssh'); var ssh = new SSH({ host: 'ip.ad.re.ss', port: 21, user: 'SSH-User', pass: 'SSH-User Passwort' }); log('shutDownNAS'); ssh.exec('echo "SSH-User Passwort"|sudo -S shutdown -h now').start(); } [image: 1581156394980-a898b978-8a76-481d-99d3-99aa2904a9b9-grafik.png]
  • PS4-Waker NPM Modul, Hilfe benötigt

    javascript blockly
    2
    0 Stimmen
    2 Beiträge
    343 Aufrufe
    S
    @kimbel55 Habe dir hier geantwortet: https://forum.iobroker.net/topic/13749/gelöst-ps4-waker-npm-modul-von-github-installieren-tv-via-hdmi-cec-einschalten/37
  • 0 Stimmen
    37 Beiträge
    8k Aufrufe
    S
    Hi @kimbel55 , ich habe genau das gleiche Problem wie du und habe gefühlt alle Beiträge, die ich zu dem Thema im Internet gefunden habe, 100 mal gelesen. Auch im issue thread (https://github.com/dhleong/ps4-waker/issues?q=is%3Aissue+is%3Aclosed) auf GitHub war nichts Brauchbares dabei... Egal auf welche Weise ich den ps4-waker installiert und das NPM-Modul in JS eingebunden habe, war auf meinem Pi nie die cmd.js bzw. das /bin Verzeichnis zu finden. Im JSScript liefert mir der getDeviceStatus code auch alles ordnungsgemäß zurück, aber starten oder stoppen geht nicht. [image: 1581121907040-ed5df4a5-4b2f-4510-a952-54c3f65c6a40-image.png] Auch der exec command klappt nicht und es sieht wie bei euch aus. Über die Konsole vom Pi klappt es aber mit den einfachen commands "npx ps4-waker", "ps4-waker", "ps4-waker standby". Leider ließ sich ein simples Shell script mit dem Aufruf nicht sofort in iobroker einbinden und musste etwas tüfteln. Jetzt habe ich aber eine robuste und zuverlässige Lösung für die Einbindung in Alexa gefunden, die sogar echt fix die PS4 per Sprachbefehl startet und in standby schickt. Es führen ja bekanntlich viele Wege nach Rom, aber bei mir klappt es nun mit folgendem Umweg: 1. PS4Switch in Node-RED Alexa Home Skill Bridge (https://alexa-node-red.bm.hardill.me.uk/devices#) anlegen [image: 1581120360930-8965d3d9-95dd-435d-bc06-4def1fe989e3-image.png] 2. PS4StateSzene in ioBroker anlegen wird getriggerd von PS4Switch (alexa) [image: 1581120450946-6206cc88-0952-4618-b3fc-52b5ba268a20-image.png] 3. Blocky Script für On | Off temp files wird getriggerd von PS4StateSzene erzeugt eine temporäre On oder Off datei im filesystem cat >> /opt/iobroker/node_modules/iobroker.javascript/node_modules/ps4-waker/On cat >> /opt/iobroker/node_modules/iobroker.javascript/node_modules/ps4-waker/Off [image: 1581120503162-52ae0df4-3c95-4f3d-bbc1-d28a5dee2358-image.png] 4. ps4-waker-monitor.sh Script erstellen Prüft dauerhaft ob eine On oder Off Datei erstellt wurde Falls ja wird der ps4-waker Befehl ausgeführt und die Datei gelöscht Rechte: [image: 1581120676035-dddbaf56-9648-44de-a2b5-ce4c16e98133-image.png] #!/bin/bash # set n to 1 n=1 # continue until $n equals 5 while [ $n -le 50 ] do file1="/opt/iobroker/node_modules/iobroker.javascript/node_modules/ps4-waker/On" file2="/opt/iobroker/node_modules/iobroker.javascript/node_modules/ps4-waker/Off" if [ -f "$file1" ] then echo "Try to start PS4 - $file1 found." sudo rm $file1 ps4-waker sleep 5.0 else #echo "Nothing to do, $file1 not found." sleep 0.1 fi if [ -f "$file2" ] then echo "Try to stop PS4 - $file2 found." sudo rm $file2 ps4-waker standby sleep 5.0 else #echo "Nothing to do, $file2 not found." sleep 0.1 fi sleep 0.5 done 5. ps4-waker-monitor.sh Script schedulen hiermit wird das script automatisch bei jedem Neustart ausgeführt. sudo crontab -e @reboot [Pfad/zum/Befehl] Es gibt bestimmt elegantere Lösungen, aber ich bin hiermit wirklich glücklich. Bin jetzt komplett von der ioBroker Cloud zu Node-RED umgestiegen und bin begeistert. Der ioBroker Cloud und IoT Adapter war bei mir leider nie so richtig zuverlässig in Verbindung mit Alexa. Meine Lösung für den ps4-waker wäre damit gelaufen, aber sicherlich mit großer Verzögerung. Jetzt wird aber nachdem ich den Sprachbefehlt abgesetzt habe, der Befehl nach ca. 5 Sekunden an die PS4 gesendet. :)
  • Zeichenfolge Parsen

    javascript
    17
    0 Stimmen
    17 Beiträge
    513 Aufrufe
    T
    [0-9]+(?= Minuten")
  • Taster press short or long mit blockly

    Verschoben
    39
    0 Stimmen
    39 Beiträge
    8k Aufrufe
    saintheinS
    Bekommt das ganze auch mit einem Tradfri On/Off Taster gebacken? Dimmen läuft, nur an und aus mit kurzem Tastendruck läuft nicht.

607

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge