Skip to content

Skripten / Logik

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

16.5k Topics 213.5k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    S
    das Wetter gehört doch zu einem anderen unternehmen, meine ich.... Also ich habe 3 Api Keys zum testen... Wenn ich einen ausgereizt habe, kann ich einfsch den zweiten nutzen und trotz gleicher IP geht's direkt weiter.....
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    haselchenH
    @Fibricus Passt Du den Threadtitel noch bitte an ( auch wenn gelöst). Mit „Denk ich falsch?“ kann kein User was anfangen .
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    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
  • [gelöst]schedule -> Aufruf alle x Stunden

    Moved
    3
    0 Votes
    3 Posts
    2k Views
    S
    Prima…funktioniert....vielen Dank :)
  • [Gelöst] Javascript Variablen löschen

    Moved
    5
    0 Votes
    5 Posts
    1k Views
    M
    HAllo ich möchte nun noch die VAriablen Zeitgesteuert zurücksetzen. Ich hab es mal so versucht, aber klappt nicht. In diesem beispiel wollte ich den Zähler um 11:51 Uhr zurücksetzen //Zähler zurücksetzen schedule("51 11 * * *", function () { setState("fritzbox.0.calls.missedCount",0); setState("fritzbox.0.history.allTableHTML"," "); });
  • Wertberechnung für 16-fach-LED-Statusanzeige in Javascript?

    Moved
    4
    0 Votes
    4 Posts
    2k Views
    P
    Hier die oben in der Grafik sichtbaren Widgets. Leider ist der Code 240 Tausend Zeichen lang und deshalb viermal länger, als das Forum erlaubt. [image: 261_led16widgets.txt] Gruß Pix
  • [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
    762 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
    984 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

641

Online

32.6k

Users

82.3k

Topics

1.3m

Posts