Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.9k Beiträge

NEWS

  • Benötige Programmierhilfe Javascript

    communication javascript monitoring
    60
    0 Stimmen
    60 Beiträge
    5k Aufrufe
    OliverIOO
    @TomTom24 Puh das ist schon eine Weile her. Da es keine gute Hersteller Beschreibung gibt haben wir das sozusagen Reverse engineerd Da ich selbst das Gerät nicht besitze war das dann alles per Ferndiagnose Wenn der Hersteller irgendeine Kleinigkeit ändert dann passt es schon nicht mehr.
  • json teilen

    37
    0 Stimmen
    37 Beiträge
    3k Aufrufe
    W
    @haus-automatisierung Super :+1: Vielen Dank. Klappt einwandfrei.
  • Rückgabewert von async Function festlegen

    6
    0 Stimmen
    6 Beiträge
    385 Aufrufe
    F
    @wolfgangfb sagte in Rückgabewert von async Function festlegen: dass der Rückgabetyp richtig gesetzt ist. Die Kringel im Editor sagen nicht aus ob etwas richtig oder falsch ist, sie geben 'nur' einen Hinweis dass etwas falsch sein könnte. Dazu werden xxxxx.d.ts Dateien genutzt in welchen die Funktionen in TypeScript Notation definiert werden. Für den JS-Adapter ist das die javascript.d.ts Datei. Dort ist der Parameter für die setState() Funktion als string definiert. Für Deine Funktion ist jedoch nicht bekannt welchen Typ sie zurückgibt, somit ist dem Editor nicht bekannt dass ein String übergeben wird und er kringelt dann halt Um die Kringel zu unterbinden (nicht empfohlen bzw. nur wenn man weiss was man tut) Ganz zu Beginn deines Skripts // @ts-nocheck eingeben. Dadurch werden die Hinweise für die gesamte Datei abgeschaltet. Unmittelbar über einer Zeile mit Kringeln // @ts-ignore eingeben. Dadurch wird der Hinweis für die nächste Zeile verhindert. xxxxx.d.ts Dateien funktionieren im JS-Adapter m.W. nach nicht. Man kann Funktionen und auch Variablen mit JSDoc ausstatten, dann funktionieren die Hinweise genauso und man könnte auch eine Doku davon erstellen(Google JSDoc) /** * Funktion zur Ermittlung und Erstellung eines Datenpunkts * * @param {string} Datenpunkt der Datenpunkt * @param {string} InitValue Initialwert * @param {string} Klarname der Name des DP * @returns {Promise<string>} gibt ein Promise zurück */ async function CreateIfNotExistsStringAsync(Datenpunkt, InitValue, Klarname) {
  • Js Script für externe MySQL Abfrage

    21
    0 Stimmen
    21 Beiträge
    3k Aufrufe
    ReinerR
    @haus-automatisierung Hallo, also das Ergebnis sieht schon sehr ordentlich aus dank deiner Hilfe. [image: 1677269620736-484405d2-c9fb-4b7b-a496-cd9a17c9a2cf-image.png] Zwei Schönheitsfehler habe ich noch. In der Anzeigenvariante vom Datenpunkt habe ich folgendes eingefügt um die Labels zu ändern: { "Exchange":"Exchange", "market":"Market", "profit":"Profit" } In der Einheit des Datenpunktes habe ich folgendes eingefügt um den Wert ein Prozentzeichen hinzuzufügen: { "profit":"%" } Irgendwie funktioniert aber beides nicht. Dh es ändert sich nichts und es gibt auch keinen Fehler. Vielleicht hast Du noch eine Idee wo ich ansetzen kann.
  • "Heute 0:00 Uhr" eleganter berechen

    33
    0 Stimmen
    33 Beiträge
    2k Aufrufe
    CodierknechtC
    @fastfoot sagte in "Heute 0:00 Uhr" eleganter berechen: da hast Du nunmal ein irre grosses Entwicklungspotential. für die paar Jahre lohnt sich das nicht mehr :grin:
  • Fehlendes Anfaengerwissen

    6
    0 Stimmen
    6 Beiträge
    280 Aufrufe
    CodierknechtC
    @michl Das nochmalige Lesen des Status in Zeile 5 kannst Du Dir sparen. Mit value ist der Wert ja bereits bekannt.
  • [gelöst] Javascript - Datenobjekte vom gewissen Typ abfragen

    8
    2
    0 Stimmen
    8 Beiträge
    704 Aufrufe
    S
    @paul53 sagte in Javascript - Datenobjekte vom gewissen Typ abfragen: const devType = getObject(id).native.TYPE; Perfekt - das hat super funktioniert. const devType = getObject('hm-rpc.1.0000DBE9970815').native.TYPE; console.log("Ausgabe devType: " + devType); Ausgabe: Ausgabe devType: HMIP-SWDO Vielen Dank
  • InfluxDB series löschen

    1
    0 Stimmen
    1 Beiträge
    96 Aufrufe
    Niemand hat geantwortet
  • JSON aktualisieren und täglich speichern

    27
    0 Stimmen
    27 Beiträge
    2k Aufrufe
    Chris76eC
    @paul53 @chris76e sagte in JSON aktualisieren und täglich speichern: Wie kann man das script so ändern das wenn sich der wert vom DP ändert, sich die Daten im JSON aktualisieren und erst um 23:58 Uhr gespeichert werden und dann ein neuer Datensatz anfängt? Das war ja die anfangs Frage.....Dann geht es halt nicht.
  • IP Adresse per mqtt an ioBroker senden?

    9
    0 Stimmen
    9 Beiträge
    368 Aufrufe
    B
    Alles gut - eingebaut - aufgespielt - läuft.:+1: :+1: :+1: :+1: :+1: Vielen Dank
  • Mathe-Genie gesucht (Kurvenberechnung)

    132
    1
    0 Stimmen
    132 Beiträge
    18k Aufrufe
    F
    PV.xlsm Ich hab mal vor Äonen mich mit diesem Thema berschäftigt. Das ganze zu berechnen ist sehr komplex. Die ideale Methode wäre es eine Funktion zu finden, die bei jedem Datum bei jeder Koordinate etc die richtigen Werte ausspuckt. Wenn man das als Formel hätte, und in ein Koordinatensystem eintragen würde, könnte man wie MartyBr durch integration die Fläche = Ertrag berechnen. Aber leider sind das nur ganz ganz grobe Näherungen die die sekundäre Strahlung komplett außer acht lässt. Die lässt sich auch nicht berechnen denn die ist von sehr vielen Faktoren abhängig (Wolkendicke, Beschaffenheit der Wolke (Viel Wasser?), Temperatur, Klarer Himmel (schlecht für anlagen die auf diffuses licht angewiesen sind, zb NO Anlagen im Winter) ;) In dem Excel tool kannst koordinaten eingeben und er berechnet dann die Elevation und den Azimut der Sonne. Mit den Cos Funktionen kannste dann den Einstrahlungswinkel auf die Modulplatten berechnen. Die Solarkonstante ist auf der Erde ca. 1000W/m² (Im Weltraum 1300 ca). Bedenke dass die Kurve immer kleiner ist als die Kurve von der PV, da hier eindeutig die Streustrahlung fehlt!
  • Influx/History getEnabledDPs - wie verwenden?

    5
    0 Stimmen
    5 Beiträge
    186 Aufrufe
    paul53P
    @wolfgangfb sagte: ist hier der Name des Dateenpunktes der Index und der Inhalt "changesOnly" etc? "changesOnly" ist der key (Bezeichner). result['system.adapter.influxdb.0.memRss'][key] liefert den Wert (true). @wolfgangfb sagte in Influx/History getEnabledDPs - wie verwenden?: for of sein? for of liefert den Inhalt eines Arrays.
  • Wie den vorherigen Wert von Datenpunkt setzen?

    18
    1
    0 Stimmen
    18 Beiträge
    1k Aufrufe
    M
    @paul53 genau - wenn ich "einmalig" drücke soll das ja auch so sein. Wenn hingegen (aus welchen Gründen auch immer) länger Luxus an sein soll, dann würden wir den Mode komplett ändern. Von daher macht es keinen Sinn, dass sich auch bei Mode = Luxus automatisch "einmalig" aktiviert. Aber danke für deine Anregung, im ersten Moment fand ichs richtig gut :)
  • Zahlenwert begrezen, elegantere Lösung gesucht

    2
    0 Stimmen
    2 Beiträge
    149 Aufrufe
    M
    @wolfgangfb Ob das eleganter ist ? Schwer zu sagen. NeuePosition = isNaN(NeuePosition) ? 0 :Math.min(Math.max(0,NeuePosition),100);
  • [gelöst] mehrere Datenpunkte mit Js erstellen

    3
    0 Stimmen
    3 Beiträge
    351 Aufrufe
    T
    @bahnuhr Danke!!! Variante 1 läuft super!
  • Homematic Thermostat umschalten

    7
    0 Stimmen
    7 Beiträge
    587 Aufrufe
    paul53P
    @skorpil sagte: noch „:1“ für den Kanal eingeben. Kanal 2.
  • Gelöst !Jsonausgabe von Elecpow in eigene DP schreiben

    10
    0 Stimmen
    10 Beiträge
    836 Aufrufe
    T
    @mikewolf Hallo, habe auch den Elecpow 2.0a und will diesen für Balkonkraftwerke nutzen. Die Daten werden in einem einzigen Json-String vom Elec (MQTT im ioBroker) angeliefert. Würde die Daten in einzelne Datenpunkte gerne zerlegen und speichern, somit Grafana zur Verfügung stellen. Funktioniert das Script? Wie könnte ich dieses für meine Zwecke verwenden? Sind natürlich die gleichen Punkte. {"ENERGY":{"Total":399.454,"Yesterday":2.708,"Today":2.665,"PowerPeakTotal":1591.4,"PowerPeakYesterday":499.6,"PowerPeakToday":483.2,"Power":69.7,"ApparentPower":63.4,"ReactivePower":0.0,"Factor":1.00,"Voltage":233.90,"Current":0.271}} Danke für die Mühen. mfg Herbert
  • Aufzählung, Script wird bei Änderungen nicht neu gestartet

    4
    0 Stimmen
    4 Beiträge
    273 Aufrufe
    Matze RM
    Hi, @paul53 ich habe es dank dir hinbekommen. Ich hatte bei der Erstellung der Aufzählungs Kategorie Name und Id unterschiedlich benannt. Bei dem Datenpunkt wurde unter function der Name gezeigt aber für Selektor eine on funktion,braucht man die ID , da hatte ich mich vertan. @bahnuhr , Cooles script ,aber das muss ich erstmal langsam analysieren was da alles passiert. Das wird interessant wenn ich dann alle Shellys , also Dimmer RGB2 shelly 1 etc. überwachen mus, dann werde ich wohl mist dem kleinen Programm nicht hinkommen. Also danke euch beiden, ihr habt mir sehr geholfen LG MR
  • MyStrom Switch ohne Cloud

    1
    1 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Dieses Thema wurde gelöscht!

    0
    0 Stimmen
    0 Beiträge
    31 Aufrufe
    Niemand hat geantwortet

656

Online

32.6k

Benutzer

82.3k

Themen

1.3m

Beiträge