Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.9k Beiträge

NEWS

  • DSB - Abrage

    Verschoben javascript
    36
    0 Stimmen
    36 Beiträge
    4k Aufrufe
    Holger76H
    Da mein Kind nun auch diese sehr unübersichtliche App nutzen muss , war ich auf der Suche, ob sich da was für das VIS findet. Leider muss ich feststellen, dass das o.g. Script nicht mehr läuft. Vielleicht findet sich ja doch jemand, der es an den aktuellen Stand anpasst ?!
  • [Vorlage] Screenshots Überwachungskamera Telegramm

    1
    0 Stimmen
    1 Beiträge
    222 Aufrufe
    Niemand hat geantwortet
  • Muss ich hier updaten?

    3
    1 Stimmen
    3 Beiträge
    350 Aufrufe
    KusselinK
    @thomas-braun Danke Dir
  • Loop Problem

    4
    0 Stimmen
    4 Beiträge
    327 Aufrufe
    paul53P
    @smartin sagte: Und wie werden da gültigen Datenpunkt-IDs draus? Den Objektpfad hinzufügen. const path = 'adapter.0.folder.'; // anpassen! function HiLo() { for (let i = 1; i <= 21; i++) { const kursId = path + `Kurs${i}`; // Namen Kurs1 - Kurs21 vergeben const lowId = path + `Low${i}`; // Namen Low1 - Low21 vergeben const highId = path + `High${i}`; // Namen High1 - High21 vergeben Wenn die Namen eindeutig im gesamten ioBroker sind, kann auch getIdByName(name) verwendet werden. const kursId = getIdByName(`Kurs${i}`); // Namen Kurs1 - Kurs21 vergeben const lowId = getIdByName(`Low${i}`); // Namen Low1 - Low21 vergeben const highId = getIdByName(`High${i}`); // Namen High1 - High21 vergeben
  • [gelöst] JS direkt im CSS hqwidgets Window and Shutter

    12
    2
    0 Stimmen
    12 Beiträge
    730 Aufrufe
    OliverIOO
    @digitalmechanik nein, auch so funktioniert es nicht. wenn du inhalte von datenpunkten in einer formel berücksichtigen willst, dann musst du diese in variable laden. genau so wie du es mit hm-rpc... nach wert gemacht hast. du darfst hier auch mehrere anweisungen mit strichpunkt getrennt aneinander reihen. aber für deine konkrete lösung würde ich das nicht machen, da es besser ist in die widgets möglichst nur einfache logik einzubauen, da es sonst nicht mehr lesbar ist, daher hier ein kleines experiment kopier dir die folgenden css anweisungen in den css reiter in vis auf der rechten seite. achte darauf, das im css reiter projekt ausgewählt ist und du die evtl vorhandene inhalte beim kopieren nicht löschst .red { background-image: url("https://upload.wikimedia.org/wikipedia/commons/7/7f/Red-ff0000.png"); } .yellow { background-image: url("https://upload.wikimedia.org/wikipedia/commons/a/a1/Pure_yellow_screen.png"); } .green { background-image: url("https://upload.wikimedia.org/wikipedia/commons/d/d5/Green_Gradient.png"); } lege einen neuen Datenpunkt an vom typ numerisch und trage dort 1 ein lege ein neues html widget an rechts bei html trägst du mal test ein (ist nur, das wir das widget auch wieder finden als größe trägst du bei width und heigth 64px ein im Abschnitt "general" der widget einstellungen bei CSS Class trägst du das folgende aus dem kasten ein. den datenpunktnamen 0_userdata.0.test.test_11 ersetzt du durch deinen frisch angelegten von oben. {wert:0_userdata.0.test.test_11;wert==0?"red":wert==1?"yellow":wert==2?"green":""} dann gehst du in vis in den runtime modus und das widget müsste gelb sein wenn du den datenpunkt änderst, dann müsste es automatisch die jeweilig andere farbe annehmen. (ich habe bei den bildern welche rausgesucht die einfach den farben entsprechen. du kannst natürlcih auch x beliebige bilder nehmen. auch welche, die in vis gespeichert sind oder du dort hochgeladen hast. an diesem beispiel siehst du, das wir die komplizierten dinge (urls in css anweisungen) dort haben, wo sie hingehören-> css anweisungen und per logik nur noch den klassenname ändern. die css klassennamen kannst du nennen wie du willst, musst die halt dann auch in der formel anpassen.
  • Wie kann ich ein Script mit scheduler starten

    3
    0 Stimmen
    3 Beiträge
    258 Aufrufe
    M
    @oliverio said in Wie kann ich ein Script mit scheduler starten: schedule('*/2 * * * *',()=>{ Funktioniert! Vielen Dank
  • Entwicklungsumgebung für Script Entwicklung?

    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    liv-in-skyL
    @ticaki manchmal ist es ganz gut anstatt im forum direkt in google mit dem ersten wort iobroker zu suchen z.b. "iobroker entwicklungsumgebung" EDIT: ich weiß nicht, ob es bei diesem thema so ist
  • Date an schedule übergeben

    24
    0 Stimmen
    24 Beiträge
    880 Aufrufe
    G
    @oliverio Danke für deine Hilfe. Wie weiter oben schon geschrieben, habe ich es bereits (genau so) hinbekommen.... Problem war auch eher die falsche Verwendung es callbacks. Grüße Giraffe
  • [gelöst] Objektdaten ändern

    3
    0 Stimmen
    3 Beiträge
    299 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
    381 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
    267 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:beer: wert :+1:
  • Temperatur Hysterese bei If Verschachtelung

    8
    0 Stimmen
    8 Beiträge
    673 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
    470 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
    375 Aufrufe
    ?
    @boronsbruder Danke, ich schau' mir das mal an - soweit ich es verstehe :sweat_smile:
  • [Gelöst] Lösung für Bilder für VIS verfügbar machen

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

    17
    1
    0 Stimmen
    17 Beiträge
    897 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
    267 Aufrufe
    S
    @paul53 Vielen Dank!!!

709

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge