Skip to content

Skripten / Logik

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

16.6k Topics 213.9k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    A
    @azzkikrboy Verwendest du die Objekt-ID 0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt ? Da sollten immer beide Werte angezeigt werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    paul53P
    @Lottemann sagte: ein + als nächstes rein Addition und Multiplikation sind der 2. Mathe-Block von oben. Schritte: [image: 1773072613287-blockly_temp.jpg]
  • 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] Heizungssteuerung Homematic Probleme mit Control

    17
    2
    0 Votes
    17 Posts
    1k Views
    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 Votes
    3 Posts
    217 Views
    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 Votes
    7 Posts
    179 Views
    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 Votes
    5 Posts
    354 Views
    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 Votes
    57 Posts
    11k Views
    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 Votes
    12 Posts
    305 Views
    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 Votes
    12 Posts
    1k Views
    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 Votes
    3 Posts
    330 Views
    ?
    @pblau Hallo, nein, bisher hatte leider niemand eine zündende Idee ....
  • Bei Störung E-Mail versenden ?

    Moved
    61
    0 Votes
    61 Posts
    12k Views
    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 Votes
    5 Posts
    489 Views
    L
    @asgothian Danke für die Hilfe, hat funktioniert!!! MfG Wastl
  • (Gelöst) Bitte um Hilfe bei Schedule und Modulo

    javascript
    5
    0 Votes
    5 Posts
    236 Views
    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 Votes
    3 Posts
    908 Views
    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 Votes
    11 Posts
    982 Views
    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 Votes
    3 Posts
    309 Views
    M
    @mickym super danke dir! Die Option kannte ich noch nicht
  • [gelöst]Blockly Licht und Toröffnung

    14
    1
    0 Votes
    14 Posts
    946 Views
    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 Votes
    3 Posts
    135 Views
    R
    @alcalzone Super vielen Dank. Genau was ich gesucht habe
  • Sonoff RF Bridge Tasmota mit NodeRed/MQTT Problem

    30
    0 Votes
    30 Posts
    4k Views
    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 Votes
    11 Posts
    418 Views
    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 Votes
    3 Posts
    575 Views
    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 Votes
    21 Posts
    588 Views
    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

404

Online

32.7k

Users

82.5k

Topics

1.3m

Posts