Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.8k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    maxclaudiM
    @Daniel-8 sagte: Das ist ja ganz schön merkwürdig. Wir sind halt leider immer noch ein wenig von der Cloud abhängig.... Bei mir gab es keine socSet veränderungen. Bei mir gerade wieder und hat sich dann durch Blockly gleich wieder geändert. Temperaturen: 1600AC+ 35°C Bat 1: 33°C Bat 2: 32°C SoC: 72% socSet: 85% Nachdem ich ihn per Script zwinge, schaltet er jetzt einfach auf pass:2 und gibt die Leistung ins Hausnetz durch, statt zu laden. und jetzt, beim schreiben des Textes schaltet er nun doch auf pass:0 und ladet. Unglaublich. 33°C mag jetzt nicht ideal sein aber dennoch... Gerät wird gekühlt. Außerdem verstehe ich nicht warum inverseMaxPower 2x auf 200 gesetzt wurde - ohne Script etc. edit/PS 19.00h: Wechselt immer wieder zwischen pass:0 und pass:2 Zwar nicht schnell aber mit SoCset 85% ist er mit SoC 72% und mit aktuell ca. 70W PV-Leistung (19Uhr) noch weit weg von 85% und garantiert nicht überfordert. edit/PPS: 19.04h: schon wieder wurde inverseMaxPower auf 200 geändert und durch mein script zurück auf 1600 gesetzt. edit/PPPS: 19.07h: Wenn es nicht von der Cloud kommt dann muss es die Firmware sein. Es gibt nur die 2 Kandidaten. Vermute dass bei ca. +33°C irgend ein Batterieschutz greift. Was aber nicht die inverseMaxPower erklärt. Denn das Gerät sollte mit 35°C entspannt sein. update 19.40h: Bat 1 minVol: 3.34V Bat 1 maxVol: 3.34V Bat 2 minVol: 3.34V Bat 2 maxVol: 3.34V SoC: 72% das kann nicht sein. Also stimmt der SoC-Wert nicht und das erklärt auch warum die Batterien nicht oder nur sehr schwach geladen wurden (BMS). mit 3.34V sind sie bereits >= 85% Eine Kalibrierung wird oder wurde nicht eingeleitet durch Firmware/Cloud. update 19.48h socLimit steht unbeeindruckt auf 0. Also keine Ladegrenze erreicht. Das ist ein Worst Case. Werde den Batterie-Entladeschutz wohl um einen Batterie-Ladeschutz erweitern müssen. update 19.55h Setzte nun socSet auf 70%. Damit wurde auch gleich socLimit:1 gemeldet und pass:2 Man sieht hier wieder ganz deutlich dass man sich nicht auf minSoc und socSet verlassen sollte! Die Firmware oder Cloud hat zwar irgendwie darauf reagiert aber nicht gut. Statt eine Kalibrierung anzuwerfen oder etwas Nachvollziehbares wurden (für mich) wichtige Werte geändert. Ok, eine Erfahrung mehr. Muss dann auch in meinem Script abgefangen werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    @oliverio Ja, genauso ist meine Installation (MariaDB, phpmyadmin und jeweils im Docker Container). Der SQL läuft bereits und ist mit ioBroker über den SQL Adapter verbunden.
  • Hilfe für Skripterstellung mit Node-RED

    962 13k
    962 Themen
    13k Beiträge
    Marc BergM
    @Thomas-Braun sagte: In der Konfigurationsdatei von Node Red, also in der settings.js, kann durch hinzufügen der Zeitzone das Problem behoben werden. Wenn man den Adapter nutzt, werden Änderungen in der settings.js immer wieder überschrieben. Das bringt nichts. @taddy81 Was konkret ist denn das Problem? Lösen die inject Nodes falsch aus? Oder geht es nur um diese Meldung, bei der niemand weiß, woher sie kommt? @Taddy81 sagte: Auszug: 7/26/2026, 11:15:23 AMnode: debug 3msg.payload : string[24]
  • View wechseln

    Verschoben
    51
    0 Stimmen
    51 Beiträge
    14k Aufrufe
    D
    Hat sich erledigt, Danke
  • Fehlermeldung im log entschlüsseln

    javascript
    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    M
    @paul53 @Homoran Ich habe den Fehler gefunden. Ich arbeite ausschließlich mit den Aliasen. Bei mir heist der Alias Light_005. In deconz ist es lights/13. Das muss man erst einmal herausfinden... Besten dank aber für eure Hilfe! Ich habe aber noch ein anderes Problem, was unregelmäßig immer dann auftritt, wenn ich in Blockly einen Datenpunkt auswählen will, also z.B. hier den Datenpunkt Lights_Info_Blink: [image: 1608661098522-8e7b750d-adb1-4bba-9246-1ab68dd5be1e-image.png] Ich hatte schonmal im Forum gefragt, aber leider konnte mir hier keiner helfen, vielleicht habt ihr ja noch eine Idee. Der Fehler äußert sich darin, dass ca. 30 Sekunden nichts passiert und der drehende Halbkreis kommt bis dann wieder alles normal funktioniert. Hier die Fehlermeldung: admin.0 2020-12-22 19:16:40.998 warn (24290) Terminated (UNCAUGHT_EXCEPTION): Without reason admin.0 2020-12-22 19:16:40.028 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.028 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.026 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.026 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.024 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.023 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.021 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.020 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.019 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.018 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:40.015 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:40.015 error (24290) uncaught exception: Cannot set property 'source' of undefined admin.0 2020-12-22 19:16:39.995 info (24290) terminating http server on port 8081 admin.0 2020-12-22 19:16:39.992 error (24290) TypeError: Cannot set property 'source' of undefined at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6957:68 at /opt/iobroker/node_modules/iobroker.objects-redis/in admin.0 2020-12-22 19:16:39.986 error (24290) uncaught exception: Cannot set property 'source' of undefined JS-controller: 3.1.6 Node.js: 12.20 Habt ihr auch hier eine Idee?
  • Motioneye und IoBroker Curl

    blockly
    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    W
    @haselchen Dankeschön, wünsche ich dir auch :)
  • Suche NFC APP

    communication
    5
    0 Stimmen
    5 Beiträge
    579 Aufrufe
    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.
  • Von IObroker einen Alexa Skill Schalten Qbo Kaffee

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

    javascript
    6
    0 Stimmen
    6 Beiträge
    382 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
    3k 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
    1k 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
    1k 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
    186 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
    534 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
    252 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
    304 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
    441 Aufrufe
    A
    @paul53 Guten Morgen, Danke für die Berichtigung. Der Profi sieht den Unterschied sofort 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: Gruß MIchael
  • (gelöst) javascript datenpunkt aktualisiert nicht

    javascript heating
    3
    2
    0 Stimmen
    3 Beiträge
    451 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
    332 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
    256 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
    1k 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.

400

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge