Skip to content

Skripten / Logik

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

16.6k Topics 213.9k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    C
    so läuft bei jetzt auch bei mir wer es als js haben will: /*************************************************************** * VW → ABRP Telemetry Script * für ioBroker Javascript Adapter * * Funktionen: * 1. Sendet Fahrzeugdaten alle 5 Minuten an ABRP * 2. Sendet sofort wenn sich der SOC ändert * * Gesendete Daten: * - SOC (Batteriestand) * - GPS Position * - Odometer * - Batteriekapazität * - Timestamp * * API: * https://api.iternio.com/1/tlm/send ***************************************************************/ const apiKey = "API-KEY-von-iternio.com"; const token = "Token-aus-der-APP"; const vin = "VIN-des-Autos"; /*********************** * Datenpunkte ***********************/ const dp_soc = "vw-connect.0." + vin + ".status.charging.status.battery.stateOfChargeInPercent"; const dp_odometer = "vw-connect.0." + vin + ".mqtt.events.charging-completed.data.odometer"; const dp_lat = "vw-connect.0." + vin + ".status.position.parkingPosition.gpsCoordinates.latitude"; const dp_lon = "vw-connect.0." + vin + ".status.position.parkingPosition.gpsCoordinates.longitude"; /*********************** * Funktion zum Senden ***********************/ function sendToABRP(trigger) { const soc = getState(dp_soc).val; const odometer = getState(dp_odometer).val; const lat = getState(dp_lat).val; const lon = getState(dp_lon).val; // Prüfen ob wichtige Daten vorhanden sind if (soc === null || lat === null || lon === null) { log("ABRP: Daten fehlen → kein Versand", "warn"); return; } const utc = Math.round(Date.now() / 1000); const tlm = { utc: utc, soc: soc, capacity: 85, odometer: odometer, lat: lat, lon: lon }; const url = "https://api.iternio.com/1/tlm/send?api_key=" + apiKey + "&token=" + token + "&tlm=" + encodeURIComponent(JSON.stringify(tlm)); httpGet(url, { timeout: 2000 }, function (err, response) { if (err) { log("ABRP Fehler: " + err, "error"); } else { log("ABRP gesendet (" + trigger + "): " + JSON.stringify(tlm), "info"); } }); } /*********************** * 1️⃣ Alle 5 Minuten senden ***********************/ schedule("*/5 * * * *", function () { sendToABRP("Timer"); }); /*********************** * 2️⃣ Senden wenn SOC sich ändert ***********************/ on({ id: dp_soc, change: "ne" }, function (obj) { log("SOC Änderung erkannt: " + obj.state.val + "%", "info"); sendToABRP("SOC Änderung"); });
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    paul53P
    @Lottemann sagte: ein + als nächstes rein Addition und Multiplikation sind der 2. Mathe-Block von oben. Schritte: [image: 1773072613287-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    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
  • Datenpunkt erzeugen am Liebsten mit Blocky aus Wert Tasmota

    Moved
    3
    0 Votes
    3 Posts
    618 Views
    L
    Danke Dir werde mich mal da reinlesen.
  • Blockly Hue Farbwechsel

    Moved
    4
    1
    0 Votes
    4 Posts
    1k Views
    D
    Hallo, hatte es mit beidem versucht. :roll: Gruß Damich
  • [gelöst]-DutyCycle - Telegram Meldung

    Moved
    14
    0 Votes
    14 Posts
    1k Views
    S
    Wie kriege ich denn den DutyCycle in hm-rega.0.6172 angezeigt? Also der Datenpunkt existiert bei mir nicht… edit: hat sich erledigt, in den Adaptereinstellungen aktivieren :lol:
  • Gelöst - Frage: Schedule im Skript erstellen - Blockly

    Moved
    9
    1
    0 Votes
    9 Posts
    2k Views
    liv-in-skyL
    vielen dank paul53 - über funktionen - das macht sinn
  • Mac Herunterfahren über Script?

    Moved
    3
    0 Votes
    3 Posts
    376 Views
    B
    Hi, ioBroker läuft auf dem PI. Wie genau müsste das Excec Script aussehen, habe das nie gemacht. Danke Lars
  • [Gelöst] on - Datenpunkt überwachen - Endlos-Schleife

    Moved
    5
    0 Votes
    5 Posts
    707 Views
    MicM
    Ahh, ok, danke für die Info Paul. Also Endlosschleife letztendlich durch das undefined ausgelöst wie schon von dir implizit angemerkt.
  • Funksteckdose / Blockly

    Moved
    11
    0 Votes
    11 Posts
    1k Views
    DutchmanD
    @Alex17: filename="block.jpg" index="0">~~ ` Wo befindet sich dein Script ? Ich sehe keinen Pfad nur den Befehl klappt das auch so auf der Konsole ? Wie triggerst du dein Script ? –----------------------- Send from mobile device Das schöne ios hat Auto Korrektur zum k**** Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
  • Max Heizungssteuerung Eco/Auto

    Moved
    9
    3
    0 Votes
    9 Posts
    1k Views
    4
    ich würde bei jedem eine Verzögerung von 1.5 Sekunden hinzufügen.
  • Zufälliger Hex Code zur Farbsteuerung?

    Moved
    2
    0 Votes
    2 Posts
    556 Views
    D
    Hallo, hier das passende Javascript: function colourRandom() { var num = Math.floor(Math.random() * Math.pow(2, 24)); return '#' + ('00000' + num.toString(16)).substr(-6); } schedule("*/2 * * * *", function () { //Neuer Hexa-Farbenwert alle 2 Minuten setStateDelayed('admin.0.test.farbe', (colourRandom()), true, parseInt(0, 10), false); //auf deinen Datenpunkt anpassen }); Gruß Damich
  • [gelöst] Bitte um Unterstützung bei setTimeout

    Moved
    4
    0 Votes
    4 Posts
    688 Views
    C
    Moin zusammen, @BuZZy: Pack den kompletten Code aus dem setTimeout in eine Funktion z. B. function alarmMessage.. und führe dann nur die Funktion alarmMessage im setTimeout aus. ` das hat geholfen, vielen Dank dafür! @paul53: Sind die Skriptvariablen status und a__larmaktiv__ global (außerhalb von Funktionen) deklariert ? ` Nein, deswegen habe ich sie der "neuen" Funktion mit übergeben. Das fertige und funktionierende Ergebnis : .... if (status === true && alarmaktiv === true && haustuercheck === "TFK Caspar Haustuer:1") { setTimeout(function(){PushoverWait(textALARM,obj)},20000); } else ....... Die Funktion PushoverWait : function PushoverWait(textALARM,obj) { var alarmaktiv2 = getState("system.adapter.javascript.0.AlarmanlageCaspar").val; if (alarmaktiv2 === true) { textALARM.push(obj.common.name.substr(0, obj.common.name.indexOf(':'))); sendTo('pushover.0', 'send', { title: 'EINBRUCH CASPAR', message: 'Einbruchsalarm Caspar' + '\n' + 'Ausloesender Melder: ' + obj.common.name.substr(0, obj.common.name.indexOf('.')), sound: 'updown', priority: 2, retry: 60, expire: 3600 }); } } Anfänglich hatte das nicht funktioniert weil die Variable alarmaktiv true war als ich diese an die Funktion PushoverWait übergeben habe. Deswegen habe ich eine neue Variable alarmaktiv2 geschaffen die innerhalb der neuen Funktion den Status prüft. Ich danke euch beiden für die Lösung ;)
  • 0 Votes
    12 Posts
    864 Views
    dslraserD
    Danke Dir. Funktioniert !
  • [Vorlage] Script für automatisches Backup steuerbar durch VIS

    Moved
    283
    1
    0 Votes
    283 Posts
    60k Views
    PeoplesP
    Ich habe eine neue Version erstellt welche ihr hier findet: viewtopic.php?f=21&t=13874 Support von mir nur noch für die neue Version.
  • Ermittlung aller Fenstersensoren in einem Raum, findet einen Sensor nicht

    Moved
    3
    0 Votes
    3 Posts
    466 Views
    echoDaveE
    Hi Groß geschrieben findet er gar nichts. Die Räume sind ja aus einem Enum in der Oberfläche per Click aus dem Dropdown Menü gewählt, da dürfte meines Erachtens kein Unterschied zwischen den einzelnen Sensoren sein. Viele Grüße, David
  • If then Anweisung

    Moved
    9
    0 Votes
    9 Posts
    1k Views
    F
    Besten Dank!! if(parseFloat(lux) < 50) setState(idnacht, 1) else setState(idnacht, 0); funktioniert wunderbar :-)
  • Alarmanlage / Kamera Skript verursacht Fehler und bringt JS zum Absturz?

    Moved
    9
    0 Votes
    9 Posts
    970 Views
    Ralla66R
    if(getState(idKamerasAktiv).val == 1) val == 1 wird wie gebildet ? Hier den Status der Cam vor Aktionsauslösung durchführen. val == 1 ist wenn Camera Online. Definiere mal im Programm Online / Offline. Erst dadurch soll ja ein Script ausgeführt werden. Offline macht ja keinen Sinn. So wie BuZZy das schrieb, wieder probieren. Solltest du nach X Sek kein Erfolg haben Error Code generieren. Ralla
  • Problem variable Zeitsteuerung skript, schedule

    Moved
    9
    0 Votes
    9 Posts
    2k Views
    A
    Hallo, hmmmmm, hat in der Tat funktioniert als ich 0,6 eingegeben habe :? https://github.com/ioBroker/ioBroker.ja … d-schedule sagt irgendwie aus, dass 7 ebenfalls Sonntag ist…. ┌───────────── min (0 - 59) │ ┌────────────── hour (0 - 23) │ │ ┌─────────────── day of month (1 - 31) │ │ │ ┌──────────────── month (1 - 12) │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to Saturday; 7 is also Sunday) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ * * * * * schedule Aber gut zu wissen, dann braucht man ja nur 0=Sonntag bis 6=Samstag zu nehmen. Manchmal ist die Ursache klein, Auswirkung groß. Danke Gruß Jens
  • Homematic –> MODBUS, MODBUS --> Homematic

    Moved
    2
    1
    0 Votes
    2 Posts
    585 Views
    M
    da ich mir nicht sicher bin, ob ich ein Logik-Problem bei IoBroker habe oder eben einen Denkfehler in HomeMatic, habe ich mal auch dort im Forum einen Thread eröffnet. Hier ist der Link: https://homematic-forum.de/forum/viewto … 19&t=43483
  • Skript zur Heizungs-, Licht-, … steuerung

    Moved
    3
    0 Votes
    3 Posts
    713 Views
    StuebiS
    @Dutchman: danke für teilen mit der community! Nur als frage: das heizungsscript von Looxer hat deinen Anforderungen nicht entsprochen ? ` ich hatte vorher die komplette Heizungssteuerung auf der Homematic CCU2 abgebildet. Mir gefiel auf der CCU wie man Regeln (Bedingungen) abbilden konnte. Das habe ich für meine Bedürfnisse auf dem ioBroker mit dem JavaScript übernommen
  • Homematic Energiemessung Wert extrahieren?

    Moved
    2
    1
    0 Votes
    2 Posts
    478 Views
    G
    Für deinen Fall sehr simpel, wenn Du nur den ersten Zahlenwert haben möchtest. Entweder Du nimmst ein Split-Node, oder du verwendest das Function-Node und schreibst ein kleines Javascript. Dann ist alles in einem Node erledigt. [image: 3639_unbenannt.jpg] Das Script im Function-Node könnte so aussehen: ! ` > var string = msg.payload; msg.payload = parseFloat(string.substr(0, 8)); return msg; `
  • Tasterschaltung

    Moved
    13
    0 Votes
    13 Posts
    2k Views
    S
    Moin. So danke für die Hilfestellung. Habe es mit einfachen AND Bausteinen hinbekommen

596

Online

32.7k

Users

82.5k

Topics

1.3m

Posts