Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.9k 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
    S
    Ich habe hier einen 2400 AC (ohne +).. da gibt es (noch?) keine 2.0.1...
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    D
    Nochmals herzlichen Dank!!!
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    A
    @OliverIO Für mich als ex. Elektroninstallateur ist es eben vielfach einfacher in einer Maske zu sehen was der Code eigentlich machen sollte, als in einem strukturierten Text. Wir verwenden bei uns im Job auch sehr viel strukturierte Text für Steuerungsfunktionen, aber das ist in der Regel eine andere Abteilung, ich bin nur zuständig, dass die Elektropläne korrekt und vollständig für alle sind. Klar, dass interesse an den Möglichkeiten ist schon lange geweckt, aber wie bei allem, wenn man das nicht oft macht, vergisst man sehr vieles wieder. Bei mir ist entstehen solche Dinge eben manchmal aus "dummen" Ideen, oder eben aus "herausforderungen" die man nicht direkt sucht. Ich arbeite mich jetzt mal rund um und schaue was da raus kommt. Nochmals herzlichen Dank Gruss Andi (aus der überhitzten Schweiz)
  • Scriptsammlung Vol. 2

    Angeheftet
    3
    3 Stimmen
    3 Beiträge
    7k Aufrufe
    NegaleinN
    Achtung: Diese Scripts sind teils auch ungetestet bzw. nur vom Ersteller getestet worden. Blockly diverse Scripte Schimpfwortgenerator (BananaJoe, Nikolai Radke) Ein Schimpfwortgenerator ioBroker-Forum-Thread: Schimpfwortgenerator Witze aus API (mading) Ein Witzegenerator ioBroker-Forum-Thread: Witzegenerator Bilder mittels LLM ChatGPT Vision ananalysieren (David G.) Bilder mit ChatGPT ananalysieren ioBroker-Forum-Thread: Bilder mittels LLM ChatGPT Vision ananalysieren Visualisierung Agentdvr-Aufnahmen in der Visualisierung darstellen (David G.) Agentdvr-Aufnahmen anzeigen ioBroker-Forum-Thread: Agentdvr-Aufnahmen in der Visualisierung darstellen Trash HTML Widget VIS2 (skvarel) Trash HTML Widget VIS2 ioBroker-Forum-Thread: Trash HTML Widget VIS2 GitHub GitHub
  • Scriptsammlung Vol. 2 -- Diskussion

    Angeheftet
    71
    1 Stimmen
    71 Beiträge
    26k Aufrufe
    NegaleinN
    @fischi87 sagte: vielleicht etwas für die Sammlung. habs in "Hardware generell" eingetragen
  • Proxmox-Updater (Host/LXC/VM) auch ioBroker,piHole,etc

    61
    3 Stimmen
    61 Beiträge
    15k Aufrufe
    Bass-TB
    @david-g. Danke für die Rückmeldung. Zu Punkt 2: dabei handelt es sich um den update/Installer. Dieser ist aktuell auf v2. Den solltest du nur bei update oder install sehen. Danach nicht wieder 😉 Zu deinem zabbix container: Danke für die Rückmeldung. Ich habe dazu inzwischen einen kleinen Test-Fix vorbereitet. Hintergrund: Der Ultimate Updater startet bei Containern, die mit den Proxmox Community Scripts erstellt wurden, zusätzlich deren eigenes Update-Script. Bei v5.0 gab es dabei drei Schwachstellen: wenn dieses Community-Script hängen bleibt, konnte der Ultimate Updater ebenfalls unbegrenzt warten Fehlermeldungen des Community-Scripts wurden nicht angezeigt auch bei einem Fehler konnte anschließend fälschlich eine Erfolgsmeldung erscheinen Der eigentliche Fehler deines Containers konnte in meiner Testumgebung bisher nicht exakt reproduziert werden. Der Update-Aufruf wurde aber robuster gemacht: maximal 30 Minuten Laufzeit Fehlerausgabe wird angezeigt Exit-Code wird geprüft bei einem Fehler oder Timeout wird keine falsche Erfolgsmeldung mehr ausgegeben der restliche Update-Lauf kann weiterlaufen Der Fix ist aktuell noch nicht Bestandteil von v5.0, sondern liegt als Test-Hotfix auf GitHub: Issue: https://github.com/BassT23/Proxmox/issues/294 Pull Request: https://github.com/BassT23/Proxmox/pull/295 Wenn du testen möchtest, kannst du nur die betroffene Datei austauschen. Zuerst ein Backup anlegen: cp -a /etc/ultimate-updater/update-extras.sh \ /etc/ultimate-updater/update-extras.sh.bak Dann die Testversion herunterladen: curl -fsSL \ https://raw.githubusercontent.com/BassT23/Proxmox/0a15130cfe8ae31f5e97b0856c4ff55cac92866f/update-extras.sh \ -o /etc/ultimate-updater/update-extras.sh Anschließend Rechte und Besitzer der alten Datei übernehmen: chmod --reference=/etc/ultimate-updater/update-extras.sh.bak \ /etc/ultimate-updater/update-extras.sh chown --reference=/etc/ultimate-updater/update-extras.sh.bak \ /etc/ultimate-updater/update-extras.sh Zum Schluss einmal prüfen, ob die Datei syntaktisch in Ordnung ist: bash -n /etc/ultimate-updater/update-extras.sh Wenn dabei keine Ausgabe kommt, ist alles okay. Danach den Ultimate Updater bitte nochmal normal starten. Interessant wäre dann vor allem: bleibt er weiterhin bei *** Updating Community-Scripts *** stehen? erscheint jetzt eine Fehlermeldung? erscheint ein Timeout? läuft der Ultimate Updater anschließend weiter? Falls du wieder zurück auf die originale v5.0-Datei möchtest: mv /etc/ultimate-updater/update-extras.sh.bak \ /etc/ultimate-updater/update-extras.sh Wenn du die Ausgabe vom nächsten Test hier postest, kann ich damit sehr wahrscheinlich genauer sehen, was bei deinem Community-Script passiert. Grüße BassT
  • Blockly + Javascripte aus einer script.json extrahieren

    24
    5
    3 Stimmen
    24 Beiträge
    1k Aufrufe
    Michael SchmittM
    Nice, muss ich mir gleich nach der Arbeit anschauen. @shadowhunter23 .....
  • Anker Solix 4 Pro per Modbus regeln – 0-einspeisung mit ioB

    1
    0 Stimmen
    1 Beiträge
    70 Aufrufe
    Niemand hat geantwortet
  • NodeRed Iobroker Converter (WS Adapter kompatibel)

    node-red communication
    1
    0 Stimmen
    1 Beiträge
    77 Aufrufe
    Niemand hat geantwortet
  • Farbe bei Yahka(HomeKit) mit Yeelight

    javascript
    23
    0 Stimmen
    23 Beiträge
    3k Aufrufe
    AsgothianA
    Mir war schon klar was gemeint ist. Du musst folgendes testen: im Objektbaum, in den Datenpunkt der die Farbe steuert eine Zahl mit Nachkommastelle eingeben - stürzt der Yeelight Adapter dann ab ? an gleicher Stelle schnell, sprich 2 mal pro Sekunde jeweils einen anderen gültigen Wert eingeben. Stürzt der Yeelight Adapter dann ab ? an gleicher Stelle einen Wert ausserhalb der von Dir vorgegebenen Grenzen eingeben. Stürzt der Yeelight Adapter dann ab ? an gleicher Stelle Text eingeben. Stürzt der Yeelight Adapter dann ab ? A.
  • [Vorlage] Anwesenheitssimulation mit dauerhaftem Lernen

    javascript template security
    22
    2 Stimmen
    22 Beiträge
    2k Aufrufe
    G
    Moin, erstmal danke für diese Skript. Idee und Umsetzung ist hervorragend. ich habe mich in der vergangene Woche etwas an das ausprobieren gemacht. Meine Lampen habe ich über die Enums eingebunden dafür habe ich jeweils den direkten Schaltaktor der Lampe .on bzw. .state in das enum kopiert. Die Lampen werden erkannt und im Snapshot abgelegt (ich habe mir den Pfad nach javascript Verzeichniss const DP_STORAGE: string = 'javascript.0.Anwesenheitssimulation.Snapshot_DB'; abgelegt, finde ich persönlich etwas angenehmer den Datenpunkt dort liegen zu haben. Technisch sollte das egal sein. Dann ist mir ein Fehler aufgefallen. Ich habe angefangen mit 2 dimmbaren Lampen zu testen. Die erste ist über hue verknüpft und die zweite ist mittels zigbee verknüpft. Um es etwas übersichtlicher zu machen verzichte ich hier auf hue und beschreibe mein Problem mit dem Zigbee Leuchtmittel. Der Status (on/off) wurde immer korrekt vom Skript erkannt. Der Dimmwert wurde jedoch nicht erkannt. Das hat zu folgendem Snapshot geführt: ,"75":[{"zigbee2mqtt.0.0xxxxxxxxxxxxxxxcb.state":{"on":true}}] ,"76":[{"zigbee2mqtt.0.0xxxxxxxxxxxxxxxcb.state":{"on":true}}] ,"77":[{"zigbee2mqtt.0.0xxxxxxxxxxxxxxxcb.state":{"on":true}}] Also Fehlersuche durchgeführt. Das Ergebnis dann doch relativ simpel. Scheinbar ist Javascript (manchmal) CaseSensitiv. In der Zeile 93 werden die Namen des datenpunkte für den Dimmwert zusammengebaut. const briCandidates = ['LEVEL', 'ACTUAL', 'BRIGHTNESS', 'DIMMER', 'SET']; der von Zigbee angelegte Datenpunkt heißt jedoch .brightness also habe ich die Zeile entsprechend geändert und das .brightness mit eingefügt. const briCandidates = ['LEVEL', 'ACTUAL', 'BRIGHTNESS', 'brightness', 'bri', 'DIMMER', 'SET']; und schon wird der Dimmwert der Zigbeeleuchte erkannt. Der Snapshot sah dann wie folgt aus: ,"82":[{"zigbee2mqtt.0.0xf0d1b800001d0ccb.state":{"on":true}}] ,"83":[{"zigbee2mqtt.0.0xf0d1b800001d0ccb.state":{"on":true}}] ,"84":[{"zigbee2mqtt.0.0xf0d1b800001d0ccb.state":{"on":true,"bri":25}}] //Änderung mit .brightness aktiv ,"85":[{"zigbee2mqtt.0.0xf0d1b800001d0ccb.state":{"on":true,"bri":25}}] ,"86":[{"zigbee2mqtt.0.0xf0d1b800001d0ccb.state":{"on":true}}] //Rückgängig machen zur Verifizierung ,"87":[{"zigbee2mqtt.0.0xf0d1b800001d0ccb.state":{"on":true,"bri":25}}] ,"88":[{"zigbee2mqtt.0.0xf0d1b800001d0ccb.state":{"on":true,"bri":25}}] Anschließend habe ich noch .bri hinzugefügt. denn nun wird auch der Dimmwert der hue Lampe erkannt. Denn Hue verwendet den Namen .bri um das dimmen anzusteuern. Meine Zeile sieht nun so aus. const briCandidates = ['LEVEL', 'ACTUAL', 'BRIGHTNESS', 'brightness', 'bri', 'DIMMER', 'SET']; Die anderen Namen habe ich nicht in Verwendung. daher habe ich sie nicht angepasst. Ggf könne wir hier ja eine Sammlung erstellen die alle Schreibweisen enthält. .BRIGHTNESS lässt sich ja auch .Brightness schreiben. Warum scheint Javascript nur manchmal CaseSensitiv zu sein? in Zeile 84&85 wird der Pfad für den Status der Lampe gebaut. if (obj && obj.type === 'channel') { if (existsState(`${id}.STATE`)) powerId = `${id}.STATE`; else if (existsState(`${id}.ON`)) powerId = `${id}.ON`; } An dieser Stelle ist on und state ebenfalls als CapsLock geschrieben. hue verwendet die Bezeichnung .on und zigbee verwendet .state (beides vollständig klein geschrieben). An dieser Stelle funktioniert die Erkennung des Zustandes jedoch.
  • Dynamische SVG-Progress-Bar

    javascript multimedia monitoring
    7
    1
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    Ro75R
    Version Version 1.0.4 !!!ACHTUNG WICHTIG!!! Wenn schon eine vorherige Version vom Script genutzt wurde, MÜSSEN mit dieser Version die Übergabewerte im Funktionskopf anpasst werden - kurz gesagt: die Reihenfolge hat sich geändert! *erweiterte Konfiguration: Neuer Parameter Zweck decimalPlaces Anzahl Nachkommastellen für das Hauptlabel fontWeight Schriftstärke (normal, bold, semibold, 400–700) fontStyle Schriftstil (normal, italic, oblique) leftLabelText Text für das linke Label (nur horizontal) rightLabelText Text für das rechte Label (nur horizontal) showMainLabel Hauptlabel ein-/ausschalten Aufgrund der neuen Parameter, wurde die Reihenfolge für die Übergabe der Parameter in der Funktion neu angeordnet Alle weiteren Informationen findest Du im Post #1. Das Script und der Beispielaufruf, sowie die Parameterbeschreibung sind aktualisiert. Ro75.
  • mqtt-Abruf WiCAN-OBD-Dongle mit mqtt-Adapter und Blockly

    15
    1
    0 Stimmen
    15 Beiträge
    4k Aufrufe
    K
    Nachtrag: Per Script (mit Hilfe von ChatGPT) kann ich mir auch die mobilen Daten herunterladen, wenn das Auto nicht im WLAN steht. Hatte dies ein paar Tage laufen - aber irgendwie benötigte ich die Daten noch immer nicht und deshalb habe ich es wieder deaktiviert. "Datensparsamkeit" :) Es bleibt dabei - ich hole mir die Daten nur über Wifi und MQTT.
  • [Vorlage] Anwesenheitssimulation - Script

    Verschoben
    272
    1
    1 Stimmen
    272 Beiträge
    90k Aufrufe
    S
    Hallo, ich weiß der Thread ist schon etwas älter. Seit kurzem funktioniert das Script leider nicht mehr, es hat sehr lange ohne Probleme funktioniert. Er kann wohl im Script laut Fehlermeldung nicht mehr die aktuelle Zeit bestimmen: Error: TypeError: Cannot read properties of null (reading 'getTime') Über eine Hilfe wäre ich sehr dankbar :) javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: at Script.runInContext (node:vm:149:12) javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: at script.js.Licht.Anwesenheit_Simulator:522:3 javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: at script.js.Licht.Anwesenheit_Simulator:147:1 javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: at Astrozeiten (script.js.Licht.Anwesenheit_Simulator:424:15) javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: at Array.forEach (<anonymous>) javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: at script.js.Licht.Anwesenheit_Simulator:425:18 javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: at getAstroDate (/opt/iobroker/node_modules/iobroker.javascript/build/lib/sandbox.js:1980:40) javascript.0 2026-07-15 14:00:29.083 error script.js.Licht.Anwesenheit_Simulator: Error: TypeError: Cannot read properties of null (reading 'getTime') javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword nauticalDusk: Datum: 15:07 ----- Uhrzeit 23:17 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword dusk: Datum: 15:07 ----- Uhrzeit 22:08 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword sunset: Datum: 15:07 ----- Uhrzeit 21:21 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword sunsetStart: Datum: 15:07 ----- Uhrzeit 21:17 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword goldenHour: Datum: 15:07 ----- Uhrzeit 20:28 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword solarNoon: Datum: 15:07 ----- Uhrzeit 13:11 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword goldenHourEnd: Datum: 15:07 ----- Uhrzeit 05:54 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword sunriseEnd: Datum: 15:07 ----- Uhrzeit 05:05 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Astrokeyword sunrise: Datum: 15:07 ----- Uhrzeit 05:00 javascript.0 2026-07-15 14:00:29.082 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Liste der gegenwärtigen Astrozeiten javascript.0 2026-07-15 14:00:29.081 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Arrays scheinen konsistent angelegt worden zu sein. javascript.0 2026-07-15 14:00:29.081 info script.js.Licht.Anwesenheit_Simulator: AWS-Logging: Script: AWS Version 1.30 vom 02.08.2024 - DEBUG ist eingeschaltet javascript.0 2026-07-15 14:00:29.056 info script.js.Licht.Anwesenheit_Simulator: start JavaScript (Javascript/js) javascript.0 2026-07-15 14:00:29.009 info script.js.Licht.Anwesenheit_Simulator: Stopping script
  • Snapshot senden über email adapter

    Verschoben
    21
    0 Stimmen
    21 Beiträge
    8k Aufrufe
    jolicJ
    unsinn ;-(
  • [HowTo] Script Sticky Notes (PostIt) für VIS und Telegram

    164
    7
    7 Stimmen
    164 Beiträge
    39k Aufrufe
    holly200289H
    Mir ist auch aufgefallen das wenn der Satz eine gewisse länge hat das dann, im Telegramm nicht mehr das Löschmenü kommt, was immer automatisch mit erscheint wenn ich eine Nachricht verschicke. Liegt das vielleicht an der Text länge ?
  • [gelöst} NSPanel TypeScript v5.1.1.7 Fehler !!

    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    GregorSG
    Nein, habe das Script so übernommen und angepasst. Allerdings komme ich gerade aus dem Urlaub und sehe, dass das Display dunkel bleibt. Bei Berühren des Displays kommt der Screensaver und danach wird es wieder dunkel. alias.0.NSPanel.1.ScreensaverInfo.activeBrightness.ACTUAL =100 ActiveDimmodeBrightness und Trigger Dimmode gibt es nicht mehr War mein Fehler, gibt es doch. TriggerDimMode on, jetzt habe ich wieder eine Anzeige.
  • Wie? Solar Produktion über Json Monatlich berechnen

    16
    0 Stimmen
    16 Beiträge
    4k Aufrufe
    machamsterM
    Ok super. Vielen Dank. Werde mir das morgen mal in Ruhe anschauen 😎
  • MQTT Keepalive im Skript

    50
    0 Stimmen
    50 Beiträge
    14k Aufrufe
    FichtendickichtF
    Vielen Dank für die ausführlichen Informationen. Ich betreibe selbst eine Victron Anlage mit einer Cerbo GX, IOBroker als Docker in einem Synology NAS DS218+. Bisher habe ich immer mittels Modbus ausgelesen, MQTT scheint mir aber viel eleganter. Ich habe das Keepalive mittels Blocky so gelöst: [image: 1783069381056-9ac29698-7d99-40cc-9520-8e2d58a3dac5-image.jpeg] Leider muss ich feststellen, dass scheinbar alle Werte publiziert werden und nicht nur die unter ["battery/+/Dc/#"]. Die Übersetzung der Werte von JSON auf Dezimalwerte habe ich mittels eines ALIAS gelöst, da kann man als Read-Funktion eine Java-Script (JS) Funktion einfügen die JSON in ein FLOAT umwandelt und als Fallback "NULL" ausgibt: [image: 1783069574957-9ab03ccd-1244-42f8-b1e5-4aebeea11c31-image.jpeg] Hier die Ausgabe die dann auch mittels des Adapters sql0 in eine Datenbank archiviert werden kann: [image: 1783069712165-6bd23d7c-15ef-4e5c-92bf-1d83165ec61f-image.jpeg] EDIT: Ich habe noch eine Einschränkung festgestellt: Das Blockly Script funktioniert nur mit dem mqtt Adapter, mit dem mqtt-client Adapter funktioniert das nicht!
  • Alexa Shopping List mit Bring synchronisieren

    187
    0 Stimmen
    187 Beiträge
    60k Aufrufe
    LocosL
    @mcBirne danke für dein Feedback. habe das Skript nochmal etwas überarbeitet. Siehe vorherigen Post. Liebe Grüße
  • Blockly funktioniert plötzlich nicht mehr

    15
    1
    0 Stimmen
    15 Beiträge
    5k Aufrufe
    H
    @mickemup sagte: Aber generell...Adapter immer frisch starten ist nur Symptombekämpfung. Man sollte versuchen der Fehlerquelle auf den Grund zu gehen. ich weis, wenn ich mal etwas Zeit habe möchte ich sowieso alle Shelly Geräte auf mqtt umstellen. Dann dürfte das Problem behoben sein.
  • Shuttercontrol Sonnenschutz funktioniert nicht (Homematic)

    7
    6
    0 Stimmen
    7 Beiträge
    3k Aufrufe
    M
    Seit der Haken bei "Überprüfen des aktuellen Rollladenstatus" gesetzt ist geht es jetzt.
  • Abwesenheitszeiten für Behörden nachweisen

    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    Dr. BakteriusD
    @horst-böttcher zwei Anregungen: Traccar - zeichnet alle Touren mit dem Auto (oder auch Handy) auf. Kann lokal gehostet werden. NFC und Handy-App. Beim Verlassen oder Betreten der Wohnung Handy kurz zu einem Button halten. Oder mit etwas mehr Aufwand einen Chip-Leser und entsprechende Schlüsselanhänger der per MQTT den Code des Anhängers an ioBroker sendet. Beim Verlassen und Betreten Schlüssel einfach kurz hinhalten. (Ich mache das so um die Alarmanlage zu steuern und die Türe zuzusperren - funktioniert seit Jahren, nach ein wenig Bastelei, sehr zuverlässig.)

391

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge