Weiter zum Inhalt

JavaScript

2.5k Themen 49.2k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • [gelöst] Objektdaten ändern

    3
    0 Stimmen
    3 Beiträge
    308 Aufrufe
    Ro75R
    @paul53 sagte in Objektdaten ändern: extendObject(id, {common: {type: 'string'}}); Danke @paul53 , das war/ist ja einfach. Ro75.
  • JavaScript für Sayit Adapter

    7
    0 Stimmen
    7 Beiträge
    414 Aufrufe
    paul53P
    @maxtor62 sagte: Kommt auch immer "Das Küchenfenster ist zu" Hast recht. Setze eine Klammer: const idSayIt = "sayit.0.tts.text"; const idGarage = "0_userdata.0.Haus.Garagentor"; on(idGarage, function (dp) { // 0 = "offen", 1 = "zu" setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + (dp.state.val ? "zu" : "offen")); });
  • JSON Tabelle in Intervallen befüllen

    3
    0 Stimmen
    3 Beiträge
    275 Aufrufe
    F
    @hansanaut schau dir mal den Adapter statistics an. Der macht das (die Durchschnittswerte für die Kalenderwoche, Monat und Jahr...) automatisch.
  • Script um shellyplus und das addon dazu auszulesen (mqtt)

    19
    5
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    A
    @ticaki Werte wieder da :-) .... Vielen Dank .... die Antwort war min. 1 Kasten Bier wert
  • Temperatur Hysterese bei If Verschachtelung

    8
    0 Stimmen
    8 Beiträge
    701 Aufrufe
    D
    @ticaki said in Temperatur Hysterese bei If Verschachtelung: @diamand2k22 let istAn = getState('heizung oder was auch immer').val if (FC >= 80) { // netzdienlich // 5 ,6, 7, 8, 9,10,11, 12, 13, 14, 15, 16 17, 18 Uhr if (SOC < 25) { Laden_Mit = [0, 0, 0, 6, 6, 6, 6, 12, 12, 24, 24, 30, 36, 100]; } else {// hier ist in deinem Skript ein Fehler die else greift immer Laden_Mit = [0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 30, 36, 100]; } // hier hab ich das else deshalb entfernt if (FC >= 40 && PufferTemp > (istAn ? 50 : 55) ) { istAn = true // verteilen Laden_Mit = [0, 0, 0, 6, 12, 12, 12, 12, 12, 18, 18, 24, 36, 100]; } else if (FC >= 40 && PufferTemp < (!istAn ? 50 : 55)) { istAn = false Laden_Mit = [0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 30, 36, 100]; } else if (FC < 40 && PufferTemp > (istAn ? 50 : 55)) { istAn = true // Hamstern Laden_Mit = [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]; } else if (FC < 40 && PufferTemp < (!istAn ? 50 : 55)) { // Pufferspeicher laden istAn = false Laden_Mit = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; } } // hier dann heizung schalten oder datenpunkt setzten der beim nächsten durchlauf gelesen wird. Ich verstehe es aber nicht ganz. Was schaltet da die Heizung an? @ticaki die Heizung ist kein separater Datenpunkt! Es wird im Skript einfach die Ladeleistung des Akkus herabgesetzt (in den Klammern und somit zieht der Heizstab den PV Überschuss weg. Leider gibt es bei dem Gen24 Wechelrichter keinen Datenpunkt in der Modbus Schnittstelle um die Priorisierung zu ändern, somit muss ich die Ladeleistung des Akkus drosseln, damit der Heizstab (hängt am Ohmpilot) mehr Überschuss bekommt!
  • PV Überschussladen - Nach 5 Minuten

    4
    0 Stimmen
    4 Beiträge
    483 Aufrufe
    M
    @paul53 said in PV Überschussladen - Nach 5 Minuten: @malz1902 sagte: PV Überschussladen für Warmwasser Enthält der Trigger-Datenpunkt den PV-Überschuss (Netz-Einspeisung) oder die PV-Leistung des WR? Im ersten Fall muss die Hysterese etwas größer sein als die Leistungsaufnahme der WW-Heizung. Im zweiten Fall sollte auch eine (kleine) Hysterese verwendet werden. das kann ich mir aussuchen, habe beide Werte Habe mir dein 2. Beisspiel genommen und etwas angepasst. Danke Stand wirklich vol aufm schlauch
  • Werte aus Smartmeter Adapter in Excel exportieren

    45
    0 Stimmen
    45 Beiträge
    7k Aufrufe
    OliverIOO
    @huhie Es ist relativ egal wo die Datei liegt, sofern der User iobroker dort schreiben darf. Ich glaube, weiß es nicht genau, das die Angabe nur eines Dateinamens direkt in /opt/iobroker schreibt. Besser wäre in /opt/iobroker/iobroker-data/files Zu schreiben. Um sicher zu gehen einfach den Dateinamen direkt mit einem absoluten Pfad angeben.
  • Adapter restart wenn bestimmter Fehler im Log

    36
    0 Stimmen
    36 Beiträge
    4k Aufrufe
    bahnuhrB
    @homoran sagte in Adapter restart wenn bestimmter Fehler im Log: und die Fehlermeldung kann vom hm-rpc für cuxd kommen, der cuxd nicht gefunden hat, weil deaktiviert. ja, das gibt Sinn
  • [erledigt, nicht gelöst] Bild von Webcam lokal speichern

    10
    0 Stimmen
    10 Beiträge
    378 Aufrufe
    ?
    @boronsbruder Danke, ich schau' mir das mal an - soweit ich es verstehe
  • [Gelöst] Lösung für Bilder für VIS verfügbar machen

    1
    1 Stimmen
    1 Beiträge
    194 Aufrufe
    Niemand hat geantwortet
  • In Objektübersicht eine Spalte mit Aktor-"Type" anzeigen

    17
    1
    0 Stimmen
    17 Beiträge
    978 Aufrufe
    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 Stimmen
    3 Beiträge
    278 Aufrufe
    S
    @paul53 Vielen Dank!!!
  • SQL-Adapter: Wert in ts_number statt ts_string

    8
    0 Stimmen
    8 Beiträge
    609 Aufrufe
    OliverIOO
    @haus-automatisierung ja mag sein das es anwendungsszenarien gibt, aber im beschriebenen fall mit ts: Date.now(), ?
  • CCU3 Zeichenkette Systemvariable

    8
    0 Stimmen
    8 Beiträge
    627 Aufrufe
    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
  • [Vorlage] upnp Media Player

    javascript template
    21
    1 Stimmen
    21 Beiträge
    2k Aufrufe
    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 Stimmen
    47 Beiträge
    2k Aufrufe
    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 Stimmen
    3 Beiträge
    282 Aufrufe
    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 Stimmen
    4 Beiträge
    439 Aufrufe
    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 Stimmen
    3 Beiträge
    209 Aufrufe
    mickymM
    @pingo Weil = 0 eine Zuweisung und kein Vergleichsoperator ist. Ändere in: if (WiGaTuer === 0)
  • mqtt parsen

    5
    1
    0 Stimmen
    5 Beiträge
    433 Aufrufe
    Thomas BraunT
    @quarkmax Hab das Skript übernommen, funktioniert. @mickym @ticaki Danke für eure Vorschläge!

282

Online

32.7k

Benutzer

82.6k

Themen

1.3m

Beiträge