Du musstest ein Logischen Schalter erstellen.
Diesen Logischer Schalter wird dann in den dem Skript eingebaut.
Kannst du mir mal dein Skript schicken, dann baue ich es mal so wie ich es denke.
Du musstest ein Logischen Schalter erstellen.
Diesen Logischer Schalter wird dann in den dem Skript eingebaut.
Kannst du mir mal dein Skript schicken, dann baue ich es mal so wie ich es denke.
Das Skript ist aber JS und nicht Blockly ist das ok?
Jo kann nodejs das ist ziemlich das geleiche.
// -------------------------------------------------------------------------
// Dieses Script überwacht den Zustand des BWM Einfahrt und speichert bei
// Betätigung ein Bild von picam2 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
//
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
// Konfiguration
// -------------------------------------------------------------------------
// Objekt-ID des Bewegungsmelders
const BWM_Einfahrt = "mihome.0.devices.motion_158d000222f7dd.state";
// URL zur Kamera um ein Image (jpg) zu erhalten
const cam_url = "http://192.168.178.71/picture/1/current/";
// Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren
const dest_path = '/opt/iobroker/iobroker-data/files/_temp/';
// Anzahl der Bilder, die vorgehalten werden sollen
const imageCountMax = 8;
// Prefix für die Bildnamen
const imageNamePre = "Einfahrt";
// -------------------------------------------------------------------------
// 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
});
}
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 + ".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() {
saveImage();
setTimeout(function() { saveImage(); }, 10 * 1000);
}
// Ereignisroutine
on({id: BWM_Einfahrt, val: true}, function (obj) {
onEvent( obj );
});
// manuelle Ausführung (Test)
onEvent();
Alles anzeigen
Kannst Du es mir bitte auch an einem Blockly erklären?
Bin gerade noch auf Arbeit. Qualitätssicherung machen - also schauen ob alles läuft.
Ich versuche es mal ganz Logisch Runterzubringen.
Wenn auslößer
Dann
...
...
IF TelegramSchalter (ist ein logischer Schalter / nur in ioBroker Vorhaben )= true
Dann schicke per Telegram Nachicht
Sonnst nix tun
....
...
Den Logischen Schalter kannst du dann als Lampr freigeben (Cloud) dadurch kannst du zum Alxa oder über Telegram diesen dann schlten.
Verständlich genug - sonnst sitze ich mich nach der Arbeit hin kann aber dann 23 Uhr werden - habe hier im Forum jemand Telefon / TeamViewer Hilfe angeboten
Lass Dir ruhig Zeit. Wenn Du morgen drauf antwortest ist auch ok. Hätte gerne ein Beispiel.
Danke schon mal
Glaube, dass war der falsche Post. ?
Wsio ?
nochmal zurück zu meiner Ursprünglichen frage. Ist es möglich, durch einen Befehl ein Skript zu deaktivieren/pausieren?
Das ich z. B. einen Befehl mit Telegramm schicke und das Skript wie unten angezeigt deaktiviert wird?
schimmer-media.de/index.php?attachment/3851/
Danke und Gruß
Der Skript lauft ja nicht, wenn die Vabiable "weglicht" = true ist. Und die Variable änderst du dann ab.
Oder willst du den ganzen Skript komplett aus machen ?
Okey - Kannst du deins in Blocky kurtz machen ?
ich möchte es komplett deaktivieren.
Zur Erklärung, dieses Skript schickt bei der Aktivierung eines Bewegungsmelders über Telegram eine Nachricht mit dem Bild der Kamera an der Haustür. Da es immer wieder vorkommt, wenn der Wind zu sehr geht, dass der Bewegungsmelder ständig auslöst und ich unnötig Nachrichten bekomme. Möchte ich mich nicht immer über VPN (außerhalb meines Wlans) verbinden und das Skript deaktivieren. Am besten wäre es, über telegram einen Befehl zu schicken, um das Skript zu deaktivieren.
Da ich kein JS programmieren kann, hoffe ich, Du kannst das Skript soweit anpassen.
Danke Dir für Deine Mühen!!
Gute Nacht und bis morgen. ?
Hast du TS ? - Dann können wir vil das besser besprechen.
Teamspeak oder was meinst Du?
Wie sieht es bei Dir morgen Nachmittag aus?
Ja, TeamSpeak
bis am 20 habe ich frei also ja sollte gehen.
ok, Meld mich morgen spät Nachmittag. ??
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!