Skip to content

Skripten / Logik

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

16.6k Themen 213.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    A
    @azzkikrboy Verwendest du die Objekt-ID 0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt ? Da sollten immer beide Werte angezeigt werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    F
    @KPT sagte in Script zum Laden/Entladen von Zendure Solarflow: Gibt es Erfahrungen, ob der Solarstream 800 Plus überhaupt per MQTT steuerbar ist? Also ich habe seit knapp 5 Tagen einen SF800 Plus und kann Ihn über MQTT steuern. Hab mir das JS von Felli geholt, bissl umgebaut und bin auch gerade dabei mir mal das Blockly von @murphy-0 näher zu betrachten. Jedenfalls läßt sich der Akku steuern und auch regeln. Ich habe aber auch Zeit gebraucht bis ich die Einstellungen hatte, damit es funktionierte. Habe in der Zendur-App den MQTT von ioBroker mit Port 1883 hinterlegt mit Benutzer/PW versorgt. Danach kamen die Daten sowohl im MQTT-Explorer als auch im Broker an, allerdings natürlich mit einem anderen Verzeichnis-Pfad wie von der Zendur-App. In dieser hatte ich beides eingetragen, wobei die Daten vom Akku wie es aussieht es nur wirklich mit der "Auth. Key" reinkommen. Ich habe es auch über "Lokaler Mqtt Server" versucht, aber irgendwie ging´s damit nicht richtig. P.S.: den Auth-Key bekommst Du in der App unter Profil und dann unten über Autorisierungs-Cloud-Schlüssel diesen abrufen und in den Adapter kopieren.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • Sonos Lautstärke um je „1“ anheben od. absenken

    12
    0 Stimmen
    12 Beiträge
    912 Aufrufe
    W
    @homoran Ja, so dachte ich es mir fast. Wie gesagt, bislang problemlos. Vielleicht bin ich beim Drücken auch einfach zu langsam. :blush: Aber Danke für den Hinweis und die Erklärung. Das behalte ich im Hinterkopf. Gruß, Jürgen
  • [Frage] ioBroker - iLO Server Daten auslesen

    Verschoben
    44
    1
    0 Stimmen
    44 Beiträge
    7k Aufrufe
    kmxakK
    Ich benutze das Script selber nicht mehr. Siehe https://github.com/SebastianSchultz/ioBroker.hp-ilo
  • State Unifi Protect

    7
    0 Stimmen
    7 Beiträge
    443 Aufrufe
    5
    @paul53 Vielen Dank, ob ich mir sowas je merken kann....
  • [Vorlage]-Zeit herunterzählen bis GoogleTermin Eintritt

    blockly javascript
    58
    3
    8 Stimmen
    58 Beiträge
    8k Aufrufe
    hananH
    @liv-in-sky Hallo liv-in-sky Habe das Skript importiert und die Datenpunkte angepasst. :clap: super Arbeit, funz auf anhieb. Besten Dank nochmals für Deine Hilfe.
  • setStateAsync-Änderungen landen in Endlosschleife

    13
    0 Stimmen
    13 Beiträge
    706 Aufrufe
    paul53P
    @sir0drake sagte: a) Wird dieses Attribut c ausschließlich von ioBroker gesetzt ? Gerade getestet: Das Attribut c enthält den Skriptnamen, wenn der Wert mit setState() aus einem Skript gesetzt wurde. log(getState('0_userdata.0.Test.neueZahl')); setState('0_userdata.0.Test.neueZahl'/*neueZahl*/, {val:11, ack:true, c: 'Kommentar'}); Log: script.js.common.Neuer_Test: {'val':11,'ack':true,'ts':1630442081839,'q':0,'c':'script.js.common.Neuer_Test','from':'system.adapter.javascript.0','user':'system.user.admin','lc':1630441922443} @sir0drake sagte in setStateAsync-Änderungen landen in Endlosschleife: b) Darf ich das Attribut from mit einem String meiner Wahl besetzen, ohne im Hintergrund Chaos anzurichten ? from wird vom js-controller gesetzt, genauso wie ts, lc, und q. Die Attribute c und user werden an getState() übergeben, aber nicht an on().
  • Skript für Remote Sunricher SR-ZG9001K12-DIM-Z4

    3
    0 Stimmen
    3 Beiträge
    263 Aufrufe
    M
    @hsteinme Hi, ioBroker und Phoscon laufen via Proxmox auf einem Intel NUC. Linux Phoscon 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 Dresden ConBeeII Stick, Version 2.07.01 / 8.12.2020, Firmware 26680700 IoBroker mit NodeJS V12.22.5, NPM V6.14.14 mit deConz ZigBee Adapter Version 1.3.19 Läuft flüssig und ohne Probleme. Gruß
  • Bilder von Webseiten als Telegram verwenden

    2
    2 Stimmen
    2 Beiträge
    296 Aufrufe
    liv-in-skyL
    @christoph1337 super - danke dir
  • Javascript Adapter läßt sich nicht updaten

    12
    0 Stimmen
    12 Beiträge
    218 Aufrufe
    W
    @guergen erstmal vielen Dank. Meine Pause ist nun vorbei. Gucke hier später nochmal rein
  • Falls x ist wahr, mache yz funktioniert nicht

    5
    1
    0 Stimmen
    5 Beiträge
    417 Aufrufe
    David G.D
    @chris929 Sehr gut. Falls du planst die Anlage zu erweitern und irgendwann mehrere Sensoren hast würde ich allerdings was anders vorgehen. Auf dem Weg hat man sonst bald sehr viele dopplungen im Blockly. Immer wieder das selbe für jeden Sensor. EDIT: Glaube nicht, dass dein Skript gut klappt. So bekommst du NUR eine Meldung beim aktivieren der Anlage ob die Türen offen sind. Aber nicht wenn sich nach dem aktivieren eine Türe öffnet. Musst auf die Türe triggern, damit dadurch die Nachricht ausgelöst wird. Das dann 2 mal (1 mal für jeden Sensor).
  • suche script homematic wandtaster bedient Tradefri Dimbare

    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    paul53P
    @adriaanb sagte: dieser pro schalter Offenbar kann man nur die Betätigungsdauer einstellen, ab der langer Tastendruck gesendet wird.
  • suche Batterie-Alexa-Alarm-Script/Blockly

    13
    0 Stimmen
    13 Beiträge
    444 Aufrufe
    crunchipC
    @dslraser damit nur einmal täglich, wie in dem Beispiel um 15:00 geprüft wird
  • ioBroker Signal Nachrichten

    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    K
    @saschame da ich jetzt einige Stunden darauf verwendet habe, eine Variable in den zu sendenden Text einzubauen, will ich mein Ergebnis hier teilen; vielleicht hilft's ja jemandem. Ich habe zunächst das Blockly-Beispiel von Elzershark aus seinem Forum genommen, wo immerhin schon neben fixem Text ein Variablenwert ergänzt wurde. Ich habe das Beispiel auf einen Variablenwert reduziert - also die festen Texte entfernt- , mir den JS-Code kopiert und diesen dann in einem JS-Skript laufen lassen. Ging auch. Dann wollte ich eine globale Funktion definieren, an die ein zuvor konstruierter String zum Senden übergeben wird. Dann wurd's erwas kompliziert mit 2 Sorten Anführungszeichen und Kommata. Verstanden hab ich es nicht 100%ig - auch weiß nicht nicht was .join('') am Ende bewirkt - , aber so funktioniert es immerhin: Globale Funktion: function SignalSend (SignalText) { exec((['signal-cli -u +49172xxxxxxx send -m ', SignalText ,' +49172xxxxxxx'].join(''))); return; } let DAX = "'Der DAX steht bei " + getState('0_userdata.0.DAX30').val + " Punkten.'"; SignalSend (DAX); Es geht auch ohne Text in der simplen Form let DAX = getState('0_userdata.0.DAX30').val; Doch wenn man Text vor den Wert stellt, muss man m.E. den String mit einem Hochkomma vorne beginnen lassen und hinter dem Wert ein Hochkomma in Anführungsstrichen folgen lassen, also: let DAX = "'Der DAX liegt jetzt etwa bei " + getState('0_userdata.0.DAX30').val + "'"; Nachtrag: Damit man sich keine Gedanken machen muss und einfach grundsätzlich einen "normalen" String an die globale Funktion übergeben kann, würde ich in der Globalfunktion zwei Hochkommata zwischen Anführungsstrichen ergänzen. Selbst wenn sie nicht gebraucht werden , stören sie wohl nicht: exec((['signal-cli -u +49172xxxxxxx send -m ',"'"+ SignalText +"'",' +49172xxxxxxx'].join('')));
  • Blockly: Wert auf NULL abfragen

    blockly
    14
    1
    0 Stimmen
    14 Beiträge
    3k Aufrufe
    G
    @heinrichb DANKE! Genau das habe ich gesucht. Selbstverständlich macht dieser Check Sinn. So kann sich ein DP "selbst" reparieren.
  • [Gelöst] Mit Datum Rechnen

    5
    2
    0 Stimmen
    5 Beiträge
    189 Aufrufe
    paul53P
    Anmerkung: Die Berechnung oben liefert die ms für 00:00 Uhr UTC. Möchte man 00:00 Uhr Ortszeit haben, muss an den String " 00:00" angehängt werden.
  • Proxmox Backup darstellen

    5
    0 Stimmen
    5 Beiträge
    615 Aufrufe
    FredFF
    @DarkDevil @thaverland es gibt schon länger dafür einen feature request: https://github.com/iobroker-community-adapters/ioBroker.proxmox/issues/11
  • Gelöst: Update HTML Widget

    javascript
    7
    0 Stimmen
    7 Beiträge
    3k Aufrufe
    M
    @oliverio sagte in Update HTML Widget: Also den Namen des Datenpunktes in geschweiften Klammern da reinschreiben wo die Url auftauchen soll. Hallo Oliver, ich habe Deinen Tip umgesetzt. In dem vom RING Adapter angelegten Datenpunkt ist die URL mit Angabe des Hostes abgelegt, dass war nicht so gut, ich habe den Hostnamen gegen die Host IP per Script getauscht. on({id: 'ring.0.doorbell_21502358.livestream_url', change: "ne"}, async function (obj) { var string = getState("ring.0.doorbell_21502358.livestream_url").val; var newstring newstring=string.replace("http://DESKTOP-RQ1PD76(SmartHome)","http://192.168.178.xxx"); log(newstring); setState("ring.0.doorbell_21502358.livestream_url",newstring) }); Aus "http://DESKTOP-RQ1PD76(SmartHome):8082/ring.0/doorbell_21502358/livestream21502358_1629730800258.mp4" ist nun http://192.168.178.xxx:8082/ring.0/doorbell_21502358/livestream21502358_1629730800258.mp4 geworden. Der Eintrag im HTML-Widget sieht jetzt so aus: <video height="448px" width="800" autoplay muted loop="true"> <source src="{ring.0.doorbell_21502358.livestream_url}" type="video/mp4"> </video> Das klappt. War ein toller Tip mit dem Binding. Gruß Michael
  • [Gelöst] Philips Button und WLED

    11
    2
    0 Stimmen
    11 Beiträge
    317 Aufrufe
    U
    @paul53 Funktioniert wie gewünscht . Danke!
  • Unerklärliches Verhalten mit Shelly Markise

    9
    1
    0 Stimmen
    9 Beiträge
    702 Aufrufe
    D
    Das ist echt komisch. Heute war das Problem definitiv der Shelly Adapter. Das Verhalten bestand gerade auch wenn ich in den Objekten eine Stellung vorgegeben habe. Kurz hin und her und stop. Gestern war aber definitiv die Steuerung des Scrips das Problem. Das geht gerade einwandfrei. Hab jetzt erstmal den Shelly Adapter deaktiviert und steuere über den FHEM-Adapter. Das geht (zumindest gerade) problemlos.
  • [Skript] LG TV via WOL einschalten und per Adapter ausschalten

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    8k Aufrufe
    ?
    @elbo said in [Skript] LG TV via WOL einschalten und per Adapter ausschalten: createState("javascript.0.TVeinschalten"); var wol = require('wake_on_lan'); // Lädt von ioBroker das nötige Paket herunter on({id: "javascript.0.TVeinschalten", change: 'any'}, function (obj) { var current_state = getState("javascript.0.TVeinschalten").val; if(current_state == "1"){ wol.wake('14:C9:13:18:34:5B', { address: '192.168.0.255', port: 9}); log("Skript WOL - TV gestartet", "info"); }else{ setState("lgtv.0.turnOff", true); log("Skript WOL - TV ausgeschaltet", "info"); }}); Hi, hab mal das script eingebaut, natürlich Adressen geändert aber da tut sich nix bei mir.
  • [Gelöst] Blockly - Button als Switch

    11
    1
    0 Stimmen
    11 Beiträge
    838 Aufrufe
    paul53P
    @umbrella1980 sagte: Jetzt funktioniert das einwandfrei ! Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [Gelöst].

501

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge