Supla na kamerach HIKVISION IP

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
Duch__
Posts: 2078
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

Witam.

Dzisiaj przedstawię fragment kodu odpowiedzialnego za wyświetlenie jakiejkolwiek zmiennej tekstowej na obrazie z kamery HIKVISION np. temperatury, wykorzystując protokół ISAPI.

Protokół ISAPI nie działa z każdym rejestratorem / kamerą, z moich testów na kilku modelach rejestratorów i kamer i z opisu protokołu wynika że mimo prawidłowo zredagowanej komendy, rejestrator / kamera ją zrozumie, odpowie na otrzymaną komendę "OK" ale nie wyświetli nic na obrazie, tak więc chybił trafił czy zadziała. U mnie ostatecznie zadziałało na 3 kamerach IP. Zmienną tekstową sugerują wysyłać do rejestratora / kamery nie częściej niż co parę sekund.

Code: Select all

#define  IP_Kamera1       "192.168.X.X"
#define  Port_Kamera1    80
#define  Haslo_Kamera1  "XXXXXXXXXXXXXXXX"   //Hasło zapisane w BASE64, w kamerze musi być włączono opcja bezpieczeństwa DIGITEST/BASIC


String ID;
String enabled;
String posX;
String posY;
String channel_num;

String ip_kamera;
int port_kamera;
String Autoryzacja;
String message;


void setup(){

//Połaczenie z WIFI

}



void loop() {
channel_num = "1";  //W przypadku kamery "1", w przypadku rejetratora liczba z numerem kanału.
ip_kamera = IP_Kamera1;
port_kamera = Port_Kamera1;
Autoryzacja = Haslo_Kamera1;
ID = String("1");      //Numer pola do którego wpisujemy teskt z reguły wartości od 1 do 4, ale są kamery gdzie jest tylko 1.
enabled = "true";    //Włączenie OSD kamery, "false" = wyłączenie
posX = "1";            //Pozycja X OSD
posY = "480";        //Pozycja Y OSD
message = "Jakis tekst";  //Tutaj wprowadzamy jakiś tekst do wyświetlenia

Wyslij_do_Hikvision(); 

delay(10000);

}




void Wyslij_do_Hikvision() {
 
  WiFiClient client;

  if (client.connect(ip_kamera, port_kamera)) {
    client.println("PUT /Video/inputs/channels/" + channel_num + "/overlays/text/1 HTTP/1.1");
    client.println("Host: " + ip_kamera + ":" + String(port_kamera));
    client.print("Authorization: ");
    client.println("Basic " + Autoryzacja);
    client.println("User-Agent: arduino");
    client.println("Accept: */*");

    word Length = 152 + ID.length() + enabled.length() + posX.length() + posY.length() + message.length();

    client.println("Content-Length: " + String(Length));
    client.println("Expect: 100-continue");
    client.println("");

    client.println("<?xml version='1.0' encoding='UTF-8'?>");
    client.println("<TextOverlay>");
    client.println("<id>" + ID + "</id>");
    client.println("<enabled>" + enabled + "</enabled>");
    client.println("<posX>" + posX + "</posX>");
    client.println("<posY>" + posY + "</posY>");
    client.println("<message>" + message + "</message>");
    client.println("</TextOverlay>");

    client.stop();
    Serial.print("      ");
    Serial.println(message);
    Serial.println("Wysłano do HIKVISION");
  } else {
    Serial.print("      ");
    Serial.println("Blad połączenia z HIKVISION");
  }
}
Przykład tego co możemy uzyskać:
kamera OSD.jpg
Miłej zabawy.

Może ktoś dorzuci to do Gui-Generic?
You do not have the required permissions to view the files attached to this post.
User avatar
uchnast.michal
Posts: 1234
Joined: Tue Jun 04, 2019 11:37 am

Post

Ciekawy pomysł. Niekoniecznie do zastosowania w domu ale małej firmie już tak.
User avatar
Duch__
Posts: 2078
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

Żona bardzo chwali sobie taki podgląd.

U teściów na kamerze wyświetlam dane meteo z okolicznej internetowej stacji meteo, teście zadowoleni, wiedzą jakie ciśnienie i temperatura.
IMG_20230727_201520.jpg
Na jednej z kamer mam wgląd na łóżeczko od 5 miesięcznej córki jak śpi. Tam też umieściłem temperaturę i wilgotność jaka panuje w otoczeniu jej łóżeczka. Parę razy udało się wywnioskować powody niespokojnego snu.

IMG_20230727_202440.jpg

Co do firm to mam parę pomysłów, ale nie zdradzam ich.
You do not have the required permissions to view the files attached to this post.
Last edited by Duch__ on Thu Jul 27, 2023 6:26 pm, edited 1 time in total.
lesheq@wp.pl
Posts: 57
Joined: Sun Dec 01, 2019 8:01 pm

Post

Mnie się pomysł podoba. Rozumiem, że ten fragment kodu dopisujesz do esp8286 z którego akurat odczytujesz pomiar?
Jeszcze mnie ciekawi czy rejestrator zapisuje obraz razem z tym tekstem? Jeśli tak to i w aplikacji będzie to widoczne.
_______________________________________
nie jestem elektrykiem, automatykiem ani informatykiem... chwileczkę, co ja tu właściwie robię :shock: ???
User avatar
Duch__
Posts: 2078
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

lesheq@wp.pl wrote: Thu Jul 27, 2023 6:24 pm Mnie się pomysł podoba. Rozumiem, że ten fragment kodu dopisujesz do esp8286 z którego akurat odczytujesz pomiar?
Jeszcze mnie ciekawi czy rejestrator zapisuje obraz razem z tym tekstem? Jeśli tak to i w aplikacji będzie to widoczne.
Obraz zapisywany jest przez rejestrator i później na odtwarzanym materiale widać czarno na białym jak się zmieniały warunki temperaturowe. Najlepiej to widać na przewijaniu.
User avatar
Basmar
Posts: 394
Joined: Fri Sep 09, 2022 10:53 am
Location: Irlandia

Post

Prosze o kontakt na priv w tej sprawie.
Wygląda na świetny pomysł.

Mam sporo instalacji na Hikvision z Suplą.

Instalacje Supli (kamer) w Irlandii: https://www.google.com/maps/d/edit?mid= ... sp=sharing
No i cały plan spalił na panewce :cry:
User avatar
Duch__
Posts: 2078
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

Za niedługo wrzucę kolejną wersję soft obsługującą rejestratory typu TurboHD i IP, ale cierpliwości, pierw testy.
User avatar
YoMan
Posts: 3216
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa

Post

muszę poczekać na wersję dla DAHUA'y :(
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
User avatar
Basmar
Posts: 394
Joined: Fri Sep 09, 2022 10:53 am
Location: Irlandia

Post

Duch__ wrote: Wed Aug 02, 2023 11:53 am Za niedługo wrzucę kolejną wersję soft obsługującą rejestratory typu TurboHD i IP, ale cierpliwości, pierw testy.
Mam sporo poligonów testowych :-)
No i cały plan spalił na panewce :cry:
User avatar
Duch__
Posts: 2078
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Post

Spokojnie, mam na czym testować. Nawet udało mi się zresetować rejestrator poprzez zaduszenie go pakietem danych ze strony ESP :lol:

PS. Nie była to komenda reboot itp.

Return to “Pomysły i koncepcje”