Skip to content

Skripten / Logik

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

16.6k Topics 214.0k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    RoddiEFR
    Ok dann warte ich lieber und fang eine frische Installation an wenn die neue Version fertig ist. Wäre es möglich beim aktuallisieren vom ersten Beitrag auch die Versionsnummern zu ändern wie schon jemand Vorgeschlagen hatte? Das macht das es einfacher wenn Änderungen anliegen. Thx
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    B
    @Murphy-0 Heute endlich mal wieder Sonne, so dass die beiden Akkus geladen wurden. Allerdings war es nicht möglich die Akkus auf eine Zellspannung maxVol 3,5V zu bringen. Die höchste Zellspannung war 3,41V und der SOC war 99%. Die jeweilige Akkuspannung war dabei bei 50,2V. Weiter wurde der Akku nicht geladen obwohl immer noch ca. 350W für das Laden zur Verfügung standen. Von daher bin ich, was das Laden bis maxVol 3,5 betrifft noch nicht weiter gekommen. Inzwischen ist maxVol wieder auf 3,34 gefallen und der SOC ist weiterhin bei 99%. Habe auch mal im Adapter den control DP fullChargeNeeded auf true gesetzt, hat aber auch nichts geändert.
  • 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
  • Motioneye und IoBroker Curl

    blockly
    16
    0 Votes
    16 Posts
    785 Views
    W
    @haselchen Dankeschön, wünsche ich dir auch :)
  • Suche NFC APP

    communication
    5
    0 Votes
    5 Posts
    469 Views
    Jey CeeJ
    @Creator du könntest dir auch mit Tasker App Factory eine App Bauen. Die kann dann das was du willst bzw. Tasker eben ermöglicht. Einmal erstellen und auf anderen Geräten installieren Fertig.
  • 0 Votes
    6 Posts
    660 Views
    nik82N
    Hat sich erledigt, der neue Alexa Adapter kann "textCommand" somit kein Problem mehr :-)
  • XML

    javascript
    6
    0 Votes
    6 Posts
    286 Views
    ottoistgutO
    @ottoistgut said in XML: @arteck Ich habe kein plan von sowas. Kann mir einer helfen?
  • 0 Votes
    8 Posts
    1k Views
    tigertim08T
    @paul53 Danke! Stimmt °F bauch ich nicht wirklich habe ich gerade wieder rausgenommen ;)
  • Liste aller aktiven Scheduler

    javascript
    16
    0 Votes
    16 Posts
    2k Views
    H
    @paul53 nein nein, eh nicht. es war nur eine eher allgemeine frage
  • Abfrage des Batteriestatus

    javascript monitoring
    6
    0 Votes
    6 Posts
    926 Views
    paul53P
    @funcarv3r sagte: in Zeile 10 steht der break; Dann lass die Zeile weg.
  • Anfängerfrage: Eigener Alarmlogger

    javascript
    13
    0 Votes
    13 Posts
    581 Views
    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 Votes
    2 Posts
    147 Views
    UncleSamU
    @Humidor Kannst du nicht direkt per Modbus mit dem WR reden?
  • HM IP Thermostat mit Xiaomi Fenstersensor

    javascript blockly heating
    26
    1
    0 Votes
    26 Posts
    4k Views
    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 Votes
    4 Posts
    398 Views
    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 Votes
    2 Posts
    202 Views
    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 Votes
    5 Posts
    258 Views
    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 Votes
    8 Posts
    313 Views
    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 Votes
    3 Posts
    311 Views
    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 Votes
    5 Posts
    249 Views
    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 Votes
    2 Posts
    206 Views
    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 Votes
    8 Posts
    956 Views
    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.
  • 0 Votes
    7 Posts
    639 Views
    liv-in-skyL
    @Franky67 beispiel : [image: 1608136640739-image-1.png] topic: sonoff port: 1505
  • Heizungsgruppe

    blockly
    1
    0 Votes
    1 Posts
    198 Views
    No one has replied

619

Online

32.7k

Users

82.5k

Topics

1.3m

Posts