Oh… that was not mentioned in the docs that you would get different logs if you specified something other than STDOUT and ERROUT. I thought I was getting the full logs.
2018-02-02 07:53:08.689476 WARNING ------------------------------------------------------------
2018-02-02 07:53:08.689581 WARNING Unexpected error during loading of hello.py:
2018-02-02 07:53:08.689656 WARNING ------------------------------------------------------------
2018-02-02 07:53:08.690786 WARNING Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/appdaemon/appdaemon.py", line 901, in read_app
conf.modules[module_name] = importlib.import_module(module_name)
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 665, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/home/mr_house/homeassistant/apps/hello.py", line 1, in <module>
import appdaemon.plugins.hass.hassapi as hass
ImportError: No module named 'appdaemon.plugins'
I can’t imagine why there is no appdaemon.plugins… I did a sudo pip3 install appdaemon and nothing was missing.
Requirement already satisfied: appdaemon in /usr/local/lib/python3.5/dist-packages
Requirement already satisfied: async in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: iso8601 in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: daemonize in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: aiohttp>=2.2.3 in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: aiohttp-jinja2 in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: Jinja2>=2.9.5 in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: websocket-client in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: bcrypt in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: sseclient in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: requests>=2.6.0 in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: feedparser in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: astral in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: configparser in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: voluptuous in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: pyyaml in /usr/local/lib/python3.5/dist-packages (from appdaemon)
Requirement already satisfied: chardet in /usr/local/lib/python3.5/dist-packages (from aiohttp>=2.2.3->appdaemon)
Requirement already satisfied: multidict>=4.0.0 in /usr/local/lib/python3.5/dist-packages (from aiohttp>=2.2.3->appdaemon)
Requirement already satisfied: yarl>=1.0.0 in /usr/local/lib/python3.5/dist-packages (from aiohttp>=2.2.3->appdaemon)
Requirement already satisfied: idna-ssl>=1.0.0 in /usr/local/lib/python3.5/dist-packages (from aiohttp>=2.2.3->appdaemon)
Requirement already satisfied: async-timeout>=1.2.0 in /usr/local/lib/python3.5/dist-packages (from aiohttp>=2.2.3->appdaemon)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.5/dist-packages (from Jinja2>=2.9.5->appdaemon)
Requirement already satisfied: six in /usr/local/lib/python3.5/dist-packages (from websocket-client->appdaemon)
Requirement already satisfied: cffi>=1.1 in /usr/local/lib/python3.5/dist-packages (from bcrypt->appdaemon)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in /usr/local/lib/python3.5/dist-packages (from requests>=2.6.0->appdaemon)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.5/dist-packages (from requests>=2.6.0->appdaemon)
Requirement already satisfied: idna<2.7,>=2.5 in /usr/local/lib/python3.5/dist-packages (from requests>=2.6.0->appdaemon)
Requirement already satisfied: pytz in /usr/local/lib/python3.5/dist-packages (from astral->appdaemon)
Requirement already satisfied: pycparser in /usr/local/lib/python3.5/dist-packages (from cffi>=1.1->bcrypt->appdaemon)
Ahhh I figured it out… Goddamn it, I seriously wish this site would get the links cleaned up in the docs. All of my time has been wasted by the fact that it linked over to the old version of AppDaemon … which is erroneously listed as “LATEST” instead of /2.1.12/.
For anyone else if they happen by this in the future, the hello.py is also using the old code. Copy-Paste the new code from http://appdaemon.readthedocs.io/en/2.1.12/DASHBOARD_INSTALL.html because 2.1.12 imports differently now.
**import appdaemon.appapi as appapi**
#
# Hello World App
#
# Args:
#
**class HelloWorld(appapi.AppDaemon):**
def initialize(self):
self.log("Hello from AppDaemon")
self.log("You are now ready to run Apps!")
This affects the class instantiation as well. I tried to indicate the two lines that needed updating.