NEWS
Kamerabilder an Telegram senden
-
@bahnuhr said in Kamerabilder an Telegram senden:
@fliegerlenker
Musste halt mal dein Script auseinander nehmen und ein paar logs einbauen um zu sehen wo es hakt !Ich bin nicht so der 'Scripter'. Rudimentär verstehe ich das script. Da scheinen ja ein paar Einträge bei 'err' in das log generiert zu werden.
Hier ein Auszug aus dem Protokoll wenn ich per Telegram 'Kamera' an den Bot schicke:
2023-12-13 08:34:01.744 - info: text2command.0 (3388) processText: "Kamera"
2023-12-13 08:34:01.745 - info: text2command.0 (3388) Control ID "javascript.0.notify.telegram.cam.trigger_manu" with: true
2023-12-13 08:34:01.756 - info: text2command.0 (3388) Response: Moment
Weder im Script log selbst noch im Protokoll taucht auch nur eine Zeile vom Script auf.
Als wäre es gar nicht existent.Kann es etwas mit den updates zu tun haben? (Telegram und JS)
-
@fliegerlenker
Na, dann probier es doch mal einfach.Schicke dir ein bestehendes jpg an telegram.
klappt dies ?
-
Habe eben etwas heruasgefunden:
Dieser Wert
javascript.0.notify.telegram.cam.trigger_manu
steht im JS Objekt dauerhaft auf :true
Setze ich den Wert manuell auf 'false' und schicke dann 'Kamera' an den Bot kommt das Bild.???
-
@fliegerlenker
Na dann probier weiter.Ich werde dieses lange, fremde Script auf keinen Fall auseinander nehmen.
Ich schreibe lieber meine eigenen; dann weiß ich auch was wo steht.
-
Hier der entsprechende Protokoll auszug mit einer 'warn' die ich nicht verstehe:
2023-12-13 08:59:26.622 - info: text2command.0 (3388) processText: "Kamera"
2023-12-13 08:59:26.622 - info: text2command.0 (3388) Control ID "javascript.0.notify.telegram.cam.trigger_manu" with: true
2023-12-13 08:59:26.630 - info: text2command.0 (3388) Response: Geht los, Moment
2023-12-13 08:59:26.633 - warn: javascript.0 (5236) script.js.common.Pics.Skript_1: setForeignState(id=javascript.0.notify.telegram.cam.trigger_manu, state={"val":false,"ack":false,"ts":1702454366633,"q":0,"from":"system.adapter.javascript.0","lc":1702454366633,"c":"script.js.common.Pics.Skript_1"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
2023-12-13 08:59:27.271 - info: javascript.0 (5236) script.js.common.Pics.Skript_1: Bild 1 gespeichert.
2023-12-13 08:59:29.273 - info: javascript.0 (5236) script.js.common.Pics.Skript_1: Webcam Bild per telegram verschickt.
2023-12-13 08:59:30.289 - info: javascript.0 (5236) script.js.common.Pics.Skript_1: Bild 2 gespeichert.
2023-12-13 08:59:33.359 - info: javascript.0 (5236) script.js.common.Pics.Skript_1: Bild 3 gespeichert. -
@fliegerlenker Warum setzt du es dann nicht auf false im Skript? Quasi als sauberen Abschluss.
-
Ich denke einmal, das steht doch hier schon im Script drin:
Was mir im Script im ioBroker auffällt: Das Wort: "newState" (s.u.) wird dort durchgestrichen dargestellt. Warum?
// trigger_manu
on(trigger_manu, function(dp) {
stateTrigger_manu = dp.newState.val;
if (stateTrigger_manu === true) {
saveImage();
setState(trigger_manu, false);
}
-
@fliegerlenker sagte in Kamerabilder an Telegram senden:
wurde nicht ausgeführt, während der Debug-Modus aktiv ist
Du hast nicht zufällig den Haken gesetzt ?
-
Ja, genau den
-
Guten Morgen Zusammen,
wir haben ab un an das gleiche Problem, die Ursache ist zumindest bei uns, dass zum Zeitpunkt der Übergabe des Bildes an Telegram, das Bild noch nicht vollständig auf die Platte geladen wurde.
Wir haben dann Verzögerungen in das Script eingebaut, seit dem klappt es ohne Probleme und weitere Ausfälle.
-
Ich habe nun folgendes gemacht (Workaround)
Hab ein Blockly geschieben, das den Wert von :
javascript.0.notify.telegram.cam.trigger_manu
nach 10 sec wieder auf false setzt.
Jetzt funktioniert alles! -
@uep-iobroker said in Kamerabilder an Telegram senden:
Guten Morgen Zusammen,
Wir haben dann Verzögerungen in das Script eingebaut, seit dem klappt es ohne Probleme und weitere Ausfälle.
Das habe ich eben versucht, ohne Erfolg. Bei mir liegt es ausschliesslich daran, dass der Trigger nicht wieder auf false gesetzt wird.
Mit diesem Blockly (jetzt ohne 10 sec Verzögerung) funktioniert es nun zuverlässig:
on({ id: 'javascript.0.notify.telegram.cam.trigger_manu' /* Datenpunkt zur manuellen Auslösung */, change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; setState('javascript.0.notify.telegram.cam.trigger_manu' /* Datenpunkt zur manuellen Auslösung */, false); }); on({ id: 'javascript.0.notify.telegram.cam.trigger_more_img' /* Datenpunkt zur Abfrage weiterer Bilder */, change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; setState('javascript.0.notify.telegram.cam.trigger_more_img' /* Datenpunkt zur Abfrage weiterer Bilder */, false); });
-
@fliegerlenker - machen wir hier ähnlich, da wir mittels Homematic PIR Bewegungsmeldern die Aufnahmen triggern, allerdings lösen die bei Bewegung erkannt die Skripte mehrfach aus, das umgehen wir, in dem wir eine Variable mit einem Timer versehen, ebenso filtern wir damit "die Katzen" welche hier über den Campus laufen heraus, da wir erst bei wiederholtem Auslösen die Variable auf True setzen, auf welche dann die Kamerasteuerung auslöst.
Nach 60 Sekunden wird die Variable, wie bei Dir wieder auf False gesetzt. Wir machen nicht nur Alarmbilder, wir triggern dann auch einen virtuellen Video Rekorder, welcher ein 60 Sekunden Video aufnimmt, dadurch erhalten wir nur Bilder und Videos welche sich genau auf das Ereigniss beziehen ohne lange im Archiv suchen zu müssen.
-
@fliegerlenker
Vielleicht mal den onvif adapter anschauen da geht das mit dem snapshot versenden sehr einfach genauso wie live stream ohne große CPU Last
https://forum.iobroker.net/topic/63145/test-adapter-onvif-camera-v1-0-0 -
@tombox
Hi, was ich realisieren will ist, von unterwegs mir einen snapshot von zuhause (Pferde) schicken lassen. -
Das Elend geht doch weiter:
Mittags ging alles noch, heute Abend bekomme ich diese Fehlermeldung:
2023-12-13 18:34:40.076 - info: text2command.0 (3388) processText: "Kamera"
2023-12-13 18:34:40.077 - info: text2command.0 (3388) Control ID "javascript.0.notify.telegram.cam.trigger_manu" with: true
2023-12-13 18:34:40.094 - info: text2command.0 (3388) Response: Geht los, Moment
2023-12-13 18:34:43.187 - error: javascript.0 (5991) Error in request callback: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received undefined
2023-12-13 18:34:43.188 - error: javascript.0 (5991) Request error: Error: connect EHOSTUNREACH 192.168.20.93:88
2023-12-13 18:34:43.196 - error: javascript.0 (5991) Error in request callback: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received undefined
2023-12-13 18:34:43.196 - error: javascript.0 (5991) Request error: Error: connect EHOSTUNREACH 192.168.20.93:88
2023-12-13 18:34:46.257 - error: javascript.0 (5991) Error in request callback: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received undefined
2023-12-13 18:34:46.258 - error: javascript.0 (5991) Request error: Error: connect EHOSTUNREACH 192.168.20.93:88
Also: 'Kamera' geht nicht,
'mehr Bilder' geht, bekomme aber zwei alte Bilder geschickt -
Asche auf mein Haupt:
Kamera war versehentlich nicht am Netz -
hallo,
es soll nun eine unif camera dazustossen bzw im Script soll erst einmal die 'Kamera' geändert werden.Wenn ich das in den Browser eingebe kommt ein Bild von der Foscam und das Script funktioniert:
http://192.168.20.93:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxx&pwd=xxxBei der unifi Kamera gebe ich folgendes in den Browser ein und bekomme ein Bild:
http://192.168.20.91/snap.jpeg
Baue ist die Zeile in das Script einfunktioniert das aber nicht.Hat jemand eine Idee?