Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.9k Posts

NEWS

  • In Objektübersicht eine Spalte mit Aktor-"Type" anzeigen

    17
    1
    0 Votes
    17 Posts
    953 Views
    D
    @paul53 Das wäre nur sinnvoll, wenn ich für eine Statusabfrage der Fenster den FK zusätzlich nutzen möchte. D.h. extrem ausgedrückt, wenn der FR nur gedreht auf offen oder gekippt steht, aber das Fenster nur angelehnt ist, dann würde hier eine Meldung rausgehen. D.h. Achtung, Fensterriegel offen, obwohl Fenster optisch zu.. so in der Art. Aber das möchte ich später mit in der Alarmkonfiguration einbinden wenn z.B. das Haus verlassen wird. Derzeit soll es nur eine Statusanzeige werden.
  • awtrix alexa2 reminder anzeigen

    3
    0 Votes
    3 Posts
    277 Views
    S
    @paul53 Vielen Dank!!!
  • SQL-Adapter: Wert in ts_number statt ts_string

    8
    0 Votes
    8 Posts
    575 Views
    OliverIOO
    @haus-automatisierung ja mag sein das es anwendungsszenarien gibt, aber im beschriebenen fall mit ts: Date.now(), ?
  • CCU3 Zeichenkette Systemvariable

    8
    0 Votes
    8 Posts
    614 Views
    MalleRalleM
    Ich habe das mal anders versucht. Ich erstelle den String mit dem Zeilenumbruch erstmal in einen eigenen Datenpunkt auf dem IoBroker. Dann schreibe ich 2 Sekunden später diesen Wert in die Systemvariable der CCU. So geht es nun... Wieder Stunden meines Lebens Futsch :grinning:
  • [Vorlage] upnp Media Player

    javascript template
    21
    1 Votes
    21 Posts
    2k Views
    J
    @jey-cee Habe zuerst den Player nicht erhalten, da dachte ich das muss über die fritzbox gesteuert werden. Nach einem neustart des adapters habe ich jetzt doch den Player. [image: 1692113703678-hmt600.jpg] Wenn ich nun über die erstellen Buttons von dem script den player steuern möchte passiert folgendes: 1. javascript.0 2023-08-15 17:30:44.299 warn at Object.<anonymous> (script.js.upnp:81:25) javascript.0 2023-08-15 17:30:44.298 warn getState "upnp.0.HMT_600.MediaRenderer.RenderingControl.Mute" not found (3) Wenn ich den Volume Down button anklicke passiert nichts Wenn ich den Volume Up Button anklicke dann wirds stumm, wobei das "Mute" Logo nicht auf dem Display des Geräts angezeigt wird. Erst wenn ich mit der Fernbedienung die Lautstärke ändere kommt der Ton wieder Wenn ich unter MediaControl auf Pause klicke dann unterbricht die Widergabe für ~1 Sekunde
  • (gelöst) Datenpunkte per RESTful API senden

    47
    0 Votes
    47 Posts
    2k Views
    JoJo58J
    @paul53 @ticaki Moin Zusammen, nur eine Info für euch. Das Script hat mir keine Ruhe gelassen, ich wollte es verbessern. Ich habe dann eine KI gefragt, was man verbessern könnte und das kam dabei heraus. Wahrscheinlich habt ihr noch andere Ideen, aber ich finde es schon mal gut, brauche nur die Variablen anpassen. const axios = require("axios"); // Constante für Quell und Zieldatenpunkte const sourceDP = 'logparser.0.filters.Homematic.json'; const targetDP = '0_userdata.0.LP_JSON.HM_JSON'; // Constante zum Senden an die andere ioBroker Instanz const targetIp = '192.168.1.14:8087'; const targetDp = '0_userdata.0.LogParser_Raspi4.HomeMatic.json'; // Clean and Copy JSON Data function cleanAndCopyJson() { const jsonNew = getState(sourceDP).val.replace(/<[^>]+>/g, ''); setState(targetDP, jsonNew); } // Send JSON Data to Another ioBroker Instance async function sendJsonToOtherInstance() { try { const jsonToSend = getState(targetDP).val; const response = await axios.post( `http://${targetIp}/setValueFromBody/${targetDp}`, jsonToSend, { headers: { "Content-Type": 'application/json' } } ); console.log('Logparser Daten erfolgreich gesendet:', response.data); } catch (error) { console.error('Fehler beim Senden der Logparser Daten:', error.message); } } // Main function function main() { cleanAndCopyJson(); sendJsonToOtherInstance(); } // Run the main function main(); Gruß Johannes
  • Überwachung von Datenpunkte

    javascript
    3
    0 Votes
    3 Posts
    276 Views
    L
    @crunchip Die Infos die ich vom Sensor brauche, z.B: Bei einer Schaltbaren Steckdose Zustand Switch wenn vorhanden Verbrauch, Automatische Ausschaltzeit usw. Von einem Thermostat ungefähr 5 Werte usw. Im Moment versuche ich Aufzählungen und einem Json-Dp zu verbinden, also aus der Aufzählung den Namen des Sensoren, im Json suchen und alle vorgesehenen Werte auslesen. Ich glaube, das z.B. Punkt 2 doch die meisten Ressourcen verbraucht, da das Script doch dauernd auf der Lauer liegt. Aber ich habe ja keine große Ahnung von der Geschichte. MfG Wastl
  • (Gelöst) JSON und Javascript

    javascript
    4
    0 Votes
    4 Posts
    428 Views
    T
    @langer nur der vollständigkeithalber: let test = {"a":1, "b":2} if (test["a"] !== undefined) {} if (test.b !== undefined) {}
  • [gelöst]- Warum funktioniert meine IF-Abfrage nicht?

    3
    2
    0 Votes
    3 Posts
    204 Views
    mickymM
    @pingo Weil = 0 eine Zuweisung und kein Vergleichsoperator ist. Ändere in: if (WiGaTuer === 0)
  • mqtt parsen

    5
    1
    0 Votes
    5 Posts
    404 Views
    Thomas BraunT
    @quarkmax Hab das Skript übernommen, funktioniert. @mickym @ticaki Danke für eure Vorschläge!
  • [gelöst] Alarm Skript mit Timer

    5
    0 Votes
    5 Posts
    449 Views
    X
    @ticaki said in Alarm Skript mit Timer: @xdelta Ja, du hast auf any reagiert und das ist jede Änderung des Datenpunktes, auch wenn es nur der Zeitstempel ist. Ahh! Ich dachte mir schon so etwas in der Art, weil auf irgendetwas musste ja reagiert worden sein - wusste aber nicht, dass auch der TS dazu gehört usw.! Daher die "Magie" des Scripts ;) Wieder was gelernt - danke! Auch für die Hausaufgaben - werde ich mich mit befassen! vG Kai
  • Zugriff auf Object mit Sonderzeichen (-)

    10
    0 Votes
    10 Posts
    679 Views
    bahnuhrB
    @blockmove wie im chat besprochen anbei mal das Script: // Temperatur der Heizungsrohre var Id, Temp, z; on({id: "mqtt.2.Wemos_Heizung_Rohre.SENSOR", change: "ne"}, function(obj){ obj = JSON.parse(obj.state.val); for (z = 1; z <= 8; z++) { Id = obj["DS18B20-"+z].Id; Temp = obj["DS18B20-"+z].Temperature; Temp_schreiben(Id,Temp); } var sdatum = formatDate(obj.Time,"DD.MM.YYYY"); var szeit = formatDate(obj.Time,"SS:mm"); //log ("Temperatur Heizungsrohre aktualisiert am " + sdatum + " um " + szeit + " Uhr"); setState("javascript.0.Geräte.Heizung.Rohre.Aenderung",(sdatum + " um " + szeit + " Uhr")); }); function Temp_schreiben(Id,Temp) { if (Id == "0117B37A48FF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Kaltwasser", Temp); if (Id == "0117B38548FF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Vorlauf", Temp); if (Id == "0117B38B14FF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Umwaelz", Temp); if (Id == "0417A2D62CFF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Ruecklauf", Temp); if (Id == "0517C0E88FFF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Waermetauscher", Temp); if (Id == "0517C0EA1CFF") setState("javascript.0.Geräte.Heizung.Rohre.Temp_Warmwasser", Temp); if (Id == "0517C0EAF2FF") setState("javascript.0.Geräte.Heizung.Rohre.Fussbodenheizung_Ruecklauf", Temp); if (Id == "0517C0EB6FFF") setState("javascript.0.Geräte.Heizung.Rohre.Fussbodenheizung_Vorlauf", Temp); }
  • Script wird zweimal ausgeführt?

    22
    0 Votes
    22 Posts
    2k Views
    T
    @ahnungsbefreit Ich hatte das Problem bisher auch ausschließlich mit Skripten die async und await benutzen. Wobei ich jetzt 2 mal in letzter Zeit 100% Auslastung des Javascript Adapters hatte, weil er sich verschluckt hat. Bei eben diesem Skript. Aber auch nur wenn ich beim starten des Skripts die Arbeitsfunktion aufrufe, und gleichzeitig mit extendObject/setObject teste... 2 mal ist aber nicht genug um es an irgendwas fest zu machen.
  • setinteval Zeiten

    27
    0 Votes
    27 Posts
    2k Views
    L
    @ticaki Die Scripte von mir sind Null Komma null nichts. Wenn da nicht ein riesiger IOBroker Overheed dranhängt.... Die 2 Energie- Shellys frage ich auch mit 5 Sekunden ab.
  • Konfigurationsseite wie im Adapter

    1
    0 Votes
    1 Posts
    104 Views
    No one has replied
  • [Vorlage] Simple Anrufer-Ansage via Alexa/tr-064

    javascript communication
    4
    0 Votes
    4 Posts
    1k Views
    B
    Hat auch 3 Jahre später noch gut funktioniert! :) Vielen Dank :+1:
  • Rolladensteuerung über Telegram

    49
    0 Votes
    49 Posts
    5k Views
    S
    @bahnuhr Achso ja schade. Das kann ich wiederum gar nicht :D
  • Blockly funktioniert nicht mehr wie es soll - Hilfe

    13
    1
    0 Votes
    13 Posts
    371 Views
    arteckA
    @kusselin sagte in Blockly funktioniert nicht mehr wie es soll - Hilfe: Warten….? jep
  • [gelöst] HTTPS Request mit node-fetch

    3
    0 Votes
    3 Posts
    251 Views
    P
    @mickym Danke für deine Hilfe Funktioniert const { default: fetch }=require("node-fetch"); const options = { method: 'GET', headers: { accept: 'application/vnd.gridx.v2020.11.09+json', authorization: 'tokenXXXXXXXXX' } }; fetch('https://api.gridx.de/clusters/XXXXXXX/appliances/XXXXXXXXXXX/constraints?order_by=priority&limit=1', options) .then(response => response.json()) .then(response => setState('0_userdata.0.GridX_Daten.jsonDaten',JSON.stringify(response),true)) .catch(err => console.error(err));
  • Roborock Adapter tester gesucht

    Locked
    766
    7 Votes
    766 Posts
    259k Views
    copystringC
    Der Adapter wurde gestern Abend in die offizelle Beta-Repository aufgenommen. Daher schließe ich diesen Topic. Danke an alle fürs fleißige Testen! Ab sofort geht es hier weiter https://forum.iobroker.net/topic/67186/neuer-adapter-für-roborock-staubsauger

626

Online

32.7k

Users

82.3k

Topics

1.3m

Posts