Skip to content

Blockly

6.6k Topics 79.8k Posts

Hilfe für Skripterstellung mit Blockly

NEWS

  • Datenpunkt erzeugen und influxDB gleich aktivieren

    7
    0 Votes
    7 Posts
    636 Views
    N
    @paul53 Danke, so funktioniert's! Kann man als "aliasId" auch gleich die Object-ID (also den Namen) des Datenpunkts verwenden?
  • [selber gelöst ;-)] Nuki Status übersetzt (für Telegram)

    blockly
    2
    1
    0 Votes
    2 Posts
    310 Views
    R
    @roolix said in Nuki Status übersetzt (für Telegram): Hallo, ich würde gerne den Status meiner beiden Nuki in Telegram anzeigen. Dazu habe ich folgendes Blockly erstellt (vermutlich etwas kompliziert, aber funktionert grundsätzlich): ..... Jetzt würde ich mir gerne die Status "übersetzt" anzeigen lassen, also anstelle false = Nein / true = Ja (oder auch direkt Aufgeschlossen bei false / Abgeschlossen bei true) und für z.B. door closed = Tür geschlossen. Letzteres wird ja, sofern ich verstanden habe, aus dem DP doorState "gefüttert". Kann mir jemand einen Hinweis geben, wie das gehen könnte? Außerdem würde ich gerne erreichen, dass das gleiche Blockly einmal automatisch bei Änderung eines der Status eine Meldung an Telegram absetzt und zusätzlich eine Abfrage über Telegram manuell möglich ist. Letzteres geht mit dem Blockly. Benötige ich eine Kopie mit einem entsprechenden Trigger oder lässt sich das miteinander vereinen? Grüße roolix Ich antworte mir mal selber, vielleicht hilft der Ansatz ja dem ein oder anderen: Eigene Datenpunkte manuell erstellt (ist ja Super-einfach, aber hier war für mich gedanklich die größte Hürde zu nehmen, weil die meisten Infos im Forum für den Fall viel zu detailliert sind): [image: 1679731626105-3d401d9e-a931-458d-8ffc-c5fbf055bf5b-image.png] Blockly für die Status erstellt, die die manuellen Datenpunkte "beschreiben": [image: 1679731588589-104a68ad-ec07-48d9-b1bc-d8756529d924-image.png] [image: 1679732166493-85dec152-3d6c-4211-909a-9244af8f3c25-image.png] Telegram-Blockly angepasst: [image: 1679731696643-2657cbb6-538f-46c7-af3e-fb938d713523-image.png]
  • Hilfe zur Fehlermeldung bei Influxdb Query

    blockly
    1
    1
    0 Votes
    1 Posts
    64 Views
    No one has replied
  • Umrechnung Unix-Timestamp

    7
    3
    0 Votes
    7 Posts
    1k Views
    MichaelFM
    @djmarc75 Ich hab es, so funktioiert es : [image: 1679504886221-182e76a4-9431-4d3e-a667-0d4f5f960f68-image.png] Die x 1000 von @Homoran waren die Lösung. Danke
  • History Adapter Aufruf liefert kein vernünftiges Result

    4
    2
    0 Votes
    4 Posts
    496 Views
    C
    @paul53 boom, es funktioniert. Vielen Dank Paul für den entscheidenden Hinweis. Für andere Suchende nochmal der korrekte Screenshot mit Hinweisen, wie man dann an den Durchschnitt (hie der letzten 10 Sekunden) kommt. Wichtig: Man muss bei den Ergebnissen immer den ersten Wert ignorieren. Warum auch immer der mit ausgegeben wird, er markiert der Doku folgend nur die Grenze des untersuchten Intervalls. Mit result[1] greift man sich (kontraintuitiv) das zweite Item in Result und mit .val den Wert. [image: 1679432975231-1a2f6270-0d99-42c7-8237-b1b27a6a75f2-grafik.png]
  • Bei Wertänderung, den aktuellen Wert über Telegram senden

    2
    0 Votes
    2 Posts
    184 Views
    paul53P
    @zimbl sagte: Wertänderung beobachte und diesen Wert dann per Telegram versende? Beispiel: [image: 1679415703328-blockly_temp.jpg]
  • Lampe steuern, je nach PV Überschuss

    10
    1
    0 Votes
    10 Posts
    821 Views
    CodierknechtC
    @wusa Aber auch das muss man nur 1x machen. Nutze die Macht der Variablen!
  • Solved: Blockly Script für erweiterten Zeitplan

    5
    0 Votes
    5 Posts
    391 Views
    crepp1967C
    @paul53 Vielen Dank für Deinen Denkanstoss - es klappt jetzt. Ich bin mit der Cronfunktion noch nicht so vertraut, aber ich habe wieder was dazugelernt... Gruß Torsten
  • Datenpunkt als zusammengebauten Strings auslesen

    6
    1
    0 Votes
    6 Posts
    349 Views
    A
    @paul53 Besten Dank für deine Unterstützung - hat super funktioniert.
  • PV Überschussladen mit Verzögerung

    15
    1
    0 Votes
    15 Posts
    1k Views
    C
    @paul53 sagte in PV Überschussladen mit Verzögerung: @carsten-4 sagte: das ist der Einspeisewechselrichter. Es ist kein Hybrid-Wechselrichter? genau nur zur einspeisung ins Hausnetz @carsten-4 sagte in PV Überschussladen mit Verzögerung: Ladegerät (Victron) Die Ladung / Entladung erfolgt zum/vom Netz? der Victron lädt den Akku
  • Verständnis Frage Trigger

    7
    1
    0 Votes
    7 Posts
    818 Views
    G
    @fritzk said in Verständnis Frage Trigger: Es funktioniert auch super. Ich habe mir das Blockly angeschaut. Ich kann nicht jede Fallunterscheidung nachvollziehen weil ich die Bedeutung der Felder nicht im Detail verstehe. Aber nach allem was ich hier verstehe, ändert sich nichts an meiner Aussage. Weder Batterie-Level noch Temperatur werden als primärer Trigger zum Schalten des Heizstabes verwendet. Aber wenn das Script super läuft ist doch alles gut, oder? ich hab halt nur den Zweck des Ganzen falsch verstanden.
  • Abfrage ob Adapter "gelb" oder "rot" ist

    2
    2
    0 Votes
    2 Posts
    235 Views
    HomoranH
    @oberfragger https://forum.iobroker.net/post/961060
  • Tor per Anruf öffnen läuft nur solange es klingelt.

    4
    1
    0 Votes
    4 Posts
    414 Views
    A
    @paul53 perfekt funktioniert. Danke
  • Blockly für Netzbezug Tagesverbrauch aktuell

    1
    0 Votes
    1 Posts
    184 Views
    No one has replied
  • In Google Kalender schreiben per API oder .ics Datei ?

    3
    0 Votes
    3 Posts
    342 Views
    A
    @dirkhe Vielen Dank. Werde ich mir bei ansehen. :)
  • E Auto Ladungen zuordnen und speichern

    2
    1
    0 Votes
    2 Posts
    230 Views
    W
    @woupi Ich habe etwas gefunden und ich glaube, so müsste es gehen: [image: 1678966537347-205fcb25-67bd-4e14-84b7-289d79cce98b-image.png] Hier noch die Datenpunkte [image: 1678969523946-31de5234-6a55-4a16-8e9a-b5f5a2821ad2-image.png] PS: Leider wurde der status in LP_aktiv nicht nach 15min von 1 auf 0 geändert. Habe ich einen Denkfehler in dem Aufbau mit dem Timeout?
  • [gelöst] Stromzähler, Wärmemengenzähler runden funktio ...

    38
    1
    0 Votes
    38 Posts
    3k Views
    W
    @homoran sagte in Stromzähler, Wärmemengenzähler runden funktioniert nicht: @woupi und hier gibt es auch noch Verbesserungspotential. für eine Uhrzeit braucht es nur einen Trigger und ob man alle 10 Sekunden triggern muss (wenn der Wert nur alle x Minuten käme) ist auch fraglich. Warum nicht auf die Werte Änderung? Das habe ich heute dann auch mal geändert. Bin zwar immer noch nicht fit, aber es geht besser.
  • Lichtsteuerung mit zwei Aqara BWM funktioniert nicht

    6
    1
    0 Votes
    6 Posts
    596 Views
    A
    @klarie sagte in Lichtsteuerung mit zwei Aqara BWM funktioniert nicht: @acem Hallo Acem, Ich verstehe nur nicht, warum ich einen Timer einbauen muss, wenn der Bewegungsmelder die Daten (Time from last motion) doch liefert. Im Grunde habe ich es ja ähnlich gelöst wie Du. 2 Trigger, 2x Wert überprüfen ("und"-Verknüpfung), dann mache (in meinem Fall "Licht aus"). Vielleicht kann mir ja noch jemand meinen Denkfehler aufzeigen. Mit Time from last motion habe ich es leider nicht hinbekommen, warum auch immer. Ich habe bei an beiden Bewegungsmeldern bei Objekte Occupancy_timeout 10 sec. [image: 1678925779748-occupancy_timeout-resized.png] So wie es jetzt ist funktioniert es bei mir, das Licht geht bei keine Bewegung nach 60 sec. Aus.
  • Blockly Menü zerschossen

    3
    1
    0 Votes
    3 Posts
    251 Views
    HeimwehH
    @homoran Danke! Stimmt ich hatte den Adapter drauf - aber seit ich ihn desinstalliert habe ist das jetzt so....
  • Ordner auf aktuellste Date prüfen

    3
    0 Votes
    3 Posts
    283 Views
    wendy2702W
    @saibot1981 sagte in Ordner auf aktuellste Date prüfen: Wurde gerne wenn eine Bewegung festgestellt wird immer so 4-5 aktuelle Bilder versenden ohne Dabei einen Festen Namen vergeben zu müssen. Wenn du das Bild eh versendest, ist es doch schon beim Empfänger gespeichert. Warum dann nochmal ? Und wenn du die Motion detection von Motioneye verwendest kannst du doch eine dieser Möglichkeiten nutzen um zu Erfahren ob es etwas neues gibt. Ich nutze z.B. diese alte Script welches mit bei Bewegungserkennung per PIR 5 Bilder per Telegram schickt. // ------------------------------------------------------------------------- // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet // dieses via Telegram.0-Adapter. Nach 10 Sek wird ein weiteres Bild erstellt und // gesendet. // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten // Uhula 2017.11 // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- // Konfiguration // ------------------------------------------------------------------------- // Objekt-ID des Bewegungsmelders const oidLichtBewmelderTuer = "hm-rpc.0.PEQ0390144.1.MOTION"; // URL zur Kamera umn ein Image (jpg) zu erhalten const cam_url = "http://xx:yy18@192.168.178.211/Streaming/channels/1/picture"; // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren const dest_path = '/opt/iobroker/iobroker-data/files/_temp/garage_klein/'; // Anzahl der Bilder, die vorgehalten werden sollen const imageCountMax = 8; // Prefix für die Bildnamen const imageNamePre = "garage_klein_"; // ------------------------------------------------------------------------- // Scriptteil // ------------------------------------------------------------------------- var request = require('request'); var fs = require('fs'); // 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, user: 'Mxxxo', }); sendTo('telegram.0', { text: path, caption: msg, disable_notification: true, user: 'Sxxe', }); } 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-4; 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 3 Sek erneut //function onEvent() { // saveImage(); // setTimeout(function() { saveImage(); }, 10 * 300); //} // sofort ein Bild senden und nach 3 Sek erneut function onEvent() { saveImage(); setTimeout(function() { saveImage(); }, 3 * 1000); setTimeout(function() { saveImage(); }, 6 * 1000); setTimeout(function() { saveImage(); }, 9 * 1000); } // Ereignisroutine //on({id: oidLichtBewmelderTuer, val: true}, function (obj) { // onEvent( obj ); on({id: 'hm-rpc.0.PEQ0390144.1.MOTION', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("hm-rpc.0.PEQ0390144.1.MOTION").val === true) onEvent( obj ); }); // manuelle Ausführung (Test) onEvent();

575

Online

32.8k

Users

82.8k

Topics

1.3m

Posts