Skip to content

Skripten / Logik

16.6k Topics 214.3k 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
    @ticaki Ja, das mit der Sinnhaftigkeit ist so eine Sache. Bei mir haben sich mittlerweile über 100 Skripte angesammelt und es kommt immer wieder mal noch was dazu. Und auch hier, ja, mir ist bewusst das 5 Instanzen vom Javascript-Adapter speichermäßig „teuer“ erkauft sind. Daher auch der eigene Pi als Slave. Performanceprobleme hatte ich dadurch bis dato noch keine, zumindest nicht bemerkt. Was für mich nicht sinnvoll war / ist, ist mehrfach verwendeten Code zu kopieren oder parallel in Skripten zu haben, das macht aus meiner Sicht irgendwann die Wartung oder Ausrollung von Erweiterungen fast unmöglich. Die Klassen und Module im großen Stil in global zu verpacken ist für mich auch keine sinnvolle Option. Auch wenn es vermutlich nicht soviel Performance kostet. Ich habe auch mehrere Funktionen die ich mehr oder wenige in jedem Skript in irgendeiner Art verwende, z.B. erweiterte Logging-Funktionen, die habe ich auch im global in zwei Closures zusammengefasst. Mir gefällt dabei aber nicht, das bei einer kleinen Änderung in einem globalen Skript alle Skripte in allen Instanzen neu starten und weiters auch nicht, dass ich da im Hauptskript irgendwas unsichtbar im Vorbau geschrieben habe (das ist aber eine persönliche Befindlichkeit). Aber als Beispiel, ich habe ein Modul mit Funktionen zu diversen Farbwertumrechnungen. Diese benötige ich in 7 von den etwas über 100 Skripten. Dafür jetzt diese in global überall „mitzuschleppen“ widerstrebt mir irgendwie. Aus diesem Grund ist für mich die Einbindung von Modulen und Klassen über require die sinnvollste Lösung. Vor allem weil ich alles an einem Platz im Javascript-Adapter habe, nicht mit externen Files herumhantieren muss, im Hauptskript immer genau sehe was ich über require eingebunden habe, die Skripte aus meiner Sicht besser strukturieren und aufteilen kann und auch die Sicherung mit allen Hauptskripten einfach mitläuft. (und ja, das bietet global im Wesentlichen auch) Aber wie geschrieben für mich. Ich denke es muss jeder für sich selbst die praktikabelste Lösung finden.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    L
    Hallo @paul53 erstmal vielen vielen Dank für die Hilfe beim Skript. DIe Pflanzen freuen sich und bilden trotz der noch kalten Temperaturen viele neue gesunde weiße Wurzelansätze und Blätter. Die Praxis zeigte noch ein Problem bei leichten Temperaturschwankungen bzw. fallenden Temperturen am Tag und in der Nacht. Hier kommt es vor, dass die Pumpe teilweise 3 mal hintereinander aktiviert wird wenn die Temperatur leicht um einen Grenzwert schwankt. Bzw. wenn die Tempertur unter einen Grenzwert fällt und die Pumpe dann nach nur 3-4 min Auszeit wieder aktiviert wird. Vorallem da die Ausschaltintervalle bei niedrigeren Temperaturen größer sind wird hier öfters einen unnötig lange Bewässerung durchgeführt die auch Energie kostet. Ebenso reduziert dies die Lebensdauer der Pumpe. Wäre es möglich, wenn eine Schwelle nach unten erreicht wird den Ausschaltzyklus erst zu beenden wenn die Zeit des alten Ausschaltzyklus (also die Off-Zeit) beendet ist. Nach unten wäre dies unkritisch da die Ausschaltzyklen immer länger werden. Auch beim Übergang von Tag zu Nacht kommt der Effekt, dass die Pumpe relativ lang läuft öfters vor. Da beim Übergang Tag zur Nacht direkt wieder ein neues Intervall mit Pumpe an angetriggert wird. Auch hier wäre es sinnvoll den alten Zyklus des Ausschaltintervalls erst auslaufen zu lassen bevor der das neue On-Intervall in einem anderen Temperaturbereich beginnt. Bei steigenden Tempraturen würde ich es in Kauf nehmen, da es bei höheren Temperaturen sonst zu Sauerstoffmangel der Pflanzen an den Wurzeln oder Austrocknung der Wurzeln kommen könnte. Anbei das aktuelle Skript mit geänderten Temperatursensoren usw. und meinen großen Dank im Voraus!!!! <block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="vbIVcD1KaDJJ~I2JS+6E" x="-513" y="-1588"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="math_change" id="{_2G@689k!l?bOZuH|kD"> <field name="VAR" id="vGD4^:?$tv;A|f#hKk[X">cnt</field> <value name="DELTA"> <shadow type="math_number" id="mpj`cJhX9=dw-2yWD0L="> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="pc/|^luOsp71PW#HG^BD"> <value name="IF0"> <block type="logic_compare" id="WTIS,Yhv~18WSL#IUb^m"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="]v+*`999?)/*n5PUbmxg"> <field name="VAR" id="vGD4^:?$tv;A|f#hKk[X">cnt</field> </block> </value> <value name="B"> <block type="math_number" id="?+HW]4e,;=*9[r~vES~6"> <field name="NUM">120</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="W|O:dyKP6:!Mvo}lg8RJ" inline="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="U/hkhig[Gdi?J+,e$.,g"> <field name="TEXT">Warnung Temperaturfühler hängt!</field> </shadow> </value> <value name="USERNAME"> <block type="text" id="gg!KQ(H0z+/d45Kr6Qti"> <field name="TEXT">Ronny</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block>
  • 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
  • Screenshot per Telegram oder Pushover verschicken

    blockly
    2
    0 Votes
    2 Posts
    355 Views
    arteckA
    @Darkmann2000 ach komm.. die diskussion gabs sogar letzte woche mit einem Script..als beispiel.. schon die Suche bemüht ?? und dann noch doppel Post...
  • Shelly RGBW2 Geschwindigkeit der Scriptausführung

    blockly
    1
    1
    0 Votes
    1 Posts
    319 Views
    No one has replied
  • HM Thermostat runtersteuern bei Fenster auf

    heating
    5
    0 Votes
    5 Posts
    1k Views
    T
    @micha86 erstmal vielen dank für dein skript. Ich hätte nur paar kurze Fragen dazu. Wofür steht value-bm-fk-02?
  • MQTT String generell aufteilen?

    javascript
    28
    0 Votes
    28 Posts
    4k Views
    R
    @Rushmed Hat niemand ne Idee?
  • Waschmaschinen Script bringt plötzlich fehler

    blockly
    9
    2
    0 Votes
    9 Posts
    414 Views
    wendy2702W
    @paul53 mit JS meine ich den JavaScript Adapter der ja Blockly enthält.
  • Neuling benötigt Hilfe beim ersten Script

    blockly
    11
    1
    0 Votes
    11 Posts
    350 Views
    S
    @paul53 perfekt Paul53, das wars. Danke!!
  • Verzögerung Rolladensteuerung

    blockly
    6
    1
    0 Votes
    6 Posts
    479 Views
    paul53P
    @Fardret sagte : Die ObjektID ist dann quasi die Verzögerung in in Minuten?? Der Wert des Datenpunktes mit der ausgewählten ID enthält die Verzögerung in MInuten.
  • Anzahl Tage berechnen

    blockly
    23
    1
    0 Votes
    23 Posts
    2k Views
    A
    @paul53 Der Wert steigt dauernd mit jedem Verbrauch. 30 cm voll, 110 cm leer
  • 0 Votes
    14 Posts
    1k Views
    AsgothianA
    @Tobi-Welke Stimmt schon. Aber glücklicherweise ist das einfach zu lösen - das old=value; muss nur in den Zweig wo auch der Taupunkt berechnet wird. Das der Influx Adapter einen Trigger setzt sehe ich aktuell nicht. A.
  • Anwesenheitssimulation

    blockly security javascript
    2
    0 Votes
    2 Posts
    630 Views
    lobomauL
    @Uli977 ich benutze das Script von Looxer in der Version 0.80 Aktuell ist wohl 0.94. Gibt es hier: https://forum.iobroker.net/topic/1671/vorlage-anwesenheitssimulation-script?page=1
  • Gelöst: Verwendung Dynamischer Namen im Basic Image

    javascript
    3
    0 Votes
    3 Posts
    269 Views
    M
    @MCU Guten Morgen, die Umbenennung des Bildes oder kopieren und speichern soll automatisch passieren, also per Script
  • Blockly - HM-IP Wandtaster

    blockly
    3
    1
    0 Votes
    3 Posts
    644 Views
    SWE1008S
    @Maj0r Hallo, wie hast du es denn jetzt gelöst? Ich stehe momentan vor dem selben Problem...
  • [gelöst] Datenpunkt bei HmIP-eTRV-2 für Heizprofil

    blockly heating
    1
    1
    0 Votes
    1 Posts
    347 Views
    No one has replied
  • Lichter an prüfen

    blockly
    5
    0 Votes
    5 Posts
    541 Views
    TheBamT
    @DaniStrie Vielen Dank das freut mich. Kannst du in dem Forums Post wo der als Test steht kurz einen Bericht reich schreiben das ich den vielleicht irgendwan auch in die stabel Liste bekomme? Ansonsten kommt der halt nie in die Adapter Liste.
  • Return liefert undefined

    javascript
    3
    0 Votes
    3 Posts
    186 Views
    PeoplesP
    @UncleSam Manchmal sieht man den Wald vor lauter Bäumen nicht
  • Projekt "Playbox" MQTT, RFID, Login mit Username und PW

    javascript
    6
    0 Votes
    6 Posts
    255 Views
    H
    @MCU ...leider ist das nicht das Problem - habe auch keinen sonoff installiert, trotzdem mal auf 1886 geändert, hatte aber nichts gebracht. Dachte diese Meldungen im ms-Takt wären vielleicht ein Hinweis :-(
  • Astro Sonnenaufgang Global?#Trigger

    blockly
    6
    0 Votes
    6 Posts
    544 Views
    HomoranH
    @Jens-Lattwesen sagte in Astro Sonnenaufgang Global?#Trigger: Einfach, weil ich viele Scripts habe, bei denen dieser Trigger zum Einsatz kommt. Das hatte ich schon verstanden. @Jens-Lattwesen sagte in Astro Sonnenaufgang Global?#Trigger: Ist aktuell ca 16.45. Ist mir zu früh und je nach Jahreszeit soll dann der Offset verschoben werden? So ganz aus dem Bauch fällt mir eine Möglichkeit ein, von der ich aber nicht weiß wie sie umzusetzen ist. kleines Skript errechnet den heutigen Sonnenauf-, ersatzweise -untergang und trägt die Uhrzeit in einen Datenpunkt Irgendwie diese Uhrzeit als Trigger nehmen
  • Idee für das Monitoring von Unbound?

    monitoring
    6
    0 Votes
    6 Posts
    808 Views
    liv-in-skyL
    @Berzi je nach interval dauert es manchml, bis die daten ein erstes mal kommen mal ein beispiel für meinen raspi4 (ist ein raspian mit chromium zu anzeigen einer vis seite) allgemein: [image: 1604922207437-image-4.png] befehle: [image: 1604922212278-image-5.png] service: [image: 1604922216956-image-6.png] [image: 1604922914669-image-8.png] bin mir nicht mehr sicher: ich glaube , ich habe ganz normal die rsa sachen erstellt und dann auf alle server kopiert - daher zeigen alle server auf dem iobroker nur auf ein verzeichnis (pkk habe ich nicht genutzt) - hatte das mit einer anleitung gemacht - leider habe ich die nicht gesichert [image: 1604922687769-image-7.png]
  • Anzahl offener Alexa-Benachrichtigungen

    monitoring
    4
    0 Votes
    4 Posts
    666 Views
    M
    @n3ucr0n [image: 1604921699858-9d1ef9b5-ce93-4663-a8c3-2061a25ce921-image.png] Alexa, erinnere mich in 2 Min Alexa: Wofür ist die Erinnerung? Kaffee kochen Du meinst MEMO-Funktion. Da gibt es nur die Löschfunktion unter alexa2.0.Contacts.*.#clearOwnMessages und man kann dort eine eigene MEMO-Verfassen, die man dann in der App sehen kann.
  • Blockly Aktualwerte anzeigen lassen

    blockly monitoring javascript
    5
    0 Votes
    5 Posts
    396 Views
    D
    @MCU Ja in der Auswahl, ich meinte aber direkt am Blockly ![alt text]([image: 1604841418169-blockly_akt.png] image url)

237

Online

32.7k

Users

82.6k

Topics

1.3m

Posts