SnapShot über Reolink RLC-820A - Brauche Hilfe !

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
MarkusInspiron
Beiträge: 3
Registriert: 31.08.2022, 13:50
System: CCU

SnapShot über Reolink RLC-820A - Brauche Hilfe !

Beitrag von MarkusInspiron » 31.08.2022, 14:13

Hallo zusammen,
ich möchte meine alte Instar IN-5970HD-POE gegen eine Reolink RLC-820A austauschen. Dazu möchte ich die bestehenden, funktionierenden Scripte anpassen und weiter nutzen. Vielleicht könnte Ihr mir dabei helfen, da ich nicht wirklich mit diesen Scripten vertraut bin.

Der Snapshot per Browser funktioniert.

Code: Alles auswählen

https://192.168.178.55/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=xxxxx&password=xxxxx
CCU, RaspberryMatic:
Script beim auslösen einer Aktion, z.B. beim betätigen der Klingel:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801003:1.CMD_EXEC").State("cd /usr/local/addons/sendCamShot / && tclsh sendCamShotklingelReolink.tcl");
Homematic Script.png

sendCamShotklingelReolink.tcl:
Dieser Script funktioniert bei der Instar einwandfrei. Nun habe ich bei der Variablen „set SNAPSHOT_URL“ den Link für die Reolink geändert.

Code: Alles auswählen

package require base64
set SNAPSHOT_URL "https://192.168.178.55/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=xxxxx&password=xxxxx"
set EMAIL_SUBJECT "Es hat an der Eingangstuer geklingelt."
set EMAIL_BODY " Foto siehe Anhang"
set SEND_TO "xxxxx"
set SEND_FROM "xxxxx"
set SMTP_HOST "smtp.strato.de"
set SMTP_USER "xxxxx"
set SMTP_PASSWD "xxxxx"
set SMTP_DOMAIN "xxxxx"
# DEFINE EMAIL TEMPLATE
set tmpl "To: $SEND_TO
From: $SEND_FROM
Subject: $EMAIL_SUBJECT
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk\"
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 8bit
$EMAIL_BODY
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk
Content-Type: application/octet-stream; name=\"photo.jpg\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"photo.jpg\"
{IMGDATA}
--=_542bc72c.5lV8m7jWYOrj//k2cdijZPr9Fjy8v4J0l/m4onTDRLUmUDMk--"
 # DOWNLOAD THE SNAPSHOT                                      
exec wget -q -O /tmp/snapshot_R.jpg $SNAPSHOT_URL                                                        
 # READ SNAPSHOT INTO VARIABLE & BASE64 ENCODE                                                          
set fp [open "/tmp/snapshot_R.jpg" r]                                                                    
fconfigure $fp -translation binary                                                                     
set imgdata [read $fp]                                                                                 
set encodeddata [::base64::encode $imgdata]                     
close $fp                                                                                                               
# REPLACE IMG DATA WITH REAL IMAGE DATA                
regsub -all "{IMGDATA}" $tmpl $encodeddata tmpl              
# WRITE READY EMAIL TO A TMP FILE                            
set fp [open "/tmp/ready.eml" w]                                
puts $fp $tmpl                                                  
close $fp                                                    
set config "                                                    
defaults                                               
tls on                                                          
tls_certcheck off                                               
logfile /var/log/email.log                                      
account provider                                                
host $SMTP_HOST                                
from $SEND_FROM                                
domain $SMTP_DOMAIN                            
auth login                                     
user $SMTP_USER
password $SMTP_PASSWD                                           
account default: provider                                    
"                                                              
set fp [open "/tmp/msmtp.conf" w]                            
puts $fp $config                                       
close $fp                                                       
exec chmod 0600 /tmp/msmtp.conf                                 
# SEND EMAIL USING MSMTP                                        
exec cat /tmp/ready.eml | msmtp -C /tmp/msmtp.conf $SEND_TO     
# CLEAN UP                                     
exec rm -f /tmp/msmtp.conf                                 
exec rm -f /tmp/ready.eml                      
exec rm -f /tmp/snapshot_R.jpg
Ergebnis
Leider ist das Bild/ Foto immer 0 KB groß und es wird keine Email versendet.
Dateianhänge
Ergebnis 0 KB.png
Ergebnis 0 KB.png (16.46 KiB) 993 mal betrachtet
Zuletzt geändert von alchy am 31.08.2022, 20:55, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

JensRo
Beiträge: 12
Registriert: 03.08.2012, 22:04

Re: SnapShot über Reolink RLC-820A - Brauche Hilfe !

Beitrag von JensRo » 14.05.2023, 22:04

Hi,

ich habe ein ähnliches Problem mit meiner Reolink RLC-542WA.
Mit den Instars alles kein Problem.
Bei der Reolink mit
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -O /tmp/reolink.jpg 'https://192.168.178.51/cgi-bin/api.cgi? ... ord=123456'")
passiert gar nichts. beim Aufruf über den browser mit der URL kein Problem.

Hatte das Ganze ursprünglich im iobroker vor, bin dabei aber auch immer gescheitert. Da wird zwar eine Datei angelegt, aber mit 0 kB. Die Instars ohne Probleme.
Habe irgendwie das Gefühl, dass die Reolink das nicht kann, ich den falschen Befehl benutze?

Gruß, Jens

Aergernis0815
Beiträge: 19
Registriert: 19.02.2023, 12:02
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 2 Mal

Re: SnapShot über Reolink RLC-820A - Brauche Hilfe !

Beitrag von Aergernis0815 » 15.05.2023, 02:50

Hi @ll,

ich perönlich habe das jetzt bei meiner Reolink RLC-410A nachüberprüft (aktuelle FW, Reolink Client installiert).
Der Browserzugriff funktioniert definitiv (auch lt. Reolink Helppage) nur mittels Login-Screen).

Als Alternative wäre das Speichern der erstellten Snapshots (Setup: "Bei Bewegung erkannt") auf einer NAS selbst oder
der Fritzbox (FRITZ!Nas) und dem Abrufen via FTP oder SaMBa der nach Namensschema (Setup via Reolink Client)
erstellten selbigen.

Auswahl betreffender in Scriptroutine via Stringvergleich mittels Suchmaske und evtl. Tagesdatum bzw. Uhrzeit in SysVar,
in einem Konstrukt über dessen Struktur ich mir gerade leider keine Gedanken machen möchte. :hammer: :oops:

Grüße,

Aergernis0815

mademyday
Beiträge: 268
Registriert: 03.10.2014, 12:46
System: CCU
Wohnort: Enzkreis
Hat sich bedankt: 3 Mal
Danksagung erhalten: 43 Mal

Re: SnapShot über Reolink RLC-820A - Brauche Hilfe !

Beitrag von mademyday » 15.05.2023, 10:14

bei meiner Reolink (E1 Zoom) klappt das so (dh die Cam kann das, ohne vorherige Anmeldung im Browser etc):
BTW: ggf --no-check-certificate, falls self-signed certificate im Einsatz

Code: Alles auswählen

# wget "https://172.20.1.89/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=x&user=...&password=..." -O /tmp/snap.jpg --no-check-certificate
--2023-05-15 10:22:23--  https://172.20.1.89/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=x&user=...&password=...
Connecting to 172.20.1.89:443... connected.
WARNING: cannot verify 172.20.1.89's certificate, issued by 'emailAddress=CERTIFICATE@CERTIFICATE.com,CN=CERTIFICATE,OU=CERTIFICATE,O=CERTIFICATE,L=SZ,ST=GD,C=CN':
  Self-signed certificate encountered.
    WARNING: certificate common name 'certificate' doesn't match requested host name '172.20.1.89'.
HTTP request sent, awaiting response... 200 OK
Length: 307731 (301K) [image/jpeg]
Saving to: '/tmp/snap.jpg'

/tmp/snap.jpg                     100%[============================================================>] 300.52K  --.-KB/s    in 0.1s

2023-05-15 10:22:25 (2.21 MB/s) - '/tmp/snap.jpg' saved [307731/307731]

JensRo
Beiträge: 12
Registriert: 03.08.2012, 22:04

Re: SnapShot über Reolink RLC-820A - Brauche Hilfe !

Beitrag von JensRo » 16.05.2023, 00:40

Hallo mademyday,

herzlichen Dank, da habe ich das einige Std. am WE frustran mit dem Versuch verbracht, die Reolink einzufügen.
Ich schicke die Bilder der Instar-Cams über iobroker nach Telegram; die Bilder kommen automatisch bei Bewegung bzw. Alarm; dann kann ich zusätzlich noch die Bilder über Telegram manuell anfordern.

Dank deiner Hilfe klappt das jetzt mit der Reolink. Ich bin an den Zertifikaten gescheitert.
Das habe ich gesehen, als ich deine Befehle unten in Putty auf den Pi geschickt habe. ERROR wg. der unbekannten Zertifikate.

Der Befehl lautet jetzt im iobroker (vermutlich ähnlich auch auf der raspmatic als script):

wget --no-check-certificate --output-document /opt/iobroker/ipcam/snap.jpg 'https://<IPADDRESS>/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=x&user=USER&password=PASSWORD'

Das klappt jetzt wie bei den anderen Cams.

Tausend Dank, Jens

Antworten

Zurück zu „HomeMatic allgemein“