Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.6k Beiträge

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    J
    Hallo, anbei das nun fertige Skript im ersten Post.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    paul53P
    @tiobb [sagte]: wie kann man das lösen? Wenn man Werte auswertet, macht es keinen Sinn, diese im Minutentakt abzufragen. Man sollte auf die Datenpunkte triggern (mit "ist kleiner als letztes"). Dann muss man auch nicht die Meldung basteln, denn auch wenn auf eine Liste von IDs getriggert wird, kann immer nur ein DP zur gleichen Zeit triggern. EDIT: Prinzip mit 3 Sensoren: [image: 1784910380833-blockly_temp.jpg] Wenn die Batteriespannung weiter sinkt, werden erneut Meldungen erzeugt. Will man das nicht, muss man auch den vorherigen Wert prüfen: [image: 1784913791255-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    961 13k
    961 Themen
    13k Beiträge
    Marc BergM
    Man kann einen Flow von außen neu starten, indem man ihn per API deaktiviert und wieder aktiviert. Nicht sehr elegant, aber geht. Hier ein Flow dazu, das könnte man auch im Skript abbilden (hostname und Flow-ID im Inject Node anpassen: [ { "id": "0101b52dd8b0e69c", "type": "inject", "z": "tab_restart", "name": "Flow neu starten", "props": [ { "p": "baseUrl", "v": "http://nuc.fritz.box:1880", "vt": "str" }, { "p": "flowId", "v": "56a35d28dbb8d4c1", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": "", "topic": "", "x": 160, "y": 140, "wires": [ [ "ffb73632947a1b74" ] ] }, { "id": "ffb73632947a1b74", "type": "http request", "z": "tab_restart", "name": "GET /flow/:id", "method": "GET", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 370, "y": 140, "wires": [ [ "78e47724692d9c26" ] ] }, { "id": "78e47724692d9c26", "type": "change", "z": "tab_restart", "name": "deaktivieren", "rules": [ { "t": "set", "p": "flow", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "flow.disabled", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "payload", "pt": "msg", "to": "flow", "tot": "msg" }, { "t": "set", "p": "headers", "pt": "msg", "to": "{}", "tot": "json" }, { "t": "set", "p": "headers.content-type", "pt": "msg", "to": "application/json", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 570, "y": 140, "wires": [ [ "b570b346c80301a6" ] ] }, { "id": "b570b346c80301a6", "type": "http request", "z": "tab_restart", "name": "PUT (aus)", "method": "PUT", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 770, "y": 140, "wires": [ [ "a062c2baa0932d3e" ] ] }, { "id": "a062c2baa0932d3e", "type": "delay", "z": "tab_restart", "name": "1s warten", "pauseType": "delay", "timeout": "1", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "outputs": 1, "x": 960, "y": 140, "wires": [ [ "664a32887d83b305" ] ] }, { "id": "664a32887d83b305", "type": "change", "z": "tab_restart", "name": "aktivieren", "rules": [ { "t": "set", "p": "flow.disabled", "pt": "msg", "to": "false", "tot": "bool" }, { "t": "set", "p": "payload", "pt": "msg", "to": "flow", "tot": "msg" }, { "t": "set", "p": "headers", "pt": "msg", "to": "{}", "tot": "json" }, { "t": "set", "p": "headers.content-type", "pt": "msg", "to": "application/json", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 140, "y": 220, "wires": [ [ "83d399c90d46240f" ] ] }, { "id": "83d399c90d46240f", "type": "http request", "z": "tab_restart", "name": "PUT (ein)", "method": "PUT", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 320, "y": 220, "wires": [ [ "529c0e1896d1f278" ] ] }, { "id": "529c0e1896d1f278", "type": "debug", "z": "tab_restart", "name": "Ergebnis", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 480, "y": 220, "wires": [] } ]
  • Probleme mit Shelly 2PM Plus im Cover Mode

    2
    1
    0 Stimmen
    2 Beiträge
    677 Aufrufe
    paul53P
    @grisu73 Log-Ausgaben bitte in Code tags posten. Current position unknown! Offenbar hat die Kalibrierung nicht geklappt. Die Endlagenschalter sind mit eingebunden? Siehe hier. Welche Laufzeit hat der Stellantrieb? @grisu73 sagte in Probleme mit Shelly 2PM Plus im Cover Mode: PI-Regler (3-Punkt Regler) Der programmierte PI-Regler ist ein analoger Regler (Ausgang 0 - 100%). Der Shelly macht aus dem Analogsignal eine 3-Punkt-Ansteuerung des Stellantriebs. EDIT: Lässt sich der Antrieb über "Open", "Close" und "Stop" steuern?
  • blockly Skript Müllkalender telegram

    6
    0 Stimmen
    6 Beiträge
    442 Aufrufe
    CluniC
    @haus-automatisierung Hmmmm - ok. Konnte daraus nicht schlau werden.
  • einfache ein/aus schaltung eines shelly objekts über blockly

    blockly javascript
    3
    1
    0 Stimmen
    3 Beiträge
    391 Aufrufe
    L
    @paul53 sagte in einfache ein/aus schaltung eines shelly objekts über blockly: @ltsalvatore Wechselt der Datenpunkt "pressed double" zwischen false und true? Dann ändere den Trigger auf "ist wahr". [image: 1696107369070-blockly_temp.jpg] danke paul53. genau da war der denkfehler bzw. habe ich nun verstanden, dass der wert auf wahr gesetzt werden muss, wen ein objekt automatisch den zustand von true wieder auf false setzt, da sonst der trigger für beide zustände ausgelöst wird. :-) und danke auch für den tipp mit dem "umschalten" anstelle der if abfrage. 👍👍😊
  • Modbus Adapter Formeln

    6
    0 Stimmen
    6 Beiträge
    664 Aufrufe
    Maik KrauseM
    Vielen Dank! Habe es nun so gelöst das im Modbus Adapter der Faktor steht und über Alias die negativen Werte ignoriert werden!
  • Wärmemenge berechnen

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    HomoranH
    @merbes klingt fast so, wie in den letzten Jahren bei mir. Ich denke die Art Wärmemengenbereechnung hat deutlich mehr Unwägbarkeiten, als wenn du tatsächlich nur mit dem Gasverbrauch die verbrauchte Energie berechnest. Hab ich mit der esp32cam gemacht und alke 3 Minuten den Zählerstand ausgelesen und über Brennwert die verbrauchte Energie errechnet. Den Abgasverlust habe ich ignoriert, um noch ein wenig Spielraum für die WP zu haben.
  • Adapter aWATTar mit zwei Zeiträumen

    12
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    paul53P
    @judisi sagte: hab ich in der Instanz aWATTar1 eingegeben, dass um 19:05 nur die Preise von 22:00 bis 18:00 beachtet werden sollen. [image: 1695816526888-blockly_temp.jpg] Es wird noch kein Gerät geschaltet.
  • Kann man einem Datenpunkt eine flexible Werteliste zuweisen?

    30
    0 Stimmen
    30 Beiträge
    3k Aufrufe
    T
    @mickym sagte in Kann man einem Datenpunkt eine flexible Werteliste zuweisen?: Ich glaube das wirst Du Pech haben - man kann nicht mal mit Javascript die enums modifizieren. Vielleicht verstehe ich dich falsch jedoch mit dieser Funktion: async function addToEnum(enumName, newStateId) { if (!await existsObjectAsync(newStateId)) { log(newStateId + ' not exist!', 'warn') return false; } let myEnum = await getObjectAsync(enumName); if (myEnum) { let pos = myEnum.common.members.indexOf(newStateId); if (pos === -1) { try { myEnum.common.members.push(newStateId); myEnum.from = "system.adapter." + "0"; myEnum.ts = new Date().getTime(); await setObjectAsync(enumName, myEnum); return true; } catch (e) {log(e + ' add id: ' + newStateId,'error')} } } return false; } kannst du einem enum ein neues Mitglied verpassen.
  • Zeitangabe von h:m in m umrechnen

    13
    1
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    S
    @homoran sagte in Zeitangabe von h:m in m umrechnen: @stefanrs sagte in Zeitangabe von h:m in m umrechnen: Hat funktioniert du bist noch ein paar Antworten schuldig! Was war los? Es lag am Blockly. Ich habe es so aufgebaut wie dein Blockly und dann ging es.
  • anzahl gestoppter instanzen / wert vorhanden?

    blockly template javascript
    5
    0 Stimmen
    5 Beiträge
    676 Aufrufe
    L
    @shadowhunter23 sagte in anzahl gestoppter instanzen / wert vorhanden?: @ltsalvatore device-watcher kann anzeigen wie viele Adapter gestoppt sind https://github.com/ciddi89/ioBroker.device-watcher/blob/main/README.md [image: 1694842481089-screenshot_2023-09-16-07-33-53-935_com.android.chrome-edit.jpg] hi.. ich wollte nur kurz einmal danke sagen für den tipp mit dem adapter. zuerst war ich skeptisch und wollte nicht noch einen weiteren adapter installieren, und stattdessen das ganze mit skripts lösen. aber der apdater hat echt einiges zu bieten und hat auch dazu geführt, dass ich sogar weitere skripts und selbst angelegte datenpunkte komplett löschen konnte. danke nochmal 👍😊
  • Astrozeiten nicht aktualisiert

    Verschoben
    31
    3
    0 Stimmen
    31 Beiträge
    1k Aufrufe
    HomoranH
    @mcm57 erledigt
  • S0 Zähler einbinden mit BananaPi M5 (Ohne GPIO)

    2
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    HomoranH
    @stefan-falt sagte in S0 Zähler einbinden mit BananaPi M5 (Ohne GPIO): zu einem Wiki lozen https://www.bundesnetzagentur.de/DE/Beschlusskammern/BK06/BK6_83_Zug_Mess/835_mitteilungen_datenformate/Mitteilung_26/Anlagen/Codeliste_OBIS_24a.pdf?__blob=publicationFile&v=1
  • Messdaten werden vom Tasmotagerät nicht mehr "erkannt"

    5
    0 Stimmen
    5 Beiträge
    579 Aufrufe
    ?
    @raspido also ich habe den Sonoff ohne separaten mqtt, da sich ja einer im Adapter befindet. Dabei in tasmota die Daten passend und fertig. Hat unter Objekte je Sensorwert einen DP
  • Meldung zu bestimmter Zeit

    14
    2
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    M
    Danke @Homoran ich weiß zwar nicht woran es jetzt gelegen hat, aber jetzt klappt alles wieder. Was ich gemacht habe: die Systemzeit kontrolliert (Console) die Systemzeit mit Absicht verstellt die Zeitzone erneut definiert jetzt klappt alles wie gewünscht. danke
  • Witterungsgeführte Vorlauftemperatur

    14
    0 Stimmen
    14 Beiträge
    3k Aufrufe
    O
    @paul53 said in Witterungsgeführte Vorlauftemperatur: @olek_michdoch sagte: Muss da was am PI regler verstellt werden? Wenn die Regelung instabil ist, vergrößere den Wert von Xp (z.B. 50). @olek_michdoch sagte in Witterungsgeführte Vorlauftemperatur: Der VLT-Istwert wird alle 10sek. vom Shelly abgerufen. Dann kann Tn sicherlich auf 20 verringert werden? @paul53 Ok habe Xp auf 50 geändert und Tn auf 20 geändert. Werde berichten wie es sich verhält
  • [gelöst] Wert wird in State geschrieben

    21
    0 Stimmen
    21 Beiträge
    2k Aufrufe
    paul53P
    @ben1983 sagte: Funktioniert einwandfrei. So ist der richtige Umgang mit einem DP vom Typ "json". Bei einem DP vom Typ "array" übernimmt der Javascript-Adapter die Wandlung von und nach JSON.
  • Werte aus Google FIT abfragen

    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    WszeneW
    @haus-automatisierung sagte in Werte aus Google FIT abfragen: @diginix sagte in Werte aus Google FIT abfragen: Hätte gedacht du hast vllt eine Smartwatch Apple Watch Diese kann auch zu Google Fit syncen
  • Parser: Regex hilfe .... erstes, zweites, drittes Ergebnis

    7
    0 Stimmen
    7 Beiträge
    697 Aufrufe
    S
    @homoran perfekt! Danke !! (bin ein absoluter JSON newbie :-) )
  • Wo ist Frage an Alexa

    8
    3
    0 Stimmen
    8 Beiträge
    750 Aufrufe
    NewpicselN
    Moin @mico Es gibt mittlerweile ein fix für den Alexa Adapter, hast dein Blockly damit schon getestet? Ich schätze damit sollte es klappen aber wäre dennoch interessant. Schöne Grüße
  • Blockly - Funktionen global verfügbar machen

    5
    0 Stimmen
    5 Beiträge
    525 Aufrufe
    F
    @paul53Hi, das ist ein super Beispiel, vielen Dank. Ich hab damit schon erste Versuche unternommen. Ich bin allerdings nicht der Javaexperte und muss mich noch reinfuchsen. Ich werde noch herausfinden müssen wie man dann noch Werte an die Globale Funktion dann noch übergibt. Vielen Dank erst einmal.
  • [ Geklärt ]Wärmepumpe mittels Heishamon Topic ansteuern

    blockly
    2
    3
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    dogfight76D
    @altersrentner Hallo, hast du über Heishamon und ioBroker deine Visalisierung gemacht ?

191

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge