Skip to content

Skripten / Logik

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

16.6k Topics 213.8k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    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 Topics
    79k Posts
    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 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
  • [Erledigt] Datum Monat in ausgeschriebener Form

    Moved
    3
    0 Votes
    3 Posts
    459 Views
    Z
    Danke für den Tipp, habe noch nie mit Arrays gearbeitet, aber es funktioniert. Habe es so gelöst //VorMonat als Namen Date.prototype.getFullMonth = function () { return (["Dezember", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November"])[this.getMonth()]; }; var d = new Date() , vorMonatName = d.getFullMonth(); console.log(vorMonatName); Gruß Zippolighter
  • Wand- und Heizungsthermostat - komme nicht weiter

    Moved
    21
    0 Votes
    21 Posts
    3k Views
    A
    lieben Dank für die Mühe, welche du dir für mich gemacht hast! sind fast exakt meine Settings was habe ich jetzt versucht: script abgeschaltet um als Fehlerquelle auszuschließen webUI, Gruppe -> bedienen -> Temp geändert -> alle drei bekommen Temperatur gesetzt webUI, Raum -> Wandthermostat Temp geändert -> die anderen zwei reagieren nicht irgendwas tut hier quer, da aber die Settings bei dir gleich sind bin ich langsam am verzweifeln
  • Anbindung eines Devices mittels Polling

    Moved
    1
    1
    0 Votes
    1 Posts
    240 Views
    No one has replied
  • [Erledigt] Hilfe IF zum Zahlen Vergleich

    Moved
    6
    0 Votes
    6 Posts
    460 Views
    Z
    Nachdem ich dann endlich auf Euch gehört habe, funktioniert es natürlich auch. Danke für die Hilfe
  • 0 Votes
    2 Posts
    965 Views
    BuZZyB
    Im Abschnitt "Listen" wirst du fündig. :) [image: 3092_screenshot_-_31.08.2018___13_05_40.png] Gruß
  • Problem mit CRONJOB

    Moved
    3
    3
    0 Votes
    3 Posts
    382 Views
    M
    Hallo, vielen dank. Ich habe herausgefunden was diesen Port belegt. Ich habe eine Instanz vom Homematic Manager laufen. Ich habe den jetzt mal gestoppt und die Skripte für die Zeitschaltuhren neu gestartet. Mal schauen, ob sich die Skripte jetzt wieder aufhängen. Grüße Markus
  • Skript Fehler Unterstüzung

    Moved
    1
    0 Votes
    1 Posts
    184 Views
    No one has replied
  • Boolean Verknüpfung

    Moved
    20
    1
    0 Votes
    20 Posts
    3k Views
    R
    Nicht schön, aber auf die Schnelle fällt mir auch nur eine eigene Funktion ein. //splitte string in int-Array let aI = msg.payload.match(/.{1,2}(?=(.{2})+(?!.))|.{1,2}$/g) //split in 2stellige strings .map(x => parseInt(x,16)); //konvertiere HEX strings nach Integer //xor vom inputArray let mustXor = aI[aI.length-1]; //xor aus inputArry entfernen aI.splice(-1, 1); //xor aus inputaary bilden let ifXor = aI.reduce((v, vnext) => v ^ vnext); let fix2 = (x) => ('0'+x).slice(-2); // einstelligen String mit führender Null if (ifXor == mustXor) { //no error node.status({fill:"green",shape:"dot",text:'no error'}) node.send([{payload: fix2(aI[0].toString(16))}, {payload: fix2(aI[1].toString(16))}, {payload: fix2(aI[2].toString(16))}, {payload: fix2(aI[3].toString(16))}, {payload: fix2(aI[4].toString(16))}, {payload: fix2(aI[5].toString(16))}, {payload: fix2(aI[6].toString(16))}, {payload: fix2(mustXor.toString(16))}]); } else { //xor error node.status({fill:"red",shape:"dot",text:'XOR error'}) node.send([null,null,null,null,null,null,null,{payload: 'XOR error'}]); } Jetzt wird an allen Ausgängen ein 2stelliger String ausgegeben. Edit: geht auch etwas kürzer s.o. und diesmal ohne Copy/Paste Fehler –hoffe ich ;-)
  • Script - mihome vacuum - reset all comsumables - hilfe benötigt

    Moved
    2
    4
    0 Votes
    2 Posts
    228 Views
    L
    @ltsalvatore: Hallo zusammen, Ich habe mir ein Script zusammengestellt, welches dafür gedacht ist, in meinem VIS beim drücken des entsprechenden buttons alle consumables des mihome vaccum auf einmal zu resetten. damit das ganze über ein button gesteuert werden kann, habe ich extra ein objekt im iobroker angelegt. vielleicht geht das ganze ja auch mit nem passenden widget, habe ich aber nicht gefunden. wie dem auch sein, das hat mit dem script soweit auch funktioniert gehabt. jedoch habe ich gestern per zufall festgestellt, dass ich dieses script ohne trigger erstellt habe, und somit das script dauerhaft ausgeführt wurde. entsprechend sind die consumable werte permanent auf 100% gesetzt. mit dem davor gesetzten trigger ist es jetzt so, dass die werte einfach nicht auf 100% zurückgesetzt werden und ich einfach nicht verstehe, woran das liegen könnte… habe alles schon 1000 mal durchgeschaut. auf dem bild seht ihr, welche werte gemeint sind: Screenshot_2018.08.17_15_34_34_001.jpg hier ist das script dazu: Screenshot_2018.08.17_15_34_07_001.jpg hier das extra dafür angelegte objekt Screenshot_2018.08.17_15_31_00_001.jpg und im vis sieht das ganze dann so aus: Screenshot_2018.08.17_15_57_10_001.jpg ich hoffe ihr könnt mir da weiter helfen. danke und gruß ` hallo zusammen.. ich habe mich heute nochmal dem thema gewidmet und per zufall festgestellt, dass es scheinbar einen unterschied macht, ob man im widget (jqui Radiobuttons ValueList) den wert auf "true" oder "1" setzt. steuere ich objekte, welche bereits existieren/vom adapter erstellt wurden an, dann muss der wert "true" lauten. bei selbst erstellten objekten über den javascript adapter, muss man scheinbar anstatt "true" den wert "1" im widget setzen. nachdem ich im widget den wert auf "1" gesetzt hatte, funktioniert mein button im vis einwandfrei und es werden alle vier status über den extra dafür erstellten script resettet.
  • [gelöst]Probleme mit Skript

    Moved
    14
    1
    0 Votes
    14 Posts
    990 Views
    paul53P
    @woehrer: Es funktioniert so wie es soll. ` Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].
  • Mediatasten mit rpi-keyboard node

    Moved
    2
    0 Votes
    2 Posts
    682 Views
    T
    so hab es jetzt selbst hin bekommen mit node-red-contrib-usbhid. Hier für alle die es interessiert noch den Flow [ { "id": "b64f12a4.82f57", "type": "ioBroker out", "z": "b9b83901.0efa78", "name": "Tasten druck", "topic": "Tasten_druck", "ack": "true", "autoCreate": "true", "x": 1210, "y": 600, "wires": [] }, { "id": "65258308.49279c", "type": "rpi-keyboard", "z": "b9b83901.0efa78", "name": "", "x": 790, "y": 580, "wires": [ [ "c8a0770f.28c178" ] ] }, { "id": "5ab4c722.7dbe88", "type": "HIDdevice", "z": "b9b83901.0efa78", "connection": "4fbd6b73.15efb4", "name": "Fernbedienung", "x": 240, "y": 640, "wires": [ [ "a92ab222.942b5" ], [] ] }, { "id": "a92ab222.942b5", "type": "function", "z": "b9b83901.0efa78", "name": "Select ip Part 1", "func": "msg.payload = msg.payload[1];\nreturn msg;", "outputs": 1, "noerr": 0, "x": 420, "y": 640, "wires": [ [ "73cff708.3d01a8" ] ] }, { "id": "73cff708.3d01a8", "type": "switch", "z": "b9b83901.0efa78", "name": "Alles über 0", "property": "payload", "propertyType": "msg", "rules": [ { "t": "gt", "v": "0", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 590, "y": 640, "wires": [ [ "3ace679a.a3a588" ] ] }, { "id": "3ace679a.a3a588", "type": "function", "z": "b9b83901.0efa78", "name": " + 1000", "func": "msg.payload = (msg.payload + 1000);\nreturn msg;", "outputs": 1, "noerr": 0, "x": 750, "y": 640, "wires": [ [ "c8a0770f.28c178" ] ] }, { "id": "c8a0770f.28c178", "type": "deduplicate", "z": "b9b83901.0efa78", "name": "nur einmal", "keyproperty": "", "expiry": "1", "x": 990, "y": 600, "wires": [ [ "b64f12a4.82f57" ], [] ] }, { "id": "4fbd6b73.15efb4", "type": "HIDConfig", "z": "", "vid": "8985", "pid": "16", "name": "Mx3" } ] [image: 2538_flow.jpg]
  • 0 Votes
    10 Posts
    1k Views
    T
    So ich hab noch mal geschaut. Es sollten diese sein http://www.gevax.com/urun.php?id=686&re … -250-220AC
  • Alarmanlage + Sprachausgabe mit Alexa2-Adapter führt zu Freeze

    Moved
    5
    1
    0 Votes
    5 Posts
    829 Views
    L
    Ich habe gerade mal ein ähnliches Blockly kreiert - Anruferansage. Meins läuft so weit - da absoluter Anfänger, arbeite ich mich immer langsam hoch in Blockly, bzw. baue auch Debug Bausteine fürs Log zum Testen mit ein… gibt Einem dann im Falle des Falles auch eine Übersicht wo es vielleicht hängt... [image: 2257_alexa_anruferansage.jpg] javascript.0 2018-08-29 22:52:34.156 info script.js.common.Alexa_Anruferansage: Stop zyklische Anruferansage javascript.0 2018-08-29 22:52:34.156 info script.js.common.Alexa_Anruferansage: Alexa "Ansage: hat aufgelegt, oder spricht nun auf Band" javascript.0 2018-08-29 22:52:34.155 info script.js.common.Alexa_Anruferansage: Anruferansage Alexa javascript.0 2018-08-29 22:52:31.152 info script.js.common.Alexa_Anruferansage: Anruferansage Alexa javascript.0 2018-08-29 22:52:28.151 info script.js.common.Alexa_Anruferansage: Anruferansage Alexa javascript.0 2018-08-29 22:52:25.149 info script.js.common.Alexa_Anruferansage: Anruferansage Alexa javascript.0 2018-08-29 22:52:22.147 info script.js.common.Alexa_Anruferansage: Anruferansage Alexa javascript.0 2018-08-29 22:52:19.146 info script.js.common.Alexa_Anruferansage: Steuerung Lautstärke auf 100% javascript.0 2018-08-29 22:52:19.145 info script.js.common.Alexa_Anruferansage: Anruf Eingangsuhrzeit
  • Lampe (z.B. Hue) über Zeitraum dimmen - Blockly

    Moved
    17
    1
    0 Votes
    17 Posts
    10k Views
    A
    Super. Danke! Ich habe meinen o.g. Command getestet und als Reaktion auf einen trigger an die Lampe gesendet. Sie hat aber nicht reagiert. Muss ich zusätzlich noch den "put" Befehl geben? Wie? Gesendet von iPhone mit Tapatalk
  • [Gelöst] obj.newState.ts -> suche den "generellen" TimeStamp

    Moved
    2
    0 Votes
    2 Posts
    251 Views
    M
    Ich war blind, hatte doch schon die Lösung. Nur im Source nen Tippfehler.
  • Blocky neuen Datenpunkt setzen

    Moved
    3
    1
    0 Votes
    3 Posts
    471 Views
    A
    8-) :idea:
  • Gelöst Scenen Mit Node red Steuern

    Moved
    2
    0 Votes
    2 Posts
    564 Views
    E
    Es klappt wieder warum keine Ahnung
  • WENN UND Bedingung innerhalb eines Zeitfensters in Blockly

    Moved
    5
    1
    0 Votes
    5 Posts
    2k Views
    J
    So dann schreibe ich mal wieder mein Hinweis, dass es absolut unnötig ist bei einer falls Bedingung auf noch mal auf wahr zu prüfen, weil das die Grundfunktion der falls Bedingung ist und somit überflüssig. Steht aber auch genau so im Popup, welches aufgeht, wenn man mit der Maus über den Block fährt ;) Dann zur Übersichtlichkeit des Blockly. Wenn man bei den Blöcken auf externe Eingänge umschaltet, dann wirds deutlich übersichtlicher und zu guter letzt mal mein Blockly zu dem Thema mit dem einfacheren Ansatz, welches auch echt gut funktioniert. [image: 5076_2018_08_28_11_38_31_window.png] Die "…kommt heim" DPs sind meine "Merker" wenn sich jemand ins WLAN einloggt. Da das in der Regel etwas früher passiert, als die Tür Kontakte auslösen und ich vermeiden möchte, dass wenn jemand zu Hause ist ständig die Begrüßung abläuft werden die auch brav wieder zurückgesetzt. Die Timeout sind dafür da, dass es keine Überschneidungen gibt und der Text auch erst gesprochen wird, wenn die entsprechende Person in Reichweite des Echo ist.
  • New Line \n

    Moved
    4
    0 Votes
    4 Posts
    592 Views
    AlCalzoneA
    Markierst du den ersten Beitrag bitte noch als [gelöst]?
  • Gibt es ein "For each"? [gelöst]

    Moved
    10
    0 Votes
    10 Posts
    1k Views
    paul53P
    @mlapp: Genau das wars ` Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

337

Online

32.7k

Users

82.4k

Topics

1.3m

Posts