Beiträge von EssalG

    Moin,

    einer unserer Nutzer nutzt derzeit zwei Profile in der EinsatzApp. Er kann jedoch immer nur bei einem Profil die Verfügbarkeit ändern.

    Ist er mit Profil 1 angemeldet und fügt Profil 2 hinzu, kann er nur bei Profil 1 die Verfügbarkeit ändern. Ist er bei Profil 2 angemeldet und fügt dann Profil 1 hinzu, kann er nur bei Profil 2 die Verfügbarkeit ändern.

    Die App wurde bereits neugestartet, die Profile jeweils wieder entfernt und neu hinzugefügt, die App neu installiert.

    Die App Version ist die 2021.2 und das Smartphone ein Samsung Galaxy S9.

    Moin,

    ich würde mir die Funktion wünschen, dass man im Tablet nach Stichworten suchen kann und dann angezeigt werden, welche Fahrzeuge bei diesem Stichwort alarmiert werden. Dies soll dem Einsatzleiter vor Ort einen kurzen Überblick verschaffen, ob es sinnvoll ist ein Einsatzstichwort zu erhöhen oder doch nur ein einzelnes Fahrzeug nachzualarmieren.

    Sorry :D

    Poste vielleicht auch mal noch dein python code, dann schau ich mir das mal an

    Ist das mein Python Code? Wo finde ich den

    Spoiler anzeigen

    import logging

    import os

    import sys

    import time

    from datetime import datetime as dt

    import click

    import yaml

    from feuersoftware import PublicAPI

    from alarmparser import AlarmParser

    from mailcheck import Mail

    from telegram import telegram_bot

    #Zur Nutzung des Telegram-Bots müssen nur die Zeilen 42,69,128 auskommentiert werden, also die Raute entfernen.

    LOGLEVEL = "DEBUG"

    format = "%(asctime)s.%(msecs)03d - %(name)s - %(levelname)s - %(message)s"

    dateformat = "%Y-%m-%d %H:%M:%S"

    logging.basicConfig(level=LOGLEVEL, format=format, datefmt=dateformat)

    LOGGER = logging.getLogger(">>>main<<<")

    hdlr = logging.FileHandler('z_Logging.log')

    hdlr.setLevel(level=logging.INFO)

    formatter = logging.Formatter('%(asctime)s.%(msecs)03d - %(name)s - %(levelname)s - %(message)s')

    hdlr.setFormatter(formatter)

    LOGGER.addHandler(hdlr)


    class Observer:

    def __init__(self, config):

    self.config = config

    def run(self):

    while True:

    try:

    for account in self.config.get("accounts"):

    try:

    self.check_mail(account)

    except:

    postfachname = account.get("name")

    LOGGER.error(f"Fehler in Observer {postfachname} aufgetreten - probiere weiter in 1 Sekunde")

    #telegram_bot.telegram_bot_sendtext(f"ERROR - Fehler in Observer {postfachname} aufgetreten")

    time.sleep(1)

    except KeyboardInterrupt:

    LOGGER.info("Ctrl + C received. Stopping now!")

    sys.exit(0)

    time.sleep(5)

    def check_mail(self, account):

    """Check a mail account for new alarm mails."""

    _start = dt.now()

    name = account.get("name")

    mailcfg = account.get("mail")

    mail = Mail(mailcfg.get("host"), mailcfg.get("user"), mailcfg.get("password"))

    msgids = mail.search_mails(mailcfg.get("subject"))

    text = mail.get_text(msgids)

    if not text:

    return

    _fetchtime = dt.now()

    LOGGER.info(f"Fetching the alarmmail from {mailcfg.get('user')} took {(_fetchtime - _start).total_seconds()} seconds")

    data = AlarmParser(self.config, text).data

    _parsetime = dt.now()

    LOGGER.info(f"Parsing the alarmmail took {(_parsetime - _fetchtime).total_seconds()} seconds")

    alarmdata = self.assign_data(data)

    self.alert(account, alarmdata)

    _alerttime = dt.now()

    LOGGER.info(f"Sending to Connect API took {(_alerttime - _parsetime).total_seconds()} seconds")

    LOGGER.info(f"Entire process took {(_alerttime - _start).total_seconds()} seconds")

    #telegram_bot.telegram_bot_sendtext(f"ALARM - {name}")

    def assign_data(self, data):

    """Assign data to right api fields, transform values if necessary."""

    alarmdata = {

    # "start": dt.now().strftime('%Y-%m-%dT%H:%M:%S'),

    "start": f"{dt.now().strftime('%Y-%m-%d')}T{data.get('start')}:00",

    "keyword": data.get("keyword"),

    "number": data.get("number"),

    "address": f"{data.get('street')} {data.get('housenumber')}, {data.get('city')} - {data.get('district')}",

    "facts": data.get("comment"),

    "properties": [

    {"key": "Objekt", "value": data.get("object")},

    {"key": "Sondersignal", "value": data.get("siren")},

    ],

    "ric": data.get("assigned"),

    }

    LOGGER.info(alarmdata)

    return alarmdata

    def alert(self, account, alarmdata):

    """Send alarm data to Feuersoftware API."""

    api = PublicAPI(account.get("connect").get("token"))

    r = api.post_operation(

    start=alarmdata.get("start"),

    keyword=alarmdata.get("keyword"),

    status="new",

    alarmenabled=True,

    address=alarmdata.get("address"),

    facts=alarmdata.get("facts"),

    number=alarmdata.get("number"),

    properties=alarmdata.get("properties"),

    ric=alarmdata.get("ric"),

    )


    @click.command()

    @click.argument("configfile", type=click.Path(exists=True))

    def main(configfile):

    LOGGER.info("Programm wurde gestartet")

    with open(configfile) as cfg:

    config = yaml.load(cfg, Loader=yaml.BaseLoader)

    if not config:

    LOGGER.error("No config file found at %s!", configfile)

    sys.exit(1)


    observerloop(config)

    def observerloop(config):

    while True:

    try:

    observer = Observer(config)

    observer.run()

    except: # catch *all* exceptions

    LOGGER.error("Fehler in observerloop aufgetreten - starte erneut in 10 Sekunden")

    #telegram_bot.telegram_bot_sendtext("ERROR - Fehler in observerloop aufgetreten")

    time.sleep(10)


    if __name__ == "__main__":

    main()

    Damit kenne ich mich halt überhaupt nicht aus, muss die Struktur 1 zu 1 gleich sein?

    Moin Community,

    ich habe jetzt die AAO in unser System eingepflegt und bei einem Einsatz wird auch eine passende dyn. AAO gefunden. Als bei dem Einsatz auf das Tablet geschaut wurde, war diese aber nirgends zu finden. Wird diese derzeit noch nicht an das Tablet übertragen? Am linken Seitenrand stehen ja alle Fahrzeuge, die im System sind, aber bei einem Einsatz stehen dort immer noch alle. Auch an der Reihenfolge dieser hat sich nichts geändert während es Einsatzes.

    Gruß Lasse

    Wo genau der Zusammenhang zwischen dem Update und dem Verbindungsfehler liegt, kann ich nicht erklären, aber wieso musste denn überhaupt ein BIOS Update gemacht werden? So etwas ist eigentlich nur nötig, wenn es absolut wichtige änderungen im Update gibt oder das Mainboard Probleme mit irgendwelcher Hardware hat. So lange alles läuft, ist eigentlich auch kein BIOS Update nötig.