aendue / ioBroker.reolink

Reolink adapter for ioBroker
MIT License
21 stars 9 forks source link

Mail Notifizierung ändern funktioniert nicht #47

Closed pierederm closed 5 months ago

pierederm commented 6 months ago

Ich konfiguriere den Adapter und die Verbindung funktioniert. Wenn ich jedoch unter Objects reolink.0.settings.EmailNotification auf 1 setze dann stürzt der Adapter mit folgende Meldungen ab.

IMG_0349

verwendete Adapter Verson: 1.0.2 Kameras: RLC-810A / RLC-811A

pierederm commented 6 months ago

@oelison - Ich bitte um deine Hilfe! Kann das Problem an der Änderung der Boolanes von 0/1 auf false/true liegen? image

Es wird noch immer unter Objekte noch immer 0 bzw. 1 angezeigt. image

oelison commented 6 months ago

An der Umstellung auf Boolean hat das nichts zu tun, da dieser Parameter weiterhin vom Typ boolean ist. Aus irgendeinem Grund ist der Rückgabe Typ nicht passend, bei der RAW.Email anfrage. Bitte mal den Inhalt des Objektes hier posten. Mein Inhalt sieht etwa so aus: {"cmd":"GetEmailV20","code":0,"value":{"Email":{"addr1":"xx****xx@yyyyy.zz","addr2":"","addr3":"","attachmentType":1,"enable":0,"interval":"5 Minutes","nickName":"camera","password":"","schedule":{"channel":0,"table":{"AI_DOG_CAT":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","AI_PEOPLE":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","AI_VEHICLE":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","MD":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","TIMING":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}},"smtpPort":25,"smtpServer":"aaa.bbb.ccc.ddd","ssl":0,"supportTextType":1,"supportVideo":1,"textType":1,"userName":"abcdefghijklmno"}}}

pierederm commented 6 months ago

@oelison - So sieht meine RAW.Email Anfrage aus.

{"cmd":"GetEmailV20","code":0,"value":{"Email":{"addr1":"zn1****xxx@yyyyl.zz","addr2":"","addr3":"","attachmentType":1,"enable":1,"interval":"30 Seconds","nickName":"Kamera","password":"","schedule":{"channel":0,"table":{"AI_DOG_CAT":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","AI_PEOPLE":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","AI_VEHICLE":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","MD":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","TIMING":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}},"smtpPort":465,"smtpServer":"aaa@bbb.xx","ssl":1,"supportTextType":1,"supportVideo":1,"textType":0,"userName":"abcdef"}}}

KoMa1978 commented 5 months ago

Ich kann den Fehler bestätigen: 2x E1 Outdoor mit dem Problem seit update auf 1.0.2.

Der Fehler liegt scheinbar in der "let" Anweisung:

const mail = await this.getStateAsync("RAW.Email");
let val = mail.val.value.Email;

Füge ich hier ein LOG - Kommando ein, werden die Infos ordentlich geloggt:

const mail = await this.getStateAsync("RAW.Email");
this.log.info(JSON.stringify(mail));
let val = mail.val.value.Email;

mail.val geht auch noch:

const mail = await this.getStateAsync("RAW.Email");
this.log.info(JSON.stringify(mail.val));
let val = mail.val.value.Email;

mail.val.value nicht mehr, mail.val.value.Email dann auch nicht mehr:

const mail = await this.getStateAsync("RAW.Email");
this.log.info(JSON.stringify(mail.val.value));
let val = mail.val.value.Email;

Was mich irritiert: In der this.log.info Ausgabe sind ab "value" die Werte in >>\"<< (Backslash-Doublequote) eingeklammert, das davor "nur" in >>"<< (Doubleqoute). Kann dies das Problem sein?

Hier ist mein Inhalt: {"cmd":"GetEmailV20","code":0,"value":{"Email":{"addr1":"xxxXXXxxx","addr2":"","addr3":"","attachmentType":1,"enable":0,"interval":"1 Minute","nickName":"xxxXXXxxx","password":"xxxXXXxxx","schedule":{"channel":0,"table":{"AI_DOG_CAT":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","AI_PEOPLE":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","AI_VEHICLE":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","MD":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","TIMING":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}},"smtpPort":465,"smtpServer":"xxxXXXxxx","ssl":1,"supportTextType":1,"supportVideo":1,"textType":1,"userName":"xxxXXXxxx"}}}

Und aus dem Log-Output (mit Backslash): {"val":"{\"cmd\":\"GetEmailV20\",\"code\":0,\"value\":{\"Email\":{\"addr1\":\"xxxXXXxxx\",\"addr2\":\"\",\"addr3\":\"\",\"attachmentType\":1,\"enable\":0,\"interval\":\"1 Minute\",\"nickName\":\"xxxXXXxxx\",\"password\":\"xxxXXXxxx\",\"schedule\":{\"channel\":0,\"table\":{\"AI_DOG_CAT\":\"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"AI_PEOPLE\":\"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\",\"AI_VEHICLE\":\"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"MD\":\"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"TIMING\":\"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"}},\"smtpPort\":465,\"smtpServer\":\"xxxXXXxxx\",\"ssl\":1,\"supportTextType\":1,\"supportVideo\":1,\"textType\":1,\"userName\":\"xxxXXXxxx\"}}}","ack":true,"ts":1704457234695,"q":0,"from":"system.adapter.reolink.1","user":"system.user.admin","lc":1703843832499}

oelison commented 5 months ago

Ich denke .val muss jetzt weg, da das Objekt schon bei cmd anfängt. Ich teste das gleich mal.

oelison commented 5 months ago

https://github.com/aendue/ioBroker.reolink/tree/bugfix/mailNotify please try this branch @KoMa1978 @pierederm

pierederm commented 5 months ago

Erste Tests sehen gut aus. Bei mir stürzt der Adapter beim Ändern der Mail Notifizierung nicht mehr ab.

KoMa1978 commented 5 months ago

Ich hab jetzt bei mir nur die eine Zeile im Code der main.js ausgetauscht und es sieht hier ebenfalls gut aus!