Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.5k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    P
    Hi @Schimi , danke für das Skript. Ich glaube, es gibt einen kleinen Bug bei den stündlichen Daten. Die Werte für die ersten beiden Stunden des Tages werden falsch zugeordnet. Zum Debuggen habe ich das Skript angepasst und den Datenpunkt "from" mitschreiben lassen. Da ergibt sich folgendes Bild: 0_userdata.0.wetter_com.day_0.hourly.23.from = 2026-04-25T21:00:00Z 0_userdata.0.wetter_com.day_1.hourly.00.from = 2026-04-26T22:00:00Z 0_userdata.0.wetter_com.day_1.hourly.01.from = 2026-04-26T23:00:00Z 0_userdata.0.wetter_com.day_1.hourly.02.from = 2026-04-26T00:00:00Z Die TImestamps sind ja UTC, also 2h Versatz zu Deutschland. Die Uhrzeiten sind alle ok, aber bei 00:00 und 01:00 Uhr stimmt das Datum nicht. Da müsste als Tag der 25. drin stehen.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    Gestern war bei VolMax 3,54V Ladeende 100%, das Entladen stoppt halt dann doch relativ bald wenn ich bei Volmin 3,16V stoppe, aber wird wohl Sinn machen. Damit es ein bisschen hinausgezögert wird habe ich aber aktuell schon von 40% (500W) bis 10% verlaufend das Entladelimmit bis zu nur noch maximal 200W runtergesetzt.
  • Hilfe für Skripterstellung mit Node-RED

    955 13k
    955 Themen
    13k Beiträge
    mickymM
    @Tontechniker Man kann solche Filter aber auch OHNE neue Nodes zu installieren mit einfachen Standard-Switch Nodes realisieren: [image: 1776865319208-af3cab3c-2716-43f4-b7df-7f74e8bf051b-image.jpeg] ggf. einfach nochmal meinen alten Thread anschauen: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
  • Garagentorsteuerung

    7
    1
    0 Stimmen
    7 Beiträge
    568 Aufrufe
    W
    @paul53 Funktioniert super. Danke danke
  • Cron/schedule Wochentage per Variable klappt nicht

    12
    1
    0 Stimmen
    12 Beiträge
    383 Aufrufe
    R
    @bahnuhr kapiert, danke - will try it this way.
  • Ringspeicher für Meldungen?

    3
    0 Stimmen
    3 Beiträge
    375 Aufrufe
    M
    vielen dank, jedoch ist mir dein Script dafür zu mächtig :) habe es jetzt so gebaut [image: 1664704793202-screenshot-2022-10-02-115846.png]
  • [gelöst] Blockly Trigger "Astro" und "wurde geändert" - wie?

    6
    1
    0 Stimmen
    6 Beiträge
    173 Aufrufe
    R
    @homoran @homoran sagte in [gelöst] Blockly Trigger "Astro" und "wurde geändert" - wie?: jetzt kannst du noch mit dem Offset bei Sonnenauf- und Untergang ein wenig Finetuning betreiben.
  • Shelly Duo rgbw Mode

    8
    1
    0 Stimmen
    8 Beiträge
    294 Aufrufe
    ?
    @mickym Stimmt, garnicht gesehen. Ich werde es Mal testen.
  • String in einzelne Datenpunkte teilen MQTT

    4
    0 Stimmen
    4 Beiträge
    494 Aufrufe
    paul53P
    @xxxspxxx sagte: das müsste so passen. Ja, es geht aber einfacher, da weder "nach Zahl" noch "JSON nach Objekt" benötigt werden. [image: 1664541362746-bild_2022-09-30_143602486.png] Die Variable value muss genau so geschrieben werden.
  • Doppelte Benachrichtigung bei Telegram

    blockly
    43
    2
    0 Stimmen
    43 Beiträge
    4k Aufrufe
    N
    @blizzardt vielleicht so [image: 1664452553131-106c28a0-a176-4dae-933d-c94aebaa5f53-grafik.png]
  • [Vorlage] Blockly heute/morgen frei zur Rollo-/Heizungsst.

    Verschoben blockly template
    24
    2
    1 Stimmen
    24 Beiträge
    6k Aufrufe
    rantanplanR
    @hotspot_2 sagte in [Vorlage] Blockly heute/morgen frei zur Rollo-/Heizungsst.: Hallo zusammen, ich habe bei mir dieses Skript auch installiert, und die Variable "morgen_frei" wird nicht initialisiert automatisch. Inititiert man die Variable z.B. manuell dann funktioniert das Skript einwandfrei aus meiner Sicht. Würde es Sinn machen es so abzuändern: [image: 1664278883252-1e2379d8-f8ca-4c85-a586-2ecfeeed8916-image.png] Ich meine das sollte hinhauen auch wenn morgen dann ein freier Tag wäre sollte der dann richtig gesetzt werden. Was meint ihr? Kann man so machen. Habe ich "damals" wohl übersehen. Ich würde die Abfrage eventuell ausserhalb des Triggers machen. Dann wird es nur einmal beim Script-Start ausgeführt. (Sorry für's aus der Versenkung holen, ich finde das Skript aber echt gut für einige Anwendungsfälle). Schön dass es gefällt Grüße
  • Skript für Klima funktioniert nicht.

    7
    3
    0 Stimmen
    7 Beiträge
    726 Aufrufe
    A
    @paul53 Super, guter Hinweis. Cool. Danke.
  • Skript ändert Logik bei Uhrzeitenwechsel nicht

    26
    1
    0 Stimmen
    26 Beiträge
    2k Aufrufe
    Z
    @paul53 kaum isit die Logangabe drin, läuft es. Komisch Wobei ich die Zeit auch auf 5 sek verkürzt habe. Werde die Tage noch einmal testen. Danke!!
  • Homematic Heizkörperthermostate gehen in Auto-Modus

    9
    0 Stimmen
    9 Beiträge
    519 Aufrufe
    Jens KatheJ
    @david-g Der Spaß es selbst zu machen ;-)
  • [Vorlage] Multi Ereignislisten Skript

    Verschoben javascript template
    112
    3 Stimmen
    112 Beiträge
    24k Aufrufe
    Martin BlankM
    @liv-in-sky Wow das nenn ich mal eine sehr gute Erklärung da. Ok dann werde ich es weiter mit dem Adapter versuch.
  • time-switch Adapter / Bedingung

    1
    0 Stimmen
    1 Beiträge
    205 Aufrufe
    Niemand hat geantwortet
  • Iframe2Image

    3
    0 Stimmen
    3 Beiträge
    341 Aufrufe
    H
    @djmarc75 VIelen DANK :-)
  • Skript schaltet selber um, obwohl Bedinung nicht vorhanden.

    5
    1
    0 Stimmen
    5 Beiträge
    186 Aufrufe
    stefu87_CHS
    @dr-bakterius Ok werde ich mal testen ob das besser funktioniert.
  • HTTP API Doorbird was läuft hier falsch.

    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    B
    @mcu Lääääuft !!!!!!! Danke Danke Danke DANKE !
  • Shelly1 mit Shelly Motion und Alexa verbinden?

    1
    0 Stimmen
    1 Beiträge
    262 Aufrufe
    Niemand hat geantwortet
  • Aus History Adapter Mittelwert erhalten

    javascript
    4
    0 Stimmen
    4 Beiträge
    643 Aufrufe
    Andre WippichA
    Danke Euch!
  • Blockly: auf Werte einer Liste zugreifen

    blockly
    24
    1
    0 Stimmen
    24 Beiträge
    12k Aufrufe
    Stephan SchleichS
    @paul53 Danke Paul, 1 Sekunde Pause direkt nach dem Trigger hat das Problem gelöst, sehr komisch und unverständlich für mich, aber läuft wieder
  • MQTT get und set anlegen für zigbee2mqtt

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    Q
    da ich bei mir die einzelnen attribute und kein komplettes json ausgeben lasse, hat mir das hier nicht wirklich weitergeholfen, aber schon ein wenig inspiriert. hier mal mein erster schnellschuss - bisher funktioniert alles, kann aber sicher noch etwas verbessert werden (datentyp, min/max-werte): const mqtt = "mqtt.0"; const topic = "zigbee2mqtt"; const zigbee2mqtt = mqtt +"."+ topic; const doNotGenerateSetStates = ["update-state", "availability", "linkquality"] const doNotOverwriteExistingObjects = false; var devices = JSON.parse(getState(zigbee2mqtt +".bridge.devices").val); devices.forEach(device => { if (device.friendly_name.length > 0) { var device_name = device.friendly_name.replaceAll("/", ".") console.log(device_name) //console.log({device}) if (device.type.toLowerCase() === "router") { console.log("ist router") var datapointBase = zigbee2mqtt + "." + device_name; if (existsObject(datapointBase)) { console.log(datapointBase + " existiert") var getPoints = $('[state.id=' + datapointBase + '.*]') //console.log({getPoints}) getPoints.each(function (id, i) { if (existsObject(id)) { var attribute = id.split('.').pop(); if (doNotGenerateSetStates.includes(attribute.toLocaleLowerCase())) { console.log("--ABBRUCH: " + attribute) return; } var setMqttPath = topic + "/" + device.friendly_name + "/set/" + attribute; var setId = datapointBase + ".set." + attribute; if (existsObject(setId) && doNotOverwriteExistingObjects) { console.log("--ABBRUCH (existiert bereits): " + attribute) return; } var attributeSpecs = device.definition.exposes.find(data => data.hasOwnProperty('features')).features.find(data => data.name === attribute); if (attributeSpecs === undefined) { attributeSpecs = device.definition.exposes.find(data => data.name === attribute); } //console.log(attributeSpecs) var getObj = getObject(id); getObj._id = setId; getObj.common.name = setMqttPath; getObj.native.topic = setMqttPath; if (attributeSpecs?.value_min != undefined) { getObj.common.min = attributeSpecs.value_min; } if (attributeSpecs?.value_max != undefined) { getObj.common.max = attributeSpecs.value_max; } if (attributeSpecs?.unit != undefined) { getObj.common.unit = attributeSpecs.unit; } setObject(setId, getObj, function (err) { if (err) console.error('Cannot write object: ' + err); }); console.log(setId) } }); } } } }) und das ergebnis: [image: 1663745698723-11798552-73cb-4280-a4da-507c4819625f-image.png] edit: ich war etwas ungehalten und habe min, max und unit schon hinzugeügt. mehr werte kann man ja bei bedarf analog dazu auslesen. als nächstes kommt dann noch ein alias datenpunkt, der entsprechend read und write datenpunkte vereint.

539

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge