Skip to content

Skripten / Logik

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

16.4k Themen 211.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    D
    @maxclaudi Vielen Dank für das ausführliche oben beschriebene Verhalten von smartMode. Es gibt wirklich keine konstante wann er umschaltet. Hatte erst mal.4 Tage ohne umschalten und dann kann sein das er 3 mal am tag umschaltet
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    Dr. BakteriusD
    @Asgothian sagte in Farbe aus R/G/B rechnet falsch: ggf. erwartet dieser die farbwerte in %, nicht 0-255 Danke, das war's.
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • [gelöst]Fehler in Skripten nach Javaskript Adapter Update auf 2.1.2

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    paul53P
    @pix: Wenn jetzt also eine Zeichenkette in einen Number-Datenpunkt geschrieben werden soll, gibt es einen Fehler. Richtig? ` Ja. @pix: Gilt das auch für Adapter? ` Bisher ist die Typprüfung nur im JS-Adapter implementiert. Meiner Meinung nach sollte sie künftig für alle Adapter erfolgen. Ist aber vielleicht nicht die Meinung von Bluefox :?: Oder schwierig zu realisieren ?
  • (beantwortet) über welchen Datenpunkt Adapter ein- und ausschalten?

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    ruhr70R
    Danke Euch beiden! Funktioniert :-) on({id: 'javascript.2.Test' ,change:'ne'}, function (dp) { log(dp.state.val); var obj = getObject("system.adapter.hm-rpc.1"); obj.common.enabled = dp.state.val; setObject("system.adapter.hm-rpc.1", obj); });
  • Generischer Betriebsstundenzähler

    Verschoben
    17
    2
    0 Stimmen
    17 Beiträge
    3k Aufrufe
    L
    Hallo Bluefox, vielen Dank erstmal. Dann kann ich ja schon anfangen :) ich habe im Moment kein System zur Verfügung aber ich habe mir die Doku angesehen. Die Vorbereitungen zum Adapter habe ich verstanden, sollte kein Problem sein. Dann die Prinzipiellen Unterschiede wie channel und das lesen und schreiben von States wird schon gehen. Ich habe aber ein paar grundsätzliche Fragen: Dialog für die Parametrisierung wie funktioniert der Einstellungsdialog. Ich habe da ja sehr viele Parameter, die ich mit Funktionen verknüpfe. Gibt es auch die Möglichkeit Einstellungen mehrstufig (also über weiterführende Button) zu programmieren ? Ich glaube, dass es ansonsten nur zeilenweise geht ? Mischung von Event und schedule Ich habe die Möglichkeit im Skript die Eventsteuerung mit einem Schedule zu übersteuern. Da - wie ich es zumindest verstanden habe- der Modus je Adapter einzustellen funktioniert das dann nicht ? -Mobile Entwicklungsumgebung ich bin viel unterwegs und würde gerne in der Woche meine Abende nutzen. Ich habe zwar einen PC aber leider ohne ADMIN Rechte. Was würdest du empfehlen ? evt ein Raspi zum Mitnehmen ? Da ich kein SSH habe würde ich wohl vom PC nur den Monitor nutzen können via HDMI. Datenpunkte könnte ich über kleine Scripte selber füllen um z.B. Geräte zu simulieren. Oder hast du evt andere Vorschläge ? vG Looxer
  • History-Adapter: Wie an Werte kommen?

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    7k Aufrufe
    paul53P
    @Homoran: Ich fürchte diese Version läuft unter der Standardkonfiguration nicht unbedingt problemlos. ` Das kann ich für den Reiter "Zustände" im Admin-Adapter bestätigen, der die Zeitstempel nicht richtig aktualisiert, was sicherlich mit der Umstellung auf Millisekunden zu hat. Ich habe zum Funktionstest der Wertänderung von Datenpunkten vom Typ "Schalter" (boolean with states) im jeweiligen Reiter nur die Dateien "adminStates.js" und "adminObjects.js" ausgetauscht. Ich hoffe, dass die Übergabe aller nach Millisekunden geänderten Adapter (vor allem js-controller) an npmjs.org möglichst bald erfolgt. Die History-Einstellung von nur 1 Datenpunkt im RAM bewirkt, dass History häufige Logs verursacht, was ich insofern gelassen sehe, da ich die ioBroker-Logs (über Symlink) und die History auf einen 32 GB USB-Stick und nicht auf die SD-Card schreibe.
  • Frage: wie on() aus array anlegen?

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    Jey CeeJ
    Ok danke für die info. Bei mir geht das nicht, aber ich hab seit meinem umzug auf einen Nuc probleme mit den daten vom rpc Adapter. Könnte dann damit zu tun haben. Gesendet von meinem Jolla mit Tapatalk
  • Nmp Module - wie kann ich diese beiden laden

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    T
    Danke erstmal, das bedeutet wohl ich bekomme das nicht zum laufen. :( Danke für die Hilfe, für Tipps bin ich weiterhin dankbar.
  • Solarwetter

    Verschoben
    18
    0 Stimmen
    18 Beiträge
    4k Aufrufe
    P
    Hab das Skript zum einem Adapter weitergebaut. Viel Spaß: http://forum.iobroker.net/viewtopic.php … 844#p25693 Gruß Pix
  • Hilfe beim Java script für eine Zeitleiste anzeige bzw ändern

    Verschoben
    7
    1
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    C
    Super!!! :D :D :D 1000 Danke euch allen! Man lernt echt nie aus & hab so viel da rum probiert :) Jetzt läuft alles so wie ich es wünsch :) Danke euch allen noch einmal! Schönen Abend euch noch :)
  • [gelöst] Script zum Lüften und zur Statusanzeige in vis

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    3k Aufrufe
    andreA
    @simpixo: Du benutzt in deinem Script 4 Drehgriffsensoren. Ich würde gern mehr nutzen können, wäre das Problemlos möglich? Oder muss im Script was angepasst werden? ` Ja, das geht sicher. Allerdings nicht "von Haus aus". Du musst einfach entsprechend weitere Datenpunkt-IDs anlegen und diese deklarieren und initialisieren: // Datenpunkt-IDs var idNEUlueften = "hm-rpc.0.LEQXXXXXXX.1.STATE"; // Weiterer Sensor // Variablendeklaration und Initialisierung bei Scriptstart var stateNEUlueften = getState(idNEUlueften).val; Anschließend musst du natürlich die Bedingungen der Funktion nach deinen Wünschen anpassen bzw. erweitern. Beispiel: // Funktion zum Setzen des Status bei Lüften OG function setStatus() { var stateDaily = getState(idDaily).val; if (stateDaily === true) { // Wenn og_daily = true if (stateBOlueften !== 0 && stateSZlueften !== 0 && stateK1lueften !== 0 && stateK2lueften !== 0 && stateNEUlueften !== 0) { // Wenn alle Fenster offen setState(idStatus, 1); // Es wird gerade gelüftet! } else if (stateBOlueften === 0 && stateSZlueften === 0 && stateK1lueften === 0 && stateK2lueften === 0 && stateNEUlueften === 0) { // Wenn alle Fenster geschlossen setState(idStatus, 3); // Heute bereits gelüftet! } else if (stateBOlueften !== 0 || stateSZlueften !== 0 || stateK1lueften !== 0 || stateK2lueften !== 0 || stateNEUlueften !== 0) { // Wenn mindestens ein Fenster offen setState(idStatus, 4); // Fenster gerade offen, kein echtes Lüften! } } else if (stateDaily === false) { // Wenn og_daily = false if (stateBOlueften !== 0 && stateSZlueften !== 0 && stateK1lueften !== 0 && stateK2lueften !== 0 && stateNEUlueften !== 0) { // Wenn alle Fenster offen setState(idStatus, 1); // Es wird gerade gelüftet! setState(idDaily, true); } else if (stateBOlueften !== 0 || stateSZlueften !== 0 || stateK1lueften !== 0 || stateK2lueften !== 0 || stateNEUlueften !== 0) { // Wenn mind. ein Fester offen setState(idStatus, 4); // Fenster gerade offen, kein echtes Lüften! } else if (stateOutTemp > stateSZTemp) { // Wenn Außentemperatur größer Innentemperatur setState(idStatus, 2); // Lüften nicht sinnvoll! } else { // Für alle anderen Fälle setState(idStatus, 0); // Heute noch nicht gelüftet! } } } Und zum Schluss dann am Besten noch auf den zusätzlichen Sensor triggern und die Funktion ausführen lassen: // Aufruf der Funktionen bei Änderung der Stati on(idNEUlueften, function(dp) { setTimeout(function(){ stateNEUlueften = dp.newState.val; setStatus(); }, 1000); }); MfG, André
  • Skript HD Speicherbelegung ioBroker auf Linux-Rechnern

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    906 Aufrufe
    ruhr70R
    So… ich habe jetzt ein paar Systemparameter von beiden Ubuntu VMs (1x ioBroker, 1x mySQL) in ioBroker eingebunden. U.a.: HD ioBroker Rechner (gesamt, verwendet, frei, …) HD mySQL Rechner, s.o. Speicher ioBroker Rechner Speicher mySQL Rechner Dateigröße iobroker gesamt und iobroker-data Dateigröße mySQL gesamt und mySQL ioBroker Datenbank Verfügbare Updates für beide Rechner [image: 327_iobroker_systeminfos.jpg] Ist in meiner Umgebung sehr speziell (2x Ubuntu, Datenbank und ioBroker getrennt) und war eine ziemliche Bastelei mit bescheidenen Linux-Kenntnissen. Falls Teile davon trotzdem für jemanden interessant ist, dann kann ich versuchen, den Teil zu beschreiben (Mount von Verzeichnissen mit autofs, cron, bashscript, Ausgabe der Abfragen in eine Datei, ioBroker Javascript Abfragen, …). Eine Nagios-Installation wäre wohl schneller gegangen ;-)
  • Zeitverzögerung zwischen STATES

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    666 Aufrufe
    S
    Okay so einfach war das [emoji79][emoji15][emoji23] das hätte ich auch selbst finden können wenn ich da rein geschaut hätte Asche über mein Haupt [emoji6] Danke Gesendet von meinem iPhone mit Tapatalk
  • Schalten 2 Stunden nach Sonnenuntergang

    Verschoben
    20
    0 Stimmen
    20 Beiträge
    5k Aufrufe
    P
    @Bluefox: Wir brauchen iobroker.holidays adapter. 8-) ` Is da :lol: :lol: http://forum.iobroker.net/viewtopic.php … 754#p24642
  • HM-RC-Key4-2 Abfrage

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    khgK
    Hallo pix, vielen herzlichen Dank für die Info. Mit dem Workaround kann man leben.
  • Interaktionen zwischen Skripten

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    737 Aufrufe
    T
    Hi, danke für den Tipp, klappt super! Viele Grüße Trident
  • Wo liegen die 'Original'-Scripts

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    paul53P
    @tgirard: Und im Backup sind sie dann schon, nehme ich an ` Ja, sie werden in der Datei "objects.json" gespeichert. @pix: …kopiere alle Skripte aus dem ioBroker Editor in meinen externen Editor bei Änderungen und speichere die Dateien separat ab. ` So halte ich es normalerweise auch.
  • Script best practise

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    T
    Danke wird gleich mal getestet…! Gesendet von iPad mit Tapatalk
  • Zwei-Punkt Regler (Hysterese)

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    T
    Danke euch für die Tipps! Werde es ausprobieren und berichten :)
  • Tasker TNES

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Frage - per Script "Adapter Informationen aktualisieren"?

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    2k Aufrufe
    ruhr70R
    @Bluefox: @ruhr70: @Homoran: Viel Glück, da gerät sogar google translate ins schleudern ;-) ` He he, umgekehrt wahrscheinlich auch ;-) ` Ich habe schon fast Schreck bekommen, als ich Antwort von ruhr70 auf russisch gesehen habe. :lol: Ist ein guter Punkt, Muss ich überlegen, wie ich das mache. Weil nämlich Update kann man aus der Konsole auch machen, und dass (besonders wenn direkt über npm) kann ich gar nicht detektieren. Aber ich denke es reicht aus, wenn ich über admin das aktuell halte. ` War das so schlimm? ;-) Ist jetzt nicht lebensnotwendig.Falls es eine Kleinigkeit gewesen wäre, hätte es einfach mit reinrutschen können. Wenn es geht prima. Wenn nicht, muss man halt einen Klick mehr machen ;-)
  • String nach Boolean

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    paul53P
    @blauholsten: Wenn du global z.B. eine function deklarierst function global(){ log('hallo Welt')} Kannst du diese von überall aufrufen. ` Wenn Du eine Funktion innerhalb eines globalen Skriptes (Skript in Gruppe "global") deklarierst, function meine_globale_Funktion(x, y) { mache was mit x und y } kannst Du diese Funktion von überall aufrufen.

848

Online

32.4k

Benutzer

81.5k

Themen

1.3m

Beiträge