Skip to content

Skripten / Logik

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

16.4k Topics 211.6k Posts

NEWS

Skripten / Logik

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Topics
    48k Posts
    L
    Ich speichere mir den Tagesverbrauch in einer influxDB ab. Daraus errechne ich mir den durchschnittlichen Restverbrauch bis Sonnenuntergang der letzten 5 Tage und ziehe diesen dann von der Rest PV-Leistung ab. Mit Hilfe von ChatGPT war das relativ einfach umzusetzen.
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Topics
    78k Posts
    HomoranH
    @MJAS said in Intelligentere Lösung gesucht - exakter Cronjob: dass ich dann Werte um 00:17 (anstatt 00:15) oder 00:46 (anstatt 00:45) Das liegt definitiv nicht am Cronjob selbst. Lies dir mal den Post von @Asgothian genau durch, vielleicht trifft da etwas auf dich zu
  • Hilfe für Skripterstellung mit Node-RED

    951 13k
    951 Topics
    13k Posts
    P
    @schnipsel71 Häng mal hinter Spots ein Debug-Node mit der Konfig komplettes Nachrichtenobjekt. Dann Alexa bitten, die Helligkeit auf 33 Prozent zu setzen. Die Ausgabe des Debug-Nodes hier posten. Beispiel: Wenn ich sage, Alexa, Gartenlicht 30 Prozent, kommt Folgendes raus: [image: 1761901683637-fb545bab-a095-455b-b86f-ad9759d6bdcb-image.png] Meine Rückmeldung an Alexa sieht so aus: [image: 1761901883296-bfd627c6-ff85-46e1-9475-0786afab94b2-image.png] Spoiler var nodeid = "idDesNodesGartenLicht"; var obj = JSON.parse(msg.payload); var ison=obj.on; var proz=obj.percentage; var hex=obj.rgb; var hell=parseInt(obj.bri*255/100); var color = []; color[0] = parseInt (hex.substring (0, 2), 16); color[1] = parseInt (hex.substring (2, 4), 16); color[2] = parseInt (hex.substring (4, 6), 16); var newMsg={ payload: '' } newMsg.payload= { nodeid: nodeid, on: ison, bri: hell, rgb: color } node.status({text:"on: "+ison+", proz:"+proz}); return newMsg;
  • Fehler bei Blockly

    Moved
    8
    1
    0 Votes
    8 Posts
    942 Views
    M
    Hatte ich schon vor Tagen drauf hingewiesen Hat sich keiner interessiert … :lol:
  • [gelöst] Ursprung eines gesetzten Status feststellen

    Moved
    5
    0 Votes
    5 Posts
    363 Views
    apollon77A
    Naja oder halt ein Skript … Das ist jetzt eine Frage des Use-Cases bzw was genau mit der "info" wer hier steuert passieren soll. man kann auch State changes monitoren und wenn eine true ohne vorheriges false mit gleichem Wert kam dann war es ausserhalb, sonst ein Skript ...
  • 0 Votes
    6 Posts
    1k Views
    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

    Moved
    10
    0 Votes
    10 Posts
    559 Views
    M
    Erledigt.
  • Node Red Funktion mit mehr Outputs

    Moved
    2
    0 Votes
    2 Posts
    1k Views
    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?

    Moved
    3
    0 Votes
    3 Posts
    442 Views
    S
    Ach klasse, dankeschön ! Probiere ich gleich mal aus Scheint super zu klappen, sieht zwar mächtig gewältig aus, aber funktioniert
  • 0 Votes
    6 Posts
    1k Views
    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?

    Moved
    5
    1
    0 Votes
    5 Posts
    1k Views
    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

    Moved
    14
    1
    0 Votes
    14 Posts
    4k Views
    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

    Moved
    10
    0 Votes
    10 Posts
    1k Views
    StabilostickS
    Wechsele doch vor der Installation in den iobroker-Ordner.
  • Blockly Anwesenheit

    Moved
    2
    1
    0 Votes
    2 Posts
    951 Views
    U
    Keiner eine Idee dazu ?
  • 0 Votes
    9 Posts
    535 Views
    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

    Moved
    27
    1
    0 Votes
    27 Posts
    2k Views
    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

    Moved
    11
    0 Votes
    11 Posts
    1k Views
    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

    Moved
    7
    0 Votes
    7 Posts
    2k Views
    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

    Moved
    4
    0 Votes
    4 Posts
    335 Views
    DutchmanD
    danke euch mit das hat mir sehr weitergeholfen !
  • Anrufname von Fritzbox auf KNX Bus senden

    Moved
    1
    0 Votes
    1 Posts
    285 Views
    No one has replied
  • [Gelöst]Zeit stellen für Rolladen im Vis

    Moved
    23
    0 Votes
    23 Posts
    4k Views
    B
    UPS, schaue ich mir morgen an, was steht denn im log? Grüße Brati
  • Rolladen Script für Javascript Adapter

    Moved
    17
    0 Votes
    17 Posts
    3k Views
    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

    Moved
    6
    0 Votes
    6 Posts
    751 Views
    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

601

Online

32.4k

Users

81.3k

Topics

1.3m

Posts