Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.9k Posts

NEWS

  • DSB - Abrage

    Moved javascript
    36
    0 Votes
    36 Posts
    4k Views
    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 Votes
    1 Posts
    222 Views
    No one has replied
  • Muss ich hier updaten?

    3
    1 Votes
    3 Posts
    350 Views
    KusselinK
    @thomas-braun Danke Dir
  • Loop Problem

    4
    0 Votes
    4 Posts
    327 Views
    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 Votes
    12 Posts
    730 Views
    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 Votes
    3 Posts
    258 Views
    M
    @oliverio said in Wie kann ich ein Script mit scheduler starten: schedule('*/2 * * * *',()=>{ Funktioniert! Vielen Dank
  • Entwicklungsumgebung für Script Entwicklung?

    19
    0 Votes
    19 Posts
    2k Views
    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 Votes
    24 Posts
    880 Views
    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 Votes
    3 Posts
    299 Views
    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 Votes
    7 Posts
    376 Views
    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 Votes
    3 Posts
    267 Views
    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 Votes
    19 Posts
    2k Views
    A
    @ticaki Werte wieder da :-) .... Vielen Dank .... die Antwort war min. 1 Kasten Bier:beer: wert :+1:
  • Temperatur Hysterese bei If Verschachtelung

    8
    0 Votes
    8 Posts
    673 Views
    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 Votes
    4 Posts
    470 Views
    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 Votes
    45 Posts
    7k Views
    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 Votes
    36 Posts
    4k Views
    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 Votes
    10 Posts
    375 Views
    ?
    @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 Votes
    1 Posts
    189 Views
    No one has replied
  • In Objektübersicht eine Spalte mit Aktor-"Type" anzeigen

    17
    1
    0 Votes
    17 Posts
    897 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
    267 Views
    S
    @paul53 Vielen Dank!!!

447

Online

32.6k

Users

82.2k

Topics

1.3m

Posts