Skip to content

Skripten / Logik

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

16.6k Themen 213.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    HomoranH
    @BertDerKleine sagte in Skript aufteilen möglich?: Hallo, gibt es heute in 2026 eine Möglichkeit, ein größeres Skript in mehrere Module aufzuteilen? Ich habe nur einen 8 Jahre alten Thread gefunden dazu, damals ging es noch nicht. was genau meinst du damit?
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    KPTK
    Vielen Dank für die Antworten. Habe den Key im Adapter eingegeben, er ist grün, aber in den Objekten sehe ich keine Datenpunkte, nur den Unterordner 0 (wie immer) und Info (ohne Werte). @ Murphy 0: Energieprofile deaktivieren habe ich so verstanden, dass "Zum HEMS hinzufügen" deaktiviert wird. Aber auch das ändert nichts. Was mache ich noch falsch
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    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
  • Von IObroker einen Alexa Skill Schalten Qbo Kaffee

    communication blockly multimedia node-red
    6
    0 Stimmen
    6 Beiträge
    655 Aufrufe
    nik82N
    Hat sich erledigt, der neue Alexa Adapter kann "textCommand" somit kein Problem mehr :-)
  • XML

    javascript
    6
    0 Stimmen
    6 Beiträge
    286 Aufrufe
    ottoistgutO
    @ottoistgut said in XML: @arteck Ich habe kein plan von sowas. Kann mir einer helfen?
  • [gelöst] Werte mqtt auslesen - Datenpunkt schreiben

    javascript blockly communication
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    tigertim08T
    @paul53 Danke! Stimmt °F bauch ich nicht wirklich habe ich gerade wieder rausgenommen ;)
  • Liste aller aktiven Scheduler

    javascript
    16
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    H
    @paul53 nein nein, eh nicht. es war nur eine eher allgemeine frage
  • Abfrage des Batteriestatus

    javascript monitoring
    6
    0 Stimmen
    6 Beiträge
    925 Aufrufe
    paul53P
    @funcarv3r sagte: in Zeile 10 steht der break; Dann lass die Zeile weg.
  • Anfängerfrage: Eigener Alarmlogger

    javascript
    13
    0 Stimmen
    13 Beiträge
    579 Aufrufe
    S
    @UncleSam Hab mal so gelöst: /*************************************************/ // Globale Funktion, um Alarme auf dem vis auszugeben, im NAS zu loggen und auf dem Mobile (tts) auszugeben // Max 5 schnellfolgende Meldungen /*************************************************/ var sLog = new Array(5); var sTxt = new Array(5); var sDauer = new Array(5); var sInSay = new Array(5); var iMeldungSpanne=3000; // 3 Sek pro Meldung var LogenInVerzeichnis = "/home/pi/nas/history.csv"; // Text Datei auf NAS var URLSoundAusgabe = "http://192.168.1.147:50000/tts="; // Mobile im Wohnzimmer for (var i = 0; i < sLog.length; i++) {sLog[i] = "";} // Array sLog Initialisieren var vIntervall=null; // k.A. ob es wirklich nötig ist vIntervall=setInterval(function(){StringArrayAusgeben();}, iMeldungSpanne *5 + 200); // Endless loop, alle 15 Sekunden // Max 5 Meldungen vom Array sLog mit Zeitspanne 3Sek ausgeben // falls innert 15 sek > 5 Meldungen eintreffen, gehen die verloren function HistoryAnlegen(InText, InDauerText, InSay){ // sLog[i] synchron befüllen for (var i = 0; i < sLog.length; i++){ if(sLog[i]==""){ /***** Datum loggen, wenn es sich geändert hat ******/ var sLastHistoryDate=getState('0_userdata.0.Sicherheit.dLastHistoryDate').val; var sCurrentDate=formatDate(new Date(), "<B>JJJJ.MM.TT</B>"); if (sCurrentDate != sLastHistoryDate){ setState('0_userdata.0.Sicherheit.dLastHistoryDate', sCurrentDate, true); strTmp = sCurrentDate + "<br>"; } /***** den Text 'Offen Seit..." ermitteln ******/ var strTmp="" if (InDauerText + "" == ""){strTmp = strTmp + formatDate(new Date(), "<B> SS:mm</B>:ss") + " " + String(InText) + "<br>";} else{ if(InDauerText>59){ InDauerText=(InDauerText/60).toFixed(1); strTmp = strTmp + formatDate(new Date(), "<B> SS:mm</B>:ss") + " " + String(InText) + ", " + InDauerText + " Min. offen<br>"; } else{ strTmp = strTmp + formatDate(new Date(), "<B> SS:mm</B>:ss") + " " + String(InText) + ", " + InDauerText + " Sek. offen<br>"; } } sLog[i]=strTmp;sTxt[i]=InText;sDauer[i]=InDauerText;sInSay[i]=InSay;break; } } } async function StringArrayAusgeben(){ // Wird alle 15 Sek einmal aufgerufen for (var j = 0; j < 5; j++){ if(sLog[j]!="" ){ const result = await StringArrayAusgebenSub(sLog[j], sTxt[j], sDauer[j], sInSay[j], j);sLog[j]=""; // Alle 3 Sek eine Meldung ausgeben } } } function StringArrayAusgebenSub(InStrTimeStamp, InStr, InDauerText, InSay, InCounter){return new Promise(resolve => {setTimeout(() =>{ // Durchlauf: 3 Sek /***** Alarme am Handy aussagen, false InSay=true ******/ if (InSay && getState('0_userdata.0.Sicherheit.bAlarmIstScharf').val){request(URLSoundAusgabe + InStr.toLowerCase());} /***** Alarme in die LogDatei ergänzen ******/ wl(InStr, InDauerText); /***** Alarme im Objekt sAlarmLogHistory ergänzen ******/ InStrTimeStamp = InStrTimeStamp + String(getState('0_userdata.0.Sicherheit.sAlarmLogHistory').val); setState('0_userdata.0.Sicherheit.sAlarmLogHistory', InStrTimeStamp, false); resolve('resolved');}, iMeldungSpanne);}); } function wl(InText, InDauerText){ var fs = require('fs'); fs.appendFileSync(LogenInVerzeichnis, formatDate(new Date(), "DD.MM.YYYY") + ";" + formatDate(new Date(), "SS:mm:ss") + ";" + InText + ";" + InDauerText + "\n", 'utf8'); } Die echten Programmer mögen meine Art der Codierung verzeihen. Doch, es tut, was es tun muss. Kann sicher optimiert werden. Vor allem, die anfängliche 15 Sek Warterei kriege ich nicht heraus.
  • SMA SHM 1.0 / Sunny Portal auslesbar ?

    communication
    2
    0 Stimmen
    2 Beiträge
    147 Aufrufe
    UncleSamU
    @Humidor Kannst du nicht direkt per Modbus mit dem WR reden?
  • HM IP Thermostat mit Xiaomi Fenstersensor

    javascript blockly heating
    26
    1
    0 Stimmen
    26 Beiträge
    4k Aufrufe
    Meister MopperM
    @digitaldisplay sagte in HM IP Thermostat mit Xiaomi Fenstersensor: ich vermisse leider den Datenpunkt "Window_State" bei meinem Homematic Thermostat. Der Datenpunkt wird möglicherweise erst erzeugt, wenn das Thermostat mit einem HM-Fensterkontakt verknüpft ist.
  • Adapter mittels Scene Adapter ein- und ausschalten

    scenes
    4
    0 Stimmen
    4 Beiträge
    396 Aufrufe
    paul53P
    @Bobohne sagte: Wie müsste das Script dann aussehen um den Adapter zu steuern? Siehe in Doku Beispiel zu extendObject().
  • Verzögerung der Ausführung - Änderung des Wertes?

    blockly security
    2
    1
    0 Stimmen
    2 Beiträge
    202 Aufrufe
    paul53P
    @PatrickFro sagte: dass bei drücken des Knopfes die Sprachausgabe nicht stattfindet. [image: 1608380339606-blockly_temp.jpg] Wenn auf "ist größer als letztes" getriggert wird, kann man die Abfragen auf "Is open" und "Hold" sparen.
  • Deckenlampe Bad mit Bewegungssensor und Schalter betreiben.

    blockly
    5
    0 Stimmen
    5 Beiträge
    258 Aufrufe
    crunchipC
    @lustig29 Beschreibung ist insofern auf github bzw im Thread selbst, habe es jedoch selbst noch nicht getestet, verwende zur Zeit den Adapter Smartcontrol um einige Scripte abzulösen
  • [ Geklärt ] Wie kann ich Timeout Block umbenennen

    blockly
    8
    1
    0 Stimmen
    8 Beiträge
    313 Aufrufe
    A
    @paul53 Guten Morgen, Danke für die Berichtigung. Der Profi sieht den Unterschied sofort:+1: :+1: Jetzt hat die Umstellung auch geklappt. MichMein about 10 hours ago @Altersrentner musst Du dafür nicht erst eine Variable erstellen? Ist das so? Ich dachte es reicht in "Ausführen" Intervall einzutragen? Sonst würde ja in"stop zykl. Ausfrg. kein Intervall/2 zur Auswahl erscheinen::wink: Gruß MIchael
  • (gelöst) javascript datenpunkt aktualisiert nicht

    javascript heating
    3
    2
    0 Stimmen
    3 Beiträge
    311 Aufrufe
    Phil IppP
    @paul53 oouff danke! klarer fall von problem vor dem bildschirm. du weißt gar nicht, wie oft ich die scripts doublechecked hatte Das Script hatte ich iwo im tado thread aufgeschnappt. Evtl etwas tado-spezifisches? Und da es den Dienst bisher sehr gut tat, habe ichs auch nicht mehr angefasst - never touch a running system und so ,)
  • MP3 Wiedergabe über Raspi?

    multimedia blockly scenes communication
    5
    0 Stimmen
    5 Beiträge
    249 Aufrufe
    Thomas BraunT
    @jhuebner1 Wobei ich die Steuerung der Echos hier bei mir als eigentlich absolut problemlos erlebe. Aber die bleiben für den Sound auch im eigenen Biotop, die spreche ich (in dem Zusammenhang) nicht über den ioBroker an.
  • Request URL Status merken

    blockly scenes
    2
    0 Stimmen
    2 Beiträge
    202 Aufrufe
    UncleSamU
    @StefanA Du kannst entweder: https://github.com/ioBroker/ioBroker.parser verwenden oder einen Datenpunkt erstellen (am besten unter 0_userdata.0 - das kannst du direkt unter "Objekte" im ioBroker Admin machen) und dann ein Skript machen (Blockly oder JavaScript), das die URL abfragt
  • Datenpunkt tagesaktuell mit Temperatur aktualisieren

    blockly
    8
    1
    0 Stimmen
    8 Beiträge
    950 Aufrufe
    Karel PuhliK
    @UncleSam said in Datenpunkt tagesaktuell mit Temperatur aktualisieren: @Karel-Puhli Ich weiss nicht genau, was der Unterschied zwischen TempMaxCurrent und TempMax ist. Und was die zwei Zeitpläne machen... Sorry, das hätte ich natürlich posten müssen. Current ist immer für einen Tag, dann per Cron überschreiben, für min und für max. Die beiden anderen sind für dauerhafte Einträge. Ich habe deswegen 2 verschiedene Crons genommen, da die max Werte am besten nachts überschrieben werden und die min Werte tagsüber.
  • Aus Sonoff PowR2 mit Tasmota-Flash den Stromwert extrahieren

    blockly monitoring
    7
    0 Stimmen
    7 Beiträge
    638 Aufrufe
    liv-in-skyL
    @Franky67 beispiel : [image: 1608136640739-image-1.png] topic: sonoff port: 1505
  • Heizungsgruppe

    blockly
    1
    0 Stimmen
    1 Beiträge
    194 Aufrufe
    Niemand hat geantwortet
  • Skript Heizung - Homematic Geräte

    heating blockly
    12
    0 Stimmen
    12 Beiträge
    705 Aufrufe
    paul53P
    @Wieger-Daniel sagte: manchmal wäre mir etwas kürzere Sendeintervalle lieber Dann müssten die Batterien öfter gewechselt werden.
  • Alexa Sprachausgabe Blockly für Spülmaschine fertig

    blockly
    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    da_WoodyD
    @lololo nichts anderes als die ausgabe der beiden DPs

509

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge