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
    A
    @Dave69-CH Kannst du mir mal deinen Link zu der Proplanta Seite schicken. Ich denke das die Schweizer Version anders aufgebaut ist und deswegen die Zeit für die nächste Aktualisierung mit meinem Filter nicht gefunden wird. Auf der Seite werden diese Zeilen gesucht: [image: 1771532044543-1dd3b19e-1c7b-4586-814f-de0746287907-grafik.png] Entweder gibt es die in der Schweizer Version nicht, oder sind anders beschrieben.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    1
    @paul53 Hi, habe nun in einigen Räumen dein Skriptvorschlag so im Einsatz, allerdings noch eine Frage dazu: [image: 1771623904091-screenshot-2026-02-20-223333.jpg] Wenn jemand in dem Raum ist, dann bleibt das Licht bei dem Datenpunkt stehen, bzw. die Musik bleibt an o.ä. Wenn ich nun in dem Raum bin und das Licht, oder den Musikkanal in der Alexa manuell ändere, wie kann diese Einstellung dann übernommen werden, ohne dass bei erneutem "true" triggern vom Präsenzmelder wieder die ursprüngliche Einstellung übernommen wird?
  • 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] Zeitschaltuhr mit blockly für Homematic-Steckdose

    Moved
    9
    1
    0 Votes
    9 Posts
    6k Views
    K
    Hi zusammen, ich habe jetzt das andere Zeitblock Blockly genommen ohne das cron da rechts dran. Jetzt klappt es o.O Ich füge wenn ich am Rechner bin noch ein Bild hinzu… Keine Ahnung warum mein voriger Versuch nicht funktioniert hat. Mit an bleibt an meine ich, wenn ich manuell schalte, geht auch der aus-Trigger nicht... Also ging nicht, jetzt klappt es. Danke euch, wieder was gelernt :D VG Thorsten Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk Und anbei wie versprochen: [image: 2700_blockly_zeitschaltuhr.png]
  • Homematic Variable auf wahr prüfen per blockly

    Moved
    3
    1
    0 Votes
    3 Posts
    660 Views
    cashC
    Danke für die Antwort. Macht natürlich Sinn.
  • Skripte

    Moved
    18
    0 Votes
    18 Posts
    5k Views
    S
    Also doch die Groß-/Kleinschreibung, dank! Jetzt klappt alles!
  • Datensichern/verschieben auf entfernten FTP Server!?

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    WebrangerW
    Teste ich nachher mal mein FTP ist gerade nicht erreichbar. Laut support ddos :(
  • [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
    567 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
    397 Views
    No one has replied
  • Email mit mehreren Bildern

    Moved
    3
    0 Votes
    3 Posts
    502 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.

449

Online

32.7k

Users

82.4k

Topics

1.3m

Posts