Weiter zum Inhalt

JavaScript

2.5k Themen 50.2k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

    691
    6
    13 Stimmen
    691 Beiträge
    125k Aufrufe
    maxclaudiM
    Tipp gleich noch einmal separat, weil mein Tipp einem User sehr geholfen hat: Wenn jemand WLAN-Probleme mit dem zenGerät hat und das Handy daneben eine gute WLAN-Verbindung – wichtig: im 2,4-GHz-Netz – hat, dann könnte eine WLAN-Bridge direkt neben dem zenGerät Wunder bewirken.
  • Script für Formel 1 - Kalender, Ergebnisse und Wertungen

    42
    7
    5 Stimmen
    42 Beiträge
    8k Aufrufe
    da_WoodyD
    @Dr.Pie im startposting ist der link was alles abrufbar ist. Die Daten werden von "Ergast" über https://api.jolpi.ca/ergast/ geholt.
  • Zendure SolarFlow (MQTT) - Nulleinspeisung & EVCC-Optimizer

    92
    1 Stimmen
    92 Beiträge
    13k Aufrufe
    Chris685C
    Guten Morgen - Update ist nun erfolgt und läuft. EVCC wird nun gefunden. Optimizer nicht, da nicht aktiv. Das mit dem Verbindungsaufbau beobachte ich mal, das Gerät ist noch recht neu. Hätte jedoch schon zweimal Aussetzer, wo ich die MQTT Daten im Zendure neu setzen/aktivieren musste um die Verbindung wieder zu aktivieren.
  • Ladeplanung mit evcc und Aura

    13
    2
    0 Stimmen
    13 Beiträge
    529 Aufrufe
    L
    @icebear sagte: @lesiflo said: Soll ich das automatisch machen oder per Schalter in Aura? Da ja für einen 'aktiven' Plan mindestens die Option 'Smart' in evcc ausgewählt sein muß, würde ich das so einbauen, das wenn mann in Aura einen Plan auf 'aktiv' setzt, das dann automatisch auch die Option 'Smart' in evcc ausgewählt ist. Ist in v2.3 drin
  • Lernende Heizkurve + Solltemperatur für Vaillant-Wärmepumpen

    1
    1
    0 Stimmen
    1 Beiträge
    156 Aufrufe
    Niemand hat geantwortet
  • ecoflow-connector-Script zur dynamischen Leistungsanpassung

    Verschoben
    2k
    3
    7 Stimmen
    2k Beiträge
    1m Aufrufe
    W
    @gooflo Ja, die Regellogik ist direkt aus dem Skript übernommen: Einspeiseregelung, mehrere PowerStreams (seriell oder ausgeglichen), Akku-Priorität, Überschussladung und Zusatzleistungen. Deine Konfiguration musst du nicht neu eintippen. Im Adapter im EcoFlow-Reiter unter „Migration aus altem Script“ einfach den kompletten Skriptinhalt einfügen und speichern, dann wird die ConfigData beim Neustart übernommen. Zwei Hinweise: Deine eigenen Erweiterungen im Skript sind natürlich nicht mit drin. Und bitte das alte Skript stoppen, bevor die Regelung im Adapter läuft, sonst regeln beide gleichzeitig. Am besten erst mit regulation.enabled = false starten und prüfen, ob die Werte ankommen. Über eine Rückmeldung würde ich mich freuen!
  • [gelöst] Skript auf AXIOS/httpGet umbauen

    65
    0 Stimmen
    65 Beiträge
    17k Aufrufe
    CodierknechtC
    Du musst die Variable lediglich in "response" umbenennen. [image: image.jpeg]
  • [Eingestellt] JONR-Saugroboter lokal steuern (T5 Pro)

    3
    0 Stimmen
    3 Beiträge
    220 Aufrufe
    H
    Kurzes Update, und leider das letzte zu diesem Thema: Der T5 Pro ist inzwischen wieder ausgezogen. Die Anbindung lief am Ende stabil, aber die Reinigungsleistung hat uns im Alltag nicht überzeugt, deshalb ist er Anfang September zurückgegangen. Damit habe ich kein Gerät mehr zum Testen und kann das Skript nicht weiter pflegen. Fragen zum Verhalten am Gerät kann ich ab jetzt auch nicht mehr nachstellen, ich lasse den Thread aber bewusst stehen, falls jemand mit einem JONR-Sauger einen Einstieg sucht. Wer es trotzdem einsetzen möchte, bitte unbedingt die überarbeitete Fassung aus dem zweiten Beitrag nehmen, nicht die aus dem ersten. Die erste hatte den Fehler mit der Raumreinigung, der nach und nach die Karte in der App zerlegt. Das Skript ist für den T5 Pro der ersten Generation geschrieben (Modell xtl.vacuum.2407a). Andere JONR-Modelle sprechen zwar ebenfalls MIoT, nutzen aber womöglich andere Properties und Aktionen. Die Fehlertexte stammen aus dem Mi-Home-Plugin des Geräts und passen nur zu diesem Modell. Wer das Skript übernehmen, anpassen oder in einen Adapter gießen möchte, darf das gerne tun, ein kurzer Hinweis hier im Thread wäre nett, damit andere es finden. Danke an alle, die mitgelesen haben.
  • E3DC Hauskraftwerk steuern

    4k
    1
    3 Stimmen
    4k Beiträge
    3m Aufrufe
    A
    @Bobby2977 Ganz ohne Programmiererfahrung wird es schwierig, das umzusetzen. Du bräuchtest ein Skript, das jeden Tag um 0 Uhr das Laden startet und um 5 Uhr wieder beendet. Das wäre noch relativ einfach. Zusätzlich müsste der Ladebefehl über den e3dc-rscp-Adapter alle 3 Sekunden erneut gesendet werden. Damit stellst du sicher, dass bei einem Fehler das Laden nicht ungewollt weiterläuft. Man könnte alternativ im e3dc-rscp-Adapter das SET_POWER-Wiederholintervall [sec] auf 3 Sekunden setzen. Das würde ich persönlich aber nicht empfehlen. Außerdem müsste das Skript den Notstrombetrieb überwachen. Wird dieser aktiv, sollte sich das Skript aus der Steuerung zurückziehen und E3DC wieder die vollständige Kontrolle überlassen.
  • HTML Tabelle für Tasmota Timer (+Setzen)

    javascript template monitoring
    46
    3
    0 Stimmen
    46 Beiträge
    10k Aufrufe
    M
    @ liv-in-sky Vielen DAnk für Deine Antwort! Dann werde ich dies mal verwerfen müssen :(
  • Telegramm Push Nachricht ans Handy senden

    2
    0 Stimmen
    2 Beiträge
    115 Aufrufe
    P
    Ich sende per sendTo: sendTo("telegram.0", { text: "Hallo, da bin ich.", disable_notification: false, chatId: 'chatid' });
  • Tibber Pulse: Verbrauchsdaten lokal auslesen

    111
    1 Stimmen
    111 Beiträge
    39k Aufrufe
    E
    @Waly_de Prima, hatte mich gefragt, weshalb die Bridge Fehler brachte. Danke nutze v2.5.3 und die funktioniert.
  • [gelöst] Javascript-Adapter v10.x

    3
    0 Stimmen
    3 Beiträge
    215 Aufrufe
    Rene55R
    Ja danke vielmals. Hätte mir die dusselige Erweiterung für DeepL nicht auf die gleiche Stelle das Submenü gepflanzt, hätte ich das Auge auch gesehen. [image: RechtsUnten.png][image: RechtsUnten1.png]
  • JSON.parse erzeugt kein gültiges Array

    6
    0 Stimmen
    6 Beiträge
    257 Aufrufe
    CodierknechtC
    @baennjer sagte: Einfach den Sonoff Adapter nutzen der erstellt direkt Datenpunkte für alle angeschlossenen Sensoren. Eben! Einfacher geht's nicht. [image: image.jpeg]
  • JSON per HTTP-POST empfangen (Blink-Cameras)

    javascript multimedia
    8
    0 Stimmen
    8 Beiträge
    193 Aufrufe
    M
    Konnte den Inhalt auch parsen. Vielen Dank.
  • Omlet Hühnerstall webhook API

    43
    1 Stimmen
    43 Beiträge
    5k Aufrufe
    S
    Funzt astrein, vielen Dank für die Arbeit!
  • [TypeSkript] Wetter.com Forecast/Vorhersage

    Gesperrt
    79
    4 Stimmen
    79 Beiträge
    10k Aufrufe
    S
    Der Adapter ist im LATEST-Repo, weiter geht es hier: https://forum.iobroker.net/topic/85314/test-adapter-meteonomiqs-v0.2.7
  • Nach Update auf js-controller 7.2.2 keine Skripte mehr da

    17
    0 Stimmen
    17 Beiträge
    623 Aufrufe
    P
    @wendy2702 sagte: @pingo Probier mal im Terminal iob upload all Und eventuell auch mal Browser Cache leeren Danke. Das war die Lösung! Die Skripte sind wieder da. Yippie
  • openligadb css Aufrischung

    2
    1
    0 Stimmen
    2 Beiträge
    127 Aufrufe
    OliverIOO
    @matze55 da man es designmäßig es nie allen recht machen kann, mache ich meine widget meist mit einem gewissen grunddesign. darüber hinaus definiere ich css klassen über die dann jeder da noch was dazu definieren kann. diese css klassen sind hier bspw am gameday beschrieben. https://github.com/oweitman/ioBroker.openligadb#games-of-gameday-v2 wenn da noch was fehlt, dann gerne hier oder im eigentlichen support thread kommentieren. ich mache die dann gerne design neutral dazu, so das ihr euer gewünschtes design hinbekommt wenn man sich mit css klassen nicht so gut auskennt, empfehle ich den html code eines widgets mit den webdeveloper tools zu kopieren. da sind die vorgegebenen css regeln mit enthalten. diese der ki zu ngeben und sie zu bitten, entweder einfach diese hübsch zu machen oder genauere regeln der ki vorzugeben. evtl noch den tip den html code nicht zu verändern, sondern nur css regeln auszugeben die evtl vorhandene css regeln überschreiben. ich mache mal ein einfaches schnelles beispiel: hier mein prompt mit dem aktuellen html kannst du mir für den folgenden html code css regeln definieren, so das er etwas ansprechender aussieht <div class="vis-widget vis-tpl-openligadb-OLiDB GameDay v2" style=" overflow: visible; width: 327px; height: 355px; left: 21px; top: 112px; font-size: x-small; " id="w00030" > <style> #w00030 .oldb-icon { max-height: 25px; max-width: 25px; } #w00030 .oldb-tdicon { width: 25px; } #w00030 .oldb-tt { width: 100%; } #w00030 .oldb-tt td { white-space: nowrap; } #w00030 .oldb-wrap { white-space: normal !important; } #w00030 .oldb-goal { white-space: nowrap; display: inline-block; } #w00030 .oldb-full { width: 50%; } #w00030 .oldb-center { text-align: center; } #w00030 .oldb-right { text-align: right; } #w00030 .oldb-left { text-align: left; } #w00030 .oldb-datetime { font-weight: bold; } </style> <table class="oldb-tt"> <tbody> <tr> <td class="oldb-right oldb-datetime" colspan="3">08/28</td> <td class="" /> <td class="oldb-left oldb-datetime" colspan="3">08:30 PM</td> </tr> <tr> <td class="oldb-right oldb-full">FC Bayern München</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/1/1f/Logo_FC_Bayern_M%C3%BCnchen_%282002%E2%80%932017%29.svg" /> </td> <td class="oldb-center">5</td> <td class="oldb-center">:</td> <td class="oldb-center">1</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://i.imgur.com/v0tkpNx.png" /> </td> <td class="oldb-left oldb-full">VfB Stuttgart</td> </tr> <tr> <td class="oldb-right oldb-datetime" colspan="3">08/29</td> <td class="" /> <td class="oldb-left oldb-datetime" colspan="3">03:30 PM</td> </tr> <tr> <td class="oldb-right oldb-full">RB Leipzig</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://i.imgur.com/Rpwsjz1.png" /> </td> <td class="oldb-center">3</td> <td class="oldb-center">:</td> <td class="oldb-center">0</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://i.imgur.com/KSIk0Eu.png" /> </td> <td class="oldb-left oldb-full">Borussia Mönchengladbach</td> </tr> <tr> <td class="oldb-right oldb-full">1. FSV Mainz 05</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/9/9e/Logo_Mainz_05.svg" /> </td> <td class="oldb-center">0</td> <td class="oldb-center">:</td> <td class="oldb-center">0</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/e/e3/SC_Paderborn_07_Logo.svg" /> </td> <td class="oldb-left oldb-full">SC Paderborn 07</td> </tr> <tr> <td class="oldb-right oldb-full">1. FC Union Berlin</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://assets.dfb.de/uploads/000/018/232/small_union-Berlin.jpg" /> </td> <td class="oldb-center">3</td> <td class="oldb-center">:</td> <td class="oldb-center">3</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://i.imgur.com/X8NFkOb.png" /> </td> <td class="oldb-left oldb-full">Eintracht Frankfurt</td> </tr> <tr> <td class="oldb-right oldb-full">1. FC Köln</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/0/01/1._FC_Koeln_Logo_2014%E2%80%93.svg" /> </td> <td class="oldb-center">3</td> <td class="oldb-center">:</td> <td class="oldb-center">2</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://i.imgur.com/gF0PfEl.png" /> </td> <td class="oldb-left oldb-full">TSG Hoffenheim</td> </tr> <tr> <td class="oldb-right oldb-full">SV 07 Elversberg</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/SV_Elversberg_Logo.svg/500px-SV_Elversberg_Logo.svg.png" /> </td> <td class="oldb-center">3</td> <td class="oldb-center">:</td> <td class="oldb-center">2</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png" /> </td> <td class="oldb-left oldb-full">Bayer 04 Leverkusen</td> </tr> <tr> <td class="oldb-right oldb-datetime" colspan="3">08/29</td> <td class="" /> <td class="oldb-left oldb-datetime" colspan="3">06:30 PM</td> </tr> <tr> <td class="oldb-right oldb-full">Borussia Dortmund</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Borussia_Dortmund_logo.svg/960px-Borussia_Dortmund_logo.svg.png" /> </td> <td class="oldb-center">2</td> <td class="oldb-center">:</td> <td class="oldb-center">0</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/f/f7/Hamburger_SV_logo.svg" /> </td> <td class="oldb-left oldb-full">Hamburger SV</td> </tr> <tr class="todaygameheader"> <td class="oldb-right oldb-datetime" colspan="3">08/30</td> <td class="" /> <td class="oldb-left oldb-datetime" colspan="3">03:30 PM</td> </tr> <tr class="todaygame"> <td class="oldb-right oldb-full">SC Freiburg</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://i.imgur.com/r3mvi0h.png" /> </td> <td class="oldb-center">-</td> <td class="oldb-center">:</td> <td class="oldb-center">-</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/b/be/SV-Werder-Bremen-Logo.svg" /> </td> <td class="oldb-left oldb-full">SV Werder Bremen</td> </tr> <tr class="todaygameheader"> <td class="oldb-right oldb-datetime" colspan="3">08/30</td> <td class="" /> <td class="oldb-left oldb-datetime" colspan="3">05:30 PM</td> </tr> <tr class="todaygame"> <td class="oldb-right oldb-full">FC Augsburg</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-icon" src="https://i.imgur.com/sdE62e2.png" /> </td> <td class="oldb-center">-</td> <td class="oldb-center">:</td> <td class="oldb-center">-</td> <td class="oldb-center oldb-tdicon"> <img class="oldb-center oldb-icon" src="https://upload.wikimedia.org/wikipedia/commons/9/97/FC_Schalke_04_Logo.png" /> </td> <td class="oldb-left oldb-full">FC Schalke 04</td> </tr> </tbody> </table> </div> hier die antwort Ja. Ich würde das Widget etwas moderner machen: dunkler Card-Hintergrund, klarere Spielzeilen, größere Logos und eine deutliche Hervorhebung der heutigen Spiele. Du kannst deine bisherigen CSS-Regeln im <style>-Block durch diese ersetzen: #w00030 { font-family: Arial, sans-serif; font-size: 12px !important; color: #f5f5f5; background: #181b20; border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 10px; box-sizing: border-box; box-shadow: 0 6px 18px rgba(0,0,0,0.3); } /* Tabelle */ #w00030 .oldb-tt { width: 100%; border-collapse: separate; border-spacing: 0 4px; } /* Grundformatierung der Zellen */ #w00030 .oldb-tt td { white-space: nowrap; padding: 5px 3px; vertical-align: middle; } /* Vereinslogos */ #w00030 .oldb-icon { width: 28px; height: 28px; max-width: 28px; max-height: 28px; object-fit: contain; display: block; margin: 0 auto; } /* Spalte mit Vereinslogo */ #w00030 .oldb-tdicon { width: 32px; min-width: 32px; } /* Teamnamen */ #w00030 .oldb-full { width: 50%; font-weight: 500; } /* Datum / Uhrzeit */ #w00030 .oldb-datetime { font-size: 10px; font-weight: 600; color: #9ca3af; padding-top: 9px !important; padding-bottom: 2px !important; } /* Ergebnis */ #w00030 .oldb-tt tr:not(.todaygameheader) td:nth-child(3), #w00030 .oldb-tt tr:not(.todaygameheader) td:nth-child(4), #w00030 .oldb-tt tr:not(.todaygameheader) td:nth-child(5) { font-weight: 700; font-size: 14px; color: #ffffff; } /* heutige Spiel-Zeit */ #w00030 .todaygameheader td { color: #55d68b; font-weight: 700; } /* heutiges Spiel */ #w00030 .todaygame { background: rgba(55, 180, 110, 0.12); } /* erste und letzte Zelle des heutigen Spiels abrunden */ #w00030 .todaygame td:first-child { border-radius: 8px 0 0 8px; } #w00030 .todaygame td:last-child { border-radius: 0 8px 8px 0; } /* kleine Hover-Animation */ #w00030 .oldb-tt tr:not(.todaygameheader):hover { background: rgba(255,255,255,0.06); } /* Ausrichtung */ #w00030 .oldb-center { text-align: center; } #w00030 .oldb-right { text-align: right; } #w00030 .oldb-left { text-align: left; } #w00030 .oldb-wrap { white-space: normal !important; } #w00030 .oldb-goal { white-space: nowrap; display: inline-block; } Damit bekommt das Widget ungefähr einen modernen Dark-Mode-/Sports-App-Look. Besonders die heutigen Partien werden leicht grün hinterlegt, während bereits gespielte Begegnungen dezenter bleiben. Ein Punkt ist bei deinem aktuellen HTML allerdings ungünstig: Datum/Uhrzeit und Spiel sind jeweils zwei getrennte <tr>-Zeilen. Dadurch kann man mit reinem CSS nicht ganz so einfach jede Begegnung als perfekte einzelne „Karte“ gestalten. Mit dem vorhandenen Markup kann man aber schon ziemlich viel herausholen. Wenn du es noch etwas hochwertiger möchtest, würde ich zusätzlich die Teamnamen bei dem nur 327 px breiten Widget kleiner bzw. mit Ellipsis behandeln: #w00030 .oldb-full { max-width: 100px; overflow: hidden; text-overflow: ellipsis; } Dann wird beispielsweise ein sehr langer Vereinsname nicht das komplette Layout auseinanderziehen. Ich kann dir auch eine zweite Variante im Bundesliga-/DAZN-Stil mit schwarzen Spielkarten, großen Ergebnissen und farbigem „HEUTE“-Badge bauen. Ergebnis sieht dann so aus, nachdem ich das css einfach in den reiter kopiert habe [image: 2e10fc89-0fc0-42cb-8a57-22aa7aec0460-image.jpeg] da gibt es sicherlich noch verbesserungspotential auch habe ich vergessen der ki zu sagen, das man das html nicht anpassen kann, sondern nur die vorhandenen css regeln überschreiben kann oder das das html dynamisch erzeugt wird und die childs nicht immer das gleiche anzeigen. oder das er eine eigene css klasse definieren soll, die man dann in der widget konfiguration unter General/CSS Class eintragen kann, so zielt es aktuell nur auf die widgetid oder auch habe ich keine detaillierten Design Anweisungen gegeben. noch eine Anmerkung: ich habe die Oberfläche hier auf englisch eingestellt, daher die englische notation von datum und zeit.
  • Musikstatus für Alexa und oder Sonos

    javascript multimedia
    1
    1
    0 Stimmen
    1 Beiträge
    108 Aufrufe
    Niemand hat geantwortet

299

Online

33.1k

Benutzer

84.2k

Themen

1.4m

Beiträge