Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.5k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    D
    @maxclaudi "Nebenher ist ein neues, verbessertes Skript in Arbeit und zu 80 % fertig." Was wird denn verbessert? hat es was mit meinem Smartmode zu tun? Ich hoffe ich muss nicht nochmal alles neu machen für mein Steuerungsscript.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    J
    @Thomas-Braun ich hatte es schon mal mit dem sudo -u iobroker versucht, da kam allerdings ein Fehler raus. Müsste noch mal morgen abend schauen welcher genau. Es hat aber eher das sudo die Probleme gemacht. Ich hatte auch einfach mal ein sudo vor die oben beschriebenen Befehle in der Konsole gehängt und es kam der selbe Fehler raus. Hat sich also nicht nach einem Berechtigungsproblem angehört (wie gesagt, morgen mehr dazu). Grundsätzlich bin ich sonst auch für andere Lösungen offen mein Display zu schalten. Eine schaltbar Steckdose ist jedoch keine Option für mich. Gruß Jannik
  • Hilfe für Skripterstellung mit Node-RED

    956 13k
    956 Themen
    13k Beiträge
    S
    Hallo Zusammen, ich bin gerade am überlegen, wie ich folgende Aufgabe umsetzen könnte: Ein true an einer (Trigger)Node lässt einen Zähler laufen und setzt einen eigenen Ausgang auf true. Ein false der Trigger Node stoppt den Zähler setzt diesen aber nicht auf false. Ein true lässt den Zähler einfach weiterlaufen... Nach Ablauf der Zeit im Zähler wird der Ausgang des Zählers auf false gesetzt. Mehr soll nicht passieren. Ein separater Eingang am Zähler setzt diesen auf 0 zurück. Was ich damit anfangen möchte: Die Laufzeit der Poolpumpe wird auf eine Mindestlaufzeit von bspw. 4h überwacht -kann aber manuell bedient bei Bedarf länger laufen. Ein Trigger um 00:01Uhr setzt die Laufzeit zurück. Die Zählernode gilt hier als "Anforderung Pumpe wegen Mindestlaufzeit unterschritten". Ich habe noch keine brauchbaren Ideen, wie ich dass sauber und mit wenig Aufwand umsetzen könnte... Vielen Dank und VG Torsten
  • Node-Red nicht mehr erreichbar

    3
    0 Stimmen
    3 Beiträge
    310 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
    1k 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
    140 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
    429 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
    588 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
    660 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
  • [Frage] Bild per telegram verschicken?

    Verschoben
    93
    0 Stimmen
    93 Beiträge
    36k Aufrufe
    W
    hi, da ich auf der Suche nach einer Lösung ohne Dateizugriffe war (nur im RAM) und leider keine gefunden habe. Musste ein wenig gebastelt werden. Hier das Ergebnis: function sendPricture() { var photoUrl = "https://hostname/image.jpg" request.get({ url: photoUrl, encoding: 'binary' }, function (err, response, body) { var buffer = Buffer.from(body, 'binary'); sendTo('telegram.1', { type: 'photo', text: buffer, caption: 'Eingang', disable_notification: true, filename: "eingang.jpg", contentType: 'image/jpeg' }, (e) => { console.log("error: " + e); } ); }); } Läuft wir man sieht ohne Dateizugriffe. Vielleicht hilft das ja mal jemand. lg
  • Welcher Datenpunkt zeigt ob ein Adapter gelb ist?

    2
    0 Stimmen
    2 Beiträge
    152 Aufrufe
    AlCalzoneA
    @david-g <adaptername>.<instanzNr>.info.connection unterscheidet (sofern er existiert) zwischen gelb (false) und grün (true). Ob ein Adapter läuft oder nicht, sollte an system.<adaptername>.<instanzNr>.connection (Verbunden mit DB) bzw. .alive (Prozess läuft) zu erkennen sein.
  • Email auslesen und gewissen Inhalt in Datenpunkt

    javascript blockly template
    28
    0 Stimmen
    28 Beiträge
    4k Aufrufe
    liv-in-skyL
    @shwowak ich vermute mal - wenn du maillistener von hand installierst, sollte das im iobroker verzeichnis sein - nicht im home verzeichnis - ich weiß aber nicht, ob dies der fehler ist
  • Badradio

    blockly
    75
    1
    0 Stimmen
    75 Beiträge
    5k Aufrufe
    ?
    Hallo, ich habe jetzt selbst versucht dass Thema Badradio zu basteln, aber 2. Punkte fehlen mir der Huestrip soll eine bestimmte Zeit anbleiben. wenn der Huestripe dann aus geht soll auch das Badradio aus gehen. So sieht mein Blockly grad aus: [image: 1626284014192-bildschirmfoto-2021-07-14-um-19.32.10-resized.png]
  • Alexa Wecker schaltet Beleuchtung an

    javascript blockly
    60
    1
    0 Stimmen
    60 Beiträge
    8k Aufrufe
    haselchenH
    @paddex Ich bin davon ausgegangen , dass du den Alexa Adapter neu startest. Und da war meine Intention, dass Amazon das irgendwie mitbekommt und nach einer gewissen Zeit temporär den Zugang sperrt.
  • Problem mit Alarmanlage - löst plötzlich aus

    4
    1
    0 Stimmen
    4 Beiträge
    178 Aufrufe
    J
    @patrick-schulz klar geht das weil true =1 und false = 0 und da man Zahlen wunderbar vergleichen kann, geht das auch ;)
  • Anwesenheitserkennung mit Hping3

    14
    3
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    J
    @oliverio Jetzt klappt es. Vielen dank =)
  • Einfache Programmierung - womit?

    blockly javascript
    17
    1
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    AsgothianA
    @andygr42 sagte in Einfache Programmierung - womit?: @asgothian Pumpen auch.... ;) Bliebe nur die Frage: sind Pumpen teurer als Klempner 🤣
  • Alexa kann Geräte nach Port Forwarding nicht mehr steuern

    3
    0 Stimmen
    3 Beiträge
    120 Aufrufe
    J
    @rndix eigentlich sollte das immer mal der erste Versuch sein sein Problem zu lösen und dann auch nicht die Steinzeitvariante (kommt zwar aufs selbe Ergebnis), sondern so: iob stop iob fix
  • [Frage] Suche Skript für einfachen Betriebsstundenzähler

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    Basti97B
    @paul53 Super vielen Dank ich probiere es aus. :)
  • Dateinamen in Ordner herausfinden und anzeigen

    blockly javascript
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    P
    @homoran Weil es ein anderes Thema war und die Antwort auf meine Frage hier viel besser gepasst hätte.
  • Zustandsänderung Aufzählungen anzeigen lassen

    Gelöst javascript blockly
    9
    0 Stimmen
    9 Beiträge
    865 Aufrufe
    AsgothianA
    @marcuskl sagte in Zustandsänderung Aufzählungen anzeigen lassen: @paul53 perfekt funktioniert, ich kannte das nicht, das der Trigger diese Variablen liefert. Wieder was gelernt, danke :) Ich empfehle dieses zur Lektüre. Sollte "Pflichtlektüre" sein wenn man mit Blockly Skriptet. (oder dieses für JS)
  • Werte im Vis addieren

    17
    0 Stimmen
    17 Beiträge
    2k Aufrufe
    A
    Ich bin mit Sonderzeichen generell vorsichtig. In URI's ist die # verboten. In URL's ist sie das Zeichen für eine location. Das sollte aber eigentlich kein direktes Problem beim Aufruf von VIS darstellen. Ich stecke aber da nicht tief genug drin um zu wissen, ob z.B. jquery benutzt wird. Da spielt die # eine Rolle als ID selector. Um Ärger zu vermeiden nutzte ich eigentlich schon immer nur 0-9 a-z A-Z (ohne Umlaute) und ggf. Binde- bzw. Unterstrich. :)

352

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge