Blink Security Home Kamera - Modul - 48_BlinkCamera.pm

Begonnen von viegener, 26 Oktober 2016, 22:31:25

Vorheriges Thema - Nächstes Thema

rabehd

Das Wetter kann man damit nicht ändern.  ;D

Wie wäre es, wenn Du Dich hier mal einliest, oder zumindest Deine Wünsche äußerst?
Auch funktionierende Lösungen kann man hinterfragen.

JWRu

ZitatKann bitte mal einer der Nutzer berichten, was tatsächlich aktuell geht und was nicht.
Das ist hier gut beschrieben: https://fhem.de/commandref.html#BlinkCamera
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

JoWiemann

Hallo,

auf Grund von Nachfragen hat Rudi heute eine neue HttpUtils.pm, siehe: https://forum.fhem.de/index.php/topic,125939.msg1205265.html#msg1205265, bereit gestellt. Leider kommt das Modul damit gar nicht klar. Anbei ein verbose 5 des Moduls.


2022.02.03 11:03:36 5: BlinkCamera_PollInfo BlinkSys: called
2022.02.03 11:03:36 4: BlinkCamera_DoCmd BlinkSys: called  for cmd :homescreen  par2:POLLING::
2022.02.03 11:03:36 4: BlinkCamera_DoCmd BlinkSys: try to send cmd homescreen  par2:POLLING:
2022.02.03 11:03:36 4: BlinkCamera_DoCmd BlinkSys: call url :https://rest-e004.immedia-semi.com/api/v3/accounts/163957/homescreen:
2022.02.03 11:03:36 4: BlinkCamera_PollInfo BlinkSys: initiate next polling homescreen 60s
2022.02.03 11:03:36 4: BlinkCamera_Callback BlinkSys: called from Polling
2022.02.03 11:03:36 4: BlinkCamera_Callback BlinkSys: status err ::  data <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>400 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Bad request.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: --- geschwärzt ---
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>
2022.02.03 11:03:36 5: BlinkCamera_Callback BlinkSys: data returned :<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>400 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Bad request.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: - geschwärzt ---
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>:
2022.02.03 11:03:36 4: BlinkCamera_Callback BlinkSys: after decoding status ret:Callback returned no valid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML PUBLI...") at /opt/fhem/FHEM/48_BlinkCamera.pm line 1599.
:
2022.02.03 11:03:36 2: BlinkCamera_Callback BlinkSys: for cmd :homescreen:  retry :1  resulted in :Callback returned no valid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML PUBLI...") at /opt/fhem/FHEM/48_BlinkCamera.pm line 1599.
:  cmdId :-- from Polling


Mehr debugging kann ich aus Zeitgründen heute nicht mehr machen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

viegener

Rudi hat heute abend nochmal eine neue Version 25624 bereitgestellt:

https://forum.fhem.de/index.php/topic,125939.msg1205724.html#msg1205724

Ich konnte das selber noch nicht ausprobieren, aber zumindest einige betroffene Module scheinen damit wieder zu funktionieren.

Kann das jemand bestätigen?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Holger72

Ich kann bestätigen, dass bei mir mit dem Update von heute (auf den ersten Blick) wieder alles funktioniert.

JoWiemann

Hallo Viegener,

um Rudi zu helfen hatte ich mich gestern auch im Code Deines Moduls umgeschaut. Und dabei ist mir aufgefallen, dass Du direkt $hash->{STATE} setzt. Das widerspricht den allgemeinen Modulfestlegungen, da $hash->{STATE} dem User gehört und Anpassungen über das Attribut stateFormat durch das direkte setzen von $hash->{STATE} verloren gehen. Ich würde mich freuen, wenn Du das ändern könntest. Ich selber nutze stateFormat ziemlich häufig um damit flexibler für devStateIcon zu sein. Danke Dir.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

viegener

Zitat von: JoWiemann am 04 Februar 2022, 10:25:06
Hallo Viegener,

um Rudi zu helfen hatte ich mich gestern auch im Code Deines Moduls umgeschaut. Und dabei ist mir aufgefallen, dass Du direkt $hash->{STATE} setzt. Das widerspricht den allgemeinen Modulfestlegungen, da $hash->{STATE} dem User gehört und Anpassungen über das Attribut stateFormat durch das direkte setzen von $hash->{STATE} verloren gehen. Ich würde mich freuen, wenn Du das ändern könntest. Ich selber nutze stateFormat ziemlich häufig um damit flexibler für devStateIcon zu sein. Danke Dir.

Grüße Jörg

Ja das ist richtig, ich setze zu bestimmten Zeitpunkten STATE direkt, damit wichtige Zustände dargestellt werden. Ich kenne natürlich auch die Möglichkeit stateFormat zu verwenden, ich habe momentan aber im Blink-Modul noch nicht geplant das umzustellen.

Es finden sich übrigens im FHEM-Ordner 316 pm-Dateien, die direkt auf $hash->{STATE} zugreifen. Nach meinem Verstädnnis ist das bei vielen Devices auch nötig, da zum Beispiel das zentrale DevIO-Modul ja den state des Devices ebenfalls direkt setzt.


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

omnior

Funktioniert das Modul jetzt aktuell überhaupt noch? Ich schaffe es nicht eine gültige Anmeldung hinzubekommen. Erhalte immer Callback returned error:Invalid credentials:

rabehd

Ich habe mal geschaut. Die Readings waren ziemlich alt, von gestern. Nach einem getinfo ist wieder alles aktuell. Muss ich beobachten.
Auch funktionierende Lösungen kann man hinterfragen.

JoWiemann

Zitat von: viegener am 05 Februar 2022, 20:04:47
... da zum Beispiel das zentrale DevIO-Modul ja den state des Devices ebenfalls direkt setzt.

Hallo,
ich habe mir jetzt DevIo.pm exemplarisch angesehen. Dort ist folgendes codiert:


sub
DevIo_setStates($$)
{
  my ($hash, $val) = @_;
  setReadingsVal($hash, "state", $val, TimeNow());
  if($hash->{devioNoSTATE}) {
    evalStateFormat($hash);
  } else {
    $hash->{STATE} = $val;
  }
}


Somit können Module, die DevIo nutzen, das überschreiben deaktiveren. Und dies machen immerhin 5 Module. Von daher würde ich mich über ein Attribut in 48_BlinkCamera.pm freuen, mit dem ich das Verhalten, wie bei DevIo, selber beeinflussen kann.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

viegener

Zitat von: omnior am 09 Februar 2022, 10:46:02
Funktioniert das Modul jetzt aktuell überhaupt noch? Ich schaffe es nicht eine gültige Anmeldung hinzubekommen. Erhalte immer Callback returned error:Invalid credentials:

Bei mir geht es ebenfalls noch - sollte es Probleme geben versuche doch mal ein set <blinkdevice> login und danach ein  get <blinkdevice> getInfo


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

omnior

#656
Zitat von: viegener am 10 Februar 2022, 22:58:34
Bei mir geht es ebenfalls noch - sollte es Probleme geben versuche doch mal ein set <blinkdevice> login und danach ein  get <blinkdevice> getInfo

Soweit komme ich gar nicht mehr. Nach dem login erhalte ich bereits Callback returned error:Invalid credentials.
Habe schon versucht alles zu löschen und neu anzulegen, aber ich komme damit auch nicht weiter. Deswegen dachte ich schon es gibt ein grundsätzliches Problem. Wenn das aber nicht der Fall ist, muss der Fehler ja irgendwo bei mir liegen. Ich weiß nur nicht mehr so recht weiter was ich probieren könnte.

Hier mal ein List vom device:
Internals:
   AuthToken  INVALID
   DEF        robert@xxxxx
   Email      robert@xxxxx
   FAILS      0
   FUUID      xxxxxxxx-f33f-5aeb-3168-xxxxxxxxxxxxxxxxxxxxx
   NAME       blink
   NR         241
   POLLING    0
   SNAME      blink
   STATE      Static
   TYPE       BlinkCamera
   URL        https://rest-prod.immedia-semi.com
   cmd        login
   cmdJson    {"message":"Invalid credentials","lockout_time_remaining":0,"force_password_reset":false,"allow_pin_resend_seconds":90,"code":200}
   cmdResult  Callback returned error:Invalid credentials:
   doStatus   
   sourceVersion $Id: 48_BlinkCamera.pm 24078 2021-03-24 20:31:34Z viegener $
   HU_DO_PARAMS:
     NAME       
     addr       https://rest-prod.immedia-semi.com:443
     auth       0
     buf       
     cmd        login
     code       401
     compress   1
     conn       
     data       
     displayurl <hidden>
     header     agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Host: rest-prod.immedia-semi.com
Content-Type: application/json
     hideurl    1
     host       rest-prod.immedia-semi.com
     httpheader HTTP/1.1 401 Unauthorized
Content-Type: application/json
Content-Length: 130
Connection: close
Date: Sat, 19 Feb 2022 22:00:40 GMT
Client-Verified: 0
Server: nginx + Phusion Passenger
Status: 401 Unauthorized
X-Blink-Served-By: i-0ec68c82320219d1f
X-Content-Type-Options: nosniff
X-Powered-By: Phusion Passenger
X-Cache: Error from cloudfront
Via: 1.1 44c2a31e0ccb10df901e3de0c99e9ad6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: CDG50-P2
X-Amz-Cf-Id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
     hu_blocking 0
     hu_filecount 3
     hu_port    443
     hu_portSfx
     loglevel   4
     method     POST
     par1       
     par2       
     path       /api/v5/account/login
     protocol   https
     redirects  0
     timeout    30
     url        https://rest-prod.immedia-semi.com/api/v5/account/login
     args:
       login
       undef
       undef
       1
     hash:
     sslargs:
   READINGS:
     2022-02-19 23:00:40   cmdResult       Callback returned error:Invalid credentials:
   cmdQueue:
   getoptions:
     cameraList
     getInfo   
     getInfoCamera
     getNetworks
     getThumbnail
     getVideoAlert
     liveview   
   setoptions:
     arm       
     camDisable
     camEnable 
     disarm     
     login     
     reset     
     resetUniqueID
     verifyPin 
     videoDelete
     zDebug     
Attributes:

viegener

Vielleicht ja das offensichtliche? Stimmt vielleicht Account oder das Passwort nicht?

Generell deutet die Fehlermeldung nicht auf ein anderes Problem hin (also kein Problem beim Aufbau der Verbindung, sondern die Anmeldung wird abgelehnt.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

omnior

Danke ;D
Ja das hab ich natürlich gründlich geprüfte und möchte es eigentlich Ausschließen. Ich habe mittlerweile das Modul auch mehrfach gelöscht und eu angelegt. Im das gleiche. Deswegen fragte ich mich ja ob es überhaupt noch funktionert.
Was mir auffiel, dass die ID immer gleich blieb und vielleicht steckt da irgendwo das Problem.
Wie kann man diese löschen, sodass bei der Neuanlage nicht auf eine alte vielleicht irgendwie störende ID verwiesen wird?

viegener

Zitat von: omnior am 25 Februar 2022, 18:08:03
Danke ;D
Ja das hab ich natürlich gründlich geprüfte und möchte es eigentlich Ausschließen. Ich habe mittlerweile das Modul auch mehrfach gelöscht und eu angelegt. Im das gleiche. Deswegen fragte ich mich ja ob es überhaupt noch funktionert.
Was mir auffiel, dass die ID immer gleich blieb und vielleicht steckt da irgendwo das Problem.
Wie kann man diese löschen, sodass bei der Neuanlage nicht auf eine alte vielleicht irgendwie störende ID verwiesen wird?

Welche ID meinst Du?
Ist es die FUUID - das sollte eigentlich keinen Einfluss haben, aber diese sollte auch nicht gleich sein, denn dann hat das Löschen des Devices vermutlich nicht funktioniert.

Mein Ansatz wäre erstmal in der App auf dem Telefon ausloggen (also auf dem Telefon), dann versuchen dort mit dem Kennwort wieder einzuloggen

Wenn das funktioniert, blink device in FHEM löschen - FHEM durchstarten (natürlich nach speichern der config)
Blink device neu anlegen und selbes Kennwort eintragen

Wenn das nicht geht auch mal schauen, ob das Passwort richtig in der uniqueID-Datei ankommt


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können