Skip to content

Skripten / Logik

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

16.6k Themen 213.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    maxclaudiM
    @Daniel-8 sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro): ...Im Moment bin ich noch am Script umbauen, da ja das neue Firmware Update meint, wenn es den minSoc unterschreitet vom Netz laden zu müssen Hallo Daniel, freut mich von Dir mal wieder zu lesen, wie geht's Dir? Ja Zendure macht gerade viel .... Es wird immer mehr reglementiert. Vieles meiner Meinung nach unnötig und wahrscheinlich zum (Eigen-)Schutz. Persönlich würde ich abwarten und neue Firmware nicht sofort aktualisieren. Setze doch MinSoc sehr tief und baue einen Entladeschutz ein. Der verhindert dann rechtzeitig, dass Batterien weiter entladen werden noch bevor minSoc erreicht wird. Beispiel Ausschnitt einer Steuerung von mir: [image: 1773228124807-8f148a02-f02b-4f23-a03b-81edf9e089f1-image.png]
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    andre1deA
    Danke! Ich habe gerade meine Frage formuliert, wie man es macht, wenn ich das alles ohne Zeitplan mache, um ständige Abfragen zu reduzieren. Und du hast schon die zweite Variante vorgeschlagen. Auf die Idee mit „aktuelle Zeit ist nicht zwischen“ kam ich wegen Problemen mit dem Zeitintervall über Mitternacht, also von 23:00 bis 05:00 Uhr. Irgendwie hat das nicht funktioniert, und ich musste zwei Skripte machen: eines von 23:00 bis 23:59 und ein zweites von 00:00 bis 05:00. Deshalb dachte ich, ich nehme „nicht zwischen“, habe es aber noch nicht getestet.
  • 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
  • [Gelöst] Heizungssteuerung Homematic Probleme mit Control

    17
    2
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    draexlerD
    @sigi234 Habe es jetzt anders gelöst. Habe mit vom dem Hauptschalter verabschiedet. Das hätte vermutlich nie richtig funktioniert. Habe jetzt über eine einfache Statusanzeige gelöst die mir anzeigt ob ein Heizkörper läuft (versehentlich eingeschaltet etc.) oder nicht. Der Rest geht ganz normal über MANU oder AUTO
  • [solved] HM: Abfragen von Datenpunkt generiert Duty Cycle?

    3
    0 Stimmen
    3 Beiträge
    217 Aufrufe
    K
    @paul53 Danke! Das dachte ich auch. Passt aber nicht zu meinem DC. Jetzt habe ich das nochmals recherchiert und das alte Script aus dem Backup geholt und nochmals genauer nachgeschaut und einen Fehler gefunden: Da stand if(intendedState != getState(windowsAdviserId)){ wo hätte stehen sollen if(intendedState != getState(windowsAdviserId).val){ Der hat also nicht den Datenpunkt geholt, sondern das ganze Objekt. damit ist wohl die Ungleichheit im if statement immer gegeben und der Aktor wird immer angesteuert. Die "Sparschaltung" war also fehlerhaft. "User did err" hätte die alte Univac gesagt. Danke für Deine Mühe.
  • Kann nach Update die ICal Table nicht mehr auslesen

    7
    0 Stimmen
    7 Beiträge
    179 Aufrufe
    T
    @homoran exakt so ist es. ich warte dann mal ab. Das erklärt auch, warum trashSchedule sofort wieder funktioniert hat.
  • Datenpunkt für Prozent-Angabe für Alexa

    5
    0 Stimmen
    5 Beiträge
    355 Aufrufe
    S
    @dslraser Ja, den Adapter habe ich auch und er funktioniert super! Ich verwende nur "drumherum" ein paar Skripte um die Bedienung so anzupassen, dass ich gewohntes Verhalten - u.a. bei der Lautstärke - habe.
  • Roborock S5 "cleaning area" per Tastendruck?

    javascript
    57
    0 Stimmen
    57 Beiträge
    11k Aufrufe
    M
    @alcalzone Ok, danke für das Feedback! Dann suche ich mal weiter ^^
  • Licht für bestimmte Zeit einschalten, danach aus *gelöst*

    blockly
    12
    1
    0 Stimmen
    12 Beiträge
    305 Aufrufe
    paul53P
    @nordischerjung sagte: "NICHT zwischen 6.30 und 23 Uhr" nehmen, da über MItternacht nicht funktioniert Über Mitternacht funktioniert nur mit Astrozeiten nicht.
  • Sprung bei Durchschnittsberechnung

    12
    1
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    paul53P
    @ecurb sagte: links und rechts springt der wert. Wärend dessen ist der wert dann wieder konstant. Mir fällt auf, dass die Dauer der Abweichung genau eine Stunde beträgt, d.h. in der Liste weicht ein Wert - abgetastet um 9:56 Uhr - stark nach unten ab und nach einer Stunde ist dieser Wert "raus geschoben". Dieser Wert ist wahrscheinlich 0, da die Abweichung ca. -0,3 (18,4 / 60) beträgt.
  • Aufruf von Spotify Playlisten im Sonos über blockly

    blockly
    3
    1
    0 Stimmen
    3 Beiträge
    330 Aufrufe
    ?
    @pblau Hallo, nein, bisher hatte leider niemand eine zündende Idee ....
  • Bei Störung E-Mail versenden ?

    Verschoben
    61
    0 Stimmen
    61 Beiträge
    12k Aufrufe
    D
    @paul53 Tatsächlich. Das Script läuft. Das bin ich halt nicht gewohnt, dass die IDE Sysntaxfehler liefert obwohl es keine sind. Danke Gruss Ralf
  • Schedule und erster Start

    javascript
    5
    0 Stimmen
    5 Beiträge
    489 Aufrufe
    L
    @asgothian Danke für die Hilfe, hat funktioniert!!! MfG Wastl
  • (Gelöst) Bitte um Hilfe bei Schedule und Modulo

    javascript
    5
    0 Stimmen
    5 Beiträge
    236 Aufrufe
    L
    @alcalzone @paul53 Guten Morgen, der Fehler war bei "if (rest = x) " musste lauten "if (rest == x)". MfG Wastl
  • Tasmota Befehl beim Neustart wieder ausführen

    3
    0 Stimmen
    3 Beiträge
    908 Aufrufe
    mickymM
    @arumpel Habs zwar noch nicht probiert aber das sollte mit einer Rule gehen: ON <trigger> DO <command> [ENDON ] Als trigger kann man dann ja verschiedene eingeben: https://tasmota.github.io/docs/Rules/ z.Bsp. SystemInit SystemBoot muss man halt mal ausprobieren.
  • Per Widget einen Datenpunkt ändern

    11
    0 Stimmen
    11 Beiträge
    982 Aufrufe
    htreckslerH
    @oetzi sagte in Per Widget einen Datenpunkt ändern: Ist das mittlerweile ausgereifter? läuft bei mir seit Jahren absolut problemlos.
  • Node-Red nicht mehr erreichbar

    3
    0 Stimmen
    3 Beiträge
    309 Aufrufe
    M
    @mickym super danke dir! Die Option kannte ich noch nicht
  • [gelöst]Blockly Licht und Toröffnung

    14
    1
    0 Stimmen
    14 Beiträge
    957 Aufrufe
    R
    @ralla66 Jetzt habe ich die Zeit gefunden das mal umzubauen. Eigentlich ist es recht einfach mit den Variablen. Habe es jetzt so gebaut, das die Var Zeit Wahr sein muss, wenn die Beleuchtung mit schalten soll. Funktioniert auf Anhieb. Danke für den Tip. Die Sache mit dem Sensor muss ich mir nochmal überlegen. Hier nochmal mein funktionierendes Script. [image: 1627072894857-hoftor3.jpg]
  • Raspberry neustarten bei Log Fehler

    3
    2
    0 Stimmen
    3 Beiträge
    135 Aufrufe
    R
    @alcalzone Super vielen Dank. Genau was ich gesucht habe
  • Sonoff RF Bridge Tasmota mit NodeRed/MQTT Problem

    30
    0 Stimmen
    30 Beiträge
    4k Aufrufe
    K
    Hallo Leute, ich bin gerade anderweitig gebunden und werde demnächst noch einmal testen und eure Tipps versuchen, umzusetzen. Ich würde gern in NR arbeiten, da ich dort derzeit am "direktesten" mit all meinen IoT-Anbindungen und Bussen in Verbindung mit Logiken arbeiten kann.
  • IP Kamera Bilder via Telegram, 2. Daten Punt Auslösung

    11
    0 Stimmen
    11 Beiträge
    418 Aufrufe
    philipplindnerDEP
    @asgothian ok das habe ich Versanden. das Problem was ich jetzt habe ist wenn beide Bedingungen erfüllt sind würd die Aktion ausgeführt. So ball ich eine ändere ist die Aktion aktiv. Was sie eigentlich nich sein dürfte. Muss ich da was zurückstellen? Meine Cod sieht aktuell so aus: // Konfiguration // ------------------------------------------------------------------------- //2. Bewerbungs angabe const bewegung02 ="mqtt.1.Philipp_Lindner_Überwachung.arlamStatus"; // Objekt-ID des Bewegungsmelders const bewegung01 = "mqtt.1.Philipp_Lindner_Überwachung.cameras.flurcam_01.motion"; // URL zur Kamera um ein Image (jpg) zu erhalten const cam_url = "http://192.168.1.23:8090/grab.jpg?oid=2&size=1280x720"; // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren const dest_path = '/opt/iobroker/temp/cam'; // Anzahl der Bilder, die vorgehalten werden sollen const imageCountMax = 4; // Prefix für die Bildnamen const imageNamePre = "Flur_"; // ------------------------------------------------------------------------- // Scriptteil // ------------------------------------------------------------------------- var request = require('request'); var fs = require('fs'); var Alarmanlage_status = getState(bewegung02).val; // Bild an telegram schicken function sendImage (path) { try { var stats = fs.statSync(path); var msg = formatDate(stats.birthtime,"DD.MM.YYYY hh:mm:ss") + " " + path.substring(path.lastIndexOf('/')+1); sendTo('telegram.0', { text: path, caption: msg, disable_notification: true }); } catch(err) { if (err.code != "ENOENT") log(err); } } // löscht eine Datei synchron (wartet auf das Ergebnis) function fsUnlinkSync(path) { try { var stats = fs.statSync(path); try { fs.unlinkSync(path); } catch(err) { if (err.code != "ENOENT") log(err); } } catch(err) { if (err.code != "ENOENT") log(err); } } // benennt eine Datei synchron um (wartet auf das Ergebnis) function fsRenameSync(oldPath, newPath) { try { var stats = fs.statSync(oldPath); try { fs.renameSync(oldPath, newPath); } catch(err) { if (err.code != "ENOENT") log(err); } } catch(err) { if (err.code != "ENOENT") log(err); } } // Bild speichern und senden function saveImage() { // Bild imageCountMax-1 löschen fsUnlinkSync( dest_path + imageNamePre + (imageCountMax-1) + ".jpg" ); // Bilder 0..imageCountMax-2 umbenennen for (var i=imageCountMax-2; i >= 0; i-- ) { fsRenameSync(dest_path + imageNamePre + i + ".jpg", dest_path + imageNamePre + (i+1) + ".jpg"); } // Bild 0 löschen var fname = imageNamePre + "0.jpg"; fsUnlinkSync( fname ); // Bild holen und speichern request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile(dest_path + fname, body, 'binary', function(err) { if (err) { log('Fehler beim Bild speichern: ' + err, 'warn'); } else { // dem Filesystem 2 Sek Zeit zum Speichern lassen setTimeout(function() { sendImage(dest_path + fname); }, 2000); } }); }); } // sofort ein Bild senden und nach 10 Sek erneut function onEvent(t) { saveImage(); setTimeout(function() { saveImage(t); }, 10 * 1000); log('onEVenter go ('+t+')', 'info'); } // Ereignisroutine /*function auloeser(){ log('Überwachunbg test start', 'info'); on({id:bewegung02, change:'ne'}, function(obj) {Alarmanlage_status=obj.state.val;}) if (Alarmanlage_status =="1"){ log('Arlame Scharf!','info'); on({id:bewegung01, val:true}, function(obj){onEvent(obj); log ('BEWEGUNG!','info');}) } log('test ende', 'info'); }*/ let Alarmanlage_status2 = 0; on({id:bewegung02, change:'ne'}, function(obj) {Alarmanlage_status=obj.state.val;}); on({id:bewegung01, val:true}, function(obj){onEvent(obj); if (Alarmanlage_status == 1){log('BEWEGUNG!','info');}}); //schedule("*/5 * * * * *", function(){ auloeser()}); // manuelle Ausführung (Test) onEvent("test"); Nachtrag: so das Problem habe ich jetzt gelöst, bin selber bescheuert umd habe den fehler nicht gesehen: let Alarmanlage_status2 = 0; on({id:bewegung02, change:'ne'}, function(obj) {Alarmanlage_status=obj.state.val;}); on({id:bewegung01, val:true}, function(obj){if (Alarmanlage_status == 1){onEvent(obj); log('BEWEGUNG!','info');}}); Danke an @Asgothian für die auf klährung.
  • Adresse anhand von GPS Koordinaten ermitteln

    3
    0 Stimmen
    3 Beiträge
    575 Aufrufe
    David G.D
    @homoran Wenn ich ehrlich bin nur auf Google. Selbst die Artikel hier im Forum findet man dort besser s über das Forum selbst. Zumindest meine Erfahrunge. Aber vielen Dank für den Link.
  • Anzahl Files und dafür belegter Speicherplatz auslesen

    communication
    21
    0 Stimmen
    21 Beiträge
    590 Aufrufe
    liv-in-skyL
    @metaxa wenn du das | awk '{print $1}' Aus dem Befehl nimmst, solltest du auch das Verzeichnis in der Konsole sehen Wegen der ZuOrdnung Dann funktioniert es aber im Blocky nicht mehr

629

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge