DoorBird InterCom System - 73_DoorBird.pm

Begonnen von Sailor, 21 Mai 2019, 20:05:38

Vorheriges Thema - Nächstes Thema

Guybrush

die richtige Reihenfolge der zu installierenden Pakete ist wichtig. Das hier sollte gehen:

apt-get install -y sox libsox-fmt-all libsodium-dev gstreamer1.0-tools zlib1g-dev
cpan install Crypt::AuthEnc::ChaCha20Poly1305
cpan IO::Socket
cpan install IO::String module
cpan Net::SSLeay
cpan Alien::FFI
cpan install Sodium::FFI

Frank_Huber

Zitat von: Guybrush am 29 Februar 2024, 13:13:43die richtige Reihenfolge der zu installierenden Pakete ist wichtig. Das hier sollte gehen:

apt-get install -y sox libsox-fmt-all libsodium-dev gstreamer1.0-tools zlib1g-dev
cpan install Crypt::AuthEnc::ChaCha20Poly1305
cpan IO::Socket
cpan install IO::String module
cpan Net::SSLeay
cpan Alien::FFI
cpan install Sodium::FFI
da fehlt noch ein
apt install libssl-dev bevor der
cpan Net::SSLeay installiert werden kann. ansonstel meckert der SSLeay.

cpan install Sodium:FFI schlägt dann aber fehl:
Test Summary Report
-------------------
t/aead/chacha20poly1305.t     (Wstat: 6 (Signal: ABRT) Tests: 5 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output
t/aead/chacha20poly1305_ietf.t (Wstat: 6 (Signal: ABRT) Tests: 5 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output
t/crypto_auth.t               (Wstat: 11 (Signal: SEGV) Tests: 3 Failed: 0)
  Non-zero wait status: 11
  Parse errors: No plan found in TAP output
t/pub_key_crypto/box.t        (Wstat: 6 (Signal: ABRT) Tests: 2 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output
t/pub_key_crypto/pubkey_sig.t (Wstat: 11 (Signal: SEGV) Tests: 6 Failed: 0)
  Non-zero wait status: 11
  Parse errors: No plan found in TAP output
Files=10, Tests=101, 10 wallclock secs ( 0.22 usr  0.01 sys +  7.41 cusr  0.53 csys =  8.17 CPU)
Result: FAIL
Failed 5/10 test programs. 0/101 subtests failed.
make: *** [Makefile:868: test_dynamic] Error 255
  CAPOEIRAB/Sodium-FFI-0.009.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports CAPOEIRAB/Sodium-FFI-0.009.tar.gz

Kai-Alfonso

Ich hab es sogar geschafft Sodium:FFI per Hand zu installieren. Alle anderen Module gingen per cpan

wget https://github.com/genio/sodium-ffi/releases/download/0.009/Sodium-FFI-0.009.tar.gz
untar -xvzf https://github.com/genio/sodium-ffi/releases/download/0.009/Sodium-FFI-0.009.tar.gz
perl Makefile.pl
make install

cpan zeigt mir auch an, das Sodium:FFI installiert ist

Sodium::FFI is up to date (0.009).
Ich kann das Doorbird Device auch anlegen, aber leider stürzt es dann bei einem Event ab.

Ich weiß, das Sailor eine Neuinstallation vorschlägt, deswegen erwarte ich auch keinen Support für mein Problem. War halt einfach zu faul, mein Fhem System neu aufzusetzen. Mir brennt es auch nicht wirklich unter den Nägeln, weil ich das Problem der Event Erkennung von einem Doorbird Webhook erschlagen habe als Workaround
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Sailor

Hallo Kai

Zitat von: Kai-Alfonso am 29 Februar 2024, 16:31:20Ich kann das Doorbird Device auch anlegen, aber leider stürzt es dann bei einem Event ab.

Kannst Du mir bitte einen Log - Auszug mit verbose = 5 ins Forum setzen?

Gruss
   Sailor
******************************
Man wird immer besser...

Kai-Alfonso

Zitat von: Sailor am 01 März 2024, 07:52:19Hallo Kai

Zitat von: Kai-Alfonso am 29 Februar 2024, 16:31:20Ich kann das Doorbird Device auch anlegen, aber leider stürzt es dann bei einem Event ab.

Kannst Du mir bitte einen Log - Auszug mit verbose = 5 ins Forum setzen?

Gruss
  Sailor

Ja gerne

Hier ein Logauszug des Klingel Events


2024.03.01 08:53:29.127 5: DoorBird : DoorBird_Read - UDP Client said PeerHost          : 192.168.1.153
2024.03.01 08:53:29.128 5: DoorBird : DoorBird_Read - UDP Client said buf              :
2024.03.01 08:53:29.128 5: DoorBird : DoorBird_Read - UDP Client said data              : 333831393a6768757a71683a31373039323739363038
2024.03.01 08:53:29.128 5: DoorBird : DoorBird_Read - UDP transmitted by valid PeerHost : Yes
2024.03.01 08:53:29.129 5: DoorBird : DoorBird_Read - UdpMessage is                    : Still Alive Message
2024.03.01 08:53:29.129 5: DoorBird : DoorBird_Read - UdpMessageIdLast                  : 3818
2024.03.01 08:53:29.129 5: DoorBird : DoorBird_Read - UdpMessageIdCurrent              : 3819
2024.03.01 08:53:29.130 5: DoorBird : DoorBird_Read - UDP datagram transmitted is new  : YES - Working on it.
2024.03.01 08:53:29.133 5: DoorBird : DoorBird_Read _____________________________________________________________________
2024.03.01 08:53:29.133 5: DoorBird : DoorBird_Read - UDP Client said PeerHost          : 192.168.1.153
2024.03.01 08:53:29.133 5: DoorBird : DoorBird_Read - UDP Client said buf              :
2024.03.01 08:53:29.134 5: DoorBird : DoorBird_Read - UDP Client said data              : 333831393a6768757a71683a31373039323739363038
2024.03.01 08:53:29.134 5: DoorBird : DoorBird_Read - UDP transmitted by valid PeerHost : Yes
2024.03.01 08:53:29.134 5: DoorBird : DoorBird_Read - UdpMessage is                    : Still Alive Message
2024.03.01 08:53:29.135 5: DoorBird : DoorBird_Read - UdpMessageIdLast                  : 3819
2024.03.01 08:53:29.135 5: DoorBird : DoorBird_Read - UdpMessageIdCurrent              : 3819
2024.03.01 08:53:29.136 5: DoorBird : DoorBird_Read - UDP datagram transmitted is new  : NO - Ignoring it.
2024.03.01 08:53:31.021 5: DoorBird : DoorBird_Read _____________________________________________________________________
2024.03.01 08:53:31.021 5: DoorBird : DoorBird_Read - UDP Client said PeerHost          : 192.168.1.153
2024.03.01 08:53:31.021 5: DoorBird : DoorBird_Read - UDP Client said buf              :
2024.03.01 08:53:31.022 5: DoorBird : DoorBird_Read - UDP Client said data              : deadbe02a983a871eff4bb60a0ef233c48369275f81c5f651ef4342098e87336d284af32299ba1f2964afe98718f
2024.03.01 08:53:31.022 5: DoorBird : DoorBird_Read - UDP transmitted by valid PeerHost : Yes
2024.03.01 08:53:31.022 5: DoorBird : DoorBird_Read - UdpMessage is                    : Event Message
2024.03.01 08:53:31.022 5: DoorBird : DoorBird_Read - version of encryption used        : 02
2024.03.01 08:53:31.023 5: DoorBird : DoorBird_Read ------------------------------ Encryption Version 2 in accordance to DoorBird API has been used ------------------------
2024.03.01 08:53:31.023 5: DoorBird : DoorBird_Read - UDP Client Ident hex              : 0xde 0xad 0xbe
2024.03.01 08:53:31.023 5: DoorBird : DoorBird_Read - UDP Client Version hex            : 0x02
2024.03.01 08:53:31.023 5: DoorBird : DoorBird_Read - UDP Client Nonce hex              : 0xa9 0x83 0xa8 0x71 0xef 0xf4 0xbb 0x60
2024.03.01 08:53:31.023 5: DoorBird : DoorBird_Read - UDP Client Cipher hex            : 0xa0 0xef 0x23 0x3c 0x48 0x36 0x92 0x75 0xf8 0x1c 0x5f 0x65 0x1e 0xf4 0x34 0x20 0x98 0xe8 0x73 0x36 0xd2 0x84 0xaf 0x32 0x29 0x9b 0xa1 0xf2 0x96 0x4a 0xfe 0x98 0x71 0x8f
2024.03.01 08:53:31.023 5: DoorBird : DoorBird_Read -- Part 2 ------------------------------------------------------------------------------------------------------------------------
2024.03.01 08:53:31.024 5: DoorBird : DoorBird_Read - UDP IDENT      decimal          : 14593470
2024.03.01 08:53:31.024 5: DoorBird : DoorBird_Read - UDP VERSION    decimal          : 2
2024.03.01 08:53:31.024 5: DoorBird : DoorBird_Read -- Part 3 ------------------------------------------------------------------------------------------------------------------------
2024.03.01 08:53:31.024 5: DoorBird : DoorBird_Read - pack_algo_key                    : H64
2024.03.01 08:53:31.024 5: DoorBird : DoorBird_Read - pack_algo_nonce                  : H16


Fhem crashed dann mit

Mär 01 08:53:31 fhem systemd[1]: fhem.service: Main process exited, code=killed, status=11/SEGV
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Sailor

Hallo Kai

Zitat von: Kai-Alfonso am 29 Februar 2024, 16:31:20Hier ein Logauszug des Klingel Events
2024.03.01 08:53:31.024 5: DoorBird : DoorBird_Read - pack_algo_nonce                  : H16
Fhem crashed dann mit
Mär 01 08:53:31 fhem systemd[1]: fhem.service: Main process exited, code=killed, status=11/SEGV

Und zwischen den beiden Zeilen ist nichts weiter im Log???

:o

Gruss
    Sailor
******************************
Man wird immer besser...

Kai-Alfonso

Nein, das oberste ist im fhemlog - danach kommt nix mehr.

Das untere ist im systemd Log für den Service. Danach startet sich der systemd service neu, weil ich das so eingestellt habe. 
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

SebastianStorb

Seit der neuen 73_DoorBird.pm (und dem Umsetzen des Wiki)
Cannot load module DoorBird-> nochmal von GitHub geladen,
sudo chown root:root /opt/fhem
sudo chmod 755 /opt/fhem
sudo usermod -a -G dialout fhem

Schade es hatte hiermit wieder so gut funktioniert:
apt-get install git build-essential automake autoconf
git clone https://github.com/jedisct1/libsodium.git
cd libsodium
git checkout 1.0.13
./autogen.sh
./configure --with-pic
make
sudo make install
and then running sudo cpan -f Crypt::NaCl::Sodium again.

Hier auch die Veröffentlichung und Quelle für git
https://github.com/ajgb/crypt-nacl-sodium/issues/12#issuecomment-1936201045

Auch das Zurückspielen der alten 73_DoorBird.pm (aus einem Backup vom 20.01.2024) hat keinen Erfolg gebracht

 :'(

Sidey

Die geänderte Vorgehensweise um PERL Module zu laden, führt dazu, dass das Modul nicht mehr im fhem-docker Image funktioniert.

In Version 4 des docker images, suche ich die notwendigen Quellen automatisiert, mittels scan-perl-prereqs-nqlite

Der findet require und use Statements wunderbar, aber nicht diese Variante:
       
    ### Try to load perl libraries if installed or write log in case of unavailability. ###
  54         my @UseLibraries = split(/[\n,\t]/,"
  55                 JSON
  56                 HttpUtils
  57                 Encode
  58                 FHEM::Meta
  59                 Cwd
  60                 MIME::Base64
  61                 Crypt::NaCl::Sodium qw( :utils )
  62                 Crypt::Argon2 qw/argon2i_raw/
  63                 IO::Socket
  64                 IO::String;                       
  65                 LWP::UserAgent
  66                 Data::Dumper
  67                 File::Spec::Functions ':ALL'
  68         ");


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sailor

Hallo Kai

Zitat von: Kai-Alfonso am 01 März 2024, 20:13:06Nein, das oberste ist im fhemlog - danach kommt nix mehr.
Das untere ist im systemd Log für den Service. Danach startet sich der systemd service neu, weil ich das so eingestellt habe. 

Das ist mir ein absolutes Rätsel, da ich das in der Form noch nicht gehabt habe.

Ich kann nur vermuten, dass sobald ein Event reinkommt und das Modul die Entschlüsselung - Algorithmen anwendet, irgendetwas schief läuft.
Anhand der spärlichen Einträge, weiß ich allerdings nicht wo ich anfangen soll zu suchen.

Gruß
   Sailor
******************************
Man wird immer besser...

Sailor

Hallo Sebastian

Zitat von: SebastianStorb am 02 März 2024, 11:32:59Schade es hatte hiermit wieder so gut funktioniert
Hier auch die Veröffentlichung und Quelle für git
Das ist die Änderung. Die neue Version funktioniert mit der letyten Version ohne irgendwelche Klimmzüge mit libsodium.
Aus diesem Grunde ist die Verwendung eines "sauberen" Systems unerlässlich um diese "Klimmzüge"los zu werden.

Zitat von: SebastianStorb am 02 März 2024, 11:32:59Auch das Zurückspielen der alten 73_DoorBird.pm (aus einem Backup vom 20.01.2024) hat keinen Erfolg gebracht
Wenn du zwischenzeitlich die libsodium nicht angefasst hast, sollte das aber funktionieren.
Sobald du aber wie oben die libsodium verändert hast, funktioniert auch das nicht mehr.
Das ist der Grund für den "Bruch" in meinem Modul.

Mein Vorschlag: Kanne Kaffee kochen und System auf Basis von Bookworm mittels RasPi - Installer neu aufsetzen.

Gruß
    Sailor
******************************
Man wird immer besser...

Sailor

Hi Sidey

Zitat von: Sidey am 02 März 2024, 14:54:45Die geänderte Vorgehensweise um PERL Module zu laden, führt dazu, dass das Modul nicht mehr im fhem-docker Image funktioniert.
In Version 4 des docker images, suche ich die notwendigen Quellen automatisiert, mittels scan-perl-prereqs-nqlite
Der findet require und use Statements wunderbar, aber nicht diese Variante:

Das hatte ich bereits in der alten Version wieder heraus geschmissen - Aus den von dir genannten Kompatibilitätsgründen.
Die neue Version hat dies auch nicht mehr und sollte somit funktionieren.

Einschränkung: Ggf. Muss das System neu aufgesetzt werden.

Gruß
    Sailor
******************************
Man wird immer besser...

Sailor

Ein herzerfrischendes "Moin" vom achtern Diek tosammen!

Danke für die vielen Rückmeldungen hinsichtlich des DoorBird Moduls.

Ich bitte auch um Rückmeldung wenn die Implementierung des neuen Moduls auf einem frischen System funktioniert hat.

Gruß
    Sailor
******************************
Man wird immer besser...

Sidey

Zitat von: Sailor am 03 März 2024, 14:17:49Das hatte ich bereits in der alten Version wieder heraus geschmissen - Aus den von dir genannten Kompatibilitätsgründen.
Die neue Version hat dies auch nicht mehr und sollte somit funktionieren.

OK, das stimmt, ich dachte es wäre jetzt so eingefügt. Da habe ich mich geirrt.
Im Dockerfile hatte ich für das DoorBird Modul ja ein paar spezielle cpan Installationen enthalten. Die habe ich entfernt, damit kann zumindest das Image wieder erzeugt werden werden.

Mit Version 3 des Docker Images kann dein Modul jetzt aber nicht mehr funktionieren.

Mit Version 4 könnte es dann wieder funktionieren, wenn alle Pakete ordentlich gefunden werden.
Bei meinen Analysen ist mir aufgefallen, dass im META.json Abschnitt Syntax Fehler enthalten sind.

Im Kommentar stehen Pakete, die werden durch den prereq scanner nicht gefunden und stehen auch nicht in META.json. Werden die wirklich gebraucht?

sudo cpan install Crypt::AuthEnc::ChaCha20Poly1305
    31    #    sudo cpan install Crypt::Argon2
    32    #    sudo cpan install Sodium::FFI
    33    #    sudo cpan install IO::String module
    34

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sailor

Hi Sidey
Zitat von: Sidey am 03 März 2024, 15:00:35Mit Version 4 könnte es dann wieder funktionieren, wenn alle Pakete ordentlich gefunden werden.
Bei meinen Analysen ist mir aufgefallen, dass im META.json Abschnitt Syntax Fehler enthalten sind.
Bitte stupse mich mal mit der Nase drauf... Wo ist der Fehler?
Habe den META.json einfach nach bestem Wissen und Gewissen integriert, weil es einfach so vorgegeben war ohne genau zu wissen wie es funktioniert.


Zitat von: Sidey am 03 März 2024, 15:00:35Im Kommentar stehen Pakete, die werden durch den prereq scanner nicht gefunden und stehen auch nicht in META.json. Werden die wirklich gebraucht?

sudo cpan install Crypt::AuthEnc::ChaCha20Poly1305
    31    #    sudo cpan install Crypt::Argon2
    32    #    sudo cpan install Sodium::FFI
    33    #    sudo cpan install IO::String module
    34

Gemaess des Modulanfangs: Ja

package main;
use constant false => 0;
use constant true  => 1;
use strict;
use warnings;
use utf8;
use JSON;
use HttpUtils;
use Encode;
use FHEM::Meta;
use Cwd;
use MIME::Base64;
use Crypt::Argon2 qw/argon2i_raw/;
use Sodium::FFI qw(crypto_aead_chacha20poly1305_decrypt crypto_aead_chacha20poly1305_NPUBBYTES crypto_aead_chacha20poly1305_KEYBYTES);
use IO::Socket;
use IO::String;              
use LWP::UserAgent;
use Data::Dumper;
use File::Spec::Functions ':ALL';

Gruss
   Sailor
******************************
Man wird immer besser...