Jump to content

Uruchomienie pluginu z konsoli


pablocool

Recommended Posts

Czesc Mam pytanie do osób które conieco pisaly w pythonie dla enigmy. Otóz mam prosty plugin wyswietlajacy komunikat. Plugin dziala i jest dostepny w menu pluginów. Chcialbym go cronem odpalac co jakis czas. Tu zaczynaja sie schody. Pierwsze pytanie brzmi. Jak uruchomic plugin dla enigmy napisany w pythonie z konsoli lub skryptu sh?

Moje próby:

 

root@vusolo2:/usr/lib/enigma2/python/Plugins/IhadTutorial/lesson_01# python plugin.py
Traceback (most recent call last):
  File "plugin.py", line 6, in <module>
    from Screens.Screen import Screen
ImportError: No module named Screens.Screen

 

Kopiac conieco na stackoverflow znalazlem ze potrzebuje najpierw:

 

export PYTHONPATH="/usr/lib/enigma2/python/:$PYTHONPATH"

 

Niestety niewiele to pomoglo:

 

root@vusolo2:/usr/lib/enigma2/python/Plugins/IhadTutorial/lesson_01# python plugin.py
Traceback (most recent call last):
  File "plugin.py", line 6, in <module>
    from Screens.Screen import Screen
  File "/usr/lib/enigma2/python/Screens/Screen.py", line 1, in <module>
  File "/usr/lib/enigma2/python/Tools/Profile.py", line 3, in <module>
  File "/usr/lib/enigma2/python/Tools/Directories.py", line 6, in <module>
  File "/usr/lib/enigma2/python/enigma.py", line 30, in <module>
  File "/usr/lib/enigma2/python/enigma.py", line 22, in swig_import_helper
ImportError: No module named _enigma

 

Ja dlubie dalej. Tymczasem prosze Was o pomoc:)

Link to comment
Share on other sites

- Nie uruchomisz wtyczki enigmy z crona

- komunikat wyświetlisz z konsoli poprzez interfejs openwebif

- jeśli jednak chcesz coś więcej, to musisz napisać wtyczkę, która się periodycznie uruchamia i coś tam Ci robi.

Link to comment
Share on other sites

Dzięki za odpowiedź. Zapewne oszczędziłeś mi wiele czasu. Nie potrzebuję wiele. Chcę wyświetlić komunikat. Może być taki jak wyświetla się przez openwebif za pomocą "Wyślij wiadomość". Tylko potrzebuję by komunikat wyświetlał się do momentu aż użytkownik nie wciśnie zatwierdzi OK. (Openwebif ma tylko opcję TAK/NIE). I chciałbym przechwytywać informację że naciśnięto przycisk. Nie wiem czy te wszystkie informację mogę złapać w skrypcie.

Czy wiesz może jak wyświetlić komunikat przez openwebif i złapać akcję użytkownika?

Link to comment
Share on other sites

DZięki za pomoc:) Oto co chcę:

1. Wyświetlać komunikat na ekranie.

2. Wykonywać skrypt periodycznie

3. Rozpoznawać akcję pilotem na komunikat.

4. Rozpoznawać tryb standby

 

Punkty 1 i 4 osiągnę chyba tylko za pomocą pythona. Punkt 2 idealnie można osiągnąć cronem. Chciałem uniknąć pluginu pythonowego działającego w nieskończonej pętli.

Link to comment
Share on other sites

Dziwne. Z przeglądarki komenda

 

http://127.0.0.1/web/message?text=test&type=0

 

wchodzi  i zatwierdzając YES lub NO na ekranie da się sprawdzić co zostało wprowadzone komendą

 

http://127.0.0.1/web/messageanswer?getanswer=now

 

Niestety nie mogę odtworzyć tego w terminalu. Testowane na vusolo2 i esi z takim samym rezultatem:

 

root@vusolo2:/# wget -qO - http://127.0.0.1/web/message?text=test&type=0
root@vusolo2:/# <?xml version="1.0" encoding="UTF-8"?>
<e2simplexmlresult>
        <e2state>False</e2state>
        <e2statetext>Brak wymaganego parametru 'type'</e2statetext>
</e2simplexmlresult>

[1]+  Done                       wget -qO - http://127.0.0.1/web/message?text=test
root@vusolo2:/# telnet 10.1.1.15

Entering character mode
Escape character is '^]'.


esi88 login: root


BusyBox v1.19.3 (2012-01-04 10:10:53 PST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

esi88:~#  wget -qO - http://127.0.0.1/web/message?text=test&type=0
esi88:~# <?xml version="1.0" encoding="UTF-8"?>
<e2simplexmlresult>
        <e2state>False</e2state>
        <e2statetext>Missing mandatory parameter 'type'</e2statetext>
</e2simplexmlresult>

[1]+  Done                       wget -qO - http://127.0.0.1/web/message?text=test
esi88:~#

 

Nie wiem czy on w terminalu nie widzi ampersandu? Zobaczcie co jest po "[1]+ Done". Tak jakby obcinał komendę po 1 parametrze. Gdy zamienię parametry text i type miejscami to za każdym razem mówi że nie ma tego 2 parametru...

 

EDIT:

Już wiem co było. Trzeba uciec ampersand:)

wget -qO - http://127.0.0.1/web/message?text=test\&type=0

 

Panowie chciałem podziękowac za pomoc. Openwebif był prawie wystarczający do napisania pluginu. Musiałem tylko poprawic MessageBox.py żeby domyślnie po braku reakcji użytkownika na wiadomośc nie była odpowiedź pozytywna oraz żeby wcisnięcie dowolnego przycisku nie zatrzymywało licznika timeoutu.

 

 

JEdnak mam dziwny problem z cronem. Mam skrypt uruchamiany co minutę. Jego egzekucja może trwać kilka sekund lub kilkadziesiąt minut. Oczywiście zabezpieczyłem skrypt by nie wykonywał dalszej egzekucji jeśli wykryje w procesach poprzedni proces. Wszystko jest logowane do pliku loga. Gdy skrypt wykonuję ręcznie wszystko działa jak należy w pierwszej minucie widzę że 1 instancja się uruchomiła i wykonuje dalsze akcje w kolejnej minucie 1 instancja wykonuje akcje a 2 instancja po starcie wypisuje że inna działa więc kończy pracę - OK.

 

Jednak gdy zaaplikuję skrypt do crona:

*/1 * * * * /cron.sh

Jest dziwnie. Pierwsza instancja się uruchamia i pracuje przez załóżmy 30 minut. Co minutę powinna próbować uruchamiać się druga instancja i wypisywać komunikat że kończy pracę. Jednak robi to dopiero po dokładnie 10 minutach i wtedy już co minutę działa jak należy.

Czy ktoś się orientuje skąd te rozbieżności?

 

Log:

Fri Oct 30 14:45:01 CET 2015-Start
Fri Oct 30 14:46:03 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:47:03 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:48:04 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:49:04 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:50:04 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:51:05 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:52:05 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:53:06 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:54:06 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:55:01 CET 2015-Proces uruchomiony, wychodzę
Fri Oct 30 14:55:07 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:56:01 CET 2015-Proces uruchomiony, wychodzę
Fri Oct 30 14:56:07 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:57:01 CET 2015-Proces uruchomiony, wychodzę
Fri Oct 30 14:57:08 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:58:01 CET 2015-Proces uruchomiony, wychodzę
Fri Oct 30 14:58:08 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 14:59:01 CET 2015-Proces uruchomiony, wychodzę
Fri Oct 30 14:59:09 CET 2015-Następne sprawdzenie za minutę
Fri Oct 30 15:00:01 CET 2015-Proces uruchomiony, wychodzę

 

scalono Edytuj posty!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...