Skip to content

Skripten / Logik

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

16.4k Themen 211.6k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    S
    Habe mal dein issue im GutHub erstellt
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    paul53P
    @Olli_M sagte: bewege, fängt es halt wieder von vorne an.... Die Klammer "falls nicht Verzögerung timeout" muss über alle Blöcke gehen. @Olli_M sagte in Bad Musik Bewegung: 6000 ms am Ende aber warum x dann der Dauer? 60000 * Minuten = ms. EDIT: Dein Blockly korrigiert: [image: 1763548021170-blockly_temp.jpg]
  • 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
  • Aktor per URL schalten - ioBroker

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    751 Aufrufe
    M
    Hallo! ich habe da gerade in einem Projekt die WebIO Anbindung gebaut. Die aktuelle Version kann auch alle Eingänge nebst Counter. Schalten via Datenpunkt, IOB Standard. Vielleicht interessant für dich: viewtopic.php?f=35&t=16580&p=173977&hilit=webio#p173977 Bei Bedarf aktualisiere ich das Script, im Moment kann das im Thread nur Ausgänge. Malc
  • Button Press CUXD Device(CCU2)

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    761 Aufrufe
    J
    Das Gerät (28) kann man nicht als Schalter erstellen. Dieses Gerät ist als "exec", "timer", "multi-dim-exec" und "ping" möglich. Wenn das Gerät als "exec" konfiguriert wurde ist es im Prinzip ein 16-fach-Taster. Der Datenpunkt "State" ist zwar vorhanden, aber kann nicht wie von Dir gewünscht einfach über die WebUI oder App gesetzt werden. Dazu wäre dann wiederum ein Skriptbefehl nötig. Was Du benötigst ist ein Schalter, also ein Gerät das den Status ein/aus annehmen kann und auch so bedient wird. Dazu benötigst Du das Gerät (40) konfiguriert als Schalter (NICHT als Taster). Hiermit kann dann über die WebUI/App der Status ein/aus gesetzt werden. Abgefragt werden muss dann aber der Datenpunkt "state" true/ein und false/aus. Du lagst also von Anfang an richtig mit der Auswahl des Gerätes und hast nur den falschen Datenpunkt abgefragt. Hättest Du gleich genau beschrieben worum es geht und was genau für ein Gerät/Zustand benötigt wird wäre bereits in der ersten Antwort die Lösung enthalten gewesen. Hier mal der Code "wenn Schalter ein, dann Meldung": on({id: "hm-rpc.2.CUX4000002.1.STATE"/*HM-RC-19 CUX4000002:1.STATE*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('Der Schalter ist eingeschaltet'); });
  • Sql.0 abfrage

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    577 Aufrufe
    apollon77A
    Nimm ein Array oder Objekt und füge alle antworten rein. Also mit nem Array ein werte.push(result.result); Und werte ist eine globale Variable. Und am besten hierhin ein check wenn die Länge des werte Arrays so lang wie die Anzahl der datenpunkte ist dann gleichbedeutend „Nachbearbeitung“ machen Gesendet vom Handy …
  • [Erledigt] Datum Monat in ausgeschriebener Form

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    435 Aufrufe
    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

    Verschoben
    21
    0 Stimmen
    21 Beiträge
    2k Aufrufe
    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

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    228 Aufrufe
    Niemand hat geantwortet
  • [Erledigt] Hilfe IF zum Zahlen Vergleich

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    425 Aufrufe
    Z
    Nachdem ich dann endlich auf Euch gehört habe, funktioniert es natürlich auch. Danke für die Hilfe
  • 0 Stimmen
    2 Beiträge
    924 Aufrufe
    BuZZyB
    Im Abschnitt "Listen" wirst du fündig. :) [image: 3092_screenshot_-_31.08.2018___13_05_40.png] Gruß
  • Problem mit CRONJOB

    Verschoben
    3
    3
    0 Stimmen
    3 Beiträge
    372 Aufrufe
    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

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    174 Aufrufe
    Niemand hat geantwortet
  • Boolean Verknüpfung

    Verschoben
    20
    1
    0 Stimmen
    20 Beiträge
    3k Aufrufe
    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

    Verschoben
    2
    4
    0 Stimmen
    2 Beiträge
    227 Aufrufe
    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

    Verschoben
    14
    1
    0 Stimmen
    14 Beiträge
    846 Aufrufe
    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

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    655 Aufrufe
    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]
  • Vorlage zur Steuerung einer Bewässerungsanlage und Abfrage Wetterdienst (Blockly)

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    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

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    789 Aufrufe
    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

    Verschoben
    17
    1
    0 Stimmen
    17 Beiträge
    10k Aufrufe
    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

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    227 Aufrufe
    M
    Ich war blind, hatte doch schon die Lösung. Nur im Source nen Tippfehler.
  • Blocky neuen Datenpunkt setzen

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    417 Aufrufe
    A
    8-) :idea:
  • Gelöst Scenen Mit Node red Steuern

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    554 Aufrufe
    E
    Es klappt wieder warum keine Ahnung

792

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge