Fritz Dect 440 in fhem einbinden

Begonnen von Albi, 29 Januar 2021, 22:00:10

Vorheriges Thema - Nächstes Thema

Bucklew

Hallo Rudolf,

habe perl 5.30 (Ubuntu 20.04.2 LTS):

This is perl 5, version 30, subversion 0 (v5.30.0) built for x86_64-linux-gnu-thread-multi

Hab jetzt diesen Code:
    450   if($h{lastpressedtimestamp}) { # Dect400/#94700, 440/#118303
    451     sub dp($$;$);
    452     sub dp($$;$) {
    453       my ($txt,$h,$ln) = (@_);


Und leider wieder einen Fehler:
Zitat2021.04.21 10:45:04 1: PERL WARNING: Prototype mismatch: sub main::dp ($$$) vs ($$;$) at ./FHEM/10_FBDECT.pm line 451, <$fh> line 131.
2021.04.21 10:45:04 1: reload: Error:Modul 10_FBDECT deactivated:
Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 460, near "$h) "
Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 463, near "%h)"

2021.04.21 10:45:04 0: Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 460, near "$h) "
Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 463, near "%h)"

2021.04.21 10:45:04 1: PERL WARNING: Subroutine FBDECT_Initialize redefined at ./FHEM/10_FBDECT.pm line 41, <$fh> line 144.
2021.04.21 10:45:04 1: PERL WARNING: Subroutine FBDECT_Define redefined at ./FHEM/10_FBDECT.pm line 65, <$fh> line 144.
2021.04.21 10:45:04 1: PERL WARNING: Subroutine FBDECT_SetHttp redefined at ./FHEM/10_FBDECT.pm line 91, <$fh> line 144.
2021.04.21 10:45:04 1: PERL WARNING: Subroutine FBDECT_Set redefined at ./FHEM/10_FBDECT.pm line 300, <$fh> line 144.
2021.04.21 10:45:04 1: PERL WARNING: Subroutine FBDECT_Get redefined at ./FHEM/10_FBDECT.pm line 342, <$fh> line 144.

rudolfkoenig

Merkwuerdig. Kannst Du es bitte mit der angehaengten Version nochmal testen?

Bucklew

Ja ist auch merkwürdig, funktioniert leider immer noch nicht:

Zitat2021.04.21 15:00:47 1: reload: Error:Modul 10_FBDECT deactivated:
Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 460, near "$h) "
Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 463, near "%h)"

2021.04.21 15:00:47 0: Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 460, near "$h) "
Not enough arguments for main::dp at ./FHEM/10_FBDECT.pm line 463, near "%h)"

2021.04.21 15:00:47 1: PERL WARNING: Subroutine FBDECT_Initialize redefined at ./FHEM/10_FBDECT.pm line 41, <$fh> line 131.
2021.04.21 15:00:47 1: PERL WARNING: Subroutine FBDECT_Define redefined at ./FHEM/10_FBDECT.pm line 65, <$fh> line 131.
2021.04.21 15:00:47 1: PERL WARNING: Subroutine FBDECT_SetHttp redefined at ./FHEM/10_FBDECT.pm line 91, <$fh> line 131.
2021.04.21 15:00:47 1: PERL WARNING: Subroutine FBDECT_Set redefined at ./FHEM/10_FBDECT.pm line 300, <$fh> line 131.
2021.04.21 15:00:47 1: PERL WARNING: Subroutine FBDECT_Get redefined at ./FHEM/10_FBDECT.pm line 342, <$fh> line 131.

rudolfkoenig

Bin einigermassen ratlos.
Was passiert, wenn man dp und die zwei Aufrufe in was sicher Eindeutiges wie parsePressedTimestamp umbenennt?

Nachtrag: bitte nicht reload, sondern "shutdown restart", da bei reload der Interpreter bleibt, und die alte Deklaration merkt.

Bucklew

Mache immer shutdown restart.

Die Änderung von dp hat immerhin die Fehler im Logfile behoben.

Nur wird aber jeder Wert aktualisiert auf den DECT200 Geräten  - außer der "Power" Wert:
Zitatmode manuell 2021-04-21 17:32:35
power 94.91 W 2021-04-21 17:32:17
present yes 2021-04-21 17:32:35[7quote]

Wäre es sinnvoll die Geräte neu anzulegen?

rudolfkoenig

Ich glaub ich habs: in deiner Installation wird irgendwo eine dp Funktion definiert. Ich habe sowas in den "offiziellen" Modulen nicht gefunden, es muss also entweder von "aussen" kommen, oder selbstdefiniert sein (in 99_myUtils.pm).
Ich habe die Funktion jetzt umbenannt und das Modul eingecheckt.

Wg. power: das ist eine ganz andere Baustelle. Wenn ich die <device> Zeile aus deinem Beitrag vom gestern bei mir mit Dispatch() einspiele, dann bekomme ich ein power Event.

Bucklew

Ich hab jetzt zwar auf die Schnelle nix gefunden, aber könnte natürlich sein.

Vielen Dank :)

Power hat sich erledigt, wird wohl - unabhängig vom Pollingzyklus der Fritzbox - nur alle 5 Minuten aktualisiert.

Udomatic

Zitat von: rudolfkoenig am 19 März 2021, 15:01:58
Ich habe es als "rel_humidity $val %" hinzugefuegt.

Wie muss ich das im Device ansprechen, um die Luftfeuchte angezeigt zu bekommen?
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

rudolfkoenig

Jenachdem, was mit "Device" gemeint ist:
in FHEM gar nicht, wenn die Daten vom FritzBox gemeldet werden, dann wird ein Reading angelegt.
In der FritzBox bzw. Hardware: weiss nicht genau, ich tippe auf einen alten Firmware, was man erneuern muesste.

Udomatic

Zitat von: rudolfkoenig am 02 Juli 2021, 09:30:12
Jenachdem, was mit "Device" gemeint ist:
in FHEM gar nicht, wenn die Daten vom FritzBox gemeldet werden, dann wird ein Reading angelegt.
In der FritzBox bzw. Hardware: weiss nicht genau, ich tippe auf einen alten Firmware, was man erneuern muesste.

Ja stimmt leider, die FB Firmware ist wohl zu alt und zeigt die Luftfeuchtigkeit nicht an. Nur der Taster.
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

Hubertus

Hallo ins Forum,

ich habe mal den Entwicklersupport angefragt wegen dem Thema Polling und habe als Antwort erhalten dass man wohl in der AHAHTTP Schnittstelle den einzelnen Buttons des Dect440 eine Vorlage HTTP-Request zuzuweisen. Hier die original Antwort:

ZitatEs ist jedoch möglich, eine Art Callback je Tastendruck einzurichten. Voraussetzung ist die Belegung der Taste mit einer HTTP-Request-Vorlage, jedenfalls wenn die "Callback-Auswertung" irgendwie über HTTP erreichbar ist.
Dazu könnten 4 HTTP-Request Vorlagen konfiguriert und diese den 4 Tasten zugewiesen werden.


kenne mich aber in der AVM Schnittstelle nicht wirklich aus. Aber vielleicht weis jemand damit was anzufangen und kann das in dem Modul für FHEM implementieren.

Danke uns schöne Grüße
HUbertus

rudolfkoenig

#41
Wenn ich es richtig verstanden habe, dann kann man das nicht ohne Weiteres in das FHEM Modul integrieren.

Stattdesssen legt man in der Fritz!OS Oberflaeche, bei "Smart-Home => Gruppen und Vorlagen" eine oder mehrere Vorlagen mit einem HTTP-Request an mit Inhalt wie in der folgenden Zeile:
http://<fhemhost>:8083/fhem?cmd=set+Lampe+off&XHR=1&fwcsrf=12345
Wichtig: vorher bei der FHEMWEB Instanz das csrfToken Attribut auf 12345 setzen.

Danach weist man diese Vorlagen den Tasten des Fritz!DECTs zu, bei "Smart-Home => Geraeteverwaltung".

Ungetestet, da ich keinen Zugriff auf ein Fritz!DECT 440 habe.

Hubertus

Super - danke, das wäre ja dann einfacher als gedacht.
FHEM kann den Request dann verarbeiten.

Mir ist geholfen.

rudolfkoenig

Falls das gehen sollte: Kannst Du bitte eine genauere Anweisung schreiben?
Meine ist sehr Spekulativ.

Hubertus

Klar - bin aber erst kommende Woche wieder @Home. Dauert also noch etwas.