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
    B
    @Murphy-0 Vielen Dank, ich werde auf jeden Fall auf dein Angebot zurück kommen, kann allerdings sein, dass ich erst ab Juli dazu komme, jetzt ist erst Mal Reiseplanung angesagt.
  • 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
  • 0 Stimmen
    6 Beiträge
    1k Aufrufe
    DutchmanD
    @paul53: Lass mal path als Leerstring und dann schau mal unter iobroker-data/files/javascript Danke, da stand die Datei dan auch also will er wohl nicht ausserhalb dieses Verzeichnisses arbeiten ? Ja, mich auch. Ändere mal das Log (so hatte ich es getestet): log(id + ': ' + getState(id).val); ```` ` mein blöder Fehler, + anstatt & … jetzt klappts danke dir !!!
  • [gelöst] Fehlermeldung aus blockly Script - wrong type: string

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    595 Aufrufe
    M
    Erledigt.
  • Node Red Funktion mit mehr Outputs

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    R
    Du hast sicher irgend ein Input-node worüber die Daten eingehen. Häng da doch mal ein debug-node dran, das die komplette msg zeigt und dann mach einen screenshot vom debug-panel. Falls das > {deviceId:2,val:[1000,1000,1000,1000,1000]} der Bufferinhalt ist, würde ich ein Funktionsnode nachschalten. Das muss dann: den Buffer in ein JSON Object wandeln let json = JSON.stringify(msg.payload); Und dann das array an die Ausgänge schicken: node.send(json.val); Natürlich musst du vorher deinem Funktionsnode 5 Ausgänge spendieren. Denke aber daran, dass die Nachrichten dennoch NACHEINANDER an die 5 Ausgänge geschickt werden.
  • [gelöst] Wie in Blockly mit mehreren "oder" arbeiten?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    454 Aufrufe
    S
    Ach klasse, dankeschön ! Probiere ich gleich mal aus ;) Scheint super zu klappen, sieht zwar mächtig gewältig aus, aber funktioniert :)
  • Script für shutdown nach Zeit x bei Stromausfall mit Rücksetzung bei Netzwiderkehr

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    smartboartS
    Ok nicht möglich…Schade... Die Idee war nach einem Stromausfall mit shutdown die dinger bei Netzwiderkehr wieder hochzufahren zu können . Da die Boards ja Batterie gepuffert sind, würden bei Restkapazität der Batterien die Geräte ja nicht wieder neu starten bzw. erst wenn die Batterien leer wären... Ist das Netz vorher wieder da, bleiben die Maschinen ja aus. Deshalb wäre ein Möglichkeit schön, z.B Aus dem Urlaub heraus die Dinger wieder starten zu können. WOL ist leider nicht di Lösung... Müsste wohl eine kleine Schaltung bauen um das zu relaisieren. Oder ein geflashter Schaltaktor mit Tasmota Firmware in die Versorgungsleitung..Dieser könnte über die eigene Web Url ferngesteuert werden... Da muss ich mir noch was überlegen... Schade das es mit WOL nicht geht... WOL relies on having a BIOS that is listening for the magic packet on the network interface. Raspberry Pis do not have a BIOS that can do that, so WOL is impossible. You can use a Pi to generate magic packets to wake other machines. http://search.cpan.org/~clintdw/Net-Wak ... et/Wake.pm
  • Pushnachrichten formatieren?

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    B
    Wenn html aktiviert ist, muss eingefügt werden. Ich mache das auch nur direkt über JS, da könntest du aber das Blockly umwandeln: tmessage = tmessage + " "; // Zeilenumbruch tmessage = tmessage + "Wohnzimmer : " + "<tab to="t1">" + getState("hm-rpc.0.xxxxx.TEMPERATURE"/*Wohnzimmer Wetter.TEMPERATURE*/).val + " (" + getState("hm-rpc.0.xxxxxx.SETPOINT").val + ") °C"; tmessage = tmessage + " "; // Zeilenumbruch tmessage = tmessage + "xxxxx" + '_______. ' + ": " + getState("hm-rpc.0.xxxxx.TEMPERATURE"/*xxxx Wetter.TEMPERATURE*/).val + " (" + getState("hm-rpc.0.xxxxx.SETPOINT").val + ") °C"; sendTo("pushover.1", { // 0 Mitteilungen 1 Warnungen 2 Alarm message: tmessage, // mandatory - your text message title: ttitle, // optional - your message's title, otherwise your app's name is used device: "XperiaZ5", priority: -1, html: 1, });</tab> Grüße Brati
  • Kein Log in Console zu sehen

    Verschoben
    14
    1
    0 Stimmen
    14 Beiträge
    4k Aufrufe
    StuebiS
    @Stabilostick: Macht doch bitte, wenn sich zeigt, dass andere auch das gleiche Problem haben, dazu ein Issue auf Github auf. Geht ganz einfach. Nachdem ich auch ab und zu betroffen bin, habe ich es dieses mal gemacht: https://github.com/ioBroker/ioBroker.ja … issues/159 Nachstes Mals seit ihr dran ... [emoji1] ` Ich habe das gleiche Problem. Eine Weile funktioniert die Log Ausgabe und dann wird nichts mehr angezeigt. Ich öffne dann auch ein zweites mit dem Log Tab. Gesendet von iPhone mit Tapatalk
  • Neuling braucht Hilfe bei Wake_on_Lan

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    StabilostickS
    Wechsele doch vor der Installation in den iobroker-Ordner.
  • Blockly Anwesenheit

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    997 Aufrufe
    U
    Keiner eine Idee dazu :-( ?
  • [gelöst]Verständnisfrage setState('Kitchen.Light.Lamp', false, false, function () {

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    567 Aufrufe
    smartboartS
    Ok, jetzt hab ich es…Dann ist ja alles paletti und kann bleiben wie es ist...... Vielen Dank euch Beiden für eure Ausführungen...
  • Meine Aquarium Schaltung

    Verschoben
    27
    1
    0 Stimmen
    27 Beiträge
    3k Aufrufe
    Dr. BakteriusD
    Nein! Der Datenpunkt wird vom MQTT-Adapter angelegt sobald der ESP das erste Mal Daten übermittelt. Auch der Code ist dann schon vorhanden und muss nur an manchen Stellen ein wenig angepasst werden. Bei mir heißt der ESP "Aquarium", das Device hat den Namen "Wassertemperatur" und der Wert (Value) wurde von mir "Temperature" genannt. Daher ist der Datenpunkt bei mir unter 'mqtt.0/Aquarium/Wassertemperatur/Temperature' zu finden.
  • [Gelöst] Feuchtigkeitssensor - Frage zur Meldung per Telegram

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    E
    @quorle: Also ich habe den ersten Teil einmal nachgebaut bei mir, aber leider wird immer wieder die Meldung gesendet, wenn der Wert bei 70 stehen bleibt. Kann man das entschärfen? Unbenannt.png ` Falls du 70% als deinen ultimativen Wert zur Meldung definieren willst würde ich etwas Karenz einbauen. Also voriger Wert z.B. kleiner 65%. Bei mir habe ich auch etwa 3-5% Unterschied genommen weil es häufig vorgekommen ist, dass sich das genau dazwischen bewegt und ich damit ständig Benachrichtigungen bekommen habe. So klappt es eigentlich ganz gut. Meintest du das oder hab ich dich falsch verstanden?
  • Arduino MQTT Werte an ioBroker Senden

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    ThisoftT
    @pzudematrick: Also habe deinen Code getestet. Es kommt nun keine Fehlermeldung, und ich kann es somit hochladen. Jedoch wird im ioBroker nur eine Zahl zwischen 1 und 2 angezeigt, welche freudig hin und her springt? Irgendwie Kurios? ` Nee - gar nicht kurios, ganz im Gegenteil zeigt das dass der Arduino und die MQTT-Kommunikation läuft. Die Frage ist jetzt: Was hast du denn für einen Bodenfeuchtesensor und welche Ausgangsspannungswerte oder was auch immer liefert der denn??? ESPEasy kannst du natürlich auch versuchen, das lädst du als Firmware auf den NodeMCU und die Kommunikation mit ioBroker läuft dann genauso über MQTT. Ich persönlich bin damit allerdings nicht wirklich "warm geworden", ist aber nur ne persönliche Marotte. Die Software an sich ist nicht schlecht und kann viel…
  • [Gelöst] Per script nummer und type eines wertes seperieren

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    356 Aufrufe
    DutchmanD
    danke euch mit das hat mir sehr weitergeholfen !
  • Anrufname von Fritzbox auf KNX Bus senden

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    311 Aufrufe
    Niemand hat geantwortet
  • [Gelöst]Zeit stellen für Rolladen im Vis

    Verschoben
    23
    0 Stimmen
    23 Beiträge
    4k Aufrufe
    B
    UPS, schaue ich mir morgen an, was steht denn im log? Grüße Brati
  • Rolladen Script für Javascript Adapter

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    3k Aufrufe
    smartboartS
    so hier nun das fertige Script mit allen Schnick Schnack und den verschiedensten Fahrprogrammen und Bedingungen.. Etwas aufgeräumt und optimiert.. //Rolladen Script //States für Manuell und Automatik Vorwahl in Vis createState('javascript.0.Rolladen.Gesamt.EGAutomatik', {def: 'false', type: 'boolean', name: 'Rolladen Gesamt EG Automatik aktivieren'}); createState('javascript.0.Rolladen.Couch.Automatik', {def: 'false', type: 'boolean', name: 'Rolladen Couch Automatik aktivieren'}); const id1 = 'wiffi-wz.0.root.192_168_xx_XX.w_windstaerke'; //Sturm const id2 = 'hm-rpc.0.PEQ03xxxxxx.1.BRIGHTNESS'; //Helligkeit const id3 = 'wiffi-wz.0.root.192_168_xx_xx.w_sonne_scheint'; //Sonne const id4 = 'javascript.0.Status.Brandmelder.Anzahl_melden_Brand'; //Brand const id5 = 'javascript.0.alarm.out.alarm_intern'; //Alarmanlage const id6 = 'wiffi-wz.0.root.192_168_xx_xx.w_rain_status'; //Regen const id7 = 'javascript.0.Anwesenheitssteuerung.BewohnerAnwesend'; //Anwesend const idRolloCouch = 'hm-rpc.0.OEQ12xxxxxx.1.LEVEL'; //Rolladen Couch function Rolladen() { console.log('Rolladen Couch trigger aktiv '); var Sturm = getState ('wiffi-wz.0.root.192_168_xx_xxx.w_windstaerke').val; var Alarm = getState('javascript.0.alarm.out.alarm_intern').val; var Brand = getState ('javascript.0.Status.Brandmelder.Anzahl_melden_Brand').val; var ZeitfensterMorgen = getState ('javascript.0.Rolladen.ZeitfensterMorgen').val; var ZeitfensterAbend = getState ('javascript.0.Rolladen.ZeitfensterAbend').val; var Helligkeit = getState ('hm-rpc.0.PEQ039xxxxx.1.BRIGHTNESS').val; var AussenTemp = getState ('wiffi-wz.0.root.192_168_xx_xx.w_temperature').val; var Regen = getState ('wiffi-wz.0.root.192_168_xx_xx.w_rain_status').val; var BehanghoeheCouch = getState('hm-rpc.0.OEQ129xxxxx.1.LEVEL').val; var AutomatikEG = getState('javascript.0.Rolladen.Gesamt.EGAutomatik').val; var AutomatikCouch = getState('javascript.0.Rolladen.Couch.Automatik').val; var Sonne = getState('wiffi-wz.0.root.192_168_xxx_xx.w_sonne_scheint').val; var FensterCouchRechts = getState('hm-rpc.0.OEQ1434xxxx.1.STATE').val; var FensterCouchMitte = getState('hm-rpc.0.OEQ143xxxx.1.STATE').val; var FensterCouchLinks = getState('hm-rpc.0.OEQ1197xxxx.1.STATE').val; var Anwesend = getState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend').val; // Rollos hoch if (( Brand >= 1 || Alarm === true) || (ZeitfensterMorgen === true && Helligkeit >= 40 && BehanghoeheCouch <= 95 && AutomatikEG === true && AutomatikCouch === true)) { setStateDelayed(idRolloCouch, 100, 1800);//zeitverzögerung Addition pro Rolladen um 600ms if(idRolloCouch, 100); console.log('Rolladen Couch offen'); }else{ //Rollo runter if ((ZeitfensterAbend === true && FensterCouchRechts === false && FensterCouchMitte === false && FensterCouchLinks === false && Helligkeit <= 10 && BehanghoeheCouch >= 20 && AutomatikEG === true && AutomatikCouch === true && Brand === 0 && Alarm === false) || ( Sturm >= 6 && BehanghoeheCouch >=0 && Brand === 0 && Alarm === false) || ((Regen === true || Anwesend ===false ) && (FensterCouchRechts === true || FensterCouchLinks === true || FensterCouchMitte === true ) && BehanghoeheCouch >= 0 && Brand === 0 && Alarm === false )) { setStateDelayed(idRolloCouch, 0, 1800); if(idRolloCouch, 0); console.log('Rolladen Couch geschlossen'); }else{ // Rollor runter auf 50 % Sicht wegen Sonne und Temp if (isTimeInRange('13:00:00', '19:30:00') && Sonne === true && BehanghoeheCouch >= 55 && AutomatikEG === true && AutomatikCouch === true && Brand === 0 && Alarm === false && Aussentemp >= 26) { setStateDelayed(idRolloCouch, 50, 1800); if(idRolloCouch, 50); console.log('Rolladen Couch wegen Sonne und hoher Temp. auf 50% Sicht gefahren '); } } } } Rolladen(); // Skriptstart on(id1, function(dp) { Sturm = dp.state.val; Rolladen(); }); on(id2, function(dp) { Helligkeit = dp.state.val; Rolladen(); }); on(id3, function(dp) { Sonne = dp.state.val; Rolladen(); }); on(id4, function(dp) { Brand = dp.state.val; Rolladen(); }); on(id5, function(dp) { Alarm = dp.state.val; Rolladen(); }); on(id6, function(dp) { Regen = dp.state.val; Rolladen(); }); on(id7, function(dp) { Anwesend = dp.state.val; Rolladen(); });
  • Aktor per URL schalten - ioBroker

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    782 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
    762 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
    591 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 …

637

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge