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
  • [gelöst] NFC mqtt in iobroker anwenden

    Moved
    4
    0 Votes
    4 Posts
    804 Views
    A
    So. Das Problem ist nun gelöst. on({id: 'mqtt.0.domoticz.in', change: "any"}, function (obj) { var NFC; //der try ist wichtig, dass der adapter nicht abschmiert bei einem Fehler. Hiermit parsen wir die json in ein object try {obj = JSON.parse(getState('mqtt.0.domoticz.in').val); } catch (e) { console.error('Cannot parse: ' + getState('mqtt.0.domoticz.in').val); return; } log(obj.svalue); NFC = obj.svalue; if ( NFC === "xxxx47091" || NFC === "xxxx076275" || NFC === "xxxx880515" || NFC === "xxxx213571" || NFC === "xxxx486467" || NFC === "xxxx713987" || NFC === "xxxx057774" ) { setState("hm-rpc.2.000218A9916FDA.3.STATE", true);//schaltet Aktor ein log("Einschalten ausgeführt"); setStateDelayed("hm-rpc.2.000218A9916FDA.3.STATE", false, 2000, true);//schaltet Aktor in 1 Sekunde aus und aktiviert Planung für nächste Aktivierung log("Ausschalten ausgeführt"); } });
  • Blockly: http post mit data body möglich?

    Moved
    4
    0 Votes
    4 Posts
    2k Views
    P
    @ BuZZy Vielen Dank für deinen request ;) Also… der put request hat folgende Syntax: PUT IP//globalVariables/{globalVariableID} Authoriation: basic [username:password in base64] Und der body hat folgenden Inhalt (JSON): {"value": "your_value"} Sollte "eigentlich" eine leichte Aufgabe sein… Vielen Dank und Gruß Stefan @BuZZy: So einen Block gibt es im Blockly (noch) nicht. Es gibt nur einen Request Block.. Wenn es nur ein einziges http post ist, kannst du ja hier mal posten wie es genau aussehen soll.. In Javascript kann man das ohne Probleme umsetzen.. :) P.s.: Hab mal ein enhancement request auf Github erstellt.. https://github.com/ioBroker/ioBroker.ja … issues/152 Gruß `
  • [BLOCKLY] Hilfe bei Steuerung eines Raumentfeuchters

    Moved
    4
    2
    0 Votes
    4 Posts
    748 Views
    StabilostickS
    Ich habe da eine Regelung am laufen (nicht ioBoker), die misst bei den Steckdosen die Stromaufnahme und schaltet erst dann ab, wenn das Programm des geschalteten Gerätes (z.B. Waschmaschine) abgelaufen ist. Außerdem kennt es die typische Laufzeit des Gerätes durch Beobachtung der Leistungsaufnahme. In Zusammenhang mit der Wettervorhersge ist das nützlich zum Einschalten von Verbrauchern bei Sonnenschein…
  • [Frage] Bei Haustür Klingel Snapshot speichern

    Moved
    24
    2
    0 Votes
    24 Posts
    6k Views
    C
    @bishop: Ich habe ein Gira ip gateway im zähler verbaut. Dadurch habe ich den klingeltaster mal digital im System, somit kann ich auch das Fritzfon klingeln lassen wenn der Klingeltaster gedrückt wird. Mit dem tr-064 adapter lausche ich dann einfach auf die internet telefonnummer 100 das der Klingetaster ist. ` Wie funktioniert das mit dem Fritzfon klingeln lassen? Mit Deiner Variante müsste das Fritzfon doch auch ein ipcamera Bild anzeigen können, oder? (Ich glaube das können nur einige Modelle)
  • [GELÖST] Gartenpumpe mit Messages

    Moved
    5
    1
    0 Votes
    5 Posts
    565 Views
    paul53P
    @iKlaus: Hat beim ersten schon geklappt ! ` Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].
  • Aus JSON Objekte erstellen

    Moved
    4
    0 Votes
    4 Posts
    635 Views
    D
    Ja über die Phoscon APP angelernt. Ich hab jetzt die main.js so umgebaut, dass er nicht nur den Sensor, der sich verändert hat auswertet, sondern dann wieder alle abruft. Getallsensors() heißt glaube ich die Funktion. Dann läuft es :D
  • States miteinander verknüpfen

    Moved
    5
    0 Votes
    5 Posts
    2k Views
    paul53P
    Die wechselseitige Verknüpfung mehrerer Datenpunkte kann in einem Skript erfolgen (Beispiel mit 2 Originalen). [image: 493_blockly_sync_2xorg_abb.jpg]
  • [gelöst] Bräuchte etwas Hilfe bei Alarmanlagen-Script

    Moved
    28
    2
    0 Votes
    28 Posts
    3k Views
    S
    Hi paul53, wie genau ich das mit dem Anlegen in javascript.o ?
  • LED Stripes skript an aus merken broadlink

    Moved
    6
    0 Votes
    6 Posts
    929 Views
    Ralla66R
    Trenne mal Ein / Aus von den Farben. Also für Ein / Aus und den Farben je ein Blockly anlegen. Im Prinzip dann den Stripe einschalten dann erst umschalten der Farbe. Den Datenpunkt setzt du ja auf true oder false mit dem Sprachbefehl. True und false des Datenpunktes musst du auswerten. 5230_led_an_aus_v2.jpg
  • [Gelöst] Rufumleitung Fritzbox ein/ausschalten

    Moved
    4
    0 Votes
    4 Posts
    648 Views
    R
    @wendy2702: Es funktioniert doch mit dem TR-064 Adapter. Man muss auf der FB scheinbar eine Rufsperre einrichten. Dann erscheint das Callforwarding richtig unter den Objecten. ` Hallo, ich habe leider auch das Problem, dass mir die Callforwarding-Objekte nicht angezeigt werden. Nachdem ich nun eine Dummy-Rufsperre (ausgehend alle 0900er Nummern) in der FB eingerichtet und diese neugestartet habe, erscheinen die Objekte bei mir immer noch nicht. Den Adapter habe ich bereits neu gestartet. Habe ich irgendwas vergessen? Setup: FB7490 mit OS 6.92 ioBroker admin 3.4.6 tr-064 v0.4.18 Update: habe gerade deinen Post hier gesehen und noch eine Wahlregel erstellt. Leider immer noch keine Objekte zu sehen :/ viewtopic.php?t=12248&start=20#p134530
  • Objekt Verwendung suchen

    Moved
    2
    0 Votes
    2 Posts
    264 Views
    DutchmanD
    Das letztere, om script selber kannst dus niet ctrl + F suchen Sent from my iPhone using Tapatalk
  • Object

    Moved
    8
    0 Votes
    8 Posts
    1k Views
    paul53P
    @Tefi: Bei einem ENUM möchte ich nur die Objekte "obj.state.val=true". Lässt sich das nun schon im subscribe angeben? ` Das dürfte bei einem https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#–-selector nicht möglich sein. Da bleibt nur die Abfrage if(obj.state.val).
  • Neustart JS Adapter öffnet Tür

    Moved
    2
    1
    0 Votes
    2 Posts
    413 Views
    arteckA
    wenn es immer um 3:10 ist dann wirst du wohl was eingestellt haben..
  • Wert 2er Bewegungsmelder vergleichen mit und/oder?

    Moved
    1
    1
    0 Votes
    1 Posts
    291 Views
    No one has replied
  • Msg payload string wert extrahieren

    Moved
    24
    0 Votes
    24 Posts
    21k Views
    inesaI
    Ich wollte damit sagen das es funktioniert wenn man als input vom flow mqtt json nimmt. Hatte es vorher mit mqtt versucht und da hagelte es Fehlermeldungen. Ines
  • Blockly - warten auf Freigabewert

    Moved
    11
    1
    0 Votes
    11 Posts
    2k Views
    H
    @Dutchman: Wieviele scripte/ansagen hast du laufen welche durcheinander kommen koennten ? ` Wenn ich es auf die reduziere, die sehr häufig durcheinander kommen, vier bis sechs. Ich werde mal folgenden Lösungsansatz probieren: Ich lege für jede Ansage ein Objekt an Das jeweilige Script schreibt den Text ins Objekt Ein separates Script arbeitet, mit kurzen Pausen dazwischen, alle diese Objekte nacheinander ab und leert jeweils das abgearbeitete.
  • Node Red Fehler bei wemo emulator!

    Moved
    2
    2
    0 Votes
    2 Posts
    853 Views
    Ralla66R
    Mal hinter dem Wemo ein debug einfügen und schauen was der ausgibt. Switch und false sind unglücklich gewählt. Nimm besser ein change, der wirkt zusätzlich wie ein Filter. 5230_wemo_xx.jpg 5230_change_xx.jpg
  • SKRIPT Sammelung XIAOMI VACUUM

    Moved
    5
    0 Votes
    5 Posts
    2k Views
    J
    Da kann sich doch jeder ein Blockly bauen wie er will. Ich versteh nicht warum man dafür eine Script Sammlung brauchen sollte. Eine Idee was man will hat man in der Regel ja wenn man anfängt. Ich hab den Vorwerk und der macht 3 mal die Woche sauber, wenn keiner zu Hause ist. Die Meldung auf's Handy macht das APP dafür schon, da brauch ich nicht mal ein Script dafür :D
  • Schlafmodus Harmony Alexa

    Moved
    8
    0 Votes
    8 Posts
    970 Views
    K
    So ich habe jetzt mal den Mqtt Adapter installiert und seid dem habe ich keine Verbindungsabbrüche mehr. Also scheint irgendwas im Sonoff Adapter falsch eingestellt zu sein oder so.
  • Blockly: Anhebung der Warmwassertemperatur bei PV_Überschuss

    Moved
    33
    1
    0 Votes
    33 Posts
    3k Views
    wendy2702W
    Hallo zusammen, ich habe jetzt mal versucht das nach zu bauen und ein paar Tage laufen lassen aber es funktioniert nicht so 100%. Wenn ich das Blockly starte wird die Variable "Einspeisung_3800" auf false gesetzt. Steigt die Einspeisung dann über den Wert von 4200 wechselt das auch nach true und ich bekomme eine Telegramm nachricht "Einspeisung >4200". Das Umschalten zurück wenn Bezug > 250 (zum testen eingestellt) geht nicht. Habe ich hier etwas falsch zusammen gebaut? [image: 999_einspeisung_umschaltung.jpg] [image: 999_telegramm_einspeisung.jpg]

600

Online

32.7k

Users

82.5k

Topics

1.3m

Posts