Skip to content

Skripten / Logik

16.6k Topics 214.3k Posts

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

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Topics
    49k Posts
    KusselinK
    o.k. danke für die Info
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    HomoranH
    @Uwe-K beide Datenpunkte sind vom common.type boolean, passt von daher also. Leider sagt das nichts darüber aus, welchen Typ der Wert hat. Daher hat @paul53 mit doppeltem nicht sichergestellt, dass ein falscher Typ number in boolean konvertiert wird.
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • Telegram Steuerung mit Pin Eingabe

    javascript blockly communication
    2
    0 Votes
    2 Posts
    364 Views
    N
    @Rudi-Ment Hallo, du legst dir neues javascript, hängst dich mit (on) Trigger an dein telegram adapter (telegram.0.communicate.request) , wertest den request aus ob dein Befehl gekommen ist, auf den du reagieren willst, wenn ja holst du den pin-Wert ab mit getState und wertest deine logik aus. vg
  • Steuerung Alexa und shelly dimmer2 gemeinsam

    blockly
    9
    1
    0 Votes
    9 Posts
    881 Views
    Daniel NeimsD
    Hallo zusammen, ich bin auch gerade dabei unsere Wohnzimmer Lampen zum dimmen zu bringen. Auch ich habe festgestellt das der Wert Switch nicht vernünftig geschaltet werden kann. Er springt ganz kurz auf den Wert der vorgegeben wird und dann wieder zurück. Dann muss ich 5 mal meinen Taster in der Visu drücken damit er wieder aus geht. Woran kann das liegen, bzw. ist das bekannt? Bei den anderen Shellys die ich im Einsatz habe (Shelly 1) wird mit diesem wert zuverlässig ein und aus geschaltet. Der Taster aus der Shelly App über den zuverlässig geschaltet wird, der muss doch auch irgendwo auflaufen oder? Viele Grüße
  • Array über VIS

    javascript blockly
    6
    1
    0 Votes
    6 Posts
    636 Views
    L
    @Chris_78 Halo Chris .. Hast du eine Lösung gefunden, um von der VIS aus in ein spezifisches Array Element zu schreiben ? Ich habe zwei Elemente in einem Array. Pos1 und Pos2 ... Möchte in der VIS zwei Felder, oder Schieber nutzen die eine Zahl von 0-100 jeweils in die zwei Elemente des Arrays schreiben. Vielleich wäre Deine Lösung, falls Du was gefunden hast, ebenfalls für mich nutzbar .. Danke im Voraus ... Luc
  • Daten Seriell von Paradigma Solaranlage lesen

    javascript communication heating
    53
    0 Votes
    53 Posts
    7k Views
    G
    @AlCalzone Es ist vollbracht es Funktioniert DANKE!!!!! Ein besonderes Dankeschön an @AlCalzone! Hier das Fertige Skript für alle Paradigma Nutzer die sich über folgenden Link einen Adapter gelötet haben. Seite mit Bauanleitung: createState("Paradigma_Kollektor"); createState("Paradigma_Speichertemperatur"); createState("Paradigma_Solarvorlauf"); createState("Paradigma_Aussentemperatur"); createState("Paradigma_Solarrücklauf"); createState("Paradigma_Durchfluss"); createState("Paradigma_PWMPumpe"); createState("Paradigma_Tagesleistung"); createState("Paradigma_Gesamtleistung"); createState("Paradigma_Status"); createState("Paradigma_StatusText"); createState("Paradigma_Fehlercode"); createState("Paradigma_FehlercodeText"); const { Transform } = require("stream"); class PreambleParser extends Transform { /** * @param {Buffer} preamble * @param {number} payloadLength */ constructor(preamble, payloadLength) { super(); this.receiveBuffer = Buffer.allocUnsafe(0); this.preamble = preamble; this.payloadLength = payloadLength; } _transform(chunk, encoding, callback) { this.receiveBuffer = Buffer.concat([this.receiveBuffer, chunk]); while (this.receiveBuffer.length >= this.preamble.length) { // Check if the buffer starts with the preamble const preambleIndex = this.receiveBuffer.indexOf(this.preamble); if (preambleIndex === -1) { // not found, wait for the next chunk break; } // Skip bytes before the preamble this.receiveBuffer = skipBytes(this.receiveBuffer, preambleIndex); // Check if we still have enough data if ( this.receiveBuffer.length >= this.preamble.length + this.payloadLength ) { // Yes, emit it this.push( this.receiveBuffer.slice( this.preamble.length, this.preamble.length + this.payloadLength ) ); // And skip the bytes this.receiveBuffer = skipBytes( this.receiveBuffer, this.preamble.length + this.payloadLength ); } else { // no, wait until we do break; } } callback(); } } /** Skips the first n bytes of a buffer and returns the rest */ function skipBytes(buf, n) { return Buffer.from(buf.slice(n)); } // --- const parser = new PreambleParser( Buffer.from("fc3e2401", "hex"), // Start der Datenpakete 38 // Wie viele Bytes nach dem Start ausgewertet werden ); parser.on("data", (chunk) => { if (Date.now() - lastCheck < 30000) return; lastCheck = Date.now(); //console.log(chunk.toString("hex")); val = chunk.readUInt16LE(0) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Kollektor', val /10, true); val = chunk.readUInt16LE(2) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Speichertemperatur', val /10, true); val = chunk.readUInt16LE(4) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Solarvorlauf', val /10, true); val = chunk.readInt16LE(6) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Aussentemperatur', val /10, true); val = chunk.readUInt16LE(10) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Solarrücklauf', val /10, true); val = chunk.readUInt16LE(12) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Durchfluss', val /10, true); val = chunk.readUInt8(14) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_PWMPumpe', val /10, true); val = chunk.readUInt16LE(29) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Tagesleistung', val , true); val = chunk.readUInt16LE(32) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Gesamtleistung', val , true); val = chunk.readUInt8(17) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Status', val, true); switch(val) { case 0: setState('Paradigma_StatusText', 'Warten auf Sonne', true); break; case 1: setState('Paradigma_StatusText', 'Frostschutz', true); break; case 2: setState('Paradigma_StatusText', 'Anschieben', true); break; case 3: setState('Paradigma_StatusText', 'Einschaltverzögerung', true); break; case 4: setState('Paradigma_StatusText', 'erwärmt Speicher', true); break; case 5: setState('Paradigma_StatusText', 'Speicher voll', true); break; case 6: setState('Paradigma_StatusText', 'Kollektor überhitzt', true); break; case 7: setState('Paradigma_StatusText', 'Hand, Test oder Aus', true); break; case 8: setState('Paradigma_StatusText', 'Messung', true); break; default: setState('Paradigma_StatusText', val, true); } val = chunk.readUInt8(18) // liest eine 2-byte-Zahl ab Position 0 ohne Bytes zu tauschen setState('Paradigma_Fehlercode', val, true); switch(val) { case 0: setState('Paradigma_FehlercodeText', 'OK', true); break; case 1: setState('Paradigma_FehlercodeText', 'Kein Volumenstrom', true); break; case 2: setState('Paradigma_FehlercodeText', 'Luft in der Anlage', true); break; case 4: setState('Paradigma_FehlercodeText', 'Vor- u. Rücklauf vertauscht', true); break; case 5: setState('Paradigma_FehlercodeText', 'Zonenventil defekt', true); break; case 6: setState('Paradigma_FehlercodeText', 'Falsche Uhrzeit', true); break; case 7: setState('Paradigma_FehlercodeText', 'Druckabfall in der Anlage', true); break; case 9: setState('Paradigma_FehlercodeText', 'Falsche Hydraulik', true); break; case 10: setState('Paradigma_FehlercodeText', 'Rohrisolierung', true); break; case 11: setState('Paradigma_FehlercodeText', 'Stromversorgung n. konstant', true); break; case 12: setState('Paradigma_FehlercodeText', 'OLV defekt', true); break; case 13: setState('Paradigma_FehlercodeText', 'Zu wenig Volumenstrom', true); break; case 14: setState('Paradigma_FehlercodeText', 'Speicher unterkühlt durch Frostschutz', true); break; case 20: setState('Paradigma_FehlercodeText', 'Fühler Außentemperatur falsch montiert', true); break; case 21: setState('Paradigma_FehlercodeText', 'Ausfall Kollektorfühler', true); break; case 22: setState('Paradigma_FehlercodeText', 'Ausfall Fühler Solarrücklauf', true); break; case 23: setState('Paradigma_FehlercodeText', 'Störung Kollektrofühler', true); break; case 24: setState('Paradigma_FehlercodeText', 'Frostschutz', true); break; case 25: setState('Paradigma_FehlercodeText', 'Fühler TSA u. TAM vertauscht', true); break; case 26: setState('Paradigma_FehlercodeText', 'Ausfall Fühler Solarvorlauf', true); break; case 27: setState('Paradigma_FehlercodeText', 'Ausfall Fühler Außentemperatur', true); break; case 34: setState('Paradigma_FehlercodeText', 'Überhitzung Speicher 1', true); break; case 35: setState('Paradigma_FehlercodeText', 'Überhitzung Speicher 2', true); break; case 49: setState('Paradigma_FehlercodeText', 'Solarstation unterkühlt', true); break; case 50: setState('Paradigma_FehlercodeText', 'Kollektor eingefroren', true); break; default: setState('Paradigma_FehlercodeText', val, true); } }); let lastCheck = 0; // 0 sorgt dafür, dass gleich zu Beginn einmal ausgelesen wird const SerialPort = require('serialport'); // Port öffnen const port = new SerialPort('/dev/ttyUSB0'); port.pipe(parser); // Port bei Skriptende schließen: onStop(() => { port.close(); });
  • Problem mit Logik

    blockly
    15
    1
    0 Votes
    15 Posts
    378 Views
    J
    @surfer09 Der Grund warum man es vermeidet auf falsch zu prüfen, denn das muss dann auch extra eingetragen werden. Wahr wird immer ohne extra Angabe geptüft. Falsch wird somit durch nicht wahr ersetzt ;) Paul hat das ja so umgesetzt, wie ich es beschrieben hatte.
  • Wo liegt mein Fehler? Blinkskript

    blockly
    15
    1
    0 Votes
    15 Posts
    502 Views
    HomoranH
    @JB_Sullivan sagte in Wo liegt mein Fehler? Blinkskript: Ich dachte Uhrzeit/Datum ist auch ein Wert ist es auch, aber das wird nie true Falls Wert ist die Kurzform von Falls Wert = true
  • Bose Soundtouch steuern

    Moved
    286
    0 Votes
    286 Posts
    79k Views
    Stefan G. 0S
    Gibt es denn eine Möglichkeit mit dem Adapter auf den Eingang HDMI ARC umzuschalten? Über den Key PRODUCT unter "sources" kann ich leider nur auf HDMI 1 umschalten. Leider scheint @SwedishChef auch auf GitHub nicht mehr reinzuschauen.
  • Fehler: Cannot install npm packet: sshpass

    javascript
    2
    0 Votes
    2 Posts
    123 Views
    opossumO
    Hallo, antworte mir mal selber. Ich hatte das Paket sshpass in den Haupteinstellungen der Javascript-Instanz in der Rubrik "Zusätzliche npm-module" eingetragen. Habe das jetzt erst mal entfernt. Mal sehen, welches Script da jetzt meckert.
  • [Gelöst] Skript lässt sich nicht löschen.

    blockly
    13
    1
    0 Votes
    13 Posts
    2k Views
    paul53P
    @technodj23 sagte: Das hat funktioniert! Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].
  • Scene rekursiv

    javascript scenes
    1
    0 Votes
    1 Posts
    181 Views
    No one has replied
  • MQTT Auswertung

    blockly
    1
    0 Votes
    1 Posts
    192 Views
    No one has replied
  • Blockly Script-Steuerung von Shelly 2.5 mit Enocean Tastern

    blockly
    12
    1
    0 Votes
    12 Posts
    2k Views
    G
    @MCU Ich habe jetzt eine noch einfachere Lösung für alle die hier mal drüber stolpern. Da der Shelly ne Strommessung integriert hat,kann man gsnz einfach sagen wenn shelly unter 10W, dann fahren, wenn darüber dann stoppen.
  • mit Variablen im Blockly rechnen?

    blockly
    2
    1
    0 Votes
    2 Posts
    416 Views
    paul53P
    @joachim-knape sagte: geht das im Bockly überhaupt? Ja, aber verwende besser einen Alias.
  • Smarter Adventskranz, Wochennummer in Logiken

    blockly
    11
    1
    0 Votes
    11 Posts
    1k Views
    nik82N
    @paul53 Ah, vielen Dank, da wäre ich jetzt nicht drauf gekommen:-) Danke
  • [gelöst] Blockly funktioniert im gewählten Zeitraum nicht

    blockly
    5
    1
    0 Votes
    5 Posts
    523 Views
    I
    @crunchip Sorry, ich bin Anfänger und mir war nicht klar was ich da falsch hatte... @iKlaus Danke, jetzt hab ich es kapiert - mit einigen Tests zu einem Zeitplan wurde es mir klar :-) @Dr-Bakterius Danke, genau so habe ich es letztendlich aufgebaut. Nochmal Danke an alle! Grüße Markus
  • Cronjob - 1. Advent triggern?

    blockly javascript
    3
    0 Votes
    3 Posts
    233 Views
    nik82N
    @e-s sagte in Cronjob - 1. Advent triggern?: @nik82 Schau mal hier Cool, vielen Dank.
  • Skript teilweise ohne Funktion -

    blockly javascript
    10
    0 Votes
    10 Posts
    921 Views
    A
    @UncleSam bereits von einem dritten geschehen. https://github.com/UncleSamSwiss/ioBroker.loxone/issues/58
  • 0 Votes
    9 Posts
    3k Views
    E
    @Has3nb3inMH Hi, bei mir habe ich folgendes eingetragen: [image: 1606554587582-bildschirmfoto-2020-11-28-um-10.06.20.png]
  • YAHKA Farbumrechnung

    multimedia
    2
    0 Votes
    2 Posts
    313 Views
    R
    @Scheddy Hallo Scheddy, konntest du das Thema mittlerweile lösen? Ich habe die Saturation fix auf 100, so kann ich zumindest die Farbe etwas wechseln, es stimmt aber nicht mit dem Color-Picker zusammen.
  • One Time Passwort prüfen.

    security blockly
    3
    0 Votes
    3 Posts
    424 Views
    M
    @UncleSam Das Passwort generiere ich mit der App "OT Auth", hiermit lässt sich das generirte OTP sehr gut in die Zwischenablage übernehmen und danns päter mit den IOS Kurzbefehlen wieder verwenden. Der Algorithmus ist aber wohl mit dem Google Auth kompatibel.

605

Online

32.8k

Users

82.7k

Topics

1.3m

Posts