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
    Murphy 0M
    @Martin_1705 sagte: Danke, habe gefunden dass ich das Solarflow 800 Plus über setDeviceAutomationInOutLimit in den Objekten steuere. Sorry aber ich kann mit dem Solarflow 800 nicht wirklich helfen. Ich habe einen Hyper2000 ohne Solarmodule den ich rein AC seitig betreibe. Hier im Fred gibt es aber einiges an Beispielen als Blockly welche dir weiterhelfen solten. Noch besser hier mal schauen, da gehts um die neuen Geräte mit lokalem Betrieb und neuem Adapter: https://forum.iobroker.net/topic/69579/test-adapter-zendure-solarflow
  • 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
  • Prüfen ob Wert sich in einer Range befindet

    javascript
    3
    0 Votes
    3 Posts
    223 Views
    M
    @paul53 sagte in Prüfen ob Wert sich in einer Range befindet: if(Wert >= 30 && Wert <= 80) Dankeschön ;-)
  • Flot Chart nach Excel (oder CSV) exportieren

    Moved
    11
    0 Votes
    11 Posts
    1k Views
    P
    Kennt jemand auch eine Datenbank-unabhängige Lösung? Ich nutze influxdb und habe bei einem Bekannten history eingerichtet. Praktisch wäre der Weg über Flot...
  • Nachricht, wenn offline

    blockly monitoring
    1
    1
    0 Votes
    1 Posts
    354 Views
    No one has replied
  • [Gelöst] Hue Bewegungsmelder deaktivieren

    Moved
    16
    0 Votes
    16 Posts
    3k Views
    Andreas LenzA
    @cash Danke für die Info! In der App hat man jetzt mehr Funktionen aber zum deaktivieren über z.B. Siri Shortcuts oder Apple HomeKit habe ich bis jetzt noch nichts gefunden.. Wäre natürlich die smarteste Lösung. Besten Dank
  • Sayit Zeit

    javascript blockly communication
    1
    0 Votes
    1 Posts
    157 Views
    No one has replied
  • Neuling hat Probleme mit Skriptausführung

    blockly javascript
    13
    0 Votes
    13 Posts
    778 Views
    A
    Hi, hab es eben mal ausgetestet jetzt funktioniert es !!! Danke sehr!!!
  • This topic is deleted!

    0
    0 Votes
    0 Posts
    18 Views
    No one has replied
  • Brematic direkt per Skript steuern

    Moved javascript
    3
    0 Votes
    3 Posts
    1k Views
    opossumO
    Hallo, @Derrow, würdest Du Dein Brennenstuhlscript hier noch einmal reinstellen. Das Script im Post 1 ist irgendwie gemixt am Ende. Vielen Dank. Gruß opossum
  • [gelöst]Alexa soll Pause machen

    blockly
    4
    1
    0 Votes
    4 Posts
    1k Views
    dslraserD
    @jwedenig mit speak setzt Du einfach ein Komma, da wo eine kurze Pause gewünscht ist. (Die Temperatur beträgt jetzt, )(hinter dem Komma ein Leerzeichen) ssml hat da mehr Möglichkeiten.
  • Snapshot senden über email adapter

    Moved
    20
    0 Votes
    20 Posts
    5k Views
    C
    Das Problem hat sich gerade erledigt. Der Mailadapter lief auf dem Slave ioBroker, dort war natürlich die Datei nicht vorhanden.
  • [gelöst]Homematic IP und Comet DECT

    blockly
    20
    0 Votes
    20 Posts
    2k Views
    paul53P
    @HeliosFan sagte: So funktioniert es vorwärts und rückwärts, auch wenn die Temperatur Änderung in der FB / FritzApp2 ... geändert wird Das ist von der Funktionalität her identisch wie mit Wert (Eigenschaft des Triggerdatenpunktes). Vermutlich hattest Du an der Stelle noch eine Variable Wert verwendet.
  • [gelöst] Warnungen im debug log von javascript

    javascript
    6
    0 Votes
    6 Posts
    431 Views
    padrinoP
    Alles klar. Danke. :)
  • Problem mit definierten Werten(Variablen)states

    heating communication
    2
    0 Votes
    2 Posts
    301 Views
    paul53P
    @Mikewolf sagte: nach der Auswahl nur Warmwasser in das Objekt schreibt sonst nix! Entweder ist der Datenpunkt vom Typ "string" - dann kann er "Wamwasser" enthalten hat aber kein Auswahlmenü, oder ist vom Typ "Werteliste" = "number" mit states, dann ist der eigentliche Wert immer eine Zahl.
  • 0 Votes
    35 Posts
    11k Views
    moppel2810M
    Ich finde auch keine Geräte mehr in den Adapterkonfiguration tr-064-community.0
  • Pushbullet klappt nicht im Script

    javascript blockly communication
    2
    3
    0 Votes
    2 Posts
    336 Views
    liv-in-skyL
    @jhuebner1 falls blockly gewünscht ? damit geht's bei mir [image: 1569909061607-image-1.png] sendTo("pushbullet.0", "send", { "message": 'von iobroker', "title": 'alarm', "type": 'note', "receiver": 'ujC6xxxxxxxxxxUvRI' }); wie es mit nicknames funktioniert, weiß ich nicht - die id's der geräte bekomme ich über : [image: 1569910989422-image-3.png] der curl befehl benötigt den api key von pushbullet curl --header 'Access-Token: o.YKeXkxxxxxxxxxxxxxxxxxxxxxxxxxpi9v' \https://api.pushbullet.com/v2/devices import blockly- get ids: Spoiler <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="X9`at:-6IX;0sDS`vu/E">helferlein</variable> <variable type="" id="QLuvwmsEww5Fznot.S{!">j</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="-K|h*y)J9|h*rDQQ%e|P">result</variable> </variables> <block type="variables_set" id="gnns*UySjAihC$AX;b3w" x="-1112" y="-362"> <field name="VAR" id="X9`at:-6IX;0sDS`vu/E" variabletype="">helferlein</field> <value name="VALUE"> <block type="text" id="{I`+g`T[I@zENqX;;o!0"> <field name="TEXT"></field> </block> </value> <next> <block type="exec" id=";yZH3#4j@m)x(t!KuStM"> <mutation with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="K*pR(O]dqF1O(}@!LIev"> <field name="TEXT">curl --header 'Access-Token: o.YxxxxxxxxxxxxxxxxxxePpi9v' \https://api.pushbullet.com/v2/devices</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_forEach" id="}45?^T}515sMBQ[9+rp#"> <field name="VAR" id="QLuvwmsEww5Fznot.S{!" variabletype="">j</field> <value name="LIST"> <block type="get_attr" id="g#}Mg=I#s(4vWWq(II2("> <value name="PATH"> <shadow type="text" id="lvy#gM@GMJmU6sqK4;Au"> <field name="TEXT">devices</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="^e-2X)-]Dl8)KBIeQ+vt"> <value name="VALUE"> <block type="variables_get" id="=y9:hJMk$HLBGLvwB`OF"> <field name="VAR" id="-K|h*y)J9|h*rDQQ%e|P" variabletype="">result</field> </block> </value> </block> </value> </block> </value> <statement name="DO"> <block type="variables_set" id="5u9~XTcCx{}}7Q:J=k0A"> <field name="VAR" id="X9`at:-6IX;0sDS`vu/E" variabletype="">helferlein</field> <value name="VALUE"> <block type="text_join" id="gpsM_T@}yjr45rdzKK.m"> <mutation items="5"></mutation> <value name="ADD0"> <block type="variables_get" id="h:0p@OQ`@JvUV}u^Y1mB"> <field name="VAR" id="X9`at:-6IX;0sDS`vu/E" variabletype="">helferlein</field> </block> </value> <value name="ADD1"> <block type="get_attr" id="tnYkgo0?Tt1Qb|2j6Ml0"> <value name="PATH"> <shadow type="text" id="k7N];QQ5LG{H{T,|Ds~0"> <field name="TEXT">nickname</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="{Wz7*Z$egMShSYfjw.T)"> <field name="VAR" id="QLuvwmsEww5Fznot.S{!" variabletype="">j</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="56*eie?xG4]zM1BL.(NL"> <field name="TEXT"> --- </field> </block> </value> <value name="ADD3"> <block type="get_attr" id="Smr3j5NG,YL*VhcsYZmK"> <value name="PATH"> <shadow type="text" id="Aof*I9O]2!PwmVoCZ#mh"> <field name="TEXT">iden</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="FL/:*P7N$CoEn~xKYRix"> <field name="VAR" id="QLuvwmsEww5Fznot.S{!" variabletype="">j</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text" id="K9fBFZ.(:3$h*8DM|U=v"> <field name="TEXT">:</field> </block> </value> </block> </value> <next> <block type="debug" id="gLB@GV}#T*q:rTg5K@}P"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="qyF=Jns;Wi3ZK3iLx}1N"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="96)S72)K=mhT{tZRyEb-"> <field name="VAR" id="X9`at:-6IX;0sDS`vu/E" variabletype="">helferlein</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="timeouts_settimeout" id="KCcV{V~[8)Z8+}hiyTev"> <field name="NAME">timeout</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="WqE+|K=ofWlAr`Xh38a_"> <mutation delay_input="false"></mutation> <field name="OID">controll-own.0.PUSHBULLET.ClientIDs</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="GHNwY(=_htqEeECE7}Lm"> <field name="VAR" id="X9`at:-6IX;0sDS`vu/E" variabletype="">helferlein</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </xml>
  • Webseite auslesen

    Moved
    4
    0 Votes
    4 Posts
    1k Views
    H
    Falls noch relevant, hier ein Adapter für bsb_lan: https://forum.iobroker.net/topic/25406/aufruf-bsb_lan-adapter-brötje-etc https://github.com/hacki11/ioBroker.bsblan
  • [gelöst] In Blockly Intervall Variable einfügen?

    Moved blockly
    5
    1
    0 Votes
    5 Posts
    645 Views
    padrinoP
    Um das hier mal abzuschließen... (auch wenn es nicht ganz die gewollte Lösung ist ) Man kann als "workaround" einfach statt der Millisekunden den Namen einer Variablen (die als Wert die Millisekunden enthält) von Hand eintragen. [image: 1569682920711-inter_var.png] Klappt prima (solange man die Einheit auf "ms" stehen lässt).
  • Steuerung über Licht-u. Bewegungssensor HomeMatic

    blockly
    16
    1
    0 Votes
    16 Posts
    1k Views
    R
    @dslraser So funktioniert es jetzt : [image: 1569606324168-175e7284-41be-448e-bbc0-7ad5a45bca9d-image.png] Vielen Dank nochmal für deine Hilfe.
  • Datenpunk

    javascript blockly
    1
    2
    0 Votes
    1 Posts
    218 Views
    No one has replied
  • Hue Szenen nicht mehr verfügbar (iConnectHue)

    javascript
    18
    0 Votes
    18 Posts
    2k Views
    A
    Also ich weiß nicht was passier ist, aber das Skript aus Post #1 funktioniert bei mir seit 2 Tagen wieder. Die Datenpunkte sind alle wieder da und ich kann auch die Szenen steuern. Aber ich bleibe jetzt bei dem hue-extended Adapter. Ich teste auch mal die Reaktionszeit auf Dimmer-Befehle. Das wäre für mich auch noch ein Punkt den ich gerne realisiern würde, es aber bisher an zu langsamer Reaktion des Skriptes gescheitert ist. Aber eine PayPal Spende wirst du von mir unabhängig davon auch bekommen @Zefau

568

Online

32.7k

Users

82.6k

Topics

1.3m

Posts