Skip to content

Skripten / Logik

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

16.6k Themen 213.7k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    nik82N
    Habe gerade auf die neue Version umgestellt, jetzt warten wir mal bis März und schauen weiter. Aber das Script ist auf jedenfall echt Tip Top!
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    Murphy 0M
    Melde dich, helfe gerne. Ich habe bei sowas auch erst mal enorme Probleme den Überblick über ein fremdes Projekt zu bekommen
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    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

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    458 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
    3k 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
    240 Aufrufe
    Niemand hat geantwortet
  • [Erledigt] Hilfe IF zum Zahlen Vergleich

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    460 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
    965 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
    382 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
    184 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
    228 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
    990 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
    680 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
    829 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
    249 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
    463 Aufrufe
    A
    8-) :idea:
  • Gelöst Scenen Mit Node red Steuern

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    564 Aufrufe
    E
    Es klappt wieder warum keine Ahnung
  • WENN UND Bedingung innerhalb eines Zeitfensters in Blockly

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

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    592 Aufrufe
    AlCalzoneA
    Markierst du den ersten Beitrag bitte noch als [gelöst]?
  • Gibt es ein "For each"? [gelöst]

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    paul53P
    @mlapp: Genau das wars ` Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

598

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge