Skip to content

Skripten / Logik

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

16.4k Themen 211.7k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    M
    @ArnoD Hallo Arno, ich musste heute meinen RaspPi neu starten, weil ich ein Update von bookworm auf trixie gemacht hatte. Nach dem Starten vin iObroker in docker bekomme ich quasi alle fünf Sekunden wieder eine Fehlermeldung. Ich verwende Version 1.6.6 deines Skripts... EDIT: Mein Fehler... Ich hatte die Änderungen zwar in eine neue Skriptversion integriert, diese aber nicht gespeichert sondern "nur" gestartet. Nach dem reboot war die Originalversion (also 1.6.5) wieder da... Jetzt passt wieder alles! 2025-11-27 14:28:49.955 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:28:54.979 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:00.110 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:04.864 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:10.083 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:14.950 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:19.941 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:24.999 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:29.948 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:29:34.860 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:00.021 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:00.285 - warn: javascript.0 (174) script.js.E3DC-Control.Tibber-2_1_0: aktivePhase ist null oder undefined 2025-11-27 14:30:04.904 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:09.947 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:14.987 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:19.881 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:24.909 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:29.965 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. 2025-11-27 14:30:34.864 - error: javascript.0 (174) script.js.E3DC-Control.Charge-Control-1_6_6: Verbrauchswert ist 0. Die Reichweite kann nicht berechnet werden. Ich versuche gleich nochmal ein Reboot, aber ich fürchte, das wird nix bringen... Gruß Michael
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    nik82N
    Hi, hab downgrade gemacht, kommt aber immer noch leider :-)
  • 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
  • [gelöst] View-Wechsel über CCU klappt nur ein Mal

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    771 Aufrufe
    B
    Ihr seid die Besten!! :D Danke!! Off Topic: Geile Software - geiles Projekt!!
  • Wie kann man States übergeben

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    A
    Das ist für mich eine völlig neue Art zu programmieren, da muss ich mich wirklich erst einarbeiten. Bin eher ein "traditioneller" Coder;). Aber ist schon klasse was ihr da so entwickelt. Gesendet von meinem GT-N8000 mit Tapatalk
  • URL mit Tastendruck aufrufen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    P
    Hallo ianmoone, lies mal hier: http://forum.iobroker.net/viewtopic.php?t=1115#p8984 Gruß Pix
  • DWD Warnungen ein/ausblenden

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    andreA
    Also hier gleich mal vorweg meine Widgets: ! [{"tpl":"tplDwdAdapter","data":{"visibility-cond":"==","visibility-val":"false","oid-begin":"dwd.0.warning.begin","oid-end":"dwd.0.warning.end","oid-headline":"dwd.0.warning.headline","oid":"dwd.0.warning.description","oid-severity":"dwd.0.warning.severity","visibility-oid":"javascript.0.vis.wetterwarnung.bestaetigung1","name":"Popup - Wetterwarnung 1","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false},"style":{"left":"235px","top":"635px","color":"","width":"895px","height":"128px","background-color":"","padding":"","margin-top":"","font-size":"medium","z-index":"10","border-radius":"25px","border-style":"none","padding-top":""},"widgetSet":"dwd"},{"tpl":"tplMetroTileToggle","data":{"oid":"javascript.0.vis.wetterwarnung.bestaetigung1","visibility-cond":"==","visibility-val":"false","hover":false,"transform":false,"bg_class_false":"","bg_class_true":"","icon_class_false":"","icon_class_true":"","icon_badge_false":"","icon_badge_true":"","badge_bg_class_false":"","badge_bg_class_true":"","brand_bg_class_false":"","brand_bg_class_true":"","badge_top":"0","badge_left":"0","gestures-offsetX":0,"gestures-offsetY":0,"visibility-oid":"javascript.0.vis.wetterwarnung.bestaetigung1","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"name":"Popup - Bestätigung Wetterwarnung 1"},"style":{"left":"235px","top":"635px","padding":"0px","width":"895px","height":"128px","z-index":"11","opacity":"0"},"widgetSet":"metro"}] ! Zwei Widgets. Das DWD Widget für die Warnung selbst, das Tile Toggle Widget zum manuellen bestätigen der Warnung oben drüber. Mit dem Script wird es jetzt ein bisschen komplizierter. :( Da ich mir bis zu drei Wetterwarnungen anzeigen lasse, ebenso wie eine Meldung "Keine Wetterwarnungen vorhanden", ist in dem Script auch noch eine Variable enthalten, die mir Sagt ob überhaupt eine Wetterwarnung vorhanden ist. Hier mal das Script mit kurzen Kommentaren: ! // Datenpunkte anlegen createState('vis.wetterwarnung.vorhanden', false, {name: 'Liegt mindestens eine Wetterwarnung vor?'}); // Variable für "Ist eine Wetterwarnung vorhanden?" createState('vis.wetterwarnung.bestaetigung1', false, {name: 'Bestätigung der Wetterwarnung1'}); // Variablen für die Bestätigung und damit die Sichtbarkeit der einzelnen Warnungen createState('vis.wetterwarnung.bestaetigung2', false, {name: 'Bestätigung der Wetterwarnung2'}); createState('vis.wetterwarnung.bestaetigung3', false, {name: 'Bestätigung der Wetterwarnung3'}); ! // Datenpunkt-IDs var idVorhanden = "vis.wetterwarnung.vorhanden"; var idBestaetigung1 = "vis.wetterwarnung.bestaetigung1"; var idWarnung1 = "dwd.0.warning.severity"; var idBestaetigung2 = "vis.wetterwarnung.bestaetigung2"; var idWarnung2 = "dwd.0.warning2.severity"; var idBestaetigung3 = "vis.wetterwarnung.bestaetigung3"; var idWarnung3 = "dwd.0.warning3.severity"; ! // Variablendeklaration und Initialisierung bei Scriptstart var stateVorhanden = getState(idVorhanden).val; var stateBestaetigung1 = getState(idBestaetigung1).val; var stateWarnung1 = getState(idWarnung1).val; var stateBestaetigung2 = getState(idBestaetigung2).val; var stateWarnung2 = getState(idWarnung1).val; var stateBestaetigung3 = getState(idBestaetigung3).val; var stateWarnung3 = getState(idWarnung1).val; ! // Funktion zum Ermitteln ob Wetterwarnungen vorliegen function setvorhanden() { if (stateWarnung1 !== 0 || stateWarnung2 !== 0 || stateWarnung3 !== 0) { // Wenn severity bei einer Warnung ungleich 0, dann liegt mindestens eine Warnung vor. setState(idVorhanden, true); } else { setState(idVorhanden, false); } } ! // Funktionsaufruf bei Scriptstart setvorhanden(); ! // Funktionsaufruf bei Änderung der Stati on(idWarnung1, function(dp) { // Wenn severity sich ändert... stateWarnung1 = dp.newState.val; // Neuen severity Wert in den state schreiben... setState(idBestaetigung1, false); // Bestätigung auf "nicht bestätigt setzten" setvorhanden(); // Funktion zum Vorhandensein aufrufen um auch den Status für das Vorhandensein einer Warnung zu aktualisieren }); on(idWarnung2, function(dp) { stateWarnung2 = dp.newState.val; setState(idBestaetigung2, false); setvorhanden(); }); on(idWarnung3, function(dp) { stateWarnung3 = dp.newState.val; setState(idBestaetigung3, false); setvorhanden(); }); ! Wo ich das hier aber gerade so nochmal durchdenke und teste fällt mir auf, dass in meinem Script noch ein Denkfehler ist. So wird aktuell der Status für die Bestätigung auch auf false gesetzt wenn eine Warnung aufgehoben wird (also z.B. severity von 1 auf 0 gesetzt wird). Das fällt bei mir in vis aber nicht auf, da in diesem Fall meine Widgets sowieso durchsichtig sind… :) Werde das nochmal ein bisschen umkonfigurieren müssen... MfG, André
  • Zugriff auf Objektstruktur / Ermitteln ob History aktiviert

    Verschoben
    21
    0 Stimmen
    21 Beiträge
    4k Aufrufe
    ThisoftT
    Danke, Bluefox, für die Erklärung. Jetzt hab ich's :) Aber in der Tat - da muss man erstmal drauf kommen ;)
  • Thermostate HM-CC-RT-DM in Party/Urlaubsmode setzen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    D
    Hi ehome, gegen das Problem mit dem zu schnell senden habe ich folgende Lösung mit setStateDelayed irgendwann mal hier im Forum gefunden. Ich benutze es zum Beispiel um alle Lichter auszuschalten … var idx = 0; /* Index-Zähler */ var interval = 300; /* 300ms Abstand */ $('channel[state.id=*.STATE](functions=Beleuchtung)').each(function (id, i) { var obj = getObject(id); if (getState(id).val){ setStateDelayed(id, false, (idx++) * interval); /* Zähler erhöhen, mit Interval multipliziert */ log('switch off: ' + obj.common.name); } }); Habe noch etwas gefunden wegen dem Party-Mode im https://forum.homegear.eu/viewtopic.php?t=115#p736 ` > Es macht gegenüber den einzelnen Party-Mode-Variablen auf jeden Fall Sinn, PARTY_MODE_SUBMIT zu verwenden, weil dann nur ein einziges Paket an den Stellantrieb gesendet werden muss. An PARTY_MODE_SUBMIT übergibst du einen String mit folgenden kommagetrennten Elementen: Partytemperatur (z. B. 21.5 - nicht mit Komma schreiben) Start-Uhrzeit in Minuten seit 0 Uhr mit einer Auflösung von 30 Minuten (also zum Beispiel 1020 für 17 Uhr) Starttag (z. B. 21) Startmonat (z. B. 5) Letzte zwei Ziffern des Startjahres (z. B. 14 für 2014) End-Uhrzeit in Minuten seit 0 Uhr wieder mit einer Auflösung von 30 Minuten (z. B. 1380 für 23 Uhr) Endtag Endmonat Letzte zwei Ziffern des Endjahres ` Gruß Philippe
  • Push mit WindowsPhone + Toasty

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    580 Aufrufe
    Niemand hat geantwortet
  • Widget CAM/Video Object Dialog

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    801 Aufrufe
    andreA
    Da schließe ich mich mal an… Habe es derzeit anders gelöst. Nutze für meinen Livestream das HTML Widget welches über meinen anderen Wigets liegt und steuere das mit der Sichtbarkeit. Funktioniert soweit ganz gut. Nur im Editor muss ich es halt immer verschieben wenn ich an die Widgets darunter möchte. Hier greift ja logischer Weise die Sichtbarkeit nicht. :) MfG, Andre PS: Das gleiche Verfahren nutze ich auch beim Callmonitor und bei den Wetterwarnungen :) Geschrieben mit Tapatalk
  • [gelöst] Rollo Script / Wie kann ich das Script kürzen?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    935 Aufrufe
    M
    Danke funktioniert super.
  • [gelöst] Überwachung im Garten aktivieren

    Verschoben
    21
    0 Stimmen
    21 Beiträge
    5k Aufrufe
    N
    @mike2712: Hallo, der Haken war gesetzt, aber mit == TRUE funktioniert das.Wenn ich EG Flur schalte, kommt, schaltet OG1 Flur jetzt wollte ich ein Vergleicher mit hinzu nehmen, wie muss den dann der Switch konfiguriert werden wenn z.B Licht Schlafen bei 30% das OG1 Flur Licht geschaltet werden soll ? ` Ich gehe mal davon aus, dass der Vergleich im Switch-Node nicht das tut, was er soll. Es gibt in Javascript unterschiedliche Operatoren für Vergleiche. == z.B. überprüft nur den Wert, nicht aber den Datentyp. Falls möglich wird der Datentyp für den Vergleich implizit konvertiert. Mit === wird auch der Datentyp mit überprüft. Wenn einer der Werte eine Zeichenkette ist wird bei == eigentlich immer der andere auch in eine Zeichenkette konvertiert und dann diese verglichen. Man Gibt im Switch-Node den Datentyp auch an: [image: 632_example.png] Wenn du nun nicht auf Gleichheit sondern z.B. auf größer oder kleiner prüfen möchtest geht das so nicht, da dieser bei Zeichenketten nicht das gewünschte Ergebnis haben wird. Die einfachste Lösung ist, den Haken einfach weg zu machen. Dann kommt der Level-Wert direkt als Zahl und man kann dann mit Zahlen vergleichen. Ansonsten müsste man den String zuerst in einem Function-Node erst mittels Javascript in eine Zahl umwandeln.
  • SetStateDelayed funktioniert nicht

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    Z
    Sorry für die späte Antwort, aber war in Urlaub und habe irgendwie versucht das Problem zu analysieren. War etwas schwierig da es manchmal geht und manchmal nicht. Letzendlich habe ich jetzt herausgefunden das die Ursache für mein Problem in einem request(url) Kommando liegt. Hier sollte ein JSON Befehl an einen PC gesendet werden auf dem XBMC läuft und die Musik stoppen. Wenn der PC an ist. Funktioniert das setStateDelayed. Wenn er aus ist, geht es nicht. Keine Ahnung warum das so ist. Aber seit dem ich die dementsprechenden Zeilen auskommentiert habe, geht es immer. Hier das jetzt momentan gültige Script /* Programm Abwesend Kurz Ablösen des CCU2 Programms Mit Hilfe von Jey Cee, Pix und Paul53 */ // Abfrage der Abwesenheit Kurz: var idAbwesendKurzVariable = 'hm-rega.0.2330'; // System Variable CCU2 Abwesend Kurz var idAnwesenheit = getState('hm-rega.0.950').val; // zur besseren Übersicht Anwesenheit in eine lokale Variable geschrieben var idBalkonTuer = getState("hm-rpc.0.MEQ0816190.1.STATE").val; //Türkontakt Balkontür.STATE var idBewegungsmelder = 'hm-rega.0.18930'; // lange, ausführliche Schreibweise on({ id: idAbwesendKurzVariable, // Datenpunkt der Überwachung change: 'ne' // auf Änderung }, function (obj1) { // den neuen Wert der Änderung checken if (obj1.state.val === true) { // wenn neuer Wert true // aktuelle Abfrage der zweiten Variable - also nur prüfen if (idAnwesenheit === true) { // wenn Anwesenheit auch wahr ist if (idBalkonTuer === false) { // wenn Balkontür ist zu starteAktion(); // Funktion aufrufen } else { starteAktion1(); }} } }); // Ausführung function starteAktion() { // Definiere Variablen // var url ='http://192.168.33.212:8081/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.Stop%22,%22params%22:{%22playerid%22:%200},%22id%22:1}}}'; // Aspire Musik Aus // Aktionen setState("hm-rpc.0.MEQ0484756.1.STATE", false); // Taster Deckenlicht Arbeitszimmer setState("hm-rpc.0.KEQ0025668.1.STATE", false); // Red Bull Kühlschrank Licht.STATE setState("hm-rpc.0.KEQ0196838.1.STATE", false); // Schlafzimmer Deckenlampe.STATE setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); // (Gruppe) Deko Licht An/Aus.PRESS_LONG setState("hm-rpc.1.CUX4000002.10.PRESS_SHORT", true); // (Gruppe) Dimmer (Diele, Essbereich, Küche, Esstisc.PRESS_SHORT setState("hm-rpc.1.CUX4000002.1.PRESS_LONG", true); // (Gruppe) Steckdosenleiste 1+2 An/Aus.PRESS_LONG setState("hm-rpc.0.KEQ0964652.1.STATE", false); // Stehlampe Wohnzimmer Tür.STATE setState("hm-rpc.0.KEQ0196897.1.STATE", false); // Nachttischlampe1 Schlafzimmer.STATE setState("hm-rpc.0.JEQ0740381.1.LEVEL", 0); // Dimmer Bad Einbaustrahler.LEVEL setState("hm-rpc.0.LEQ0187095.1.LEVEL", 0); // Dimmer Bad LED-Stripe Spiegel.LEVEL setState("hm-rpc.0.KEQ0926570.2.STATE", false); // Springbrunnen.STATE setState("hm-rpc.0.KEQ0926589.1.STATE", false); // Lichtschlauch Balkon.STATE setState("hm-rpc.0.KEQ0926589.2.STATE", false); // Teichlicht.STATE setState("hm-rpc.0.MEQ1739011.1.STATE", false); // LED-Unterschrank weiß (16A).STATE setState("hm-rpc.1.CUX4000001.6.PRESS_SHORT", true); // Lenovo-Q180 Standby.PRESS_SHORT setState("hm-rpc.0.LEQ0236668.1.STATE", false); // Duftnebler Bad.STATE setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe):1.STATE setState("hm-rpc.0.NEQ0132493.1.STATE", false); //Taster Balkonlicht.STATE setState("hm-rpc.0.MEQ1711639.2.STATE", false); //Balkon (LED-Stripe):2.STATE*/) setState("hm-rega.0.18930", false); // Bewegungsmelder aktiv ist falsch setState("hm-rega.0.42725", true); // Automatik Lichthelligkeit An/Aus setState("hm-rpc.0.NEQ0018993.2.SUBMIT","0.7,1,108000,20"); // MP3 Funkgong // verzögerte Aktionen einfügen setStateDelayed(idBewegungsmelder, true, 300000, true, function() {log('Bewegungsmelder Aktiv'); // Bewegungsmelder nach 5 Min aktiv setzen }); setStateDelayed("hm-rega.0.56542", false, 2000); // Lichthelligkeit Anzeige Aus Trigger nach 2 Sekunden setStateDelayed("hm-rpc.1.CUX4000001.11.PRESS_SHORT", true, 5000); // PCs Aus/WoL:11.PRESS_SHORT Aspire Standbye nach 5 Sekunden // request = require('request'), // request(url); } function starteAktion1() { // Definiere Variablen // var url ='http://192.168.33.212:8081/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.Stop%22,%22params%22:{%22playerid%22:%200},%22id%22:1}}}'; // Aspire Musik Aus // Aktionen setState("hm-rpc.0.MEQ0484756.1.STATE", false); // Taster Deckenlicht Arbeitszimmer setState("hm-rpc.0.KEQ0025668.1.STATE", false); // Red Bull Kühlschrank Licht.STATE setState("hm-rpc.0.KEQ0196838.1.STATE", false); // Schlafzimmer Deckenlampe.STATE setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); // (Gruppe) Deko Licht An/Aus.PRESS_LONG setState("hm-rpc.1.CUX4000002.10.PRESS_SHORT", true); // (Gruppe) Dimmer (Diele, Essbereich, Küche, Esstisc.PRESS_SHORT setState("hm-rpc.1.CUX4000002.1.PRESS_LONG", true); // (Gruppe) Steckdosenleiste 1+2 An/Aus.PRESS_LONG setState("hm-rpc.0.KEQ0964652.1.STATE", false); // Stehlampe Wohnzimmer Tür.STATE setState("hm-rpc.0.KEQ0196897.1.STATE", false); // Nachttischlampe1 Schlafzimmer.STATE setState("hm-rpc.0.JEQ0740381.1.LEVEL", 0); // Dimmer Bad Einbaustrahler.LEVEL setState("hm-rpc.0.LEQ0187095.1.LEVEL", 0); // Dimmer Bad LED-Stripe Spiegel.LEVEL setState("hm-rpc.0.KEQ0926570.2.STATE", false); // Springbrunnen.STATE setState("hm-rpc.0.KEQ0926589.1.STATE", false); // Lichtschlauch Balkon.STATE setState("hm-rpc.0.KEQ0926589.2.STATE", false); // Teichlicht.STATE setState("hm-rpc.0.MEQ1739011.1.STATE", false); // LED-Unterschrank weiß (16A).STATE setState("hm-rpc.1.CUX4000001.6.PRESS_SHORT", true); // Lenovo-Q180 Standby.PRESS_SHORT setState("hm-rpc.0.LEQ0236668.1.STATE", false); // Duftnebler Bad.STATE setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE setState("hm-rpc.0.NEQ0132493.1.STATE", false); //Taster Balkonlicht.STATE setState("hm-rpc.0.MEQ1711639.2.STATE", false); //Balkon (LED-Stripe):2.STATE*/) setState("hm-rega.0.18930", false); // Bewegungsmelder aktiv ist falsch setState("hm-rega.0.42725", true); // Automatik Lichthelligkeit An/Aus setState("hm-rpc.0.NEQ0018993.2.SUBMIT","0.7,1,108000, 16, 20"); // MP3 Funkgong // verzögerte Aktionen einfügen setStateDelayed(idBewegungsmelder, true, 300000, true, function() {log('Bewegungsmelder Aktiv'); // Bewegungsmelder nach 5 Min aktiv setzen }); setStateDelayed("hm-rega.0.56542", false, 2000); // Lichthelligkeit Anzeige Aus Trigger nach 2 Sekunden setStateDelayed("hm-rpc.1.CUX4000001.11.PRESS_SHORT", true, 5000); // PCs Aus/WoL:11.PRESS_SHORT Aspire Standbye nach 5 Sekunden // request = require('request'), // request(url); } Vielleicht hat ja jemand eine Idee warum sich das so verhält. Dann weiß ich zumindest beim nächsten mal wie ich das umgehen kann. Danke Gruß Zippolighter
  • [gelöst]formatDate(obj.newState.ts - obj.oldState.ts, "ss")

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    953 Aufrufe
    S
    Ok, blöder Denkfehler…Danke euch beiden, so funktionierts.
  • Problem im Skript mit Variablen

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    BluefoxB
    @erh_stgt: Ich hab den Hinweis auf den State erst nicht verstanden - dann aber kapiert was gemeint war. was ich nicht verstehe - warum ist das Ergebnis 4 wenn ich bei getState mit *1 multipliziere - aber 31 wenn ich nicht mit *1 multipliziere. ` "3" + 1 = "31" "3" * 1 = 3 "3" * 1 + 1 = 4 Weil deine Variable String ist. Ganz richtig ist: BewDauerKorr = parseFloat(getState("vis.0.Bewaesserungsdauer").val) + 1;
  • [gelöst] Radio Lautstärke per Widget und Javascript steuern

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    3k Aufrufe
    P
    Schön, dass ich helfen konnte. Die Fehler im Skript kommen leider eben daher, dass ich es nicht ausprobiert habe. Ist praktisch der erste Blitz, der mir durch den Kopf schoss. Natürlich summiert sich die Variable auf, das hast du genau richtig gelöst. Try & Catch sollten nur verhindern, dass gleich die ganze Instanz abschmiert, wenn mit der Adresse oder der Erreichbarkeit des Radios was nicht stimmt. Gruß Pix
  • Eigenschaften eines Widget per Script ändern

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    739 Aufrufe
    Niemand hat geantwortet
  • Funktion scriptübergreifend aufrufen?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    4k Aufrufe
    S
    Danke Hermann, der Trick mit dem "global" war's :) Und vielen Dank an pix, der Fehler ist mir noch gar nicht aufgefallen! :)
  • Timer in Scipt einbauen…

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    754 Aufrufe
    etvE
    …gute Idee!! Danke, das macht's dann einfacher! Liebe Grüße Tom
  • Prüfen ob auf einer IP-Adresse etwas gesendet wird

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    760 Aufrufe
    ThisoftT
    Also pcap gibt's auch für Windows - heißt dann WinPCAP https://www.winpcap.org/install/default.htm
  • [gelöst]Roomba xml oder json Datei auslesen und auswerten

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    coyoteC
    Danke Dir Pix, das sieht sehr gut aus, damit kann ich arbeiten. Genau so hatte ich mir das vorgestellt.
  • Auslösen bei Level aus einer Variablen?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    P
    Jetzt verstehe ich, was du meinst. Und das wird schwer :roll: Alternativ geht es so: Du erzeugst eine zusätzliche Variable, die nach dem Verursacher der Rollladenbewegung gesetzt wird. Ähnlich einer Ereignisliste "Letzte Bewegung erzeugt durch Beschattung (Uhrzeit). Ist-Level: 30%, Tagszeitsoll: 100%" Gruß Pix

865

Online

32.4k

Benutzer

81.5k

Themen

1.3m

Beiträge