Skip to content

Skripten / Logik

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

16.5k Topics 213.2k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    P
    @arnod Leider ist das Problem immer noch vorhanden. Welchen Hysteresewert muss ich denn bei mir anpassen, damit ich mein Problem abmindern kann? Ich habe gesehen, dass es mehrere Hysteresewerte im Script gibt.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    M
    Ich habe einen zweiten Statuspunkt (Briefkasten_State) dazu genommen, den ich über einen Button immer wieder zurücksetze. [image: 1769854217178-screenshot-2026-01-31-110831.png]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • [gelöst] Script um Befehl auf Synology ausführen

    Moved
    15
    0 Votes
    15 Posts
    9k Views
    lobomauL
    @Kuddel: @lobomau: Habt den Synology Adapter schon probiert? Der hat die Befehle für Ausschalten und Neustarten. ` Welcher? Ich hatte einen getestet aber der kann nur per SNMP auslesen ` Probier mal aus. Kannst deine Erfahrungen hier unten schildern ;-) http://forum.iobroker.net/viewtopic.php … gy#p112046
  • [gelöst] Blocky für Bewegungsmelder (getrennter Senor / Aktor)

    Moved
    17
    1
    0 Votes
    17 Posts
    3k Views
    DutchmanD
    Nice! –----------------------- Send from mobile device Das schöne ios hat Auto Korrektur zum k**** Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
  • Script Licht vergessen / Bewegungsmelder

    Moved
    6
    0 Votes
    6 Posts
    880 Views
    BuZZyB
    Hast du es mal mit dem Script versucht das ich gepostet habe? Habe nicht viel verändert außer if boolean abfragen mit === auszustatten, die timer Variable als global deklariert und ein paar fehlende ; hinzugefügt. Gruß
  • IoBroker JavaScript Temperaturwert lesen und schreiben

    Moved
    15
    0 Votes
    15 Posts
    5k Views
    paul53P
    @shgbass: kann mir jetzt nochmal wer erklären was da ganau passiert und was welche funktion macht? ` Die https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md zu den Funktionen findest Du auf Github.
  • 0 Votes
    3 Posts
    561 Views
    C
    Ich habe jetzt eine andere Ursache gefunden, es funktioniert doch mit der ursprünglichen Methode Hilfsvariable. ! ```` var Threshold_Bar_Esstisch, is_running, Threshold_Bar_Wohnwand, Threshold_Vitrine_Esstisch, Threshold_Vitrine_Wohnwand, timeout1, Esstisch, Wohnwand, timeout2; ! Threshold_Bar_Esstisch = 40; Threshold_Bar_Wohnwand = 40; Threshold_Vitrine_Esstisch = 40; Threshold_Vitrine_Wohnwand = 80; ! is_running = false; on({id: new RegExp('hue\.0\.Hue_Bridge\.Esstisch\.level' + "|" + 'hue\.0\.Hue_Bridge\.Wohnwand\.level'), change: "any"}, function (obj) { if (is_running != true) { is_running = true; timeout1 = setTimeout(function () { Esstisch = getState("hue.0.Hue_Bridge.Esstisch.level").val; Wohnwand = getState("hue.0.Hue_Bridge.Wohnwand.level").val; if (Esstisch >= Threshold_Bar_Esstisch || Wohnwand >= Threshold_Bar_Wohnwand) { setState("hue.1.HA-Bridge.Bar.on"/HA-Bridge.Bar.on/, true); } else { setState("hue.1.HA-Bridge.Bar.on"/HA-Bridge.Bar.on/, false); } timeout2 = setTimeout(function () { if (Esstisch >= Threshold_Vitrine_Esstisch || Wohnwand >= Threshold_Vitrine_Wohnwand) { setState("hue.1.HA-Bridge.Vitrine.on"/HA-Bridge.Vitrine.on/, true); } else { setState("hue.1.HA-Bridge.Vitrine.on"/HA-Bridge.Vitrine.on/, false); } is_running = false; }, 500); }, 500); } }); Das Problem war, dass bei gleichzeitigem Schalten von Esstisch und Wohnwand nicht sofort die Werte von "hue.0.Hue_Bridge.Esstisch.level" und "hue.0.Hue_Bridge.Wohnwand.level" gesetzt sind wenn die Subscription zuschlägt, da der Adapter diese seriell abfragt. Daher habe ich "timeout1" von 500 ms hinzugefügt. Im Zusammenspiel mit "is_running", welches sofort auf "true" gesetzt wird, wird der Block jetzt nur noch exklusiv aber mit korrekten Werten ausgeführt.
  • [gelöst] JSON nach kleinstem Wert parsen

    Moved
    7
    0 Votes
    7 Posts
    673 Views
    paul53P
    @tempestas: Wann ich "stringify" nutzen muss und wann nicht, werde ich wohl nie verstehen ` Ist doch nicht so schwierig: Ein Objekt (Array) in einen JSON-String wandeln mit JSON.stringify(obj); umgekehrt einen JSON-String in ein Objekt (Array) wandeln mit JSON.parse(json).
  • Klingel über Homematic / iobroker

    Moved
    7
    0 Votes
    7 Posts
    2k Views
    G
    Warum eigentlich so kompliziert. Ich habe das in einem Javascript gelöst. Wenn die Taste gedrückt wird lese ich von dem Gong den Status .STATE aus. Ist er true, dann spielt noch das MP3 und ein erneuter Tastendruck wird ignoriert. createState('wohnung.klingel.gedrueckt', false); createState('wohnung.klingel.aktiviert', true); /*Klingel*/ subscribe({id: whgKlingelSwitchShort, val:true}, function (obj) { klingelGedrueckt(); }); subscribe({id: whgKlingelSwitchLong, val:true}, function (obj) { klingelGedrueckt(); }); function klingelGedrueckt() { var klingel=getState('javascript.0.wohnung.klingel.aktiviert').val; //Prüfen ob Klingel aktiviert oder nicht var klingelState=getState(whgKlingel).val; //whgKlingel = Gong.STATE if ((klingel===true) && (klingelState===false)){ setState(whgKlingelSettings,"1,1,108000,0"); setState(whgKlingel,true); sendTo("pushover", "Klingel gedrückt!"); } }
  • Cloudmatic push Notification per Skript

    Moved
    1
    0 Votes
    1 Posts
    570 Views
    No one has replied
  • 0 Votes
    14 Posts
    1k Views
    apollon77A
    Ok, dann bleibt dir nur das fixen des Datentyps der ID direkt in der DB und potz. löschen falscher Daten und am besten immer an Datentypen halten :-))
  • Schalter sperren

    Moved
    1
    0 Votes
    1 Posts
    394 Views
    No one has replied
  • Email mit mehreren Bildern

    Moved
    3
    0 Votes
    3 Posts
    500 Views
    JensenJ
    Hallo, ja, so geht's. Danke und Gruß Jens
  • Noch eine SetIntervall anfängerfrage

    Moved
    2
    0 Votes
    2 Posts
    388 Views
    BuZZyB
    Man spricht bei function(){….} von einer "anonymen Funktion". http://lucybain.com/blog/2014/js-anonym ... functions/ ;) Gruß
  • Mit javascript Länge eines mp3 auslesen?

    Moved
    2
    0 Votes
    2 Posts
    539 Views
    BuZZyB
    Moin, Im Javascript Adapter das Zusatzmodul "mp3-duration" eintragen.. Beispiel für Anwendung steht hier: https://www.npmjs.com/package/mp3-duration Gruß
  • [Frage] enum.functions Zeitstempel Abfrage möglich?

    Moved
    2
    0 Votes
    2 Posts
    394 Views
    BuZZyB
    Moin, nicht direkt.. Aber so wird es gehen: function ausloeser(gruppe) { var zeit = null; var sensor = null; $('channel(functions=' + gruppe + ')[state.id=*.STATE]').each(function(id) { if (getState(id).lc > zeit) { sensor = getObject(id).common.name; zeit = getState(id).lc; } }); if (zeit !== null) { return sensor.substr(0, sensor.indexOf(':')); } else { return 'Es wurde kein Zeitstempel in der Gruppe ' + gruppe + ' gefunden.'; } } Wenn du diese Funktion in dein Telegram Script einfügst, kannst du mit```` ausloeser('Fensterkontakte') Hier ein ganzes Script welches dir den letzten Auslöser aus der enum.functions 'Fensterkontakte' beim starten von dem Script schickt. function ausloeser(gruppe) { var zeit = null; var sensor = null; $('channel(functions=' + gruppe + ')[state.id=*.STATE]').each(function(id) { if (getState(id).lc > zeit) { sensor = getObject(id).common.name; zeit = getState(id).lc; } }); if (zeit !== null) { return sensor.substr(0, sensor.indexOf(':')); } else { return 'Es wurde kein Zeitstempel in der Gruppe ' + gruppe + ' gefunden.'; } } sendTo('telegram', 'Der Sensor ' + ausloeser('Fensterkontakte') + ' hat als letzter ausgelöst.'); Gruß
  • [gelöst] $-Selector liefert keine Werte

    Moved
    8
    0 Votes
    8 Posts
    2k Views
    T
    Heureka!!!! Habe es rausgefunden. Es lag wirklich an der Gross-/Kleinschreibung. Bei mir ist der Name des Enums in Camel-Case geschrieben. Ich Nase habe bei den Test aber dummerweise nur vorne das geändert und nicht im ganzen Namen. Und in meinen Tests habe ich dann wohl immer irgendwelche Kombinationen getestet die irgendeinen Haken drin hatten. Vielen Dank für eure schnelle Hilfe
  • 0 Votes
    5 Posts
    1k Views
    I
    Leider geht es damit auch nicht. Weder mit dem vorangestellten Pfad noch mit zusätzlichem sudo oder auch nur mit sudo und net ohne Pfad. Egal welche Variante ich wähle, es passiert nichts. Das exec selbst funktioniert aber. Ich habe mal probehalber 'free -m' eingetragen, da bekomme ich eine Antwort im Callback. Gibt es irgendeine Möglichkeit, eine Ausgabe von dem Befehl zu erzwingen? Ich wäre ja schon froh über eine Fehlermeldung, aber ich bekomme keinerlei Rückmeldung von dem Befehl. Weder positiv noch negativ. exec('/usr/bin/net rpc shutdown -s -f -I IP –U xxx%yyy',function(error, data) { if (error) { log(error,"error"); } else { log(data); } }); Was mir noch eingefallen ist: Kann es sein, dass ich für den Aufruf über iobroker noch irgendwas benötige? Ich habe bisher nur das samba-common-bin mit allen Abhängigkeiten installiert.
  • Frage nach Skripten für DashButton

    Moved
    1
    1
    0 Votes
    1 Posts
    373 Views
    No one has replied
  • Ergebnis von Level keine Ganzzahl

    Moved
    4
    0 Votes
    4 Posts
    583 Views
    M
    Meine Lösung ist jetzt hier. http://www.forum.iobroker.org/forum/vie … eb48f4566a Allerdings gibt es noch ein kleines Begrenzungsproblem.
  • Licht Timer nur zu bestimmten Uhrzeiten

    Moved
    3
    0 Votes
    3 Posts
    1k Views
    A
    So zum Beispiel…. Du musst noch in dem Trigger bei "default" und bei steuere "Object ID" deinen Treppenhaus Aktor eintragen. [image: 1586_2018-01-08_06_43_12-iobroker.admin.jpg] ! ```` <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="pd#X~DUqP5=FD5q7=mho" x="-587" y="288"><mutation items="1"></mutation> <field name="CONDITION">true</field> <value name="OID0"><shadow type="field_oid" id="Q*0:O*N9DTgc5edAg`Z:"><field name="oid">default</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="}p_?eWzl4i-Av8aa=Rsy"><value name="IF0"><block type="time_compare_ex" id="-sNo?ZWU3,LuYof}]Hb,"><mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"><shadow type="text" id="V2f|.I]-GRH2q#N/Sjpf"><field name="TEXT">6:30</field></shadow></value> <value name="END_TIME"><shadow type="text" id="k!?0J;]`^JI/zt!TQ*4R"><field name="TEXT">21:00</field></shadow></value></block></value> <statement name="DO0"><block type="control" id="p1*hK@,d|cBia^f;%dw2"><mutation delay_input="true"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"><block type="logic_boolean" id="@m:S=8azC0rI{5JtT4:3"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></xml>
  • Nach Update Scripte gelöscht??!!

    Moved
    4
    3
    0 Votes
    4 Posts
    499 Views
    L
    Hallo Bluefox, da ich nicht viel Scripte hatte habe ich diese nochmal neu geschrieben und anschließend IOBroker neu gestartet. Und plötzlich hatte ich das Problem das bei mir die Objekte nicht mehr sichtbar waren. Zum Glück bin ich dann nach gefühlt 20h :D auf diesen Thread gestoßen: http://forum.iobroker.net/viewtopic.php?f=22&t=9869 Inzwischen läuft jetzt gerade wieder alles wie es soll, allerdings kann ich die "variable1" nicht löschen. Hast du eine Idee woran das liegt? Und in dem Thread hat noch jemand geschrieben dass er die "objects.json.bak" gelöscht hat, soll ich das auch noch machen?! Vielen Dank! 4707_script.png

463

Online

32.6k

Users

82.2k

Topics

1.3m

Posts