Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.9k Posts

NEWS

  • Benötige Programmierhilfe Javascript

    communication javascript monitoring
    60
    0 Votes
    60 Posts
    5k Views
    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 Votes
    37 Posts
    3k Views
    W
    @haus-automatisierung Super :+1: Vielen Dank. Klappt einwandfrei.
  • Rückgabewert von async Function festlegen

    6
    0 Votes
    6 Posts
    385 Views
    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 Votes
    21 Posts
    3k Views
    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 Votes
    33 Posts
    2k Views
    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 Votes
    6 Posts
    280 Views
    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 Votes
    8 Posts
    704 Views
    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 Votes
    1 Posts
    96 Views
    No one has replied
  • JSON aktualisieren und täglich speichern

    27
    0 Votes
    27 Posts
    2k Views
    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 Votes
    9 Posts
    368 Views
    B
    Alles gut - eingebaut - aufgespielt - läuft.:+1: :+1: :+1: :+1: :+1: Vielen Dank
  • Mathe-Genie gesucht (Kurvenberechnung)

    132
    1
    0 Votes
    132 Posts
    18k Views
    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 Votes
    5 Posts
    186 Views
    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 Votes
    18 Posts
    998 Views
    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 Votes
    2 Posts
    149 Views
    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 Votes
    3 Posts
    349 Views
    T
    @bahnuhr Danke!!! Variante 1 läuft super!
  • Homematic Thermostat umschalten

    7
    0 Votes
    7 Posts
    586 Views
    paul53P
    @skorpil sagte: noch „:1“ für den Kanal eingeben. Kanal 2.
  • Gelöst !Jsonausgabe von Elecpow in eigene DP schreiben

    10
    0 Votes
    10 Posts
    835 Views
    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 Votes
    4 Posts
    273 Views
    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 Votes
    1 Posts
    1k Views
    No one has replied
  • This topic is deleted!

    0
    0 Votes
    0 Posts
    31 Views
    No one has replied

552

Online

32.6k

Users

82.3k

Topics

1.3m

Posts