Skip to content

Skripten / Logik

16.6k Topics 214.2k Posts

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

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Topics
    49k Posts
    ofri2607O
    @legro Ich nutze das schon seit einiger Zeit ohne jegliche Probleme. Mittlerweile habe ich mehr als 20 Module (als Klassen, Factory-Functions oder Closures) so ausgelagert und es läuft sehr zuverlässig und gibt aus meiner Sicht viel mehr Struktur in den Skripten. Da es ja eigentlich nur den Spiegelpfad aus dem Javascript-Adapter nutzt, denke ich auch nicht, dass es so einfach nicht mehr funktionieren würde. Das einzig was etwas lästig ist, ist dass erforderliche Neustarten der Javascript-Instanz nach einer Änderung in einem Modul. Das ist aber bei den globalen Skripten im Wesentlichen ja auch so. Dies ist auch mit einer der Gründe warum bei mir der Javascript-Adapter mit mittlerweile 5 Instanzen auf einem Raspi 4 (8 GB) als Slave läuft. Damit kann ich das halbwegs gut strukturieren, dass beim jeweiligen Instanzneustart nicht alle Skripte immer neu starten. Was bei der Aufteilung auch problemlos funktioniert ist, dass das Hauptskript (das Skript das require aufruft) nicht in der selben Instanz sein muss wie das Modul, das funktioniert kreuz und quer.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    maxclaudiM
    update 03.04.2026 2026.03.31-patch_DplOff-Limit_maximum-MQTT-maxclaudi Patch auf OpenDTU-OnBattery Release 2026.03.31 aktualisiert. Infos zu OpenDTU-OnBattery 2026.03.31 auf: Github Am Patch selbst hat sich nichts geändert. Beschreibung Bedienung/Funktionsweise wie bisher, siehe: hier Hier FirmwareBuild: generic_esp32s3_usb ⚠️ Lizenz & Haftung Diese Firmware basiert auf OpenDTU-onBattery (GPLv2, Fork von OpenDTU). Sie enthält eigene Anpassungen und wird nicht offiziell unterstützt. Nutzung erfolgt auf eigene Verantwortung – keine Haftung für Schäden oder Fehlfunktionen. Firmware im zip muss vor dem flashen entpackt werden. Bitte nur bin Datei flashen. update 03.04.2026/ FirmwareBuild: generic_esp32s3_usb firmware: generic_esp32s3_usb_MQTT-DPLoff_maxLimit_2026.03.31-firmware.zip
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • 0 Votes
    4 Posts
    791 Views
    paul53P
    @norbhb: macht er das einmalig bei einer Änderung des Status des Fensters? ` Ja, im Kommentar steht "Fenster <u>wird</u> geschlossen". Falls der Fensterkontakt öfter sendet als bei Änderung des Zustands, muss man auf "wurde geändert" triggern und den Wert abfragen. falls Aktuelle Zeit ist zwischen 22:30 und 06:00 und nicht Wert
  • [gelöst] Hue Farbwechsel erlauben

    Moved
    3
    0 Votes
    3 Posts
    675 Views
    G
    Danke, das klappt jetzt. Manchmal kann die Antwort so einfach sein
  • Iobroker iCal Termine in Scripts nutzen

    Moved
    4
    0 Votes
    4 Posts
    809 Views
    B
    Na das sollte auch aus ical klappen, musst mal nach "Müllkalender" suchen. Da wird nach zukünftigen Terminen gesucht. Im Endeffekt muss man "nur" die Startzeit auslesen und 30min vorher ausrechnen. Hab ich mich aber nicht dammit beschäftigt. Meine Wecker werden direkt in ioBroker gesetzt und können im vis bedient werden. Über ical nehme ich direkt die Startzeit des Event. Grüße Brati
  • GetObject( id, "rooms") liefert zu viele "Räume"

    Moved
    2
    1
    0 Votes
    2 Posts
    1k Views
    greyhoundG
    Ich habe dasselbe Problem, bin durch einen Skriptfehler drauf gestoßen und kann das Datenkonsistens-Problem nicht lösen! Ich habe mehrer Räume definiert (29 Räume, spezielles Gebäude mit Nebengelass). Unter javascript.0.alarm.devices.cams.Camx sind diverse Kameras als device mit weiteren Unterdatenpunkten vorhanden. Den Geräten Cam0 - CamX habe ich nun die entsprechenden Räume zugewiesen, jede Kamera ist und kann nur in einem Raum sein. Das habe ich in der object.json verifizieren können und auch bei der Anzeige der enums und der Zuordnung der Räume (auch nach einem Neustart des ioBrokers oder Linux) ist alles in Ordnung. Bsp. let dppCamProp = 'javascript.0.alarm.devices.Cams.Cam0'; let oCamRooms = getObject(dppCamProp), 'rooms') logs(fctName + ', oCamRooms: ' + JSON.stringify(oCamRooms), 'debug2'); "enumIds":["enum.rooms.entrance","enum.rooms.workshop"],"enumNames":["entrance","workshop"] Die Kamera ist aber gar nicht der Werkstatt zugeordnet "enum.rooms.entrance": { "_id": "enum.rooms.entrance", "type": "enum", "common": { "name": { "en": "entrance", "de": "Hauseingang außen" }, "desc": "Hauseingang außen", "members": [ "javascript.0.alarm.devices.Cams.Cam0", "javascript.0.alarm.zones.2.20" ] }, "from": "system.adapter.hm-rega.0", "ts": 1544567253529, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "enumIds": [ ], "enumNames": [ ] } "enum.rooms.workshop" { "_id": "enum.rooms.workshop", "type": "enum", "common": { "name": { "en": "workshop", "de": "Werkstatt" }, "desc": "Werkstatt", "members": [ "javascript.0.alarm.devices.Cams.Cam7", "hm-rpc.0.BidCoS-RF", "javascript.0.alarm.zones.2.22" ] }, "from": "system.adapter.hm-rega.0", "ts": 1544124463498, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "enumIds": [ ], "enumNames": [ ] } Nach meinem Verständnis der Funktion getObject(id, 'rooms') bzw. getObject(id, true) liefert dieser Aufruf quasi "reverse engineered" aus enum.rooms den zugeordneten Raum. Aber wieso auch die Werkstatt? Es gibt 2 Kameras (Cam1 und Cam2), wo die Raum-Zuordnung stimmt. Diese beiden Kameras sind die beiden einzigen, wo es anscheinend immer stimmt (auch nach löschen eines Raumes). Folgendes habe ich noch beobachtet: Es wird an fast jeder Kamera ein 2. Raum angehangen, der 2. Raum ist überall derselbe Wenn ich einen Raum lösche, z. B. den "FALSCHEN" angehangenen, dann sucht sich ioBroker einen neuen Zombieraum Die Ausgaben der enum.rooms-Objekte von "entrance" und "workshop" sind ja korrekt. Gibt es Beschränkungen in der Namensgebung für Räume? Meine enum.room-Ids lauten z. B. wie folgt: enum.rooms.dining_room enum.rooms.co-op_office enum.rooms.co-op_entrance_hall enum.rooms.utility_room enum.rooms.entrance … Ist das nun ein Fehler in javascript-Adapter oder im js-Controller? Laufen tut das ganze bei mir unter node: v8.14.0 debian Jessie, aktueller Patchstand Script-Engine: 4.0.5 js-Controller: 1.4.2
  • Hilfe für Nachkommastellen

    Moved
    13
    2
    0 Votes
    13 Posts
    3k Views
    E
    ich meinte welche sensoren das sind die die temperatur von den räumen liefern. habe schon viel gegooglet aber nun bin ich mehr verwirrt als zuvor. ist das ein hue gerät das mit batterie in den raum gestellt wird und dann per wlan die daten ans node sendet? oder eventuell ein raumthermostat das mit wifi funktioniert?
  • Brauche Hilfe mir Blockly

    Moved
    13
    0 Votes
    13 Posts
    1k Views
    S
    Funktioniert nicht…..egal
  • Gelöst: On {id…...} Frage für Homematic

    Moved
    4
    0 Votes
    4 Posts
    414 Views
    apollon77A
    sollte so tun
  • Per ausführbaren Script alle Geräte aus

    Moved
    2
    0 Votes
    2 Posts
    240 Views
    MicM
    Hi, die Doku kennst Du? Blockly: http://www.iobroker.net/docu/?page_id=5319&lang=de Ein Blockly-Programmierkurs würde hier wohl den Rahmen sprengen, daher am besten mal einlesen, probieren und dann noch mal konkreter Fragen stellen.Im Endeffekt setzt Du im Blockly dann jeden Datenpunkt eines jeden Deiner Geräte auf "aus", also in der Regel "False"/"Falsch". Reihenfolge: 1.) Neuen Datenpunkt unter Objekte erstellen, dort unterhalb javascript.0. Z.B. "AllesAus", Typ "Logikwert" (Also Boolean). 2.) Blockly-Script erstellen, das startet, sobald der neue Datenpunkt auf "True" gesetzt wird 3.) In VIS z.B. das Widget "jqui - Button State" einfügen, unter Datenpunkt den Pfad zu Deinem erstellen Datenpunkt, und unter Wert "true" eintragen. Versuche es einfach mal wie weit Du kommst, nach dem Einlesen etc., dann wird Dir sicherlich geholfen wenn Du wo hängst.
  • Offene fenster zählen mit blocky

    Moved
    2
    0 Votes
    2 Posts
    304 Views
    T
    Dann hast du ja sicherlich Vorarbeit zum zeigen und lernen parat? Ansonsten die Suchfunktion nutzen, das Thema gibt's vielfach.. Es Helfen sicher viele gerne, aber was ungern gesehen wird ist , wenn man den Eindruck haben muss, dass jemand das Brot geschmiert haben will…
  • Sonos per Blocky steuern

    Moved
    8
    0 Votes
    8 Posts
    1k Views
    S
    braucht es den Teil "falls mache" überhaupt? wäre es nicht besser nur steuere zu verwenden? PS: ich lese mich durch die Themen um die Logik zu verstehen. Gesendet von unterwegs mit Tapatalk
  • Anfängerfrage Relais für unterschiedliche Zeit ansteuern

    Moved
    3
    0 Votes
    3 Posts
    328 Views
    Tobi82T
    Wie "erzeuge" ich mir denn den Trigger hoch und runter? Sorry für die blöden Fragen ;-)
  • [gelöst] Blockly Script für einfache Zeitsteuerung

    Moved
    7
    1
    0 Votes
    7 Posts
    1k Views
    Deanna4711D
    Gestern Abend und heute morgen hat der Sonoff korrekt geschaltet. Ich glaube, der Haken in dem "Debug" Kästchen oben neben "Hilfe Ausgabe" war das Problem. Ich habe den ioBroker erst seit 2 Wochen am laufen und muss mich noch einfinden. ;) Ich beobachte mal heute ABend noch und sonst melde ich den Thread als gelöst. Vielen Dank an alle Helfer!
  • Espeasy flasher

    Moved
    2
    1
    0 Votes
    2 Posts
    283 Views
    K
    Kopiere die gewünschte bin. einfach ist Verzeichnis wo die exe drin ist !!
  • [gelöst] Anwesenheit mit OWFS und Homematic

    Moved
    4
    0 Votes
    4 Posts
    475 Views
    paul53P
    @Nassi: Aber warum so? ` Buttons änderen ihren Wert (true) nicht, sondern aktualisieren nur den Zeitstempel. on("owfs.0.wires.iButtonLila",... triggert nur bei Wertänderung. on({id: "owfs.0.wires.iButtonLila"},... triggert bei jeder Aktualisierung auch ohne Wertänderung.
  • Shelly Licht am, Vordach steuern

    Moved
    5
    1
    0 Votes
    5 Posts
    744 Views
    D
    Ok, hab den oberen Teil nachgebaut und das Licht selbst eingeschaltet. Mal sehen ob es von alleine ausgeht nachher.
  • Empfang mit mehreren 433MHz Empfänger

    Moved
    1
    0 Votes
    1 Posts
    275 Views
    No one has replied
  • Daten bzw. einzelne Datenpunkte auf externem FTP Server speichern

    Moved
    9
    0 Votes
    9 Posts
    2k Views
    S
    @BulldogISL@gmx.de, vielen Dank für Deine Mühe. Ich werde mir das mal zu gemüte führen und auf meinen Bedarf umstricken. Danke Christian
  • Remote Skript Debugging mit VSCode

    Moved
    3
    0 Votes
    3 Posts
    756 Views
    ruhr70R
    Vielleicht hilft das: viewtopic.php?f=20&t=4564&p=187360&hili … gen#p61477
  • Python Script in Exec ausführen

    Moved
    1
    0 Votes
    1 Posts
    324 Views
    No one has replied
  • Scripte funktionieren plötzlich teilweise nicht mehr

    Moved
    6
    0 Votes
    6 Posts
    531 Views
    apollon77A
    Zeig mal bitte das generierte Javascript

582

Online

32.7k

Users

82.6k

Topics

1.3m

Posts