Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.3k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    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 Themen
    80k Beiträge
    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 Themen
    13k Beiträge
    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 Stimmen
    3 Beiträge
    223 Aufrufe
    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

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    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 Stimmen
    1 Beiträge
    354 Aufrufe
    Niemand hat geantwortet
  • [Gelöst] Hue Bewegungsmelder deaktivieren

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    3k Aufrufe
    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 Stimmen
    1 Beiträge
    157 Aufrufe
    Niemand hat geantwortet
  • Neuling hat Probleme mit Skriptausführung

    blockly javascript
    13
    0 Stimmen
    13 Beiträge
    778 Aufrufe
    A
    Hi, hab es eben mal ausgetestet jetzt funktioniert es !!! Danke sehr!!!
  • Dieses Thema wurde gelöscht!

    0
    0 Stimmen
    0 Beiträge
    18 Aufrufe
    Niemand hat geantwortet
  • Brematic direkt per Skript steuern

    Verschoben javascript
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    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 Stimmen
    4 Beiträge
    1k Aufrufe
    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

    Verschoben
    20
    0 Stimmen
    20 Beiträge
    5k Aufrufe
    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 Stimmen
    20 Beiträge
    2k Aufrufe
    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 Stimmen
    6 Beiträge
    432 Aufrufe
    padrinoP
    Alles klar. Danke. :)
  • Problem mit definierten Werten(Variablen)states

    heating communication
    2
    0 Stimmen
    2 Beiträge
    301 Aufrufe
    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.
  • [Gelöst] Erkennung Anwesenheit / Abwesenheit per Wlan. Mein Skript ist noch fehlerhaft

    Verschoben
    35
    3
    0 Stimmen
    35 Beiträge
    11k Aufrufe
    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 Stimmen
    2 Beiträge
    336 Aufrufe
    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

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    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?

    Verschoben blockly
    5
    1
    0 Stimmen
    5 Beiträge
    645 Aufrufe
    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 Stimmen
    16 Beiträge
    1k Aufrufe
    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 Stimmen
    1 Beiträge
    218 Aufrufe
    Niemand hat geantwortet
  • Hue Szenen nicht mehr verfügbar (iConnectHue)

    javascript
    18
    0 Stimmen
    18 Beiträge
    2k Aufrufe
    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

561

Online

32.7k

Benutzer

82.6k

Themen

1.3m

Beiträge