Skip to content

Skripten / Logik

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

16.5k Topics 213.3k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    GarganoG
    @stephan61 Hi Stephan, Ich bin auch weg von Tibber zu Octopus. Der Pulse geht nach wie vor. Ich habe aber den lokal eingestellt und lese den über den Adapter lokal aus. Gruß
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    paul53P
    @Duffy sagte: im Arbeitszimmer sitze und das Licht eingeschaltet habe Das Licht soll bei manuellem Einschalten nicht durch das Skript geschaltet werden? Dann muss man "manuelles Einschalten" detektieren und auswerten: [image: 1770196363634-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • [gelöst] javascript Hilfe gesucht - Fehler "State undefined not found"

    Moved
    4
    0 Votes
    4 Posts
    1k Views
    etvE
    Liebe Leute, sodala - Fehler gefunden - es war eine falsche Klammer beim "on"-Befehl - da war eine zuviel ;) hab dann noch die Tipps von pix benutzt und alles ein wenig optimiert (glaub ich zumindest :D ) anbei das Script - ev. eine Idee für Kollegen hier im Forum. Schöne Grüße Tom ! // ! // USV-Warnungen via Pushbullet - V 1.1 - 10.08.2016 ! // ! // Variablen angelgen ! var id_status_usv_office = "nut.0.ups.status"; ! var id_status_usv_wohn_1 = "nut.1.ups.status"; ! var id_charge_usv_office = "nut.0.battery.charge"; ! var id_charge_usv_wohn_1 = "nut.1.battery.charge"; ! var id_r_time_usv_office = "nut.0.battery.runtime"; ! var id_r_time_usv_wohn_1 = "nut.1.battery.runtime"; ! // Reaktion auf Statusänderungen ! // Büro ! // Stromausfall ! on ({id: id_status_usv_office, val: "OB DISCHRG", oldValNe: "OB DISCHRG"}, function() { ! var ladung_s = getState(id_charge_usv_office).val; ! var restzeit_s = ((getState(id_r_time_usv_office).val)/60).toFixed(0); ! send_message("Stromausfall!","angesprungen.",ladung_s,restzeit_s,"Büro"); ! }); ! // tiefer Ladestand ! on ({id: id_r_time_usv_office, valLe: 600}, function() { ! var ladung_s = getState(id_charge_usv_office).val; ! var restzeit_s = ((getState(id_r_time_usv_office).val)/60).toFixed(0); ! send_message("Ladung kritisch!","noch immer vom Netz getrennt und hat einen kritischen Ladezustand erreicht.",ladung_s,restzeit_s,"Büro"); ! }); ! // Strom wieder retour ! on ({id: id_status_usv_office, val: "OL", oldValNe: "OL"}, function() { ! var ladung_s = getState(id_charge_usv_office).val; ! var restzeit_s = ((getState(id_r_time_usv_office).val)/60).toFixed(0); ! send_message("Strom wieder OK!","wieder ans Netz gegangen.",ladung_s,restzeit_s,"Büro"); ! }); ! // Wohnzimmer ! // Stromausfall ! on ({id: id_status_usv_wohn_1, val: "OB DISCHRG", oldValNe: "OB DISCHRG"}, function() { ! var ladung_s = getState(id_charge_usv_wohn_1).val; ! var restzeit_s = ((getState(id_r_time_usv_wohn_1).val)/60).toFixed(0); ! send_message("Stromausfall!","angesprungen.",ladung_s,restzeit_s,"Wohnzimmer"); ! }); ! // tiefer Ladestand ! on ({id: id_r_time_usv_wohn_1, valLe: 600}, function() { ! var ladung_s = getState(id_charge_usv_wohn_1).val; ! var restzeit_s = ((getState(id_r_time_usv_wohn_1).val)/60).toFixed(0); ! send_message("Ladung kritisch!","noch immer vom Netz getrennt und hat einen kritischen Ladezustand erreicht.",ladung_s,restzeit_s,"Wohnzimmer"); ! }); ! // Strom wieder retour ! on ({id: id_status_usv_wohn_1, val: "OL", oldValNe: "OL"}, function() { ! var ladung_s = getState(id_charge_usv_wohn_1).val; ! var restzeit_s = ((getState(id_r_time_usv_wohn_1).val)/60).toFixed(0); ! send_message("Strom wieder OK!","wieder ans Netz gegangen.",ladung_s,restzeit_s,"Wohnzimmer"); ! }); ! // Send Pushbullet Message ! function send_message(betreff_r,text_r,ladung_r,restzeit_r,raum_r){ ! var jetzt = new Date(); ! var Stunde = (jetzt.getHours()).toString(); ! var Minute = (jetzt.getMinutes()).toString(); ! if (Minute <= 9) { ! Minute = "0" + Minute; ! } ! sendTo("pushbullet",{ ! message: "Die USV im " + raum_r + " ist kurz vor " + Stunde + ":" + Minute +" Uhr " + text_r + " Die aktuelle Ladunge beträgt " + ladung_r + "% und die Restlaufzeit beträgt " + restzeit_r + " Minuten.", ! title: betreff_r, ! type: "note", ! receiver: "Thomas.Exel@gmail.com" ! }) ! }
  • LaCrosse Sensoren TX29DTH-IT

    Moved
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Variable Heizzeiten über VIS einstellen

    Moved
    1
    0 Votes
    1 Posts
    761 Views
    No one has replied
  • [Gelöst] Kombination von Festtext und Varibale

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    htreckslerH
    Aber vorsicht… Diese Funktion ist nicht nur mächtig, sondern frisst meiner Meinung nach auch mächtig Performance.
  • Anfängerfrage: Fürs Log wie erhalte ich den Wert einer CCU SV

    Moved
    2
    0 Votes
    2 Posts
    655 Views
    P
    Ist das noch aktuell? Die Zeile var idAnzahlTageMonat = "hm-rega.0.10382"/*eAnzahlTageMonat*/; ````aus der Funktion raus und zB nach ganz oben schreiben. Dann gilt sie für das ganze Skript, inkl. Funktion. Dann in die Zeile statt log('SV ' + idAnzahlTageMonat); log('SV ' + getState(idAnzahlTageMonat).val); Pix
  • Mit Türklingel TV umschalten

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    I
    Hallo homefesch, das script wird in Biobroker ausgeführt. Aktuell ist an dem HDMI (noch) nichts, geplant ist ein raspberry welches das Kamerabild streamt…
  • Abfrage ob eine Variable leer ist

    Moved
    6
    0 Votes
    6 Posts
    3k Views
    paul53P
    @Fitti: TypeError: Cannot read property 'val' of null ` Diese Meldung zeigt, dass getState(id) null liefert, also zu dieser id keine Zustände (states) vorhanden sind. Es ist so die Prüfung möglich, ohne dass es zu der Fehlermeldung kommt: if (getState("javascript.0.meineVariable")) x = getState("javascript.0.meineVariable").val; Stattdessen wird ein Warning-Log erzeugt und die JS-Variable x wird nicht verändert (bleibt so wie sie deklariert wurde).
  • 0 Votes
    4 Posts
    2k Views
    A
    @nobody: Vielen Dank, das hat soweit funktioniert! Hier nochmal die Lösung: [image: bewegungsmelder2.jpg]~~![](</s><URL url=)http://www.a-flow.de/bilder/bewegungsmelder2.jpg" /> ! ```` [ { "id": "d5634222.be50f", "type": "ioBroker in", "z": "71a2a5f6.8bf87c", "name": "Bewegungsmelder-Front.MOTION", "topic": "hm-rpc.0.LEQ0988078.1.MOTION", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "x": 176, "y": 53, "wires": [ [ "60f1edfd.5f52a4" ] ] }, { "id": "60f1edfd.5f52a4", "type": "switch", "z": "71a2a5f6.8bf87c", "name": "Prüft, ob Bewegung stattgefunden hat", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 510, "y": 53, "wires": [ [ "cb9fb890.0116a8" ] ] }, { "id": "7c08c425.e50acc", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Bewegung an der Hausfront registriert!", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 964, "y": 53, "wires": [ [ "36000dca.323892", "d5eaa2a.f318b6" ] ] }, { "id": "36000dca.323892", "type": "pushover", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht senden", "device": "", "title": "Bewegung registriert!", "priority": "0", "sound": "pushover", "x": 1206, "y": 53, "wires": [] }, { "id": "d5eaa2a.f318b6", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1136, "y": 91, "wires": [] }, { "id": "3911cccf.0cfe04", "type": "inject", "z": "71a2a5f6.8bf87c", "name": "Tester", "topic": "", "payload": "true", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "x": 268, "y": 98, "wires": [ [ "60f1edfd.5f52a4" ] ] }, { "id": "5ae98076.35458", "type": "ioBroker in", "z": "71a2a5f6.8bf87c", "name": "Bewegungsmelder-Parkplatz.MOTION", "topic": "hm-rpc.0.LEQ0988097.1.MOTION", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "x": 171, "y": 180, "wires": [ [ "fffa844.051c678" ] ] }, { "id": "fffa844.051c678", "type": "switch", "z": "71a2a5f6.8bf87c", "name": "Prüft, ob Bewegung stattgefunden hat", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 513, "y": 180, "wires": [ [ "8a95704e.108fe" ] ] }, { "id": "ca582c0a.c22dd", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Bewegung auf dem Parkplatz registriert!", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 969, "y": 179, "wires": [ [ "fe49114a.2a857", "ab4a6710.f59e18" ] ] }, { "id": "fe49114a.2a857", "type": "pushover", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht senden", "device": "", "title": "Bewegung registriert!", "priority": "0", "sound": "pushover", "x": 1211, "y": 179, "wires": [] }, { "id": "ab4a6710.f59e18", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1141, "y": 217, "wires": [] }, { "id": "27418c59.926714", "type": "inject", "z": "71a2a5f6.8bf87c", "name": "Tester", "topic": "", "payload": "true", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "x": 271, "y": 225, "wires": [ [ "fffa844.051c678" ] ] }, { "id": "a12bc594.284ae8", "type": "ioBroker in", "z": "71a2a5f6.8bf87c", "name": "Bewegungsmelder-Stichstraße.MOTION", "topic": "hm-rpc.0.MEQ0246964.1.MOTION", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "x": 165, "y": 300, "wires": [ [ "eaffdb09.1b7bd8" ] ] }, { "id": "eaffdb09.1b7bd8", "type": "switch", "z": "71a2a5f6.8bf87c", "name": "Prüft, ob Bewegung stattgefunden hat", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 515, "y": 300, "wires": [ [ "53a78a93.35acb4" ] ] }, { "id": "67ed4203.0f017c", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Bewegung in der Stichstraße registriert!", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 971, "y": 347, "wires": [ [ "73d671e4.ddbbd", "b64d1a62.f86848" ] ] }, { "id": "73d671e4.ddbbd", "type": "pushover", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht senden", "device": "", "title": "Bewegung registriert!", "priority": "0", "sound": "pushover", "x": 1213, "y": 347, "wires": [] }, { "id": "b64d1a62.f86848", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1143, "y": 385, "wires": [] }, { "id": "57ced1e6.cd7ea", "type": "inject", "z": "71a2a5f6.8bf87c", "name": "Tester", "topic": "", "payload": "true", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "x": 274, "y": 345, "wires": [ [ "eaffdb09.1b7bd8" ] ] }, { "id": "53a78a93.35acb4", "type": "time-range-switch", "z": "71a2a5f6.8bf87c", "name": "Zeituhr", "lat": "50.12", "lon": "8.07", "startTime": "sunrise", "endTime": "sunset", "x": 769, "y": 299, "wires": [ [ "607a888a.f1f0a8" ], [ "67ed4203.0f017c" ] ] }, { "id": "f00537f7.379438", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1142, "y": 295, "wires": [] }, { "id": "607a888a.f1f0a8", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Zeitraum nicht aktiv", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 970, "y": 294, "wires": [ [ "f00537f7.379438" ] ] }, { "id": "8a95704e.108fe", "type": "time-range-switch", "z": "71a2a5f6.8bf87c", "name": "Zeituhr", "lat": "50.12", "lon": "8.07", "startTime": "sunrise", "endTime": "sunset", "x": 771, "y": 182, "wires": [ [], [ "ca582c0a.c22dd" ] ] }, { "id": "cb9fb890.0116a8", "type": "time-range-switch", "z": "71a2a5f6.8bf87c", "name": "Zeituhr", "lat": "50.12", "lon": "8.07", "startTime": "sunrise", "endTime": "sunset", "x": 766, "y": 54, "wires": [ [], [ "7c08c425.e50acc" ] ] } ]
  • Ladesteckdose abhängig von aktuellen Solarertrag einschalten

    Moved
    2
    0 Votes
    2 Posts
    725 Views
    P
    Hallo thomassch, habe leider keine Zeit für das ganze Skript, aber ich würde das so angehen: Solarleistung überwachen und nach Hysterese eine Variable "Solarstrom_nutzen" einschalten oder verzögert ausschalten on(solarleistung, function (data) { if (data.state.val > 3kW) setState(Solarstrom_nutzen, true); if (data.state.val < 1kW && getState(Solarstrom_nutzen).val) setStateDelayed(Solarstrom_nutzen, false, 10 * 60 * 1000); // 10minuten } Dann Variable Solarstrom_nutzen überwachen und Schaltsteckdose oder/und andere Geräte/Anzeigen damit schalten on(idSolastrom_nutzen, idSchaltsteckdose); "Hysterese" einfach mal hier im Forum suchen. Paul53 hat dazu Spitzenbeispiele! Die Zeitverzögerung ist sinnvoll, kann auch noch verfeinert werden. Gruß Pix
  • OWL Intuition mit Node-RED einlesen

    Moved
    30
    5
    0 Votes
    30 Posts
    8k Views
    R
    Kaum verzweifelt, den Fehler glaube ich gefunden… Ich musste den js.controller unter "hosts" neu starten. Nun scheint alles wieder zu funktionieren. Gruss Ritschi
  • Hilfe Umstellen CCU2 Programm zum ioBroker Skript

    Moved
    6
    1
    0 Votes
    6 Posts
    2k Views
    Z
    Erstmal danke an Jey Cee, Pix und Paul53. Super mit den Beispielen komme ich schonmal ein ganzes Stück weiter Hatte mit der Erklärung von Jey Cee soweit weiter gemacht das ich bei einer if Variante war, die aber nicht funktioniert hat. Habe dann Pix Vorschlag umgesetzt, muss mir das von Paul53 noch genauer anschauen. Pix, hast natürlich recht, die Fernbedienung ist ein RPC Element (Ich muss auf Anwesend Kurz prüfen, da ich mit der Taste Short eine Toogle Funktion zwischen An und Aus realisiert habe). Allerdings verstehe ich gerade noch nicht den Punkt mit STATE, da ich ja PRESS_SHORT verwenden muss (denke ich zumindest, ansonsten Scheiss mich zusammen. Hihi) Erster Teil Funktioniert und auch die Funktion starteAktion. Zweite Subscription funktioniert nicht (denke weil ich da was falsches eingegeben habe, werde ich noch weiter probieren) ` > /* 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 // lange, ausführliche Schreibweise on({ id: idAbwesendKurzVariable, // Datenpunkt der Überwachung change: 'ne' // auf Änderung }, function (obj) { // den neuen Wert der Änderung checken if (obj.state.val === true) { // wenn neuer Wert true // aktuelle Abfrage der zweiten Variable - also nur prüfen var anwesenheit = getState("hm-rega.0.950"/Anwesenheit/).val; // zur besseren Übersicht in eine lokale Variable geschrieben if (anwesenheit === true) { // wenn Anwesenheit auch wahr ist starteAktion(); // Funktion aufrufen } } }); var idAbwesendKurzTaster = "hm-rpc.0.MEQ0670647.2.PRESS_SHORT" /Funk-Fernbedienung mit D. Abw.KurzAn/Aus:2.PRESS_SHORT/ /Abwesenheit kurz Taster/; // STATE muss mit rein beim Taster, ist wohl eher ein hm-rpc.0.***.STATE Datenpunkt // zweite subscription auf die Fernbedienung in kurzer Schreibweise (change: 'ne' ist Standard, es kann "===true" weggelassen werden und einzeilige Anweisungen nach if brauchen keine geschweiften Klammern) on(idAbwesendKurzTaster, function (obj) { if (obj.state.val && getState(idAbwesendKurzVariable).val) starteAktion(); }); // Ausführung function starteAktion () { setState("hm-rpc.0.MEQ0484756.1.STATE", false); // Taster Deckenlicht Arbeitszimmer setState("hm-rpc.0.NEQ0018993.2.SUBMIT","0.7,1,108000,20"); // weitere Aktionen einfügen } ` nochmals danke Gruß Zippolighter
  • 0 Votes
    3 Posts
    1k Views
    Z
    Super, hat so geklappt Danke Gruß Zippolighter
  • [Erledigt] Hilfe bei einem Script Counter und Kamera schwenken

    Moved
    5
    0 Votes
    5 Posts
    1k Views
    Z
    Super so klappt es. Ganz herzlichen Dank für die Hilfe Pix Gruß Zippolighter
  • $ Selector für rpc.0 und .LOWBAT

    Moved
    3
    0 Votes
    3 Posts
    982 Views
    F
    Das läuft prima. Super und Danke!! ! Hat denn keiner mal Lust mit das zu erklären? Das JS ist ja kein Problem - ich komme nur nicht dahinter, was Bluefox da geschaffen hat. ! Das ist total frustierend! ! Genau dieses Beispiel: Ich habe Stunden verbracht die Doku zu lesen und zu testen. Ich habe hierfür http://forum.iobroker.net/viewtopic.php?f=20&t=2329&p=30842&hilit=Servicemeldungen#p20332 dazu genommen. ! Dann stelle ich fest, dass meine CuxD Geräte Probleme machen - Also einen weiteren Filter. Dann sehe ich diese Beispiele auf der JS Adapter Seite und nichts funktioniert. ! Dann stellt man die Frage hier im Forum und bekommt eine ganz andere Lösung. Oft dann noch der Hinweis, das steht doch da so. :shock: :shock: :shock: ! Ich finde aber wirklich nirgends einen Hinweis, wann wie welcher Selektor welcher ist. Beispiel: bei "enum Name" soll ich von alleine darauf kommen, dass ich hier z.B. nur "function" eintrage. Habe ich sogar geschafft. Was ist aber ein commonAttr? Welche Dinger passen da rein, welche nicht? ! Wann nehme ich channel (so wie im genannten Servicemeldungen Skript) und wann nehme ich nun state (so wie jetzt total überraschend von pix in meinem Beispiel)? ! Ist ja nun nicht so, dass ich im Skripteprogrammieren neu bin. Das mache ich schon etliche Jahre mit Perl, Bash, Bat, SQL usw. ! Achso - warum will ich überhaupt diese Anpassungen… na weil bei mir meistens die Skripte, die es hier so funktionierend von anderen gibt, bei mir nicht laufen. Auch nicht auf einer nagelneuen Installation. Keine Ahnung, ob es an der Masse meiner Aktoren liegt oder nicht. Immer wieder nur rote Zeilen im loggging. ! Ich hatte schon mehrfach Leuten sogar Geld für eine 30-60 Minuten Schulung geboten. Aber nix, hat keiner Interesse. :evil: Muss ich halt blöd bleiben. Danke dennoch nochmal pix.
  • Raffstore script Beispiel

    Moved
    6
    0 Votes
    6 Posts
    2k Views
    M
    @Fitti: Mich würde auch noch etwas mehr Details interessieren aus Eigennutz, was du exakt für ein Stoff und Motor hast. Gerne per PM. Suche nämlich sowas. 8-) Also du hast einen normalen HomeMatic Funk-RolladenAktor drannen, richtig? Und den kannst Du auch von der CCU z. B. steuern? Oder hast Du dazu noch einen Funktaster? Oder hast du den Unterputz RolladenAktor, wo du die Taster direkt anchließt? Sei es drum. Eigentlich müsste es doch so gehen, dass du immer nur auf bestimmte Positinen fährst. Den Rolladenaktor hast du entsprechend mit der Zeit programmiert, richtig? Also z. B. 0% ist der Store komplett offen, das Fenster ist vollkommen frei. Bei 100 % ist der Store vollkommen vor dem Fenster. Jetzt kann man ja diesen Store ankippen, auch wenn der Store z. B. nur das halbe Fenster verdeckt, richtig? Das willst du? Das ist durch eine Logik machbar: Man müsste also den aktuellen Wert erst auslesen und dann ein paar Prozent rauf oder runter rechnen. Also z. B. lese ich erst mal aus, dass der Store bei 43% steht (0.43). Jetzt musst du ausprobieren, wieviel % du benötigst, damit er einmal seine Blick-Position umdreht. Sagen wir 5%. Dann setzt du den Store auf den Wert 0.48 (48%) mit setState(xxx.. Jetzt sehe ich nur noch ein kleines Problem, nämlich ob der Store vorher geöffnet oder geschlossen wurde. Demnach müsstest Du was addieren oder abziehen. Bevor jetzt noch weitere Vorschläge kommen - ist das so ungefähr was bei Dir ist und die rein theoretische Lösung geht in die richtige Richtung? So long, Fitti ` Hallo Fitti genau so sollte es funktonieren einfach irgendwo mitten drinnen kurz mal umsteuern und dann weiter nach unten fahren Gruesse Mario
  • Heizungssteuerung

    Moved
    9
    0 Votes
    9 Posts
    2k Views
    S
    ich denke grad für eine Heizungssteuerung wäre OCC sehr gut geeignet. Leider bring ich die alte Version nicht ans Laufen, und die neue Version verzögert sich - also ist Geduld angesagt.
  • Und oder Verknüpfung

    Moved
    11
    0 Votes
    11 Posts
    7k Views
    HomoranH
    Habt ihr mal im JavaScript Adapter nachgesehen? Da gibt es jetzt die ersten Ansätze von blockly. Dies wird der Ersatz für die scriptGUI Gruß Rainer
  • 0 Votes
    8 Posts
    3k Views
    etvE
    ….nein gleich danach nicht, hat er auch so übernommen. Fehler war, dass die Datei nach dem Kopieren falsche Zugriffsrechte hatte und erst nach dem Ändern dieser ist es dann gegangen und anscheinend sind genau in dieser Zeit die letzten Fehler ausgeworfen worden... Aber nun klappt's perfekt! Danke nochmal für die rasche Hilfe!! Grüße Tom
  • Anderung in Hm rega überwachen

    Moved
    4
    0 Votes
    4 Posts
    900 Views
    paul53P
    Rechne besser die aktuelle Uhrzeit in ms um, dann kann man einfach substrahieren: schedule ("* * * * *",function(){ var act = getState("hm-rega.0.7761"/*Anwesenheit.string*/).ts; // letzte Aktualisierung var change = getState("hm-rega.0.7761"/*Anwesenheit.string*/).lc; var date =new Date(); date = date.getTime(); // ms seit 1.1.1970 setState ("javascript.0.hmpdetect.neu"/*hmpdetect.neu*/,act); log("act " +act + " change " +change + " date "+date ); var diff = (date - act) / 60000; // Differenz in Minuten });
  • Neuling hat probleme bei Script ausführen

    Moved
    7
    0 Votes
    7 Posts
    3k Views
    M
    Hallo Pix mal einen Herzlichen Dank für deine Geduld und Hilfe hab das script ein wenig umbebaut ,leider funktioniert das mit dem Widget noch ned so richtig kommt nur eine kurze bestätigung ,also das script bleibt auf false hab sicher da irgendwo nen fehler drinnen ..vielleicht kannst du noch mal kurz drüber schauen Gruesse Mario66 createState('RolAlleHoch', false); /* besser createState('RolAlleHoch', { type: 'boolean', def: false }); */ on("javascript.0.RolAlleHoch", function (obj) { if (obj.state.val) { // kann so abgekürzt werden. newState = state, "===true" kann man weglassen setStateDelayed("hm-rpc.0.MEQ1309974.1.LEVEL"/*Jalousien/Wohnzimmer TV.LEVEL*/, 100); // Wert 100 setStateDelayed("hm-rpc.0.MEQ1310286.1.LEVEL"/*Jalousien/Wohnzimmer/Strasse.LEVEL*/, 100); // Wert 100 setStateDelayed("hm-rpc.0.NEQ0111918.1.LEVEL"/*Jalousien/Esszimmer.LEVEL*/, 100); // Wert 100 log('Alle Rollläden werden hochgefahren'); // optional - damit du siehst, wann das Skript greift. } }); on({id: /.MEQ1309974.1.LEVEL|.MEQ1310286.1.LEVEL|.NEQ0111918.1.LEVEL/, // Rolläden werden bei Bewegung abgefragt change: 'ne' }, function(obj) { if (getState("hm-rpc.0.MEQ1309974.1.LEVEL").val === 100 && getState("hm-rpc.0.MEQ1310286.1.LEVEL").val === 100 && getState("hm-rpc.0.NEQ0111918.1.LEVEL").val === 100) setState("javascript.0.RolAlleHoch", false); });

706

Online

32.6k

Users

82.2k

Topics

1.3m

Posts