Weiter zum Inhalt

JavaScript

2.5k Themen 49.2k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • java in blockly

    blockly
    3
    0 Stimmen
    3 Beiträge
    414 Aufrufe
    D
    @homoran Hallo, Ahhhhhhhhh...... darauf bin ich nicht gekommen :( Hab es damit hin bekommen, D A N K E !!! mfg Digi-Bit
  • Accesspoint per SSH auslesen

    21
    0 Stimmen
    21 Beiträge
    2k Aufrufe
    OliverIOO
    @deachte ich würde nun nicht gerade eine bibliothek nehmen, bei der der autor selber schon sagt, das er nicht mehr dran arbeitet. daher kannst da auch nicht so richtig nachfragen besser wäre https://www.npmjs.com/package/ssh2 mit fast 2 mio downloads wöchentlich wenn ich nach deiner fehlermeldung suche, dann finde ich https://github.com/mscdex/ssh2/issues/427 da simple-ssh ebenfalls auf ssh2 aufsetzt, könnte das eine lösung sein hier im forum gibt es allerdings auch wohl funktionierende skripts mit simple-ssh und, so wie schon angemerkt, die skripts und befehle werden unter iobroker als benutzer iobroker ausgeführt. wenn du nun auf der sudo -u iobroker bash eingibst, kannst du dann dein putty befehl nochmal ausprobieren. dann siehst du ob da etwas anders ist
  • [gelöst] Wert nur schreiben, wenn sich dieser geändert hat

    13
    0 Stimmen
    13 Beiträge
    760 Aufrufe
    T
    @paul53 sagte in [gelöst] Wert nur schreiben, wenn sich dieser geändert hat: @ticaki sagte: gibt dieses Ergebnis: Die Verwendung von Variablen ist immer effizienter als der Aufruf einer komplexen Funktion. Das ist klar, aber 5 mal effizienter ist dann doch ne Ansage. :) wobei es zwischen 2 mal schneller und 12 mal schneller schwankt. Bei 10000 Durchläufen ist es Faktor 7
  • Bitte Programmierhilfe

    64
    0 Stimmen
    64 Beiträge
    8k Aufrufe
    paul53P
    @skorpil sagte: Was bedeutet .ts Das ist der Zeitstempel (timestamp). Darüber wird ermittelt, was zuletzt gesendet wurde: Ein oder Aus.
  • Script Problems javascript Instanz

    21
    0 Stimmen
    21 Beiträge
    598 Aufrufe
    paul53P
    @ticaki sagte: Würde aber zu einer Empfehlung in der Doku raten. PR auf Github ist erstellt.
  • sendToAsync lässt Javascript Instanz anhalten

    5
    0 Stimmen
    5 Beiträge
    368 Aufrufe
    T
    @haus-automatisierung Oh doch, muß aber gestehen dass das ca. 1.5 Jahre her ist. Ihr habt recht, es war setStateAsync() und den "Fehler" hab ich gerade reproduziert. Hat die Instanz angehalten. :) Hab mich falsch erinnert sry.
  • Frage zu common.alias.read

    3
    0 Stimmen
    3 Beiträge
    289 Aufrufe
    T
    @paul53 Danke dann überlege ich mir was anderes :)
  • Wo ist der Fehler?

    19
    0 Stimmen
    19 Beiträge
    1k Aufrufe
    S
    @paul53 ich verstehe
  • Frage zu history adapter

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    645 Aufrufe
    T
    @paul53 Läuft jetzt. Mir war aufgefallen, dass die "end" deklarierung noch außerhalb vom timer lag. Da kam dann natürlich über Laufzeit nichts sinnvolles bei rum. Mit diesem Code läuft es jetzt... var Liste = Array(16).fill(0), i; schedule("* * * * *", async () => { var end = Date.now(); sendTo('history.0', 'getHistory', { id: 'modbus.0.inputRegisters.30775_Wirkleistung_Gesamt', options: { start: end - 60000, end: end, aggregate: 'average', count: 1, ignoreNull: 0 } }, function (data) { Liste = getState('javascript.0.AWTRIX.BAR_PV').val; Liste.shift(); Liste.push(data.result[1].val); setState('javascript.0.AWTRIX.BAR_PV', Liste); }); }); Nochmals vielen Dank für den Support. Ohne dich hätte ich es nicht gelöst!
  • Summe auf zwei Nachkommazeichen begrenzen

    5
    0 Stimmen
    5 Beiträge
    431 Aufrufe
    M
    Dankeschön euch beiden
  • Änderungszeit von einem Objekt

    6
    0 Stimmen
    6 Beiträge
    446 Aufrufe
    S
    @cash herzlichen Dank für die Info. Interessantes Konzept. Ich nutze z.Zt. hm_pdetect auf der CCU zur Anwesenheitserkennung. pdetect Dieser Dienst reagiert auf die An- und Abmeldung im wlan der FRITZ!Box. Das funktioniert gut und ist kostenfrei. Die Koppelung mit einem BewMldr, um dann das Garagentor zu öffnen, ist eine geniale Idee. Daran muss ich mich auch versuchen. ;-)
  • Javascript Adapter V7

    4
    0 Stimmen
    4 Beiträge
    361 Aufrufe
    paul53P
    @cash sagte: JSONata ist eine leistungsstarke Daten-Transformations-Sprache ..., in die man sich erst einmal einarbeiten muss, um sie nutzen zu können.
  • Datenpunkt vom Typ Array States löschen

    11
    0 Stimmen
    11 Beiträge
    705 Aufrufe
    R
    Hallo @paul53 es funktioniert Nochmals vielen Dank für Deine Unterstützung.
  • Please move the states to 0_userdata.0.*

    Verschoben
    56
    0 Stimmen
    56 Beiträge
    7k Aufrufe
    A
    @apollon77 @RaBu60 ich denke das ist dasselbe verhalten über das ich gerade gestolpert bin. Hoffe mein issue dazu passt soweit https://github.com/google/blockly/issues/7232
  • In einer Funktion auf Änderung eines Datenpunkts warten

    8
    0 Stimmen
    8 Beiträge
    553 Aufrufe
    ?
    @paul53 Danke für die Überarbeitung. Das sieht doch wesentlich kompakter aus Ja, toLog() ist eine globale Funktion, die mir eine Aktivitätsliste füllt und gleichzeitig einen Log-Eintrag erstellt. Da neben der Steuerung des Tors in dem eigentlichen Script noch die Regelung eines Lüfters drin ist, hier mal der aktuelle Stand des gesamten Scripts: /* ** ** Steuerung Garage ** */ var cronVal = '*/15 * * * *'; var numMinDuration = 30; var dpAussenTemperatur = 'hm-rpc.0.00XXXXXXXXXXEF.1.ACTUAL_TEMPERATURE'; var dpAussenFeuchtigkeit = 'hm-rpc.0.00XXXXXXXXXXEF.1.HUMIDITY'; var dpGarageFeuchtigkeit = 'hm-rpc.0.00XXXXXXXXXX5F.1.HUMIDITY'; var dpGarageLuefter = 'hm-rpc.0.00XXXXXXXXXX9D.3.STATE'; const dpGarageDoorOpen = '0_userdata.0.Trigger.TriggerGarageDoorOpen'; const dpGarageDoorClose = '0_userdata.0.Trigger.TriggerGarageDoorClose'; const dpGarageDoorStatus = '0_userdata.0.Trigger.TriggerGarageDoorStatus'; const dpGarageDoorState = 'hm-rpc.0.00XXXXXXXXXXF7.1.DOOR_STATE'; const dpGarageDoorCommand = 'hm-rpc.0.00XXXXXXXXXXF7.1.DOOR_COMMAND'; var doorState = getState(dpGarageDoorState).val; /* ** Create Datapoints */ createState(dpGarageDoorOpen, false, { name: 'TriggerGarageDoorOpen', desc: 'TriggerGarageDoorOpen', type: 'boolean', role: 'state' }); createState(dpGarageDoorClose, false, { name: 'TriggerGarageDoorClose', desc: 'TriggerGarageDoorClose', type: 'boolean', role: 'state' }); createState(dpGarageDoorStatus, '-', { name: 'TriggerGarageDoorStatus', desc: 'TriggerGarageDoorStatus', type: 'string', role: 'value' }); /* ** Subscriptions */ schedule(cronVal, function() { if(getState(dpGarageLuefter).val === false) { if(getState(dpGarageFeuchtigkeit).val > getState(dpAussenFeuchtigkeit).val) { if(getState(dpAussenTemperatur).val > 5) { if(getState(dpAussenTemperatur).val < 20) { var numMilSecsDur = numMinDuration * 60000; var endTime = Date.now() + numMilSecsDur; setState(dpGarageLuefter, true); toLog('Garagenbelüftung eingeschaltet (Dauer: ' + numMinDuration + ' - Lf: ' + getState(dpGarageFeuchtigkeit).val + '%)'); var sHandler = schedule(endTime, function () { setState(dpGarageLuefter, false); toLog('Garagenbelüftung ausgeschaltet (Lf: ' + getState(dpGarageFeuchtigkeit).val + '%)'); clearSchedule(sHandler); }); } } } } }); on ({id: dpGarageDoorOpen, change: 'ne', val: true}, function () { if(doorState != 1) { setState(dpGarageDoorCommand, 1); setState(dpGarageDoorStatus, 'wird geöffnet', true); } setState(dpGarageDoorOpen, false, true); }); on ({id: dpGarageDoorClose, change: 'ne', val: true }, function () { if(doorState > 0) { setState(dpGarageDoorCommand, 3); setState(dpGarageDoorStatus, 'wird geschlossen', true); } setState(dpGarageDoorClose, false, true); }); on (dpGarageDoorState, function (dp) { doorState = dp.state.val; let msg = ''; if(doorState === 0) { msg = 'geschlossen'; } else if(doorState === 1) { msg = 'offen'; } if(msg) { setState(dpGarageDoorStatus, msg, true); toLog('Das Garagentor ist ' + msg); } }); Vielleicht kann der eine oder andere davon etwas gebrauchen. Viele Grüße Levy
  • Hue Panel mit HmIP Schalter

    14
    0 Stimmen
    14 Beiträge
    824 Aufrufe
    P
    @paul53 Das heißt, ich setze den HmIP-Schalter zwar unter Strom (damit er empfängt und sendet), trenne die Hue vom Schalter und bypasse die Hue auf "ständig Strom". Und anschließend dann dein Script (bei mir sind es Alias-DP) für das harte Schalten, wenn einer der Taster analog bedient wird. Alles klar, jetzt habe ich es verstanden. Besten Dank für deine Mühe!!
  • Verständnisfrage: Lineares Abarbeiten von Funktionen

    node-red javascript
    4
    2
    0 Stimmen
    4 Beiträge
    404 Aufrufe
    T
    @shai0hulud sagte in Verständnisfrage: Lineares Abarbeiten von Funktionen: Hichi-Lesekopf Das hab ich ehrlich gesagt aufgegeben. Ich mache das mit Grafana und Influx, die Anzeigen die etwas berechnen sind immer mindestens auf 1 Minute zusammengefasst. Bei Echtzeit werden nur Werte angezeigt und zwar nicht genug um nachrechnen zu können. Solarstrom - Einspeisung + Bezug - gemessener Verbrauch = sonstiger Verbrauch (- 2kw) wtf. Wer hat da ein ein paar Balkonkraftwerke auf gestellt :) Meine Aktualisisierungraten sind: SMA 1sec shelly 5 sec tasmota 10 sec (oder powerdelta) fritzboxDect(ne minute?)
  • MQTT Json

    9
    0 Stimmen
    9 Beiträge
    748 Aufrufe
    R
    Danke, so hat es jetzt auf Anhieb funktioniert. Jetzt werde ich mit dem Script noch etwas tüfteln.
  • [gelöst] shelly object.common.name lässt sich nicht ändern

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    654 Aufrufe
    HomoranH
    @ticaki sagte in [gelöst] shelly object.common.name lässt sich nicht ändern: Aber am Ende hab ich durch verschieben was gelernt das ist ja der Sinn des Verschiebens Dadurch erreicht man die Leute wesentlichbesser, die da wirklich helfen können,
  • e3dc wallbox multi connect: modbus register

    3
    0 Stimmen
    3 Beiträge
    399 Aufrufe
    M
    @derfred ja, ich denke die Register rückt e3dc nicht raus. Schade, denn so kann man viel weniger selbst regelt. Vor allem, da einiges nicht optimal funktioniert.

401

Online

32.8k

Benutzer

82.6k

Themen

1.3m

Beiträge