Skip to content

Skripten / Logik

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

16.6k Themen 213.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    OliverIOO
    @BertDerKleine Am besten zeigst du mal dein Script, dann kann man bessere Empfehlungen abgeben. Bitte auch mal schreiben warum du aufteilen möchtest obwohl es so funktioniert.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    KPTK
    Hat leider in ioBroker nicht funktioniert. Musste leider auf HomeAssistant umsteigen. Lokale Integration sehr einfach und voll funktionsfähig.
  • 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
  • Led farbe

    1
    0 Stimmen
    1 Beiträge
    133 Aufrufe
    Niemand hat geantwortet
  • 4 Anzeigen per Raspberry bei Abwesenheit ausschalten

    javascript communication blockly
    4
    0 Stimmen
    4 Beiträge
    183 Aufrufe
    michl75M
    @johgre Guten Morgen, super vielen dank für die schnelle Hilfe... Das gefällt mir und so mach ich's auch :) Danke vielmals !!
  • Shelly 1 mit Türkontakt, Taster und Eltako

    javascript blockly scenes
    7
    0 Stimmen
    7 Beiträge
    901 Aufrufe
    Ralf_NR
    @smarteshome2020 @ALL Und wie wäre die Lösung, wenn der/die Eltako drin bleiben würde ??? Ich stehe nämlich auch gerade vor dem Problem der Statusabfrage ( Ist Licht an oder aus ) bei einem shelly 1 der VOR einem Eltako (SDS 61/1-10V) hängt. Durch die Schaltung bin ich gezwungen AUTO OFF zu nutzen ( Schalter als Taster ). Somit fällt der Switch Status im Iobroker immer gleich wieder auf FALSE. Wie weiss ich , ob da Licht gerade an oder aus ist ??? Wie habt Ihr das gelöst ? LG. Ralf.
  • Fahrtenlog über VW Connect Adapter

    4
    0 Stimmen
    4 Beiträge
    409 Aufrufe
    M
    @night2k5 Hi. Mit dem setTimeout klappt nur der Log. Nun geht darum die Daten weiter zu bearbeiten.
  • Schalter und Bewegungsmelder script

    4
    0 Stimmen
    4 Beiträge
    965 Aufrufe
    ?
    @jayr Hallo, Habe letzte Woche auch daran gesessen und ein Script geschrieben womit ich mit Hue Bewegungsmeldern meine Leuchten steuere. Hintergrund warum ich das über ioBroker mache war, das die Funktion „disturb not my scene“ oder andere apps nicht genau hin hauen wenn man zb noch ein Taster mit eingebaut hat. Vielleicht hilft dir das weiter. Bei mir soll der BWM nur schalten, wenn vorher die hue Gruppe auch aus war oder wenn der BWM vorher schon ausgelöst hat, so das man nicht bei laufender Bewegung plötzlich im Dunkeln steht. Und dann natürlich nur bei bestimmter Dunkelheit und bestimmte Zeiten und auch nur dann wenn ein evtl vorhanden Schalter auf false steht. /** * *KUECHE BWM* * Wenn der BWM ab Dämmerung reagiert dann Licht in der Küche an * und nach 90 sek. wieder ausschalten, wenn keine Bewegung mehr. */ let motionSensorID = '0_userdata.0.Datenpunkte.Hue.Sensoren.BWM.Kueche_BWM'; //Bewegungsmelder let ambientSensorID = 'hue.0.Hue_ambient_light_sensor_1.lightlevel'; //Lichtsensor vom BWM let sceneDay = 'hue.0.Küche.scene_normal'; //Hue Szene für Tag let sceneNight = 'hue.0.Küche.scene_normal_gedimmt'; //Hue Szene für Nacht let lightgroup = 'hue.0.Küche.on'; //Lichtgruppe let switchKitchen = 'hm-rpc.0.00085BE98EF8A1.4.STATE'; // Lichtschalter Küche var timeoutday = 300000; //Timeout Tag Default 300000 = 5 minutes var timeoutnight = 60000; //Timeout Nacht Default 60000 = 1 minute var lightlevel = 10000; //Default 8200 Lichtlevel wann der BWM auslösen soll var starttimeday = '07:00'; //Wann der Tag beginnt var endtimeday = '23:00'; //Wann der Tag endet var timeout_deactivate_light = null; //setzt Timeout auf null var bwmState = false; //BWM var damit der nur reagiert wenn Hue Gruppe aus war on({id: motionSensorID}, function (obj) { {if ((!getState(switchKitchen).val) && (bwmState === true) || (!getState(lightgroup).val)) if ((obj.state.val) && (getState(ambientSensorID).val < lightlevel) && (compareTime(starttimeday, endtimeday, "between")) ) { //Wenn am Tag Bewegung erkannt und Helligkeit unter dem Wert lightlevel liegt clearTimeout(timeout_deactivate_light); timeout_deactivate_light = null; //setze Timeout zurück setState(sceneDay, true); //Schalte Licht ein bwmState = true; //Setze BWM var auf wahr } else if ((obj.state.val) && (getState(ambientSensorID).val < lightlevel)) { //Wenn in der Nacht Bewegung erkannt und Helligkeit unter dem Wert lightlevel liegt clearTimeout(timeout_deactivate_light); timeout_deactivate_light = null; //setze Timeout zurück setState(sceneNight, true); //Schalte Licht ein bwmState = true; //setze BWM var auf wahr } else if ((!obj.state.val) && (compareTime(starttimeday, endtimeday, "between"))) { //Wenn keine Bewegung mehr erkannt wird am Tag timeout_deactivate_light = setTimeout(function () { //Setze Timeout ein nach vorher eingebener Zeit setState(lightgroup, false); //Schaltet Beleuchtung aus bwmState = false; //setze BWM var auf falsch timeout_deactivate_light = null;}, timeoutday); } else { //Wenn keine Bewegung mehr erkannt wird in der Nacht timeout_deactivate_light = setTimeout(function () { //Setze Timeout ein nach vorher eingebener Zeit setState(lightgroup, false); //Schaltet Beleuchtung aus bwmState = false; //setze BWM var auf falsch timeout_deactivate_light = null;}, timeoutnight); } }});
  • Mehrere Befehle an Alexa und Hue - wie am besten?

    3
    0 Stimmen
    3 Beiträge
    359 Aufrufe
    M
    @bananajoe Danke für den Hinweis, das probiere ich mal aus! :-)
  • Homematic Ip 6Fach Taster fehlende Statuswerte

    javascript
    10
    1
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    A
    @sebastian-s-0 schaut euch mal meine Vorlage an: https://forum.iobroker.net/topic/40279/vorlage-einfaches-blockly-für-homematic-ip-fernbedienung
  • Homematic Dimmer bei Taster halten (Long Press)

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    3k Aufrufe
    paul53P
    @florianshj sagte: Bei homematic-Schaltern gibt es auch (Leider offensichtlich nur in unverschlüsselter Kommunikation) auch press_cont, d.h. dieses Event wird kontinuierlich gesendet, wenn ein Taster gedrückt wird. press_long/press_short wird ja beim Loslassen des Taster m.E. gesendet. Bei HomeMatic classic habe ich folgendes Verhalten festgestellt: PRESS_LONG und PRESS_CONT sind nur zu gebrauchen, wenn AES_ACTIVE ausgeschaltet ist. PRESS_SHORT wird bei Loslassen innerhalb von 400 ms (einstellbar) nach Drücken aktualisiert PRESS_LONG wird 400 ms (einstellbar) nach Drücken aktualisiert, wenn noch nicht losgelassen PRESS_LONG_RELEASE wird beim Loslassen aktualisiert, wenn PRESS_LONG aktiv war PRESS_CONT wird das erste Mal zusammen mit PRESS_LONG aktualisiert und dann alle 250 ms bis zum Loslassen Bei HMIP soll sich PRESS_LONG wohl so verhalten wie PRESS_CONT bei HM classic?
  • Script umwandeln für Iobroker

    6
    0 Stimmen
    6 Beiträge
    773 Aufrufe
    OliverIOO
    @happyuser20 ja, die lösung von sborg ist die universellere, die immer funktioniert es gibt noch einen befehl, mit dem man direkt auf dem gleichen rechner dann ebenfalls einen datenpunkt setzen kann
  • [Fritzbox/TR-064] Akt. Gespräch auf bestimmter Leitung

    3
    0 Stimmen
    3 Beiträge
    314 Aufrufe
    TheDukeT
    @jemand sagte in [Fritzbox/TR-064] Akt. Gespräch auf bestimmter Leitung: Ich hab es nun mit einer anderen Home-Automation-Software gelöst, die mir das so anzeigt, dass ich damit arbeiten kann. welche ist das denn ?
  • IOBroker Umzug auf NAS. Alte Scripte laufen nicht

    6
    0 Stimmen
    6 Beiträge
    475 Aufrufe
    F
    @homoran sagte in IOBroker Umzug auf NAS. Alte Scripte laufen nicht: Adlerauge! ist schwierig die relevanten Infos immer zu finden, Übungssache. Gelingt aber leider nicht immer :-)
  • Keinen Wert für pregard vom SHM2.0

    1
    0 Stimmen
    1 Beiträge
    137 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Min /Max Temperatursensor

    Verschoben
    43
    0 Stimmen
    43 Beiträge
    14k Aufrufe
    B
    Liebe Community, Ich würde zu diesem Thema eure hilfe benötigen. Bin noch kompletter Rookie und habe versucht das hier angegebene Skript einzubauen. Datenpunkte sind erstellt, MySQL läuft und dennoch erhalte ich eine Fehlermeldung. Kann mir bitte jemand weiter helfen? var id = 'mqtt.0.Temp_Keller.VL_Heizung.temperature'; var maxid = 'mqtt.0.Temp_Keller.VL_Heizung.Max24'; var minid = 'mqtt.0.Temp_Keller.VL_Heizung.Min24'; var dt = 24;//Zeitraum in Stunden dt = dt*3600*1000; schedule("*/5 * * * *", function(){ SQLAbfrage(id); }); SQLAbfrage(id); // maximum, minimum function minimum(result) { log(JSON.stringify(result.result)); setState(minid, result.result[0].MinVal); } function maximum(result) { log('Fn Max'+ JSON.stringify(result.result)); setState(maxid, result.result[0].MaxVal); } function SQLAbfrage () { log('Name: '+id); sendTo('sql.0', 'query', 'SELECT * FROM datapoints WHERE name = \'' + id + '\'', GetResults); } function GetResults (dpoint) { var end_time = new Date().getTime(); var start_time = new Date().getTime() - dt; log('startzeit: '+start_time); log('endzeit: '+end_time); log('id: '+dpoint.result[0].name); //log(JSON.stringify(dpoint.result)+'//'+start_time); //log(dpoint.result[0].id + '---//---' + dpoint.result[0].name); sendTo('sql.0', 'query', 'SELECT Round(Min(val),1) As MinVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum); sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum); } Ich erhalte folgenden Fehler: 24.1.2021, 16:16:57.511 [info ]: javascript.0 (8747) Start javascript script.js.common.Temp_VL-min_max 24.1.2021, 16:16:57.538 [info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: Name: mqtt.0.Temp_Keller.VL_Heizung.temperature 24.1.2021, 16:16:57.540 [info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: registered 0 subscriptions and 1 schedule 24.1.2021, 16:16:57.554 [info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: startzeit: 1611415017554 24.1.2021, 16:16:57.555 [info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: endzeit: 1611501417554 24.1.2021, 16:16:57.576 [warn ]: javascript.0 (8747) TypeError: Cannot read property '0' of undefined at Object.GetResults [as cb] (script.js.common.Temp_VL-min_max:39:27) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5297:71) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:234:41) at processImmediate (internal/timers.js:461:21) Wenn ich das richtig Interpretiere findet er in der Datenbank des Datenpunkes keine Werte. MySQL ist für den Punkt jedoch aktiviert... [image: 1611501594333-c51a3e7b-bcca-4ca8-be3a-3b7265bd9c4e-image.png] Da ich bei den Skripts nur bedingt Durchblicke und mich in den meisten Fällen mit Copy/Paste und Blockly durch Schummle wäre ich sehr dankbar über eure Hilfe! Herzlichen Dank!!
  • Zigbee Datenpunkt available, Skript für Aktualisierung

    blockly monitoring heating
    1
    2
    0 Stimmen
    1 Beiträge
    197 Aufrufe
    Niemand hat geantwortet
  • Funktion: Prüfen, ob innerhalb eines Zeitfensters

    Verschoben
    11
    1 Stimmen
    11 Beiträge
    5k Aufrufe
    K
    @night2k5 vielen Dank! Das sind halt immer die Kosten einer Forumsumstellung. Bei mir ist auch firefox nicht mehr wirklich nutzbar. Die Güterabwägung bei der Kosten-Nutzenanalyse fällt halt nicht überall gleich aus.
  • Variable "flackert" zw. true und false

    javascript
    8
    1
    0 Stimmen
    8 Beiträge
    721 Aufrufe
    G
    @gender Möchte dieses Thema hier nochmal hochziehen, da ich immer noch keine Lösung gefunden habe. Ich habe inzwischen zumindest den Workarround entdeckt, dass alles wieder funktioniert, wenn ich das "materialdesign - DialogView"-Widget, dass ja angezeigt wird, sobald die Variable auf true geht, lösche und wieder neu anlege (bzw. eine Kopie erzeuge und das "flackernde" Dialog-Widget lösche. Dann hört das oben beschriebene Verhalten (das Flackern der Variablen) auf. Irgendwann (nach einem Tag, oder auch mal nach einer Woche) taucht es dann wieder auf. Vielleicht kannst du @Scrounger dir das irgendwie erklären, welches Zusammenhang es mit dem Dialog-Widget geben könnte, daher habe ich dich hier einmal verlinkt. Danke.
  • Dialog mit Alexa auslösen

    6
    0 Stimmen
    6 Beiträge
    651 Aufrufe
    crunchipC
    @tristan https://forum.iobroker.net/topic/29838/alexa-fragt-und-verarbeitet-die-antwort/4
  • [blockly] Sensorwert nur verwenden, wenn aktuell

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    542 Aufrufe
    Ivan AndricI
    @homoran Vielen Dank, die Idee mit dem Timeout hilft mir weiter.
  • Aktuelle Laufzeit des Waschvorgangs anhand von Wattzahl

    87
    0 Stimmen
    87 Beiträge
    11k Aufrufe
    HomoranH
    @simatec Dann sehe ich es mir nochmal an - schiebe ich schon so lange auf
  • Javaskript: Auf Listeneintrag triggern

    Verschoben
    22
    0 Stimmen
    22 Beiträge
    2k Aufrufe
    hanssH
    @paul53 Entschuldige bitte, ich bin da einem Irrtum aufgesessen. der on({id: Target_Raum, change: "ne"} Trigger bezieht sich tatsächlich nur auf einen Target_Raum, so wie er soll.

429

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge