Hallo zusammen,
leider habe ich das in der Wiki nicht gefunden, wie sollte die ini Aussehen um beim Druck auf den Taster welcher auf Pin 11 ist gleichzeitig ein Anruf erfolgt und eine URL aufgerufen wird.
Danke
Gruß Eddie
Hallo zusammen,
leider habe ich das in der Wiki nicht gefunden, wie sollte die ini Aussehen um beim Druck auf den Taster welcher auf Pin 11 ist gleichzeitig ein Anruf erfolgt und eine URL aufgerufen wird.
Danke
Gruß Eddie
Hi Thomas,
so sieht nun meine ini nun aus:
vielen Dank für Dein Beispiel, die Nummer 11 wird gerufen aber die URL wird nicht aufgerufen. Kann das sein dass dass die URL in "" stehen muss?
Danke
Gruß Eddie
ohne Log kann ich da nicht viel sagen - vielleicht findest du hier Beispiele:
HTTP Request
oder hier:
DoorPi von Wal
ohne Log kann ich da nicht viel sagen - vielleicht findest du hier Beispiele:
Wenn ich das hier richtig deute bedeutet dass das url_call Modul nicht vorhanden ist
2016-05-28 23:47:25,416 [ERROR] [doorpi.action.base] error while creating SingleAction from config string: url_call:http://meineurl
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/doorpi/action/base.py", line 64, in from_string
return importlib.import_module('doorpi.action.SingleActions.'+action_name).get(
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named url_call
wie kriege ich diesen installiert/aktiviert?
Hallo Thomas,
vielen Dank für Deine Hilf eund Deine Geduld mit mir. Ich bin scheinbar ein Schritt weiter aber leider noch nicht ganz am Ziel. Ich habe das Update installiert und habe die url_call.py erstellt mit dem Quellcode den Du mir geschickt hast. Nun bringt doorpi kein Fehler mehr.
Aber leider wird die URL nicht aufgerufen. (Wenn ich die gleiche URL via wget aufrufe geht es, also der pi kommt hin)
Hier ein Auszug der Logs:
2016-05-29 14:19:17,389 [WARNING] [doorpi.action.handler] source doorpi.sipphone.linphone_lib.Player unknown - skip fire_event OnPlayerStopped
2016-05-29 14:19:26,643 [INFO] [doorpi.conf.config_object] use configfile: /usr/local/etc/DoorPi/conf/doorpi.ini
2016-05-29 14:19:26,685 [INFO] [doorpi.status.webserver] Initiating WebService at ip and port 80
2016-05-29 14:19:26,689 [WARNING] [root] section WritePermission not found in configfile
2016-05-29 14:19:26,690 [WARNING] [root] section ReadPermission not found in configfile
2016-05-29 14:19:26,691 [WARNING] [root] section Group not found in configfile
2016-05-29 14:19:26,691 [WARNING] [root] section User not found in configfile
2016-05-29 14:19:26,692 [ERROR] [doorpi.status.webserver] no ReadPermission found
2016-05-29 14:19:26,693 [ERROR] [doorpi.status.webserver] no groups in configfile!
2016-05-29 14:19:26,693 [ERROR] [doorpi.status.webserver] no WritePermission found
2016-05-29 14:19:26,699 [INFO] [doorpi.keyboard.KeyboardInterface] using multi-keyboard mode (keyboards: onboardpins)
2016-05-29 14:19:26,700 [INFO] [doorpi.keyboard.KeyboardInterface] trying to add keyboard 'onboardpins' to handler
2016-05-29 14:19:27,209 [INFO] [doorpi.sipphone.SipphoneInterface] found installed sipphone "linphone" and use this as default
2016-05-29 14:19:27,289 [WARNING] [root] section DTMF not found in configfile
2016-05-29 14:19:27,554 [INFO] [doorpi.sipphone.from_linphone] found 3 possible sounddevices:
2016-05-29 14:19:27,558 [INFO] [doorpi.sipphone.from_linphone] found 2 possible videodevices:
2016-05-29 14:19:27,561 [INFO] [doorpi.sipphone.from_linphone] using DoorPi with SIP-Server
2016-05-29 14:19:27,564 [INFO] [doorpi.doorpi] found EVENT_ section 'EVENT_OnKeyPressed_onboardpins.11' in configfile
2016-05-29 14:19:27,564 [INFO] [doorpi.doorpi] registering action '10' for event 'OnKeyPressed_onboardpins.11'
2016-05-29 14:19:27,568 [INFO] [doorpi.doorpi] found EVENT_ section 'EVENT_OnStartup' in configfile
2016-05-29 14:19:27,570 [WARNING] [root] section DTMF not found in configfile
2016-05-29 14:19:27,573 [INFO] [doorpi.doorpi] DoorPi started successfully
2016-05-29 14:19:27,574 [INFO] [doorpi.doorpi] BasePath is /usr/local/etc/DoorPi
2016-05-29 14:19:27,574 [INFO] [doorpi.doorpi] Weburl is http://raspberrypi/
Alles anzeigen
Hier meine doorpi.ini
[DoorPi]
base_path = /usr/local/etc/DoorPi
eventlog = !BASEPATH!/conf/eventlog.db
is_alive_led =
last_snapshot =
[DoorPiWeb]
indexfile = index.html
ip =
loginfile = login.html
online_fallback = http://motom001.github.io/DoorPiWeb
port = 80
public = AREA_public
www = !BASEPATH!/../DoorPiWeb
[EVENT_OnStartup]
[SIP-Phone]
firewallpolicy = PolicyNoFirewall
audio_codecs = PCMA,PCMU
call_timeout = 15
capture_device = ALSA: C-Media USB Headphone Set
dialtone = !BASEPATH!/media/ShortDialTone.wav
dialtone_renew_every_start = False
dialtone_volume = 35
echo_cancellation_enabled = False
identity = Klingel
local_port = 5060
max_call_time = 60
playback_device = ALSA: C-Media USB Headphone Set
record_while_dialing = False
records = !BASEPATH!/records/%Y-%m-%d_%H-%M-%S.wav
sipphonetyp = linphone
sipserver_password = geheim
sipserver_realm = fritz.box
sipserver_server = 192.168.178.1
sipserver_username = 621
stun_server =
ua.max_calls = 2
video_codecs = VP8
video_device = V4L2: /dev/video0
video_display_enabled = False
video_size = vga
[keyboards]
onboardpins = gpio
[onboardpins_keyboard]
bouncetime = 200
polarity = 0
[onboardpins_OutputPins]
16 = Tueroffner
[onboardpins_InputPins]
11 = sleep:0
[EVENT_OnKeyPressed_onboardpins.11]
10 = url_call:http://192.168.178.21:8083/fhem?cmd.WhatsApp=set%20WhatsApp%20send%2049123456789%20Es%20hat%20geklingelt
Alles anzeigen
und hier die url_call.py
# -*- coding: utf-8 -*-
# thx to pula @ DoorPi forum
# https://www.doorpi.org/forum/thread/25-http-request/?postID=596#post596
import logging
logger = logging.getLogger(__name__)
logger.debug("%s loaded", __name__)
from doorpi.action.base import SingleAction
import doorpi
import urllib2
import ssl
import urlparse
def fire_command(url):
try:
if "@" in url:
nurl = urlparse.urlsplit(url)
username = nurl.username
password = nurl.password
url = url.replace(username + ':' + password + '@', '')
url = url.replace(" ", "%20")
logger.debug('url: %s' % url)
ssl._create_default_https_context = ssl._create_unverified_context
p = urllib2.HTTPPasswordMgrWithDefaultRealm()
p.add_password(None, url, username, password)
handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
url = url.replace(" ", "%20")
logger.info('url: %s' % url)
return urllib2.urlopen(
url=url,
data=None,
timeout=1
)
except urllib2.HTTPError as exp:
logger.error('HTTPError: %s - %s' % (exp.code, exp.reason))
except urllib2.URLError as exp:
logger.error('URLError: %s' % exp.reason)
return False
def get(parameters):
parsed_parameters = doorpi.DoorPi().parse_string(parameters)
return UrlCallAction(fire_command, url=parsed_parameters)
class UrlCallAction(SingleAction):
pass
Alles anzeigen
Wie gesagt die URL wird beim drücken des Tasters auf Pin 11 nicht ausgelöst.
Ich hatte in dem Event 2 Befehle drin einmal der Aufruf der URL und ein Anruf, den Anruf habe ich erstmal rausgenommen um bei den Versuchen nicht die ganze Zeit alle Telefon läuten zu lassen. Wenn ich den Call Befehl als zweiten Befehl hinzufüge wird ein Anruf gestartet, sprich das Event wird erkannt und auch ausgelöst. Es happert an dem URL Aufruf.
ICh wäre für jede Hilfe sehr dankbar.
Gruß Eddie
Hänge mal bitte in der DoorPi.ini nach Zeile 59 ein 20 = Sleep:3 an.
Ich hatte hier ein ähnliches Problem, wenn url_call in der letzten Zeile eines Events steht. Da wurde es auch nicht ausgelöst. Folgen weitere Aktionen funktionierte es. Allerdings auch nicht zwei call_url nacheinander ohne Pause!
der Fehler ist mir neu - haben das auch andere?
Hi,
bin neu hier aber an dem Thema hänge ich. Sonst läuft alles (Auslösung durch GPIO oder Datei, Telefone klingeln, Events beim Start/Stop werden auch ausgelöst) nur die call_url macht irgendwie nichts weder bei DTMF noch im Event.
Hier mal ein Auszug aus dem LOG. Ich kann das FireEvent ja sehen und auch der nächste Schritt sleep wird angezeigt.
log
2016-07-27 17:07:01,113 [DEBUG] [doorpi.action.handler] [SBJZNR] fire for event OnKeyDown_virtuell.klingel this actions [<doorpi.action.SingleActions.url_call.UrlCallAction instance at 0xb2d2e828>, <doorpi.action.SingleActions.sleep.SleepAction instance at 0xb2d2e788>]
2016-07-27 17:07:01,115 [DEBUG] [doorpi.sipphone.from_linphone] call (**9)
2016-07-27 17:07:01,124 [DEBUG] [doorpi.sipphone.from_linphone] no current call -> start new call
2016-07-27 17:07:01,128 [DEBUG] [doorpi.sipphone.from_linphone] reset current call start datetime to 2016-07-27 15:07:01.128297
2016-07-27 17:07:01,126 [TRACE] [doorpi.action.handler] [SBJZNR] try to fire action UrlCallAction with args () and kwargs {'url': 'http://192.168.0.44:3777/user/doorpi_klingel.php'}
2016-07-27 17:07:01,118 [DEBUG] [doorpi.action.handler] no actions for event BeforeSipPhoneMakeCall - skip fire_event BeforeSipPhoneMakeCall from doorpi.sipphone.from_linphone
2016-07-27 17:07:01,137 [TRACE] [doorpi.action.base] run UrlCallAction with args () and kwargs {'url': 'http://192.168.0.44:3777/user/doorpi_klingel.php'}
2016-07-27 17:07:01,142 [TRACE] [doorpi.action.handler] [SBJZNR] try to fire action SleepAction with args (10.0,) and kwargs {}
in der Ini sieht das Event wie folgt aus:
Hallo Zusammen,
habe das gleiche Problem wenn ich Aktoren auf meiner Homematic CCU ansprechen will.
Events für Ausgänge oder Relais am Doorpi schalten klappt hervorragend aber "10 =url_call:http://homeatic-url-gelumpse/...." klappt auch nicht bei mir.
Im Log wird angezeigt das die URL aufgerufen wird, es wird auch der Rückgabewert (Erfolgsmeldung) von der CCU im Log angezeigt,
aber dennoch wir der Aktor nicht geschaltet.
Was aber sehr gut geht ist, die Aufrufe in ein Shellscript zu packen und diese mittels "os_execute" einzubinden.
Ich verwende "curl" um den Http Request auszuführen.
Beispiel Einbindung in die Doorpi.ini
10 = os_execute:/usr/local/etc/DoorPi/doscript/myscript.sh
Halt nur darauf achten das auch die entsprechenden Rechte vorhanden sind um das Shellscript aufrufen oder ausführen zu dürfen.
Schönen Abend noch
Aldafera aka Harald