Giter Club home page Giter Club logo

doorpi's Issues

Pjsua instance has no attribute 'current_callcallback'

Traceback (most recent call last):
File "/home/pi/DoorPi/doorpi/application.py", line 41, in
finally: doorpi.DoorPi().destroy()
File "/home/pi/DoorPi/doorpi/doorpi.py", line 117, in destroy
self.sipphone.destroy()
File "/home/pi/DoorPi/doorpi/sipphone/by_pjsua.py", line 187, in destroy
if self.current_callcallback is not None:
AttributeError: Pjsua instance has no attribute 'current_callcallback'
Unhandled exception in thread started by
sys.excepthook is missing
lost sys.stderr

[ERROR] [keyboard.KeyboardInterface] could not load keyboard piface

2014-12-24 11:09:42,455 [ERROR] [keyboard.KeyboardInterface] could not load keyboard piface
Traceback (most recent call last):
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 36, in autodetect
try: return load_piface(input_pins, output_pins)
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 46, in load_piface
import keyboard.from_piface
File "/home/pi/DoorPi/doorpi/keyboard/from_piface.py", line 10, in
import piface.pfio # basic for PiFce control
ImportError: No module named piface.pfio

Key -1 pressed

Key -1 nicht gesetzt. Ist dennoch gedrückt.
Kein PiFace vorhanden, nur GPIO.

2014-12-29 14:43:51,478 [INFO] [doorpi] DoorPi.run: Key -1 is pressed
2014-12-29 14:43:51,480 [TRACE] [conf.config_object] get for key -1 in section InputPins (default: )
2014-12-29 14:43:51,482 [TRACE] [conf.config_object] get_string for key -1 in section InputPins (default: )
2014-12-29 14:43:51,485 [TRACE] [conf.config_object] key '-1' doesn't exist in section 'InputPins'
2014-12-29 14:43:51,497 [TRACE] [conf.config_object] return default '
2014-12-29 14:43:51,499 [DEBUG] [doorpi] start action:
2014-12-29 14:43:51,501 [DEBUG] [doorpi] fire_action () and secure_source is True
2014-12-29 14:43:51,504 [DEBUG] [doorpi] couldn't find action or source was not set to secure
2014-12-29 14:43:51,506 [TRACE] [doorpi] get event(event_name = AfterKeyPressed, additional_informations = {'LastKey': 'NotSetYet'}, secure_source = True)
2014-12-29 14:43:51,516 [TRACE] [conf.config_object] get_keys for section AfterKeyPressed

Readme und Wiki überarbeiten

Ich brauche echt Hilfe beim Überarbeiten von Readme und Wiki. Das kostet so viel Zeit und stimmt mit jedem commit weniger zum aktuellen Stand.

Wer kann mir helfen, Struktur und Inhalte der Dokumentationen auf einen aktuellen Stand zu heben?

Logfile Error mit GPIO

Habe Probleme mit der DoorPi.pid und den GPIOs. Nutze kein Piface.
Anbei das LOG. Frohe Weihnachten, viel Grüße und vielen Dank für dein Projekt!!

2014-12-24 11:09:40,889 [DEBUG] [doorpi] init
2014-12-24 11:09:40,896 [ERROR] [root] Exception NameError: PID file '/var/run/doorpi.pid' not locked
Traceback (most recent call last):
File "/home/pi/DoorPi//doorpi/service.py", line 44, in
try: daemon_runner.do_action()
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 186, in do_action
func(self)
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 149, in stop
"PID file %(pidfile_path)r not locked" % vars())
DaemonRunnerStopFailureError: PID file '/var/run/doorpi.pid' not locked
2014-12-24 11:09:40,901 [DEBUG] [doorpi] destroy
2014-12-24 11:09:40,903 [TRACE] [doorpi] get event(event_name = OnShutdown, additional_informations = {}, secure_source = True)
2014-12-24 11:09:41,833 [DEBUG] [doorpi] init
2014-12-24 11:09:42,340 [DEBUG] [doorpi] run
2014-12-24 11:09:42,343 [DEBUG] [doorpi] prepare
2014-12-24 11:09:42,345 [DEBUG] [doorpi] parse_argv
2014-12-24 11:09:42,378 [DEBUG] [doorpi] givven arguments argv: Namespace(configfile=<open file '/home/pi/DoorPi/conf/doorpi.ini', mode 'r' at 0xb679f6a8>)
2014-12-24 11:09:42,381 [DEBUG] [doorpi] load_config (<open file '/home/pi/DoorPi/conf/doorpi.ini', mode 'r' at 0xb679f6a8>)
2014-12-24 11:09:42,383 [DEBUG] [doorpi] use configfile: /home/pi/DoorPi/conf/doorpi.ini
2014-12-24 11:09:42,409 [DEBUG] [conf.config_object] init
2014-12-24 11:09:42,411 [TRACE] [conf.config_object] get_from_config
2014-12-24 11:09:42,428 [TRACE] [conf.config_object] get for key keyboard in section DoorPi (default: autodetect)
2014-12-24 11:09:42,430 [TRACE] [conf.config_object] get_string for key keyboard in section DoorPi (default: autodetect)
2014-12-24 11:09:42,432 [TRACE] [conf.config_object] key 'keyboard' exist in section 'DoorPi' with value 'autodetect'
2014-12-24 11:09:42,435 [TRACE] [conf.config_object] get_keys for section InputPins
2014-12-24 11:09:42,437 [TRACE] [conf.config_object] get_keys for section OutputPins
2014-12-24 11:09:42,439 [TRACE] [keyboard.KeyboardInterface] autodetect
2014-12-24 11:09:42,441 [TRACE] [keyboard.KeyboardInterface] load_piface
2014-12-24 11:09:42,446 [DEBUG] [keyboard.from_piface] keyboard.from_piface loaded
2014-12-24 11:09:42,450 [DEBUG] [keyboard.AbstractBaseClass] keyboard.AbstractBaseClass loaded
2014-12-24 11:09:42,455 [ERROR] [keyboard.KeyboardInterface] could not load keyboard piface
Traceback (most recent call last):
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 36, in autodetect
try: return load_piface(input_pins, output_pins)
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 46, in load_piface
import keyboard.from_piface
File "/home/pi/DoorPi/doorpi/keyboard/from_piface.py", line 10, in
import piface.pfio # basic for PiFce control
ImportError: No module named piface.pfio
2014-12-24 11:09:42,460 [TRACE] [keyboard.KeyboardInterface] load_gpio
2014-12-24 11:09:42,464 [DEBUG] [keyboard.from_gpio] keyboard.from_gpio loaded
2014-12-24 11:09:42,473 [DEBUG] [keyboard.from_gpio] GPIO.init(input_pins = ['18'], output_pins = ['3', '2', '4'])
2014-12-24 11:09:42,478 [ERROR] [root] Exception NameError: type object 'GPIO' has no attribute 'BCM'
Traceback (most recent call last):
File "/home/pi/DoorPi//doorpi/service.py", line 44, in
try: daemon_runner.do_action()
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 186, in do_action
func(self)
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 131, in start
self.app.run()
File "/home/pi/DoorPi/doorpi/doorpi.py", line 124, in run
self.prepare()
File "/home/pi/DoorPi/doorpi/doorpi.py", line 72, in prepare
self.__keyboard = detect_keyboard()
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 30, in detect_keyboard
output_pins = doorpi.DoorPi().config.get_keys('OutputPins')
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 39, in autodetect
try: return load_gpio(input_pins, output_pins)
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 57, in load_gpio
output_pins = output_pins
File "/home/pi/DoorPi/doorpi/keyboard/from_gpio.py", line 28, in init
RPiGPIO.setmode(GPIO.BCM)
AttributeError: type object 'GPIO' has no attribute 'BCM'
2014-12-24 11:09:42,487 [DEBUG] [doorpi] destroy
2014-12-24 11:09:42,490 [TRACE] [doorpi] get event(event_name = OnShutdown, additional_informations = {}, secure_source = True)
2014-12-24 11:09:42,492 [TRACE] [conf.config_object] get_keys for section OnShutdown
2014-12-24 11:09:42,494 [TRACE] [doorpi] fire action 20 for event OnShutdown
2014-12-24 11:09:42,497 [TRACE] [conf.config_object] get for key 20 in section OnShutdown (default: )
2014-12-24 11:09:42,499 [TRACE] [conf.config_object] get_string for key 20 in section OnShutdown (default: )
2014-12-24 11:09:42,501 [TRACE] [conf.config_object] key '20' exist in section 'OnShutdown' with value 'mailto:**
@gmail.com,DoorPi:OnShutdown,DoorPi down'
2014-12-24 11:09:42,503 [DEBUG] [doorpi] fire_action (mailto:**
@gmail.com,DoorPi:OnShutdown,DoorPi down) and secure_source is True
2014-12-24 11:09:42,506 [TRACE] [conf.config_object] get for key server in section SMTP (default: )
2014-12-24 11:09:42,508 [TRACE] [conf.config_object] get_string for key server in section SMTP (default: )
2014-12-24 11:09:42,510 [TRACE] [conf.config_object] key 'server' exist in section 'SMTP' with value 'smtp.gmail.com'
2014-12-24 11:09:42,512 [TRACE] [conf.config_object] get_int for key port in section SMTP (default: -1)
2014-12-24 11:09:42,514 [TRACE] [conf.config_object] get_string for key port in section SMTP (default: )
2014-12-24 11:09:42,516 [TRACE] [conf.config_object] key 'port' exist in section 'SMTP' with value '587'
2014-12-24 11:09:42,518 [TRACE] [conf.config_object] get for key username in section SMTP (default: )
2014-12-24 11:09:42,521 [TRACE] [conf.config_object] get_string for key username in section SMTP (default: )
2014-12-24 11:09:42,523 [TRACE] [conf.config_object] key 'username' exist in section 'SMTP' with value ‚[email protected]'
2014-12-24 11:09:42,525 [TRACE] [conf.config_object] get for key password in section SMTP (default: )
2014-12-24 11:09:42,527 [TRACE] [conf.config_object] get_string for key password in section SMTP (default: )
2014-12-24 11:09:42,529 [TRACE] [conf.config_object] key 'password' exist in section 'SMTP' with value '
_****'
2014-12-24 11:09:42,532 [TRACE] [conf.config_object] get for key from in section SMTP (default: )
2014-12-24 11:09:42,534 [TRACE] [conf.config_object] get_string for key from in section SMTP (default: )
2014-12-24 11:09:42,536 [TRACE] [conf.config_object] key 'from' exist in section 'SMTP' with value 'Sprechanlage'
2014-12-24 11:09:42,976 [TRACE] [conf.config_object] get for key use_tls in section SMTP (default: )
2014-12-24 11:09:42,978 [TRACE] [conf.config_object] get_string for key use_tls in section SMTP (default: )
2014-12-24 11:09:42,980 [TRACE] [conf.config_object] key 'use_tls' exist in section 'SMTP' with value 'true'
2014-12-24 11:09:43,218 [TRACE] [conf.config_object] get for key need_login in section SMTP (default: )
2014-12-24 11:09:43,221 [TRACE] [conf.config_object] get_string for key need_login in section SMTP (default: )
2014-12-24 11:09:43,223 [TRACE] [conf.config_object] key 'need_login' exist in section 'SMTP' with value 'true'
2014-12-24 11:09:45,204 [DEBUG] [keyboard.from_gpio] GPIO.destroy()

Anbindung Webservice IP-Symcon

Hallo Thomas,

habe damit begonnen doorpi mit einer Anbindung zum IP-Symcon (http://www.ip-symcon.de) auszustatten. IP-Symcon ist ein Smarthome Anwendung, welche verschiedene Hardware miteinander verbinden kann.

Die Kommunikation zu IP-Symcon lässt sich über ein API (siehe hierzu Forenbeitrag: http://www.ip-symcon.de/forum/threads/26516-JSON-RPC-%C3%BCber-Python?highlight=python+rpc) herstellen.

Beschreibung der API in IP-Symcon findet man hier: http://www.ip-symcon.de/service/dokumentation/entwicklerbereich/datenaustausch/

Mein Ziel ist es eventgesteuert aus doorpi Variablen in IP-Symcon zu verändern.

Dazu folgender Eintrag in der doorpi.cfg

[EVENT_OnCallStateConnect]
10 = out:1,1
20 = ipsrpc:40276,TRUE

[EVENT_OnCallStateDisconnect]
10 = out:1,0
20 = ipsrpc:40276,FALSE[/code]

40276 ist meine Variablennummer des Typs BOOLEAN in IP-Symcon.

und folgendes script im Ordner: /home/pi/doorpi/doorpi/action/SingleActions/ipsrpc.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import logging
logger = logging.getLogger(__name__)
logger.debug("%s loaded", __name__)

import doorpi
import requests
import json
from requests.auth import HTTPBasicAuth
from action.base import SingleAction

def IpsRpc(methodIps, paramIps):
    try:
        url = "http://192.168.178.5:82/api/"
        auth=HTTPBasicAuth('user', 'password')
        headers = {'content-type': 'application/json'}

        payload = {
           "method": methodIps,
           "params": paramIps,
           "jsonrpc": "2.0",
           "id": 0,
        }
        response = requests.post(url, auth=auth, data=json.dumps(payload), headers=headers).json
        logger.debug(response)
    except:
        logger.exception("couldn't send IpsRpc")
        return False
    return True

def get(parameters):
    parameter_list = parameters.split(',')
    if len(parameter_list) is not 2: return None

    variable = parameter_list[0]
    value = parameter_list[1]

    return IpsRpcAction(IpsRpc, "SetValue", [variable,value])

class IpsRpcAction(SingleAction):
    pass

Die Events werden im doorpi.log geladen und auch beim entsprechenden event ausgelöst, jedoch geht keine Message an IP-Symcon. Ich bin mit meinem "Latein" am Ende und komme hier nicht weiter.

Mit Wireshark kann ich keinen Netzwerkverkehr zwischen doorpi (192.168.178.9) und IP-Symcon (192.168.178.5) feststellen.

Hast Du evtl eine Idee ?

Falls wir das hinkriegen würde ich im IP-Symcon Forum mal die Brücke zu Deinem doorpie Projekt schlagen, da dort auch öfters nach einer intelligenten "Klingellösung" gesucht wird. Wäre doch gelacht, wenn Du die 10 Votes für den Banana Pi nicht zusammenkriegen würdest ;-)

Gruß,
Hermann

[ERROR] [action.handler] error while fire action PjsipHandleEventsAction with args () and kwargs {'timeout': 50} for event_name OnTimeTick

Fehlermeldung:

C2015-01-27 22:42:24,050 [ERROR]       [action.handler] error while fire action PjsipHandleEventsAction with args () and kwargs {'timeout': 50} for event_name OnTimeTick
Traceback (most recent call last):
  File "/home/pi/doorpi/doorpi/action/handler.py", line 140, in fire_event_synchron
    action.run(silent)
  File "/home/pi/doorpi/doorpi/action/base.py", line 48, in run
    return self.__callback(**self.__kwargs)
  File "/home/pi/doorpi/doorpi/action/SingleActions/pjsip_handle_events.py", line 15, in pjsip_handle_events
    doorpi.DoorPi().sipphone.lib.handle_events(timeout)
  File "/usr/local/lib/python2.7/dist-packages/pjsua.py", line 2258, in handle_events
    return _pjsua.handle_events(timeout)
KeyboardInterrupt

Update-Routine für DoorPI

Ich hatte gerade das Problem das sich ja die pjsua ja in den letzen zwei Tagen geändert hat.
Der Befehl "sudo git pull" konnte mein Problem jedoch nicht lösen. Ich musste daher DoorPI neu installieren. Eine Update-Routine wäre daher super.

PS: Ohne die Hilfe von Hermann hätte ich das natürlich wieder nicht hinbekommen !!!

DoorPi bleibt hängen bei [sipphone.by_pjsua] dialtone is missing or not readable - create it now

Der Start von DoorPi (meistens kurz nach Installation) bleibt einfach hängen:

2015-01-31 17:33:59,641 [INFO]      [__main__] loaded with arguments: ['/home/pi/DoorPI/doorpi/main.py', 'start', '--configfile', '/home/pi/DoorPI/conf/doorpi.cfg']
2015-01-31 17:34:00,141 [DEBUG]     [doorpi] run
2015-01-31 17:34:00,145 [DEBUG]     [doorpi] prepare
2015-01-31 17:34:00,148 [DEBUG]     [doorpi] givven arguments argv: Namespace(configfile=<open file '/home/pi/DoorPI/conf/doorpi.cfg', mode 'r' at 0xb66e6498>)
2015-01-31 17:34:00,153 [DEBUG]     [conf.config_object] load_config (<open file '/home/pi/DoorPI/conf/doorpi.cfg', mode 'r' at 0xb66e6498>)
2015-01-31 17:34:00,156 [DEBUG]     [conf.config_object] use configfile: /home/pi/DoorPI/conf/doorpi.cfg
2015-01-31 17:34:00,182 [DEBUG]     [conf.config_object] __init__
2015-01-31 17:34:00,185 [TRACE]     [conf.config_object] get_from_config
2015-01-31 17:34:00,200 [TRACE]     [conf.config_object] get for key typ in section keyboard (default: autodetect)
2015-01-31 17:34:00,203 [TRACE]     [conf.config_object] get_string for key typ in section keyboard (default: autodetect)
2015-01-31 17:34:00,206 [TRACE]     [conf.config_object] key 'typ' exist in section 'keyboard' with value 'gpio'
2015-01-31 17:34:00,210 [TRACE]     [conf.config_object] get_int for key bouncetime in section keyboard (default: 5000)
2015-01-31 17:34:00,213 [TRACE]     [conf.config_object] get_string for key bouncetime in section keyboard (default: )
2015-01-31 17:34:00,216 [TRACE]     [conf.config_object] key 'bouncetime' doesn't exist in section 'keyboard' 
2015-01-31 17:34:00,219 [TRACE]     [conf.config_object] return default '
2015-01-31 17:34:00,222 [TRACE]     [conf.config_object] get_keys for section InputPins
2015-01-31 17:34:00,225 [TRACE]     [conf.config_object] get_keys for section OutputPins
2015-01-31 17:34:00,228 [TRACE]     [keyboard.KeyboardInterface] load_gpio
2015-01-31 17:34:00,235 [DEBUG]     [keyboard.from_gpio] keyboard.from_gpio loaded
2015-01-31 17:34:00,246 [DEBUG]     [keyboard.AbstractBaseClass] keyboard.AbstractBaseClass loaded
2015-01-31 17:34:00,251 [DEBUG]     [keyboard.from_gpio] GPIO.__init__(input_pins = ['11', '13'], output_pins = ['18', '12', '16'])
2015-01-31 17:34:00,255 [TRACE]     [action.handler] register Event OnKeyPressed from keyboard.from_gpio 
2015-01-31 17:34:00,258 [DEBUG]     [action.handler] event_source keyboard.from_gpio was added
2015-01-31 17:34:00,261 [TRACE]     [action.handler] added event_name OnKeyPressed an register source keyboard.from_gpio
2015-01-31 17:34:00,270 [TRACE]     [action.handler] register Event OnKeyPressed_11 from keyboard.from_gpio 
2015-01-31 17:34:00,283 [TRACE]     [action.handler] added event_name OnKeyPressed_11 an register source keyboard.from_gpio
2015-01-31 17:34:00,288 [TRACE]     [action.handler] register Event OnKeyPressed_13 from keyboard.from_gpio 
2015-01-31 17:34:00,295 [TRACE]     [action.handler] added event_name OnKeyPressed_13 an register source keyboard.from_gpio
2015-01-31 17:34:00,300 [DEBUG]     [doorpi] Keyboard is now GPIO Keyboard
2015-01-31 17:34:00,425 [DEBUG]     [sipphone.by_pjsua] sipphone.by_pjsua loaded
2015-01-31 17:34:00,474 [DEBUG]     [sipphone.pjsua_lib.SipPhoneAccountCallBack] sipphone.pjsua_lib.SipPhoneAccountCallBack loaded
2015-01-31 17:34:00,480 [DEBUG]     [sipphone.pjsua_lib.SipPhoneCallCallBack] sipphone.pjsua_lib.SipPhoneCallCallBack loaded
2015-01-31 17:34:00,497 [TRACE]     [conf.config_object] get for key record_while_dialing in section DoorPi (default: False)
2015-01-31 17:34:00,500 [TRACE]     [conf.config_object] get_string for key record_while_dialing in section DoorPi (default: False)
2015-01-31 17:34:00,517 [TRACE]     [conf.config_object] key 'record_while_dialing' exist in section 'DoorPi' with value 'true'
2015-01-31 17:34:00,520 [DEBUG]     [sipphone.by_pjsua] __init__
2015-01-31 17:34:00,533 [TRACE]     [action.handler] register Event OnSipPhoneCreate from sipphone.by_pjsua 
2015-01-31 17:34:00,537 [DEBUG]     [action.handler] event_source sipphone.by_pjsua was added
2015-01-31 17:34:00,540 [TRACE]     [action.handler] added event_name OnSipPhoneCreate an register source sipphone.by_pjsua
2015-01-31 17:34:00,553 [TRACE]     [action.handler] register Event OnSipPhoneStart from sipphone.by_pjsua 
2015-01-31 17:34:00,556 [TRACE]     [action.handler] added event_name OnSipPhoneStart an register source sipphone.by_pjsua
2015-01-31 17:34:00,559 [TRACE]     [action.handler] register Event OnSipPhoneDestroy from sipphone.by_pjsua 
2015-01-31 17:34:00,573 [TRACE]     [action.handler] added event_name OnSipPhoneDestroy an register source sipphone.by_pjsua
2015-01-31 17:34:00,576 [TRACE]     [action.handler] register Event OnSipPhoneRecorderCreate from sipphone.by_pjsua 
2015-01-31 17:34:00,579 [TRACE]     [action.handler] added event_name OnSipPhoneRecorderCreate an register source sipphone.by_pjsua
2015-01-31 17:34:00,582 [TRACE]     [action.handler] register Event OnSipPhoneRecorderDestroy from sipphone.by_pjsua 
2015-01-31 17:34:00,596 [TRACE]     [action.handler] added event_name OnSipPhoneRecorderDestroy an register source sipphone.by_pjsua
2015-01-31 17:34:00,599 [TRACE]     [action.handler] register Event OnSipPhoneMakeCall from sipphone.by_pjsua 
2015-01-31 17:34:00,602 [TRACE]     [action.handler] added event_name OnSipPhoneMakeCall an register source sipphone.by_pjsua
2015-01-31 17:34:00,618 [DEBUG]     [action.SingleActions.sleep] action.SingleActions.sleep loaded
2015-01-31 17:34:00,633 [TRACE]     [action.handler] action SleepAction with args (0.5,) and kwargs {} was added to new evententry AfterCallStateDisconnect
2015-01-31 17:34:00,637 [TRACE]     [action.handler] action <bound method Pjsua.cleanup_after_call of <sipphone.by_pjsua.Pjsua instance at 0xb5dfae90>> with args () and kwargs {} was added to event AfterCallStateDisconnect
2015-01-31 17:34:00,641 [TRACE]     [action.handler] fire Event OnSipPhoneCreate from sipphone.by_pjsua asyncron
2015-01-31 17:34:00,683 [DEBUG]     [action.handler] no actions for event OnSipPhoneCreate - skip fire_event OnSipPhoneCreate from sipphone.by_pjsua
2015-01-31 17:34:00,667 [DEBUG]     [sipphone.by_pjsua] init Lib
2015-01-31 17:34:00,689 [DEBUG]     [sipphone.by_pjsua] CreateUAConfig
2015-01-31 17:34:00,692 [DEBUG]     [sipphone.by_pjsua] CreateMediaConfig
2015-01-31 17:34:00,698 [DEBUG]     [sipphone.by_pjsua] CreateLogConfig
2015-01-31 17:34:01,044 [DEBUG]     [sipphone.by_pjsua] init transport
2015-01-31 17:34:01,047 [DEBUG]     [sipphone.by_pjsua] CreateTransportConfig
2015-01-31 17:34:01,054 [DEBUG]     [sipphone.by_pjsua] Lib.start()
2015-01-31 17:34:01,058 [DEBUG]     [sipphone.by_pjsua] init Acc
2015-01-31 17:34:01,061 [DEBUG]     [sipphone.by_pjsua] CreateAccountConfig
2015-01-31 17:34:01,066 [TRACE]     [conf.config_object] get for key server in section SIP-Phone (default: )
2015-01-31 17:34:01,070 [TRACE]     [conf.config_object] get_string for key server in section SIP-Phone (default: )
2015-01-31 17:34:01,073 [TRACE]     [conf.config_object] key 'server' exist in section 'SIP-Phone' with value '192.168.10.1'
2015-01-31 17:34:01,076 [TRACE]     [conf.config_object] get for key username in section SIP-Phone (default: )
2015-01-31 17:34:01,079 [TRACE]     [conf.config_object] get_string for key username in section SIP-Phone (default: )
2015-01-31 17:34:01,083 [TRACE]     [conf.config_object] key 'username' exist in section 'SIP-Phone' with value '621'
2015-01-31 17:34:01,086 [TRACE]     [conf.config_object] get for key password in section SIP-Phone (default: )
2015-01-31 17:34:01,089 [TRACE]     [conf.config_object] get_string for key password in section SIP-Phone (default: )
2015-01-31 17:34:01,092 [TRACE]     [conf.config_object] key 'password' exist in section 'SIP-Phone' with value '*******'
2015-01-31 17:34:01,095 [TRACE]     [conf.config_object] get for key realm in section SIP-Phone (default: )
2015-01-31 17:34:01,098 [TRACE]     [conf.config_object] get_string for key realm in section SIP-Phone (default: )
2015-01-31 17:34:01,101 [TRACE]     [conf.config_object] key 'realm' exist in section 'SIP-Phone' with value 'fritz.box'
2015-01-31 17:34:01,104 [INFO]      [sipphone.by_pjsua] try to create AccountConfig
2015-01-31 17:34:01,107 [DEBUG]     [sipphone.by_pjsua] username:     621
2015-01-31 17:34:01,111 [DEBUG]     [sipphone.by_pjsua] password:     ******
2015-01-31 17:34:01,114 [DEBUG]     [sipphone.by_pjsua] server:       192.168.10.1
2015-01-31 17:34:01,119 [DEBUG]     [sipphone.by_pjsua] realm:        fritz.box
2015-01-31 17:34:01,122 [DEBUG]     [sipphone.pjsua_lib.SipPhoneAccountCallBack] __init__
2015-01-31 17:34:01,126 [TRACE]     [action.handler] register Event BeforeCallIncoming from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,129 [DEBUG]     [action.handler] event_source sipphone.pjsua_lib.SipPhoneAccountCallBack was added
2015-01-31 17:34:01,132 [TRACE]     [action.handler] added event_name BeforeCallIncoming an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,141 [TRACE]     [action.handler] register Event OnCallReconnect from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,145 [TRACE]     [action.handler] added event_name OnCallReconnect an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,148 [TRACE]     [action.handler] register Event AfterCallReconnect from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,151 [TRACE]     [action.handler] added event_name AfterCallReconnect an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,155 [TRACE]     [action.handler] register Event OnCallBusy from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,158 [TRACE]     [action.handler] added event_name OnCallBusy an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,161 [TRACE]     [action.handler] register Event AfterCallBusy from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,164 [TRACE]     [action.handler] added event_name AfterCallBusy an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,169 [TRACE]     [action.handler] register Event OnCallIncomming from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,172 [TRACE]     [action.handler] added event_name OnCallIncomming an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,175 [TRACE]     [action.handler] register Event AfterCallIncomming from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,178 [TRACE]     [action.handler] added event_name AfterCallIncomming an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,182 [TRACE]     [action.handler] register Event OnCallReject from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,185 [TRACE]     [action.handler] added event_name OnCallReject an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,188 [TRACE]     [action.handler] register Event AfterCallReject from sipphone.pjsua_lib.SipPhoneAccountCallBack 
2015-01-31 17:34:01,191 [TRACE]     [action.handler] added event_name AfterCallReject an register source sipphone.pjsua_lib.SipPhoneAccountCallBack
2015-01-31 17:34:01,198 [DEBUG]     [sipphone.by_pjsua] Listening on: 192.168.10.176
2015-01-31 17:34:01,202 [DEBUG]     [sipphone.by_pjsua] Port: 53879
2015-01-31 17:34:01,205 [TRACE]     [conf.config_object] get for key dialtone in section DoorPi (default: )
2015-01-31 17:34:01,208 [TRACE]     [conf.config_object] get_string for key dialtone in section DoorPi (default: )
2015-01-31 17:34:01,212 [TRACE]     [conf.config_object] key 'dialtone' exist in section 'DoorPi' with value '!BASEPATH!/doorpi/media/ShortDialTone.wav'
2015-01-31 17:34:01,215 [DEBUG]     [sipphone.by_pjsua] dialtone is missing or not readable - create it now

DoorPi Hardware Board ( LCD 16x2 / Wiegand 26bit Bus / Platine ... )

Hallo Developer,

In einem anderen Issues geht es um das Feature RFID und deren anbindung, da ich versprochen habe mich um ein DoorPi Hardware Board zu kümmern mach ich das mal hier.
Da ich auch nicht all wissend bin bitte euch um eure Meinungen und mithilfe damit ich das Projekt ( LCD läuft schon ) ausbauen kann.
** LCD Display 16x2 ( http://1qr.at/T2 ) um Status von DoorPi auszugeben und um Probleme leichter zu lokalisieren

** DoorPi Gehäuse ( http://1qr.at/TS ) in dem der Raspberry , die Erweiterungsplatine , das LCD, PiFace platz finden soll
da ich das schon getestet habe sehe ich da kein Problem und alles ist aufgeräumt und für den Einbau in einen Verteiler vorbereitet, wo sich ja eigentlich eine Sprechanlage befinden sollte.

** Ausbau einer Wiegand 26 Schnittstelle / Bus der erstens im stande ist 100 Meter per Kabel minimum
2 adern zu überprücken, Optionale Features wie Beep oder LED usw benötigen zusätzliche adern
der Datenbus D1 und D0 kann an den GPIO`s per Python Script angebunden werden.
Vorteil des ganzen , es gibt sehr viele günstige Endgeräte ( http://1qr.at/TJ ) für den Wiegand 26bit Bus vom RDIF , Fingerprint, Code, ....

** Minimal Bedinung am DoorPi Geräuse neben dem LCD Display per taster die wiederum per
MCP23017-E/SP Ic Chip ( http://1qr.at/TV ) am Raspberry angebunden sind um so zum beispiel einen Reset Taster, ...

** Eine Real Time Clock würde ich in diesem fall auch noch am print verbauen.

Freu mich auf Feedback

Watchdog Statusmeldung auf /dev/watchdog

Anfrage per Mail:
Bitte Möglichkeit geben, zyklisch direkt mit dem Watchdog zu kommunizieren (/dev/watchdog).
Watchdog überwacht DoorPi und im Fehlerfall soll ein Reboot durchgeführt werden.

Exception NameError: No PiFace Digital board detected (hardware_addr=0, bus=0, chip_select=0).

Meldung aus Issue #17

2015-01-12 20:34:10,505 [DEBUG] [main] loaded with arguments: ['./main.py', '--configfile', '/home/pi/DoorPi/conf/doorpi.cfg']
2015-01-12 20:34:10,510 [DEBUG] [doorpi] init
2015-01-12 20:34:10,515 [DEBUG] [doorpi] run
2015-01-12 20:34:10,520 [DEBUG] [doorpi] prepare
2015-01-12 20:34:10,524 [DEBUG] [doorpi] givven arguments argv: Namespace(configfile=)
2015-01-12 20:34:10,530 [DEBUG] [conf.config_object] load_config ()
2015-01-12 20:34:10,535 [DEBUG] [conf.config_object] use configfile: /home/pi/DoorPi/conf/doorpi.cfg
2015-01-12 20:34:10,559 [DEBUG] [conf.config_object] init
2015-01-12 20:34:10,563 [TRACE] [conf.config_object] get_from_config
2015-01-12 20:34:10,583 [TRACE] [conf.config_object] get for key typ in section keyboard (default: autodetect)
2015-01-12 20:34:10,588 [TRACE] [conf.config_object] get_string for key typ in section keyboard (default: autodetect)
2015-01-12 20:34:10,592 [TRACE] [conf.config_object] section 'keyboard' doesn't exist
2015-01-12 20:34:10,597 [TRACE] [conf.config_object] return default 'autodetect
2015-01-12 20:34:10,602 [TRACE] [conf.config_object] get_int for key bouncetime in section keyboard (default: 5000)
2015-01-12 20:34:10,606 [TRACE] [conf.config_object] get_string for key bouncetime in section keyboard (default: )
2015-01-12 20:34:10,611 [TRACE] [conf.config_object] section 'keyboard' doesn't exist
2015-01-12 20:34:10,615 [TRACE] [conf.config_object] return default '
2015-01-12 20:34:10,620 [TRACE] [conf.config_object] get_keys for section InputPins
2015-01-12 20:34:10,626 [TRACE] [conf.config_object] get_keys for section OutputPins
2015-01-12 20:34:10,631 [TRACE] [keyboard.KeyboardInterface] autodetect
2015-01-12 20:34:10,635 [TRACE] [keyboard.KeyboardInterface] load_piface
2015-01-12 20:34:10,642 [DEBUG] [keyboard.from_piface] keyboard.from_piface loaded
2015-01-12 20:34:10,739 [DEBUG] [keyboard.AbstractBaseClass] keyboard.AbstractBaseClass loaded
2015-01-12 20:34:10,746 [DEBUG] [keyboard.from_piface] init(input_pins = ['11', '13', '15'], output_pins = ['18', '7', '16'])
2015-01-12 20:34:10,751 [TRACE] [action.handler] register Event OnKeyPressed from keyboard.from_piface
2015-01-12 20:34:10,755 [TRACE] [action.handler] register Eventsource keyboard.from_piface
2015-01-12 20:34:10,760 [DEBUG] [action.handler] event_source keyboard.from_piface was added
2015-01-12 20:34:10,764 [TRACE] [action.handler] added event_name OnKeyPressed an register source keyboard.from_piface
2015-01-12 20:34:10,925 [ERROR] [main] Exception NameError: No PiFace Digital board detected (hardware_addr=0, bus=0, chip_select=0).
Traceback (most recent call last):
File "./main.py", line 114, in main_as_application
try: doorpi.DoorPi(parsed_arguments).run()
File "/home/pi/DoorPi/doorpi/doorpi.py", line 174, in run
if not self.prepared: self.prepare(self.__parsed_arguments)
File "/home/pi/DoorPi/doorpi/doorpi.py", line 99, in prepare
self.__keyboard = load_keyboard()
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 35, in load_keyboard
bouncetime = bouncetime
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 41, in autodetect
try: return load_piface(input_pins, output_pins, bouncetime)
File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 54, in load_piface
output_pins = output_pins
File "/home/pi/DoorPi/doorpi/keyboard/from_piface.py", line 41, in __init
p.init()
File "/usr/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 166, in init
raise failed_boards[0]
NoPiFaceDigitalDetectedError: No PiFace Digital board detected (hardware_addr=0, bus=0, chip_select=0).
2015-01-12 20:34:10,940 [DEBUG] [doorpi] destroy
2015-01-12 20:34:10,945 [WARNING] [action.handler] source doorpi unknown - skip fire_event OnShutdown
2015-01-12 20:34:10,949 [TRACE] [action.handler] unregister Eventsource doorpi and force_unregister is True
2015-01-12 20:34:10,954 [DEBUG] [keyboard.from_piface] destroy
Exception pifacedigitalio.core.NoPiFaceDigitalError: NoPiFaceDigitalError('There is no PiFace Digital with hardware_addr 0',) in > ignored
pi@doorberry ~/DoorPi/doorpi $

Exception NameError: list index out of range

Fehlermeldung aus dem Forum:
http://www.forum-raspberrypi.de/Thread-haussteuerung-doorpi-voip-wechselsprechanlage-tuersprechanlage?pid=126878#pid126878

2015-01-10 16:48:19,379 [DEBUG]         [keyboard.from_piface] __init__(input_pins = ['11', '13', '15'], output_pins = ['18', '7', '16'])
...
2015-01-10 16:48:19,726 [ERROR]         [__main__] Exception NameError: list index out of range
Traceback (most recent call last):
  File "/home/pi/DoorPi/doorpi/main.py", line 114, in main_as_application
    try:                        doorpi.DoorPi(parsed_arguments).run()
  File "/home/pi/DoorPi/doorpi/doorpi.py", line 174, in run
    if not self.__prepared: self.prepare(self.__parsed_arguments)
  File "/home/pi/DoorPi/doorpi/doorpi.py", line 99, in prepare
    self.__keyboard = load_keyboard()
  File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 35, in load_keyboard
    bouncetime = bouncetime
  File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 41, in autodetect
    try: return load_piface(input_pins, output_pins, bouncetime)
  File "/home/pi/DoorPi/doorpi/keyboard/KeyboardInterface.py", line 54, in load_piface
    output_pins = output_pins
  File "/home/pi/DoorPi/doorpi/keyboard/from_piface.py", line 51, in __init__
    self.set_output(output_pin, 0, False)
  File "/home/pi/DoorPi/doorpi/keyboard/from_piface.py", line 108, in set_output
    p.digital_write(pin, value)
  File "/usr/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 226, in digital_write
    _get_pifacedigital(hardware_addr).output_pins[pin_num].value = value
IndexError: list index out of range
2015-01-10 16:48:19,753 [DEBUG]         [doorpi] destroy

RFID-Reader zum Türöffnen

Wunsch per Mail von @pmunz

Was hältst du einen RFID Receiver einzubinden ?
Immer mehr Menschen fordern die Transponder
Ob Aufkleber oder karte .

Ich hab das schon am laufen aber halt alles leihen Haft
Da python nicht so meins ist .

Ich hab den Reader per serieller schittstelle UART
An den gpio s angebunden , ein display begrüßt mich per Namen
Das Display ( per i2c bus ) kann ja optional sein.
Ein kleines User Management hatte ich im
Python code

I2c wäre auch möglich da wir dir busadresse
Im Python Code zusätzlich zum piface
Vergeben können / könnten.

GPIO Problem: unexpected keyword 'pin'

Habe mal ein Problem mit den GPIOS.. dachte dass jetzt soweit alles funktioniert aber beim start von DoorPi stellt er mir meine Output Pins auf Input um.
Außerdem beendet sich DoorPi nach dem Start sofort wieder.

Hier der Error im Log:

2014-12-27 18:04:31,843 [ERROR] [root] Exception NameError: set_output() got an unexpected keyword argument 'pin'
Traceback (most recent call last):
File "/home/pi/DoorPi//doorpi/service.py", line 44, in
try: daemon_runner.do_action()
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 186, in do_action
func(self)
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 131, in _start
self.app.run()
File "/home/pi/DoorPi/doorpi/doorpi.py", line 147, in run
if led is not '': self.is_alive_led(led)
File "/home/pi/DoorPi/doorpi/doorpi.py", line 168, in is_alive_led
log_output = False
TypeError: set_output() got an unexpected keyword argument 'pin'
2014-12-27 18:04:31,851 [DEBUG] [doorpi] destroy

Dashboard für den Webservice

Es besteht der Wunsch, ein Dashboard für den Webservice anzubieten.
Die empfangenen Dateien sollen übersichtlich und strukturiert dargestellt werden.
Optional soll das Dashboard erweitert werden können.
Komponenten sind:

  • DoorPi Allgemeiner Zustand
  • Zustand und Konfiguration Inputs / Outputs
  • Events und Actions
  • Logdateien anzeigen
  • Konfiguration anzeigen / bearbeiten (Drag&Drop?)
  • ...

DoorPi liefert 80% bis 90% CPU-Last

die while-Schleife in doorpi.py wird zu schnell durchlaufen, vielleicht würde ein time.sleep(0.1) helfen?
Das wirkt sich negativ auf z.B. die Sprachqualität aus. Auch die Wiedergabe vom DialTone hört sich dadurch komisch an.

Watchdog Statusfile anbieten

Anfrage per Mail:
Bitte Möglichkeit geben, zyklisch eine Status-Datei schreiben zu lassen.
Diese soll dann vom Watchdog überwacht werden und im Fehlerfall ein Reboot durchgeführt werden.

insserv: script doorpi is not an executable regular file, skipped!

while execute Doorpi.install comes following error message:

  • Install DoorPin service
    update-rc.d: using dependency based boot sequencing
    update-rc.d: warning: start runlevel arguments (none) do not match doorpi Default-Start values (2 3 4 5)
    update-rc.d: warning: stop runlevel arguments (none) do not match doorpi Default-Stop values (0 1 6)
    insserv: script doorpi is not an executable regular file, skipped!
    update-rc.d: using dependency based boot sequencing
    update-rc.d: warning: start runlevel arguments (none) do not match doorpi Default-Start values (2 3 4 5)
    update-rc.d: warning: stop runlevel arguments (none) do not match doorpi Default-Stop values (0 1 6)
    insserv: script doorpi is not an executable regular file, skipped!

Exception NameError: PID file '/var/run/doorpi.pid' not locked

2014-12-24 11:09:40,889 [DEBUG] [doorpi] init
2014-12-24 11:09:40,896 [ERROR] [root] Exception NameError: PID file '/var/run/doorpi.pid' not locked
Traceback (most recent call last):
File "/home/pi/DoorPi//doorpi/service.py", line 44, in
try: daemon_runner.do_action()
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 186, in do_action
func(self)
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 149, in stop
"PID file %(pidfile_path)r not locked" % vars())
DaemonRunnerStopFailureError: PID file '/var/run/doorpi.pid' not locked

Video-Support erbeten

Bitte Video-Support hinzufügen. Es sollen PiCam oder Netzwerkkamera unterstützt werden.

keyboard mittels wiringX

https://github.com/wiringX/wiringX

Vorteile:

  • Übergreifend für alle Boards wie Raspberry Pi, Hummingboard, BananaPi, Radxa Rock
  • "GPIO reading, writing, and interrupts" und "IC2 reading and writing"

Als zusätzliches Keyboard sicherlich nicht falsch, zumal die Anbindung neuer Keyboards recht gut gekapselt ist. Eventuell im Zusammenhang mit Re-Design der Keyboards #44

Restart von DoorPi führt zu "AttributeError: 'NoneType' object has no attribute 'get_keys'"

sudo /etc/init.d/doorpi restart fürht zu dem Fehler:

pi@doorpi ~ $ sudo /etc/init.d/doorpi stop
Stopping server
Traceback (most recent call last):
File "/home/pi/DoorPi//doorpi/service.py", line 46, in
finally: doorpi.DoorPi().destroy()
File "/home/pi/DoorPi/doorpi/doorpi.py", line 106, in destroy
self.fire_event('OnShutdown')
File "/home/pi/DoorPi/doorpi/doorpi.py", line 170, in fire_event
for action in sorted(self.get_config().get_keys(event_name)):
AttributeError: 'NoneType' object has no attribute 'get_keys'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.