Türklingel an Fritz!Box OHNE CUL, der steckt am RPi mit FHEM2FHEM

Begonnen von bsl02, 16 November 2013, 19:12:50

Vorheriges Thema - Nächstes Thema

bsl02

Hallo,

meine Türklingel (FS20KSE) lief einmal mit FHEM, will aber nicht mehr. Nach langem lesen und testen brummt mir jetzt der Schädel.

Vermutlich hängt das mit dem Umzug auf einen RPi zusammen: Mein Haupt-FHEM ist umgezogen von Fritz!Box7390 auf RPi.

Am RPi hängen jetzt auch alle Sender/Empfänger (CUL868, RFXTRX).
Das Fritz-FHEM läuft fast in der alten Konfig parallel, das  könnte noch massiv verschlankt werden.

Fragen:
- Hat diese Kombination jemand umgesetzt? Für Tips wäre ich dankbar.
- Bei meinen Versuchen wurden beide FHEM´s teilweise recht langsam, vermutlich Denkfehler bei mir.
- Wo muss mindestens FHEM2FHEM installiert sein? Benötigt wird nur die Türklingel der Fritz!Box, der Rest läuft vom RPi.

Gruß & Dank,
Stefan




RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

rudolfkoenig

> - Wo muss mindestens FHEM2FHEM installiert sein?

- da, wo man die Events des anderen FHEMs braucht (gilt fuer FHEM2FHEM in RAW und in LOG Modus)
- da, wo man den Schalter, den man schalten will, nicht direkt angeschlossen hat (nur RAW Modus)

fiedel

Was soll denn wie funktionieren? Beschreib mal was du machen möchtest!
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

bsl02

>Was soll denn wie funktionieren? Beschreib mal was du machen möchtest!

Aber gern:
Taster an Türklingel -> FS20KSE (sendet) -> CUL868/FHEM auf RPi -> FHEM2FHEM -> FHEM auf FritzBox7390 -> Klingeln aller Telefone an FB

Klingeln funktionierte, als ich FHEM nur auf der Fritz!Box hatte.
Derzeit läuft es zumindest bis zum RPi, ein FS20-Signalgeber meldet sich.
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

fiedel

Aha.  ;)

Dann kannst du wirklich fhem2fhem nehmen, oder dich mit dieser API hier beschäftigen. Mit der kannst du es über die Fritzbox klingeln lassen, ohne darauf FHEM oder den Callmon. zu installieren. Wenn du die Scripte "fritzbox_call_phone" oder "fritzbox_ring_phone" verwendest, solltest du es hinkriegen.

Beispiel:

Notify auf die KSE erstellen und darin der Klingelaufruf:
system("/usr/bin/php /opt/fhem/fritzbox_api/fritzbox_call_phone.php **790");;\

Viel Erfolg

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

bsl02

Hallo Frank,

> Fritzbox klingeln lassen, ohne darauf FHEM oder den Callmon. zu installieren.
das hört sich richtig gut an.

>system("/usr/bin/php /opt/fhem/fritzbox_api/fritzbox_call_phone.php **790");;\

Erste Versuche habe ich gestartet, bisher erfolglos.

FHEM liegt auf meinem RPi unter /opt/fhem/
Das API-Verzeichnis liegt jetzt darunter /opt/fhem/fritzbox_api,
darin die ganzen *.php´s

Auf meinem RPi läuft FHEM auf einer -vermutlich- Wheezy-Installation. Für mich als Linux-Kopierer (keine Belastung durch Kenntnisse) stellen sich folgende Fragen:

- muss ich auf dem RPi evtl. etwas zusätzlich installieren (PHP z.B.) / ggfs. wie?
- gilt dann der obige Pfad noch?

Dank für Hilfe und Verständnis,
Stefan


RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

fiedel

Zitatmuss ich auf dem RPi evtl. etwas zusätzlich installieren (PHP z.B.) / ggfs. wie?

Hi Stefan,

genau, PHP muss installiert sein und in der Configdatei der API muss der Zugang zur Box eingereichtet sein (Passwort, LUA).
Beschrieben ist das alles in der Readme zur API. Ich gebe dir mal meine Installationsschritte:

Einrichtung:
############

- in Fritzbox-Api-Ordner Datei: "fritzbox_user.conf.php" Editieren (FB- Passwort eintragen
  und das LUA Login verfahren auf false oder true setzen)
  -> mit neuester FW. ab Jan 2013 muss LUA LOgin auf "true", sonst keine Funktion und
     viele Fehlermeldungen zum API- Script

- Ordner "fritzbox_api" kopieren nach: /opt/fhem/fritzbox_api

- PHP installieren -> unter Linux als root: apt-get install php5-cli php5-curl

- Anzeige der Ver.: php -v -> bringt: PHP 5.3.3-7+squeeze14 with Suhosin-Patch (cli) (built: Aug  6 2012 22:32:49)

- Anzeige Pfad zu PHP: which php  -> /usr/bin/php

- Datei ausführen (Prinzip): "/usr/bin/php irgendeine.php" oder: "php irgendeine.php"

Beispiel: AB ein/aus

root@guiplug:~# /usr/bin/php /opt/fhem/fritzbox_api/fritzbox_tam_on_off.php 1
root@guiplug:~# /usr/bin/php /opt/fhem/fritzbox_api/fritzbox_tam_on_off.php 0   


Wenn du zum Ausführen nicht die komplette Pfadangabe eingeben willst, musst du die Scripte erst "ausführbar machen".

Dann reicht der Aufruf:
root@guiplug:~# fritzbox_tam_on_off.php 1

Das wird hier erklärt:

http://blog.johan-mares.be/ict/php/running-php-shell-scripts/

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

bsl02

Hallo Frank,

Danke für die nachvollziehbare Antwort. Die php-Installation hat hier geklappt, es scheitert wohl noch an der FB-Anmeldung.

Zunächst habe ich in der fritzbox_user.conf.php nur mein FB-Passwort eingegeben, ging nicht. Auch weitere Versuche (IP der FB konkret eingeben etc.) liefen nicht.
Über die Weboberfläche kann ich mich an der FB7390 anmelden "allein mit Passwort", kein User erforderlich. Auf der Box ist FRITZ!OS 06.00 installiert.

Ich versuche es nachher weiter ;-)

Gruß, Stefan

pi@(none) ~ $ php -v
PHP 5.4.4-14+deb7u5 (cli) (built: Oct 13 2013 04:49:27)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
pi@(none) ~ $ which php
/usr/bin/php
pi@(none) ~ $ /usr/bin/php /opt/fhem/fritzbox_api/fritzbox_ring_phone.php
2013-11-19 10:41 ERROR: Login failed with an unknown response.pi@(none) ~ $ sudo /usr/bin/php /opt/fhem/fritzbox_api/fritzbox_ring_phone.php
sudo: unable to resolve host (none)
2013-11-19 10:42 ERROR: Login failed with an unknown response.pi@(none) ~ $
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

fiedel

Hi Stefan,

hier mal die wichtigsten Zeilen aus der user.conf:



# use the new .lua login method in current (end 2012) labor and newer firmwares
# set to "true" for use .lua
$this->config->setItem('use_lua_login_method', true);


# set to your Fritz!Box IP address or DNS name (defaults to fritz.box), for remote config mode, use the dyndns-name like example.dyndns.org
$this->config->setItem('fritzbox_ip', 'fritz.box');


# set to your Fritz!Box password (defaults to no password)
$this->config->setItem('password','hierdeinpassworteinsetzen');




Eigentlich solle es keine Rolle spielen, aber richte mal einen Benutzeraccount auf der FB ein. Ich glaube dass musste ich auch machen. Dieser (Benutzername) wird zwar nicht von der API verwendet, ist aber möglicherweise wichtig, damit das LUA- Login klappt.

Ich habe noch die Version 5.50, daher weiß ich nicht, ob es mit der 6.0 Probleme gibt. Sollte es aber nicht, da das LUA- Verfahren noch aktuell ist.

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

bsl02

Hallo Frank,

es läuft ;-).

Dank Deiner Beispiel-Konfig konnte ich den Fehler erkennen: Bisher hatte ich ´password´ in der fritzbox_user.conf.php mit dem Passwort überschrieben.
Jetzt also:
# set to your Fritz!Box password (defaults to no password, will be ignored, when remote config is enabled)
# $this->config->setItem('password', false);
$this->config->setItem('password', <meinPasswort>);


Sammelruf der Fritz!Box (die Möglichkeit kannte ich vor einer Woche noch gar nicht):
Wird mit Kurzwahl **701 in der "fritzbox_ring_phone.php" noch nicht ausgeführt, es passiert gar nichts (**701 ist in FB definiert).

Stattdessen habe ich in der php erst einmal gezielt interne RufNrn hinterlegt, das läuft.
Auszug dazu (fritzbox_ring_phone.php):
<?php
$dial 
'**610#611#612#613#614#622'// set to the number to dial

# Klappt noch nicht mit SammelrufNr **701
# Aufruf über Putty oder notify auf RPi-FHEM mit:
# /usr/bin/php /opt/fhem/fritzbox_api/fritzbox_ring_phone.php


Bin mir gerade nicht sicher, ob FHEM die anzuwählende Nummer (**701) im Notify auch mitgeben kann. Dann bräuchte kein Eintrag in der php zu erfolgen.

Mein Notify bisher auf RPi-FHEM:
## Auswertung Klingel Seitentür Carport
define n.Tuerkl.Carp.neu notify fs20tk.Tuerkl.Carp:on {\
        system("/usr/bin/php /opt/fhem/fritzbox_api/fritzbox_ring_phone.php");;\
}
attr n.Tuerkl.Carp.neu verbose 5
# RufNrn werden bisher in der obigen php-Datei hinterlegt! Sh. Sammelruf auf Fritz!Box


Gruß und Dank soweit,
Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

fiedel

Machst du per Dummy:



# Dummy, der auf die zu wählende Nummer gesetzt wird ; Beispiel: set Dum_Telnum_D **790
define Dum_Telnum_D dummy

# Notify springt an wenn Dummy gesetzt wird und wählt die Nummer
define Func_Waehle_N notify Dum_Telnum_D  { \
\
  my $TelNum = (Value("Dum_Telnum_D"));;\
\
if ($TelNum ne "000") { \
     Log 1, "Waehle: $TelNum";; \
     system("/usr/bin/php /opt/fhem/fritzbox_api/fritzbox_call_phone.php $TelNum");;\
      }\
}



Dafür musst du natürlich "call phone" verwenden, den "ring phone" kann keine Argumente. Das habe ich mal aus "ring phone" umgestrickt und du müsstest es direkt aus dem Thread runterladen.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

bsl02

Hi Frank,

Dank für den Hinweis auf "CallPhone".
Eine Version "fritzbox_call_phone.php" habe ich im Internet gefunden mit Dateidatum
* @version  0.1 2013-01-30
* @package  Fritz!Box PHP tools

Ist die noch aktuell?

Läuft damit: Anwahl einzelner Telefone von Putty aus, z.B. **610
Läuft nicht: Anwahl der **701 von Putty aus

Auf der FritzBox hat meine GruppenRufNr **701 den Inhalt:
**610#51#1#611#612#613#614#615#1
und funktioniert von Telefonen aus.

Die Anwahl der 701 sieht dann unter Putty so aus:
pi@(none) ~ $ /usr/bin/php /opt/fhem/fritzbox_api/fritzbox_call_phone.php **701
2013-11-20 15:57 Phone **701 is called. Pick up your current clicktodial- phone!


Wird zwar ausgeführt, klingelt aber nicht.

Es bleibt interessant ;-)
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

fiedel

Hi Stefan,

das Script nutzt die Wählhilfe der FB. Vielleicht lässt sich da was tricksen. Gucke mal, ob du in der Wählhilfefunktion deine Sammelnummer auswählen kannst. Das Script ruft immer die angegebene Nummer an und lässt gleichzeitig das in der Wählhilfe ausgewählte Gerät klingeln. Habe das auch noch nicht so ausgereizt. Ich nutze es als Türsprechfunktion.

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

bsl02

Hallo Frank,

heute die Korrektur:
Nach meiner Freude gestern habe ich anschließend FHEM geupdated. Irgendwas lief falsch, das System startete nicht mehr, kein Eintrag in Logdateien etc. Daraufhin habe ich ein Backup zurückgespielt und das System läuft wie gewohnt.

Mit der gebotenen Ruhe aus heutiger Sicht betrachtet:
Mein gestriger Post war in Hektik verfasst und - wie man sieht - unvollständig. Er klappte denn heute auch nach Ergänzung doch nicht.

Back to the roots: Meine jetzigen Einstellungen auf RPi-FHEM klingeln auf der FB7390:
###### Auswertung Klingel Seitentür Carport
define n.Tuerkl.Carp.CallGRP notify fs20tk.Tuerkl.Carp:on {\
        system("/usr/bin/php /opt/fhem/fritzbox_api/fritzbox_call_phone.php **9 ");; }
attr n.Tuerkl.Carp.CallGRP verbose 5   #zunächst für Testzwecke
# 2x Semikolon nur in der Konfig-Datei, bei Weboberfläche nur 1x
#####


Es wird also der "normale" Sammelruf der FB genutzt, alle Telefone klingeln. Auch mein Standalone-Faxgerät wird somit abheben. Das sollte aber kein Problem sein, denn auf dem Gerät ist eine Wartezeit eingestellt - vorrangig nimmt die Fritz!Box intern Faxe an.

Es gilt weiterhin: Der Tip mit php war Klasse!

Immer schön geschmeidig bleiben,
Stefan

------------------------------
war Blödsinn, daher gestrichen:
ich habe es jetzt wie folgt, scheint zu laufen, alles wird gut:
## Auswertung Klingel Seitentür Carport
define n.Tuerkl.Carp.CallGRP notify fs20tk.Tuerkl.Carp:on {\
        system("/usr/bin/php /opt/fhem/fritzbox_api/fritzbox_call_phone.php **610#611#612#613#614#615#622#51#1


Vorteil bei Einzelnennung interner Rufnummern: Das Klingeln hört nach kurzer Zeit von allein auf.
Die Lösung gefällt mir, denn über FHEM kann ich jederzeit die aktiven Telefone ändern.

Weitere getestete Lösung: Anwahl nach "draußen" mit freier externer RufNr. -> und wieder hinein auf Haupt-TelNr.
Es läuft über Putty:
/usr/bin/php /opt/fhem/fritzbox_api/fritzbox_call_phone.php *122#<eigene Haupt-RufNr>

Nachteil: Telefone hören nicht auf zu klingeln.
Vermutlich weiterer Nachteil: Busy on Busy - bei besetzt hört man kein Türklingeln.

Wenn in den nächsten Tagen wieder Zeit ist, teste ich ausführlicher und wende mich bei Problemen an das geneigte Publikum ;-)
Bei Problemen wird mir die Familie bis dahin auch ihr Statement nahegebracht haben.

Dein Tip mit den php-Lösungen war übrigens Klasse.   ;D

Grüße und schönen Abend noch,
Stefan[/s]
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

Harald

Hallo zusammen,

wie man in meinem Profil sieht, habe ich FHEM auf dem RasPi laufen und als Internetzugang eine 6360 mit dahinter gehängter 7170.

Ich würde auch gerne mittels php meine Telefone klingeln lassen in der Hoffnung, dass das eleganter zu lösen ist und schneller reagiert.
Derzeit funktioniert es über Telnet. Da sende ich von FHEM über den RasPi den Befehl zur 7170 und von dort über sip zur 6360. Das klappt auch so weit, ist aber ziemlich umständlich und dauert auch relativ lange bis die Telefone klingeln.

Nun zu meinen Fragen: PHP 5.4.4-14 ist auf dem RasPi unter /usr/bin/php installiert. Wo finde ich das Verzeichnis Fritzbox-Api, damit ich es nach (opt/fhem/ kopieren kann? Was ist das LUA Loginverfahren?

Wäre toll, wenn mir jemand weiterhelfen würde. Vielen Dank schonmal im Voraus und viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus