Skip to content

Skripten / Logik

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

16.6k Topics 213.6k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    D
    @arnod Schon wieder ich. Diesen Datenpunkt habe ich nicht, wurde der ersetzt? 0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt_kWh Siehe Bild [image: 1771685220871-charge-kontrol-fehlt.png] Oder was hast Du da reingemacht? Vieeeelen DANK.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    paul53P
    @13patrick37 sagte: Szenen nur Buttons sind Deshalb wird auf "ist wahr" getriggert. Hat die "Scene Abschalten" eine besondere Bedeutung (Licht aus)? Falls nicht, kann man auch einen Selektor für den Trigger verwenden.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • (gelöst) Blocky für Fenstersensor (MAX!) und Thermostat (Homematic)

    Moved
    18
    1
    0 Votes
    18 Posts
    2k Views
    M
    Jetzt funktioniert es so wie gewünscht. Vielen Dank an @paul53. Es gab wohl irgendwie noch Stress mit der Variable "value", die wurde nicht ausgewertet oder passte nicht zu dem Block, jedenfalls wurden die Statusänderungen des Fenstersensors nicht vom Skript erkannt. Nachdem ich den kleinen Block entfernt und neu angelegt hatte da fluppte es wie es soll. Daher für alle die das gerne nachbauen wollen: ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="on_ext" id="E;zsSlF|Wq:}1G^F;0q" x="63" y="63"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="(sxO/REdna0^OVt6DeUp"><field name="oid">maxcube.0.devices.contact_0d5c46.opened</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="+gUM?%8ubybNMqlhjD_*"><mutation else="1"></mutation> ! <value name="IF0"><block type="variables_get" id="3ZAY1A0v)_!p9D(-ZYW-"><field name="VAR">value</field></block></value> ! <statement name="DO0"><block type="control" id="a*0{4@}gVK[9|4OSx0P+"><mutation delay_input="false"></mutation> ! <field name="OID">hm-rpc.0.OEQ0664559.4.MANU_MODE</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="math_number" id="g(u(_F0I6F7:VB1,J*It"><field name="NUM">12</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="u);Y.B7MQpHh,#z_TX/,"><mutation delay_input="false"></mutation> ! <field name="OID">hm-rpc.0.OEQ0664559.4.AUTO_MODE</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="8iM,,OYn-Lvc(HuDAS09"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> ! <next><block type="on_ext" id="vfMUu2c^cxVBgv4YO%Ie"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="hILF9#alzhQgZ{!X]]F"><field name="oid">hm-rpc.0.OEQ0664559.4.CONTROL_MODE</field></shadow></value> ! <statement name="STATEMENT"><block type="debug" id="o-;;Q|%W2pFWqC~IXEQ@"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="fs3T.rGHz`HkSR(oL_#z"><field name="TEXT">Modeänderung</field></shadow> ! <block type="text_join" id="kWRnmjATh4TKlM;lkcCN"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="j.s6K?|f!g1cYODN[D|E"><field name="TEXT">HKT Mode:</field></block></value> ! <value name="ADD1"><block type="variables_get" id="s};j7yMuZGuOlcB[rEaD"><field name="VAR">value</field></block></value></block></value></block></statement></block></next></block></xml> [image: 4941_bildschirmfoto_2018-01-23_um_13.51.48.png]
  • 0 Votes
    3 Posts
    435 Views
    B
    Aaaaaah. Vielen Dank werde es gleich mal testen.
  • Zustandsabfragen innerhalb vom Scripten wechseln nicht

    Moved
    2
    0 Votes
    2 Posts
    273 Views
    arteckA
    @cash: Wenn nun per schedule die Funktion _Wecken ausgeführt wird zieht er sich jedesmal vorher die Variablen Definitionen die oberhalb der Funktion sind? ` natürlich nicht warum auch.. das ist nur die Varaiblendeklaration. wenn du willst das diese immer gefüllt werden wen die funktion gestartet wird dann must du das so machen. Am anfang des Scriptes Deklarieren und dann demäntsprechend füllen. var _Weckzeit; var _Arbeitstag; var _Anwesenheit; var _Krank; var _Schranklicht; var _Sonos_Schlafzimmer; var _Musikwecker; var _Sonos_Play; function _Wecken() { _Weckzeit = getState("hm-rega.0.21758").val; _Arbeitstag = getState("Systemvariable.0.Arbeitstag").val; _Anwesenheit = getState("hm-rega.0.2185"/*SV Anwesenheit*/).val; _Krank = getState("hm-rega.0.2426"/*SV Krank zu Hause*/).val; _Schranklicht = getState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/).val; _Sonos_Schlafzimmer = getState("sonos.0.root.192_168_178_47.coordinator").val; _Musikwecker = getState("Systemvariable.0.Musikwecker").val; _Sonos_Play = getState("sonos.0.root.192_168_178_47.state").val; if ((_Anwesenheit) && (!_Krank)) { if (_Arbeitstag && _Wecker == 1) { if (!_Schranklicht) { setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, true); } } setTimeout(function() { if (_Schranklicht) { setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, false); } }, 25 * 60000); // 25 Minuten Verzögerung
  • Javascript Schleife über mehrere Datenpunkte

    Moved
    3
    0 Votes
    3 Posts
    497 Views
    E
    Als Beispiel _id: milight-smart-light.0.Leselampe.fullColor-3.hue" und id": "milight-smart-light.0.Flurlicht.fullColor-1.hue" Im Prinzip möchte ich am Ende ein Script haben, welches bei einer Änderung eines der Datenpunkte auf einen bestimmten Wert, diesem einen anderen Wert setzt. Und das ohne, dass ich 20 Datenpunt im script eintragen muss, die sich zur Zeit auch noch laufen ändern. :-) LG Andreas
  • USA Shutdown betrifft Nasa-Webseite und damit ISS-RSS-Skript

    Moved
    2
    0 Votes
    2 Posts
    472 Views
    BBTownB
    ohne Worte :lol: :lol:
  • [Frage] Create state ausserhalb der Javascript Instanz möglich?

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    apollon77A
    Mache ich ebenso. neue Skripte kommen erstmal in die .1, andere in die .0. Aber am Ende wenn ich eins schiebe legen meine Skripte Ihre States selbst an. Ich muss nur ggf nötige Startwerte nochmal manuell setzen. Minimaler Aufwand
  • Taupunkt als berechneter Datapoint?

    Moved
    11
    0 Votes
    11 Posts
    2k Views
    eric2905E
    Moin, @Fabian: Wenn ich keine CCU habe, dann interessieren mich die "Enums" also nicht? ` nun ja … Die enum.rooms und enum.function werden zwar automatisch durch die CCU (bzw. über den hm-rega) befüllt, aber Du kannst sie auch selber befüllen. Du könntest z.B. Nicht-Homematic-Geräte / -Datenpunkte manuell den Räumen und Gewerken zuordnen und dies dann z.B. in Scripten nutzen. Deswegen wird enum.rooms und enum.functions auch nicht automatisch durch den hm-rega bereinigt ... dann wären alle manuellen Eingaben weg. Gruß, Eric
  • Hilfe zur Ventilatorsteuerung

    Moved
    2
    0 Votes
    2 Posts
    768 Views
    BBTownB
    Eine Fernbedienungstaste kennt ja nur einen Zustand: = gedrückt (true) Daher legst Du im CloudAdapter 5 SmartGeräte an: Stufe 1 Stufe 2 Stufe 3 Licht Ventilator Ventiltator (aus) Diese SmartGeräte haben als Datenpunkt jeweils deine angelernte Taste der Fernbedienung. "Alexa, schalte Stufe 1 ein" "Alexa, schalte Ventilator aus" Du kannst aber auch Einen Datenpunkt "Ventilator" anlegen und dort hinterlegst Du im Script für "an" bspw. "Stufe 1" und für "aus" "Ventilator aus". Dann kannst du auch mit "Alexa, schalte den Ventilator ein" die Stufe 1 anschalten und den Ventilator wie im obigen Beispiel ausschalten.
  • Löschen von ungewöhnlichen Objekten (\ im Namen)

    Moved
    8
    1
    0 Votes
    8 Posts
    1k Views
    L
    Danke, hat funktioniert ;)
  • [gelöst] clearTimeout -> Prüfen ob Timeout gesetzt ist?

    Moved
    3
    0 Votes
    3 Posts
    2k Views
    B
    Ah ok, dann setze ich das immer auf null. Hatte in der Docu geschaut und da war das Beispiel immer ohne auf null setzen.
  • Meldung: ReferenceError: require is not defined

    Moved
    1
    0 Votes
    1 Posts
    649 Views
    No one has replied
  • [Gelöst] Blockly –> warum geht Lampe nicht aus?

    Moved
    29
    1
    0 Votes
    29 Posts
    3k Views
    C
    OK, dann geht das in die Richtung, die ich mir gedacht hab. :) Im ursprünglichen Fall wäre es mir wahrscheinlich egal, da es sich ja um max. 2 zusätzliche Vorgänge pro Tag handelt und die, zumal HUE, kaum Einfluss haben dürften. Aber klar, der Gedankengang dahinter ist mir jetzt klar.
  • VIS Script für HarmonyStatus

    Moved
    1
    0 Votes
    1 Posts
    317 Views
    No one has replied
  • Blockly-Script funktioniert nicht

    Moved
    24
    1
    0 Votes
    24 Posts
    4k Views
    BBTownB
    bitte immer screenshots beifügen. Kommen wir zurück zu dem was Matzehbv angefragt an. was passiert denn wenn unter "Objekte" den Datenpunkt den Du im Script von "true" auf "false" setzen willst, dort von true auf false (und umgekehrt) setzt?
  • Blockly Hilfe, PV-Leistung

    Moved
    84
    0 Votes
    84 Posts
    13k Views
    rantanplanR
    @Micro1959: Verstehe, also muss ich für jeden State ein Skript machen, um darauf zu reagieren, falls sich etwas verändert. ` Ein Trigger kann auch mehrere States abfragen. Meinen Tipp in dem Forum Blockly Threads zu lesen hast Du übersehen? @Micro1959: Ich hatte ursprünglich gedacht, das möglicherweise ein globales sckript immer durchlaufen wird, in dem ich dann die States abfragen kann. ` ioBroker ist das globale Script. ;)
  • Überprüfen ob bereits eine Harmony aktivität gestartet ist.

    Moved
    1
    0 Votes
    1 Posts
    327 Views
    No one has replied
  • Feldinhalt in Schedule Funktion einfügen

    Moved
    10
    0 Votes
    10 Posts
    582 Views
    cashC
    Du bist ein Genie ;) Hätte ich natürlich auch selber drauf kommen können. Ich muss mich da noch etwas umgewöhnen an die alternative herangehensweise von Problemen. Nochmals Danke….
  • Ausführung von Scripts protokollieren

    Moved
    3
    0 Votes
    3 Posts
    418 Views
    C
    O.K., ich dachte wenigstens die letzte Startzeit würde vielleicht auch so irgendwo protokolliert, ähnlich dem Zeitstempel "Zeit" und "geändert" bei den Objekten…?!
  • Suche nach Geräten in Gewerk funktioniert nicht

    Moved
    3
    2
    0 Votes
    3 Posts
    443 Views
    flugwelleF
    Hast Du mal ioBroker neu gestartet? Ich habe bei HM IP auch öfter das Problem, dass neue Geräte zwar angezeigt, aber die Trigger nicht ausgelöst werden. Meist klappt es aber nach einem Neustart … Gruß, Rudi
  • Sayit to Alexa

    Moved
    5
    1
    0 Votes
    5 Posts
    2k Views
    ElzersharkE
    Ich hab das sogar so gemacht. Mini Windows PC. Dort Alexa drauf installiert. Mit Auto Erkennung. Über sayit wird das sozusagen an den Mini Windows PC ausgegeben. (nicht hörbar. Da die Stimmausgabe quasy virtuell "im" Mini-PC ausgegeben wird) Script/Block erstellen. Uhrzeit oder was auch immer.. z.B. Morgens um 7.00Uhr Sayit Ausgabe z.B. "Alexa, spiele Musik im Schlafzimmer ab" Mini-PC Alexa lässt dann den Echo im Schlafzimmer um 7.00Uhr Radio abspielen. Oder mp3, oder was auch immer… ;)

693

Online

32.7k

Users

82.4k

Topics

1.3m

Posts