Giter Site home page Giter Site logo

emonitor's People

Contributors

arneseifert avatar sambandi avatar seiferta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emonitor's Issues

Anzeigelaout je Alarmtyp konfigurierbar machen

eMonitor kann verschiedene Alarmtypen verarbeiten, die (theoretisch) über unterschiedliche Wege erstellt werden. Aktuell ist nur die Fax-Erkennung realisiert, denkbar sind aber auch z.B. E-Mail.

Für das Erstellen können für jedes Fax-Layout eigene Erkenner (faxchecker) genutzt werden, die anschließend Alarme erzeugen. Je faxchecker sollte eine unterschiedliche Anzeige möglich sein.

Scrollleisten

Die Scrolleisten im Broweser werden nicht korrekt angezeigt.
Scrollen mit Mausrad nicht möglich./ Scrolleiste nicht vorhanden
Jedoch mit makieren des Textes.

Mac OSX 10.1 / Safari 8.0

Keine Wetterdaten

Die Wetterdaten können nicht mehr über die aktuell implementierte Schnittstelle angeboten werden. Modul muss aktuell aus der Anzeige der Mitteilungen genommen werden, da sonst ein Fehler auftritt.

Lösung: Validierung einer passenden Wetteradresse.

Manueller Ausdruck von Einsätzen

Im Kontextmenü des Frontends kann der Einsatz ausgedruckt werden, falls ein Drucklayout definiert wurde. Dabei wird dann immer die Anzahl an Kopien erzeugt, die konfiguriert wurde.
Wenn der Druck manuell angestoßen wurde, sollte aber immer nur ein Ausdruck erfolgen

Mitteilungen

Es sollte eine Möglichkeit geben, Mitteilungen/Inhalte/Informationen auf dem Monitor anzeigen zu lassen.
Denkbar sind:

  • Einfache Textmitteilungen
  • Mitteilungen mit Kartendarstellung/Dateianhängen
  • Wetterdaten
  • ...

generischen FaxChecker erzeugen

Ein generischer FaxChecker sollte mittels RegEx-Ausdrücken die Felder innerhalb eines Faxes definieren lassen und anschließend daraus einen passenden Einsatz erzeugen.

Somit wird es möglich, dass ein Faxchecker alle Layouts unterstützen kann. Über Konfigurationsfiles können dann die Konfigurationen für die verschiedenen Leitstellen ausgetauscht werden und bei Bedarf die richtige Leitstelle in das eMonitor-System geladen werden.

Mitteilungsmodul für Bilder

AlsMitteilungsmodul ist ein Bild-Modul sinnvoll, das Bilder eines Verzeichnisses oder speziell hochgeladene Bilder akzeptiert
Diese Bilder sollen dann in einer Art Diashow dargestellt werden.

Mitteilungsmodul mit Kartendarstellung

Mitteilungsmodul mit Kartendarstellung und der Möglichkeit Symbole auf der Karte zu platzieren sinnvoll, um beispielsweise Straßensperren wegen Baustellen anzuzeigen.

Fehler beim Laden der Hausnummern aus OSM

Nach dem Anlegen eines Orts werden alle Straßen des Orts geladen. Allerdings können die Hausnummern der einzelnen Straßen nicht geladen werden.

Im eMonitor-error.log habe ich folgenden Eintrag gefunden:
2015-09-04 07:49:29,884 - ERROR - cherrypy.error - [04/Sep/2015:07:49:29] ENGINE ValueError('could not convert string to float: ',)

Als Beispiel dient diese OSM Straße: http://www.openstreetmap.org/way/74863178

Einsatzobjekte-AAO

Die Reihenfolge der Fahrzeuge der Ausrückeordnung eines Einsatzobjektes wird beim Speichern nicht beibehalten, es wird alphabetisch sortiert.

Einsatzobjekte mit gelöschter AAO

Wenn bei einem Einsatzobjekt die Ausrückeordnung wieder gelöscht wurde, werden keine Fahrzeuge mehr beim Alarm für diese Einsatzobjekt genutzt.

Spezielle Hinweise für eine Adresse

Für manche Adressen sind bestimmte Hinweise bekannt, die bei Alarmen zu dieser Adresse angezeigt werden sollten.
Dabei ist es aber nicht notwendig, dass das über eine eigenes Alarmobjekt erzeugt wird, sondern lediglich über einen Hinweise zu einer Straße + Hausnummer

Wetter-Message liefert Fehler bei Datum

wenn die Datumsrückgabe im Wetter-Widget kein korrektes Datum liefert, wird der komplette Message-Bereich nicht angezeigt und es fliegt eine Fehlermeldung im Hintergrund.

2015-11-01 15:41:38,516 - ERROR - cherrypy.error - [01/Nov/2015:15:41:38] ENGINE ValueError("time data 'Sun, 01 Nov 2015 2:58 p' does not match format '%a, %d %b %Y %I:%M %p'",)
Traceback (most recent call last):
  File "c:\tools\python\lib\site-packages\cherrypy\wsgiserver\wsgiserver2.py", line 1353, in communicate
    req.respond()
  File "c:\tools\python\lib\site-packages\cherrypy\wsgiserver\wsgiserver2.py", line 868, in respond
    self.server.gateway(self).respond()
  File "c:\tools\python\lib\site-packages\cherrypy\wsgiserver\wsgiserver2.py", line 2267, in respond
    response = self.req.server.wsgi_app(self.env, self.start_response)
  File "c:\tools\python\lib\site-packages\cherrypy\_cptree.py", line 299, in __call__
    return app(environ, start_response)
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\tools\python\lib\site-packages\flask\app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\tools\emonitor\emonitor\monitor\monitor.py", line 90, in monitorContent
    params = widget.addParameters(alarmid=alarmid, alarm=alarm, clientid=clientid, layout=layout)
  File "C:\tools\emonitor\emonitor\modules\messages\message_base.py", line 45, in addParameters
    content += '<div class="slide">%s%s</div>\n' % (message.type.getMonitorContent(**kwargs), pos)
  File "emonitor/modules/messages/message_weather.py", line 39, in getMonitorContent
    self.addParameters(**params)
  File "emonitor/modules/messages/message_weather.py", line 87, in addParameters
    self.data['lastBuildDate'] = datetime.datetime.strptime(self.data['lastBuildDate'][:-5], '%a, %d %b %Y %I:%M %p').strftime('%d.%m.%Y %H:%M')
  File "c:\tools\python\lib\_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data 'Sun, 01 Nov 2015 2:58 p' does not match format '%a, %d %b %Y %I:%M %p'

Linux: IP-Adresse wird nicht korrekt an die Clients weitergegeben

Unter Linux wird die IP-Adresse nicht korrekt an die Clients geliefert, dort wird immer 127.0.0.1 genommen, dadurch können die Clients die Seiten nicht vom Server abrufen.

Einfachste Lösung: Kofigurationsparameter "IP" ergänzen und für den Socket-Request verwenden, wenn nicht leer.

Leere Datenbank liefert Fehler

Beim Starten mit einer leeren Datenbank werden einige Fehler im Hintergrund des Admin-Bereichs geschmissen, die eine vernünftige Erst-Konfiguration verhindern.

Standardkarten-Definition

Bei der Definition der Standardkarte muss darauf geachtet werden, dass immer nur eine Karte als Standardkarte eingetragen werden kann.
Aktuell kann man das frei auswählen, hier muss eine Kontrolle erfolgen.

Farbauswahl

Die Farbauswahl funktioniert in keinem Modul

Table emonitor.messages doesn't exist

Nach dem ersten Start des Emonitor unter 32bit Linux mit mysql erhalte ich folgende Fehlermeldung:
ERROR:emonitor.communication:error telegram INFO:emonitor.communication:2 Communicator(s) loaded: telegram, mail INFO:emonitor.observer:observe folder ./data/income/ with watchdog observer Traceback (most recent call last): File "run.py", line 5, in <module> from emonitor import app File "/home/tobiby/eMonitor/emonitor/__init__.py", line 8, in <module> app = create_app() File "/home/tobiby/eMonitor/emonitor/app.py", line 84, in create_app configure_blueprints(app, DEFAULT_BLUEPRINTS) File "/home/tobiby/eMonitor/emonitor/app.py", line 225, in configure_blueprints blueprint.init_app(app) File "/home/tobiby/eMonitor/emonitor/modules/__init__.py", line 82, in init_app m = eval('m.%sModule' % str(name).title())(app) File "/home/tobiby/eMonitor/emonitor/modules/messages/__init__.py", line 51, in __init__ Messages.initMessageTrigger() File "/home/tobiby/eMonitor/emonitor/modules/messages/messages.py", line 182, in initMessageTrigger job = scheduler.add_job(Messages.doMessageTrigger, name="messages", id="messages", trigger=MessageTrigger(Messages.getActiveMessages(), minutes=60)) File "/home/tobiby/eMonitor/emonitor/modules/messages/messages.py", line 175, in getActiveMessages return Messages.query.filter(Messages.state > 0).filter(Messages.startdate <= datetime.datetime.now()).filter(Messages.enddate >= datetime.datetime.now()).order_by(Messages.startdate.asc()).all() File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2398, in all return list(self) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2515, in __iter__ return self._execute_and_instances(context) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2530, in _execute_and_instances result = conn.execute(querycontext.statement, self._params) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute return meth(self, multiparams, params) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement compiled_sql, distilled_params File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context context) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1332, in _handle_dbapi_exception exc_info File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause reraise(type(exception), exception, tb=exc_tb) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context context) File "/home/tobiby/.local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 442, in do_execute cursor.execute(statement, parameters) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 226, in execute self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorvalue sqlalchemy.exc.ProgrammingError: (_mysql_exceptions.ProgrammingError) (1146, "Table 'emonitor.messages' doesn't exist") [SQL: u'SELECT messages.monitors AS messages_monitors, messages.type AS messages_type, messages.attributes AS messages_attributes, messages.id AS messages_id, messages.name AS messages_name, messages.remark AS messages_remark, messages.startdate AS messages_startdate, messages.enddate AS messages_enddate, messages.state AS messages_state \nFROM messages \nWHERE messages.state > %s AND messages.startdate <= %s AND messages.enddate >= %s ORDER BY messages.startdate ASC'] [parameters: (0, datetime.datetime(2016, 6, 26, 21, 53, 41, 987084), datetime.datetime(2016, 6, 26, 21, 53, 41, 987182))]
Nachdem ich die Tabelle manuell erzeugt habe funktioniert der Emonitor einwandfrei.

Fehlermeldung von Alembic beim Start von eMonitor

Seit dem neuesten Update lässt sich eMonitor nicht mehr starten und bringt folgenden Trace:

@alarmserver ~ # Traceback (most recent call last): :( File "./run.py", line 5, in
from emonitor import app
File "/root/eMonitor/emonitor/init.py", line 8, in
app = create_app()
File "/root/eMonitor/emonitor/app.py", line 82, in create_app
configure_extensions(app)
File "/root/eMonitor/emonitor/app.py", line 131, in configure_extensions
if alembic.migration_context.get_current_heads()[0] != current_app.config.get('DB_VERSION'): # update version
AttributeError: 'Alembic' object has no attribute 'migration_context'

Liegt das Problem evtl. an der Version von Alembic aus der "requirements.txt"? Mit der neuesten Version von Alembic bekomme ich jedoch den eMonitor auch nicht mehr zum Laufen.

Meldungen eines Alarms löschen

Beim Klicken auf das Icon für das Löschen einer Meldung eines Alarms werden alle Meldungen des Alarms gelöscht.
Außerdem ist die Datumsangabe falsch.

eMonitor is not loading the webfrontend

Installed eMonitor on:

  • Windows 10
  • python 2.7, and all the stuff written in the manual...

When starting eMonitor:

C:\eMonitorSrv>python run.py
DEBUG:emonitor.signals:add signal monitorserver.clientsearchstart
DEBUG:emonitor.signals:add signal monitorserver.clientsearchdone
DEBUG:emonitor.signals:add signal monitorserver.clientanswer
ERROR:emonitor.communication:error telegram
INFO:emonitor.communication:2 Communicator(s) loaded: telegram, mail

Nothing more...
Webinterface is not loading, firewall is off.
eMonitor-error.log does not say more than the error msg show above.

What else could I do?

AAO: Probleme mit Umlauten

Im Admin Interface gibt es Probleme mit Schlagworten mit Umlauten. Bei der Steuerung kann nicht zu den Werten mit Umlauten navigiert werden, der Anker unterstützt keine Umlaute,

Geburtstagesreihenfolge falsch

Die Reihenfolge der Tage in der Geburtstagsliste ist nicht chronologisch.
Falls am heutigen Tag ein Geburtstag ist, wird dieser als erstes dargestellt und nicht in der Mitte der Liste

Ausbau der Einsatzobjekte

Einsatzobjekte sollten weitere Informationen zum Objekt speichern können.
Aktuell ist nur die Position des Objekts hinterlegt. Denkbar sind: BMA, Aufstellfläche, Besondere Hinweise, Einsatzpläne ...

Fehler beim Starten: AttributeError: 'Alembic' object has no attribute 'context'

eMonitor startet mit der aktuellen Version von Alembic (0.8.8) nicht mehr, sondern schmeißt einen Fehler:

File "D:\daten\python\eMonitor\emonitor\app.py", line 131, in configure_extensions if alembic.context.get_current_revision() != current_app.config.get('DB_VERSION'): # update version AttributeError: 'Alembic' object has no attribute 'context'

Abhänigkeiten in observer.py

Hallo,

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/apscheduler/executors/base.py", line 108, in run_job
retval = job.func(_job.args, *_job.kwargs)
File "/home/kevin/Schreibtisch/emonitor/emonitor/observer.py", line 30, in observeFolder
if not os.path.exists(path):
File "/usr/lib/python2.7/genericpath.py", line 18, in exists
os.stat(path)
TypeError: coercing to Unicode: need string or buffer, NoneType found

Folgende Fehlermeldung erhalte ich bei einem Start von eMonitor.

Angaben zur Umgebung:
Gastsystem: Ubuntu 12.04 via VirtualBox
Folgende Schritte habe ich ausgeführt:
installation python, apt-get upgrade, pip -r req... .txt, python main.py -p 80 -t

Ich bin mir nicht ganz sicher ob es sich hierbei um einen Bedienerfehler handelt, wenn ja, lasse ich mich gerne aufklären, a

Um Hilfe wäre ich dankbar.
Kameradschaftlichen Gruß
-Name gelöscht-

Scheduler: List Index out of range

Seit einiger Zeit reagiert die Verzeichnisüberwachung nicht mehr und beim Speichern eines neuen Überwachungsintervalls erscheint nur ein Error 500.
Folgenden Trace konnte ich der eMonitor-error.log entnehmen:
2016-08-25 15:41:08,788 - ERROR - eMonitor - Exception on /admin/settings [POST] Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/root/eMonitor/emonitor/decorators.py", line 21, in decorated_function return f(*args, **kwargs) File "/root/eMonitor/emonitor/admin/admin.py", line 94, in adminContent return current_mod.getAdminContent(modules=admin.modules, current_mod=current_mod, user=User.getUsers(login.current_user.get_id() or -1), app_name=current_app.config.get('PROJECT'), app_version=current_app.config.get('APP_VERSION'),$ File "/root/eMonitor/emonitor/modules/settings/__init__.py", line 77, in getAdminContent return getAdminContent(self, **params) File "/root/eMonitor/emonitor/modules/settings/content_admin.py", line 153, in getAdminContent _jobserver = scheduler.get_jobs('observerinterval')[0] IndexError: list index out of range

Einsatzerstellung mit Einsatzobjekt

Bei der Einsatzerstellung mit einem Einsatzobjekt wird die Ausrückeordnung nicht übernommen, wenn eine für das Objekt definiert wurde.

Hilfefunktion einbauen

Im Admin-Bereich sollte eine OnlineHilfe zur Verfügung stehen, die Erklärungen zu den einzelnen Funktionen bietet.

Einsatzobjekt Definition erweitern

Einsatzobjekte benötigen weitere Konfigurationsmöglichkeiten:

  • Aufstellungsflächen für Fahrzeuge
  • Zusätzliche Hinweise
  • ...
    Dafür muss im Adminbereich die Kartendarstellung erweitert werden, dass zusätzliche Symbole auf die Karte gebracht werden können.

Einsatzerstellung - Testupload

Für den Testupload einer Fax-Datei wird bisher im Formular fest auf folgende Dateiformate geprüft:
jpg, tif, pdf

Im Adminbereich kann man unter der Textverarbeitung die Formate frei definieren, die zugelassen sind.
Für den Testupload ist es sinnvoller, dass die Liste der konfigurierten Formate auch für den Testupload verwendet wird.

Markeranzeige auf Monitor fehlt

Auf der Monitoranzeige für den Client wird kein Marker dargestellt, falls die Adresse nicht mit einer Hausnummer vergeben ist.

Alarmobjekt bei Einsätzen

Einsätze mit Alarmobjekten haben folgende Probleme:

  • Objekte sollten nur im Default-Ort verwendet werden
  • Umschaltung von Einsatzobjekt auf konkrete Adresse funktioniert nicht

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.