Autor Thema: HTTPMOD/Device für Reolink Kameras  (Gelesen 1462 mal)

Offline GunterB

  • New Member
  • *
  • Beiträge: 23
HTTPMOD/Device für Reolink Kameras
« am: 01 Juli 2021, 12:10:48 »
Ich habe ein paar Kameras von Reolink im Einsatz und bin nun endlich dazu gekommen, mir Interfaces für deren api zu basteln.
Hoffentlich ist der HTTPMOD eine gute Wahl dafür.

Folgendes wird per SET unterstützt:
Devicename setzen
Push, FTP und Record ein- und ausschalten.
PTZ Position anfahren
IrLights auf Off oder Auto schalten
PowerLED ein- bzw ausschalten

Reolink E1 Zoom, RLC-810A, RLC-511, RLC-410-5MP (Je nach Harwareausstattung sind div. Features wie z.B. "PowerLED" etc... nicht verfügbar.
defmod K6_Konfig HTTPMOD https://192.168.0.100/api.cgi?user=[usr]&password=[psw] 300
attr K6_Konfig get01Data [{"cmd":"GetDevName","param":{}}]
attr K6_Konfig get01Name DevName
attr K6_Konfig get01Poll 1
attr K6_Konfig get02Data [{"cmd":"GetTime"}]
attr K6_Konfig get02Name Time
attr K6_Konfig get03Data [{"cmd":"GetAlarm","action":0,"param":{"Alarm":{"channel":0,"type":"md"}}}]
attr K6_Konfig get03Name Alarm
attr K6_Konfig get04Data [{"cmd":"GetMask","action":0,"param":{"channel": 0}}]
attr K6_Konfig get04Name Mask
attr K6_Konfig get05Data [{"cmd":"GetDevInfo","param":{}}]
attr K6_Konfig get05Name DevInfo
attr K6_Konfig get06Data [{"cmd":"GetMdState","action":0,"param":{"channel": 0}}]
attr K6_Konfig get06Name MdState
attr K6_Konfig get06Poll 1
attr K6_Konfig get06PollDelay 2
attr K6_Konfig get07Data [{"cmd":"GetIrLights"}]
attr K6_Konfig get07Name IrLights
attr K6_Konfig get07Poll 1
attr K6_Konfig get08Data [{"cmd":"GetHddInfo"}]
attr K6_Konfig get08Name HddInfo
attr K6_Konfig get08Poll 1
attr K6_Konfig get08PollDelay 3600
attr K6_Konfig get09Data [{"cmd":"GetOnline"}]
attr K6_Konfig get09Name Online
attr K6_Konfig get10Data [{"cmd":"GetUser"}]
attr K6_Konfig get10Name User
attr K6_Konfig get11Data [{"cmd":"ExportCfg"}]
attr K6_Konfig get11Name Konfig
attr K6_Konfig get11URL https://192.168.0.100/api.cgi?cmd=ExportCfg&user=[usr]&password=[psw]
attr K6_Konfig get12Data [{"cmd":"GetPerformance"}]
attr K6_Konfig get12Name Performance
attr K6_Konfig get13Data [{"cmd":"GetOsd","action":0,"param":{"channel":0}}
attr K6_Konfig get13Name OSD
attr K6_Konfig get15Data [{"cmd":"GetCrop"}]
attr K6_Konfig get15Name Crop
attr K6_Konfig get16Data [{"cmd":"GetImage","action":0,"param":{"channel":0}}]
attr K6_Konfig get16Name Image
attr K6_Konfig get17Data [{"cmd":"GetFtp"}]
attr K6_Konfig get17Name FTP
attr K6_Konfig get17Poll 1
attr K6_Konfig get18Data [{"cmd":"GetRec","action":0,"param":{"channel":0}}]
attr K6_Konfig get18Name Rec
attr K6_Konfig get18Poll 1
attr K6_Konfig get19Data [{"cmd":"GetPush"}]
attr K6_Konfig get19Name Push
attr K6_Konfig get19Poll 1
attr K6_Konfig get30Data [{"cmd":"GetPtzPreset","action":0,"param":{"channel":0}}]
attr K6_Konfig get30Name PtzPreset
attr K6_Konfig get31Data [{"cmd":"GetPtzPatrol","action":0,"param":{"channel":0}}]
attr K6_Konfig get31Name PtzPatrol
attr K6_Konfig get32Data [{"cmd":"GetPowerLed","action":0,"param":{"channel":0}}]
attr K6_Konfig get32Name PowerLed
attr K6_Konfig get32Poll 1
attr K6_Konfig get34Data [{"cmd":"GetPtzSerial","action":0,"param":{"channel":0}}]
attr K6_Konfig get34Name PtzSerial
attr K6_Konfig get35Data [{"cmd":"GetAudioAlarm","action":0,"param":{}}]
attr K6_Konfig get35Name AudioAlarm_enabled
attr K6_Konfig reading01JSON 01_value_IrLights_state
attr K6_Konfig reading01Name IrLights
attr K6_Konfig reading02JSON 01_value_PowerLed_state
attr K6_Konfig reading02Name PowerLed_enabled
attr K6_Konfig reading03JSON 01_value_Push_schedule_enable
attr K6_Konfig reading03Name Push_enabled
attr K6_Konfig reading04JSON 01_value_Rec_schedule_enable
attr K6_Konfig reading04Name Rec_enabled
attr K6_Konfig reading05JSON 01_value_Ftp_schedule_enable
attr K6_Konfig reading05Name Ftp_enabled
attr K6_Konfig reading06JSON 01_value_DevName_name
attr K6_Konfig reading06Name DevName
attr K6_Konfig reading07JSON 01_value_state
attr K6_Konfig reading07Name MdState
attr K6_Konfig reading08JSON 01_value_HddInfo_01_capacity
attr K6_Konfig reading08Name HddCapacity
attr K6_Konfig reading09JSON 01_value_HddInfo_01_size
attr K6_Konfig reading09Name HddSize
attr K6_Konfig reading81JSON 01_cmd
attr K6_Konfig reading81Name 01_cmd
attr K6_Konfig reading82JSON 01_code
attr K6_Konfig reading82Name 01_code
attr K6_Konfig reading83JSON 01_error_detail
attr K6_Konfig reading83Name 01_error_detail
attr K6_Konfig reading84JSON 01_error_rspCode
attr K6_Konfig reading84Name 01_error_rspCode
attr K6_Konfig room Kamera
attr K6_Konfig set01Data [{"cmd":"SetDevName","action":0,"param":{"DevName":{"name":"$val"}}}]
attr K6_Konfig set01Name DevName
attr K6_Konfig set01TextArg 1
attr K6_Konfig set07Data [{"cmd":"SetIrLights","action":0,"param":{"IrLights":{"state":"$val"}}}]
attr K6_Konfig set07Header Content-Type: application/json
attr K6_Konfig set07Hint Auto,Off
attr K6_Konfig set07Name IrLights
attr K6_Konfig set07TextArg 1
attr K6_Konfig set17Data [{"cmd":"SetFtp","action":0,"param":{"Ftp":{"schedule":{"enable":$val}}}}]
attr K6_Konfig set17Hint 0,1
attr K6_Konfig set17Name FTP_enabled
attr K6_Konfig set19Data [{"cmd":"SetPush","action":0,"param":{"Push":{"schedule":{"enable":$val}}}}]
attr K6_Konfig set19Hint 0,1
attr K6_Konfig set19Name Push_enabled
attr K6_Konfig set20Data [{"cmd":"SetRec","action":0,"param":{"Rec":{"channel":0,"schedule":{"enable":$val}}}}]
attr K6_Konfig set20Hint 0,1
attr K6_Konfig set20Name Rec_enabled
attr K6_Konfig set30Data [{"cmd":"SetPtzPreset","action":0,"param":{"PtzPreset":{"id":"$val","enable":1}}}]
attr K6_Konfig set30Name PtzPreset
attr K6_Konfig set32Data [{"cmd":"SetPowerLed","action":0,"param":{"PowerLed":{"channel":0,"state":"$val"}}}]
attr K6_Konfig set32Hint On,Off
attr K6_Konfig set32Name PowerLed
attr K6_Konfig set32TextArg 1
attr K6_Konfig set33Data [{"cmd":"PtzCtrl","action":0,"param":{"channel":0,"op":"ToPos","speed":60,"id":$val}}]
attr K6_Konfig set33Name ToPos
attr K6_Konfig set35Data [{"cmd":"SetAudioAlarm","action":0,"param":{"Audio":{"schedule":{"enable":$val}}}}]
attr K6_Konfig set35Hint 0,1
attr K6_Konfig set35Name AudioAlarm_enabled
attr K6_Konfig stateFormat DevName Rec:Rec_enabled Push:Push_enabled FTP:Ftp_enabled (Pow:PowerLed_enabled IR:IrLights)

Viel Spaß damit!
« Letzte Änderung: 23 Juli 2021, 09:34:44 von GunterB »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline GunterB

  • New Member
  • *
  • Beiträge: 23
Antw:HTTPMOD für Reolink Kameras
« Antwort #1 am: 01 Juli 2021, 12:24:33 »
Für die automatische Steuerung der PTZ Funktion in Kombination mit der Aufzeichnung habe ich folgendes umgesetzt:

    my $cam_num = $_;
            my $device = "K${cam_num}_Konfig";
            my $devrec = "${device}_rec";

Ausschalten, und 5s verzögert, nach dem Deaktivieren der Aufnahme die Kamera gegen die Wand / wegdrehen.
################## ANWESEND ##################
                fhem("set $device DevName K${cam_num}I");
                fhem("set $device IrLights Off");
                fhem("set $device PowerLed Off");
                fhem("set $device Push_enabled 0");
                fhem("set $device FTP_enabled 0");
                fhem("set $device Rec_enabled 0");

                ## Verzögerte Ausführung
                if (IsDevice("$devrec")) {
                    fhem("delete $devrec);
                }

                fhem("define $devrec at +00:00:05 set $device ToPos 64");
                fhem("attr $devrec room Kamera");
            }

Einschalten, und 15s verzögert, nach dem Beenden der PTZ Bewegung die Aufnahme aktivieren
################## ABWESEND##################
                fhem("set $device DevName K${cam_num}A");
                fhem("set $device ToPos 1");

                ## Verzögerte Ausführung
                if (IsDevice("$devrec")) {
                    fhem("delete $devrec");
                }
                fhem("define $devrec at +00:00:15 set $devrec IrLights Auto;;set $devrec PowerLed On;;set $devrec Push_enabled 1;;set $devrec FTP_enabled 1;;set $devrec Rec_enabled 1");
                fhem("attr $devrec room Kamera");

Ich bin mir aber noch unsicher, ob das Anlegen eines define so Syntaktisch voll in Ordnung ist...
Mir sind andere Hochsprachen geläufig, mit dem FHEM und Perl tue ich mir noch schwer.

Wer mich korrigieren möchte darf dies gerne tun.
@Otto123, Danke!
« Letzte Änderung: 01 Juli 2021, 12:53:30 von GunterB »

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 19508
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:HTTPMOD für Reolink Kameras
« Antwort #2 am: 01 Juli 2021, 12:31:01 »
Hi,

ich bin mir nicht sicher wo der Code aus deinem letzten Post "steht" - aber die Zeile:
Zitat
fhem("define $devrec at +05:00:15 {fhem('set $devrec IrLights Auto');;fhem('set $devrec PowerLed On');;fhem('set $devrec Push_enabled 1');;fhem('set $devrec FTP_enabled 1');;fhem('set $devrec Rec_enabled 1');;}");
würde ich einfacher nur mit FHEM Befehlen machen:
fhem("define $devrec at +05:00:15 set $devrec IrLights Auto;;set $devrec PowerLed On;;set $devrec Push_enabled 1;;set $devrec FTP_enabled 1;;set $devrec Rec_enabled 1");Bitte auch beachten https://fhem.de/commandref_DE.html#command

Analog dazu auch die Zeile in ANWESEND.

Gruß Otto
« Letzte Änderung: 01 Juli 2021, 12:36:59 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266
Zustimmung Zustimmung x 1 Liste anzeigen

Offline GunterB

  • New Member
  • *
  • Beiträge: 23
Antw:HTTPMOD für Reolink Kameras
« Antwort #3 am: 23 Juli 2021, 09:33:34 »
Update für Bildparameter

attr K.*_Konfig get16Name Image
attr K.*_Konfig get16Data [{"cmd":"GetImage","action":0,"param":{"channel":0}}]

attr K.*_Konfig reading10Name img_bright
attr K.*_Konfig reading10JSON 01_value_Image_bright
attr K.*_Konfig reading11Name img_contrast
attr K.*_Konfig reading11JSON 01_value_Image_contrast
attr K.*_Konfig reading12Name img_hue
attr K.*_Konfig reading12JSON 01_value_Image_hue
attr K.*_Konfig reading13Name img_saturation
attr K.*_Konfig reading13JSON 01_value_Image_saturation
attr K.*_Konfig reading14Name img_sharpen
attr K.*_Konfig reading14JSON 01_value_Image_sharpen
attr K.*_Konfig reading15Name isp_mirroring
attr K.*_Konfig reading15JSON 01_value_Isp_mirroring
attr K.*_Konfig reading16Name isp_rotation
attr K.*_Konfig reading16JSON 01_value_Isp_rotation

attr K.*_Konfig set08Name img_bright
attr K.*_Konfig set08Data [{"cmd":"SetImage","action":0,"param":{"Image":{"channel":0,"bright":$val}}}]
attr K.*_Konfig set09Name img_contrast
attr K.*_Konfig set09Data [{"cmd":"SetImage","action":0,"param":{"Image":{"channel":0,"contrast":$val}}}]
attr K.*_Konfig set10Name img_hue
attr K.*_Konfig set10Data [{"cmd":"SetImage","action":0,"param":{"Image":{"channel":0,"hue":$val}}}]
attr K.*_Konfig set11Name img_saturation
attr K.*_Konfig set11Data [{"cmd":"SetImage","action":0,"param":{"Image":{"channel":0,"saturation":$val}}}]
attr K.*_Konfig set12Name img_sharpen
attr K.*_Konfig set12Data [{"cmd":"SetImage","action":0,"param":{"Image":{"channel":0,"sharpen":$val}}}]
attr K.*_Konfig set13Name img_defaults
attr K.*_Konfig set13Data [{"cmd":"SetImage","action":0,"param":{"Image":{"channel":0,"bright":128,"contrast":128,"hue":128,"saturation":128,"sharpen":128}}}]
attr K.*_Konfig set14Name isp_mirroring
attr K.*_Konfig set14Data [{"cmd":"SetIsp","action":0,"param":{"Isp":{"channel":0,"mirroring":$val}}}]
attr K.*_Konfig set14Hint 0,1
attr K.*_Konfig set15Name isp_rotation
attr K.*_Konfig set15Data [{"cmd":"SetIsp","action":0,"param":{"Isp":{"channel":0,"rotation":$val}}}]
attr K.*_Konfig set15Hint 0,1


Offline Bloedschaf

  • Newbie
  • Beiträge: 1
Antw:HTTPMOD/Device für Reolink Kameras
« Antwort #4 am: 08 August 2021, 08:08:23 »
DANKE!
Und das kann ich wirklich nicht groß genug schreiben!
Ich bin seit Tagen auf der Suche nach den korrekten Parametern für SetRec gewesen und hatte mehr oder weniger durch selbst testen zumindest die Abfrage gefunden. Doch immer gabe es beim setzen des Record parameter error. Vielleicht war mein Fehler das ich es mit dem token, den ich erfolgreich nach einem Login bekam, versuchte.
Auf jeden Fall 1000 Dank! Auch wenn ich die Anfragen in PHP umsetze und aktuell kein FHEM in Betrieb habe.  ;D

Offline GunterB

  • New Member
  • *
  • Beiträge: 23
Antw:HTTPMOD/Device für Reolink Kameras
« Antwort #5 am: 09 August 2021, 16:10:02 »
Danke! Freut mich, wenn sich dadurch jemand Zeit spart ;)