Entwicklung/Forschung rund um die ALP-600 Sprechanlage [inkl. Modul]

Begonnen von choenig, 11 November 2019, 18:53:50

Vorheriges Thema - Nächstes Thema

onkeldittmeyer

Moin,

habe die Anlage auch (übrigens sehr gut das Ding) und bin auf Euren Thread gestoßen. Finde ich gut, daß Ihr Euch drum kümmert!

Wollte das Modul auch mal testen: Fehler: "Please install Perl XML::Simple to use module ALP600 "

Perl ist installiert (xmllib), nochmal installieren bringt auch nichts. Woran liegt das wohl?

mr_petz

#16
Also das hast du?:

XML::Simple -> libxml-simple-perl

Das vielleicht auch (sollte in fhem aber automatisch drin sein):
XML::Parser::Lite -> libxml-parser-lite-perl

onkeldittmeyer

libxml-parser-perl.

Ich habe es nochmal mit

apt-get install libxml-parser-perl

probiert.

Ist das das Falsche??


mr_petz

#18
Das Modul brauchst du auf jeden fall:

XML::Simple -> libxml-simple-perl


edit:
das könnte Christian auch raus nehmen. er liest halt zur Zeit die config und Daten als XML ein.
er könnte das auch über die Zeile param.cgi wie schonmal vorher von mir beschrieben einlesen. (wenn er will)

onkeldittmeyer

Moin,

verstehe ich jetzt nicht so ganz. Also ist nicht das Perl-Paket auf Systemebene gemeint, sondern ein Fhem-Modul, das installiert werden muß?

Zur Zeit habe ich die Alp mal als eigene Website in meinen Fhem-Server eingebunden. Das geht grundsätzlich auch nicht schlecht.

Also das Bild als image geholt mit einsekündigem refresh, dazu einen Türöffner-Knopf.

Nicht perfekt, aber ok. Was mir aufgefallen ist: Ich kann in Fhem - also via Browser - nur mit den Admin-Daten auf das Gerät zugreifen (Türöffner und Image). Vom Handy und vom PC (Windows-Shortcut) reich kurioserweise für den Türöffner der dafür eingerichtete FHEM-Nutzer. Seltsam.

mr_petz

#20
Zitat von: onkeldittmeyer am 15 November 2019, 23:48:27
Moin,

verstehe ich jetzt nicht so ganz. Also ist nicht das Perl-Paket auf Systemebene gemeint, sondern ein Fhem-Modul, das installiert werden muß?

natürlich Systemebene. siehe hier die Erklärung zu libxml-simple-perl:
https://packages.debian.org/buster/libxml-simple-perl
wie versuchst du die Pakete zu installieren? sudo vielleicht mit davor setzen. zeig mal den log...

und zum Normalbenutzer. bei mir geht der Normalbenutzer in FTUI (TabletUI) in dem ALP-Modul musste ich auch zum lesen der Daten den Adminbenutzer eintragen. wie der zusammenhang ist weiß ich auch nicht.

welche Firmware hast du in der ALP?

mr_petz

in FTUI sieht es bei mir so aus (wird als popup geöffnet):
siehe Anhang

onkeldittmeyer

Zitat von: mr_petz am 16 November 2019, 10:50:11
natürlich Systemebene. siehe hier die Erklärung zu libxml-simple-perl:
https://packages.debian.org/buster/libxml-simple-perl
wie versuchst du die Pakete zu installieren? sudo vielleicht mit davor setzen. zeig mal den log...

und zum Normalbenutzer. bei mir geht der Normalbenutzer in FTUI (TabletUI) in dem ALP-Modul musste ich auch zum lesen der Daten den Adminbenutzer eintragen. wie der zusammenhang ist weiß ich auch nicht.

welche Firmware hast du in der ALP?

Tut mir Leid, die ganze Linux-Geschichte ist für mich nicht ganz einfach. Natürlich mit sudo, sonst geht das ja gar nicht. Jedenfalls auf meinem pi. Wie ist denn der korrekte Befehl? Das geht doch dann auch über (sudo) apt-get, oder muß ich die Installationsdatei manuell irgendwo runterladen?

Meine Alp hat FW 3.1.14.0.6.18.28

Über das Modul kannst Du tatsächlich das h264-Video in eine FTUI-Seite einbinden? Da wäre natürlich nicht schlecht. Weil die img-Geschichte ist naturgemäß nicht so flüssig.

mr_petz

#23
sudo apt-get -y install libxml-simple-perl

und nein den rtsp stream kann man so ohne weiteres nicht einbinden. ich mache das auch mit 1s refresh und jpeg.


siehst du im ALP-Modul das -> notifyOfficialApp am oberen Klapp/Auswahlfenster? (wenn das Modul bei dir läuft)

mr_petz

wenn ich callback ring aktiviere wird in meiner ALP das unter HTTP Event gesetzt:

mr_petz

#25
so, habe mal bissl getestet.
ich habe in deinem Modul mal paar Zeilen geändert. ich habe in Zeile 542 das or durch || ersetzt. dadurch konnte ich jetzt das Event ring in der ALP setzen. Jetzt bekomme ich auch das reading ring.
motion und both gehen auch.
Habe noch ein paar mehr Zeilen geändert. die bewirken das die Eventeinträge komplett rückgängig gemacht werden.
jetzt müsste man nur noch das ring Reading wieder löschen/zurücksetzen, wenn es nicht mehr klingelt.
hier ein Auszug der geänderten Zeilen 539 bis 563:

my $ringEventUrl = "http://" . $hash->{IP} . "/cgi-bin/sensor_cgi?"
. "action=set"
. "&channel=0"
. "&HttpSwitch=" . ($type eq "ring" || $type eq "both" ? "open" : "close")
. "&HttpParam=" . ($type eq "ring" || $type eq "both" ? "ring" : "")
;

HttpUtils_NonblockingGet({
url         => $ringEventUrl,
timeout     => 10,
hash        => $hash,
method      => "GET",
user        => $username,
pwd         => $password,
callback    => sub($$$){}
});

my $motionEventUrl = "http://" . $hash->{IP} . "/cgi-bin/motion_cgi?"
. "action=set"
. "&channel=0"
. "&HttpSwitch=" . ($type eq "motion" || $type eq "both" ? "open" : "close")
. "&HttpParam=" . ($type eq "motion" || $type eq "both" ? "motion" : "")
. "&Time1Switch=" . ($type eq "motion" || $type eq "both" ? "open" : "close")
. "&MotionSwitch=" .  ($type eq "motion" || $type eq "both" ? "open" : "close")
;



jetzt zu der notifyOfficialApp.
Zitat von: choenig am 11 November 2019, 21:35:33
Um es mit iOS-APP zu nutzen, muss es auf allen Handies aktiviert werden, die genutzt werden sollen, bevor die Callbacks gesetzt werden:
* Auf allen Handies in der ALP-600 App das Klingeln aktivieren in den Einstellungen (weiss nicht mehr ganz genau, wie das aussieht)
* set Alp600 callbacks ring
* set Alp600 notifyOfficialApp ring

Jetzt Informiert die ALP-600 beim klingeln zunächst Dein FHEM unter der angegebenen IP (webhookHttpHostname) und dann informiert Dein FHEM die offizielle ALP-600 APP (unter der IP im Quellcode).

LG
Christian
das ist kein set sondern ein attr.
doet ist es bei mir drin (habe es im Modul gelesen). aber wie gesagt, die Benachrichtigung in der APP geht auch so.

choenig

Zitat von: choenig am 12 November 2019, 21:31:17
notifyOfficialApp ist ein Attribut, siehst Du es da auch nicht?

Hatte ich hier ja nochmal korrigiert  8)

LG

choenig

Guten Morgen,

ich habe gerade die Version 0.3.0 an den ersten Post gehängt.

Wichtigstes neues Feature: checkOutputInterval
Wenn ihr das auf einen Wert != 0 konfiguriert, fragt das Modul in dem Interval bei der ALP600 den Status der drei relais ab, bei Änderung wird ein event der readings output1, output2 oder output3 generiert. Hier macht es dann vermutlich sinn, die Haltedauer der Relais in der ALP600 auf einen Wert zu konfigurieren, der größer ist, als das Interval. Das kann ich vermutlich auch noch automatisieren, hab' ich aber noch nicht.

Ansonsten habe ich noch alle vorkommen der ors und ands, die eigenltich eher || bzw. && hätten sein sollen, gefixt.

Das XML-Thema habe ich mir noch nicht angeschaut. Sind denn alle Werte, die ich in dem XML-Call bekomme, auch in dem anderen Request enthalten? Wenn wir es wirklich nicht brauchen, bau ich es gerne aus, jetzt bleibt es aber erstmal.

Viel Spaß beim Testen!
Ich habe die Version in meiner DEV-Umgebung getestet, sie läuft noch nicht produktiv bei mir.

Edit:
Ach ja, ich habe nochmal mit Alphago geschrieben, und die sind nicht sehr gewillt, mir die Firmware zu geben, sagen aber, das Update kommt noch dieses Jahr.


LG
Christian

mr_petz

Version 0.3.0 funktioniert mit den outputs und den setzen der callback-Events. :)

Ich würde jetzt nur gern das ReadingEvent "ring" oder "state" auf z.Bsp.: "wait" ändern lassen, wenn zum Beispiel output1 auf 1 oder nach der Zeit die in der ALP unter SIP als AnrufTimout gesetzt wurde.
man kann das natürlich auch mit doif oder natify machen, könnte man sich aber so ersparen.

mfg Thomas

choenig

Hi Thomas,

Zitat von: mr_petz am 17 November 2019, 14:08:30
Version 0.3.0 funktioniert mit den outputs und den setzen der callback-Events. :)

:)

Zitat von: mr_petz am 17 November 2019, 14:08:30
Ich würde jetzt nur gern das ReadingEvent "ring" oder "state" auf z.Bsp.: "wait" ändern lassen, wenn zum Beispiel output1 auf 1 oder nach der Zeit die in der ALP unter SIP als AnrufTimout gesetzt wurde.
man kann das natürlich auch mit doif oder natify machen, könnte man sich aber so ersparen.

Das hab' ich leider nicht verstanden, magst Du das nochmal erklären?

LG
Christian