Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Tom Bombadil
    @Tom-Bom-badil
    Die Variante mit dem zentralen Receiver-Item hat den Charme, dass jeder Sensor seine Items selbst adressieren kann. Alle Sensoren haben die gleiche Config in ESPEasy (einfach zu maintainen), nur der der jeweilige Device-Name ist jeweils anders (entspricht dem Sensor-Hauptitem in shNG)
    psilo909
    @psilo909
       def parse_input(self, source, dest, data):
            if dest in self.generic_listeners:
                inp = data.split(self.input_seperator, 2)  # max 3 elements
                if len(inp) < 3:
                    self.logger.info("Ignoring input {}. Format not recognized.".format(data))
                    return False
                typ, name, value = inp
    kanns sein, dass er auf den "." splittet?
    dann kreigst du nen teilstring < 3
    Tom Bombadil
    @Tom-Bom-badil
    nope
    psilo909
    @psilo909
    wobei da sein array ist
    Tom Bombadil
    @Tom-Bom-badil
    2019-05-13  18:46:02 INFO     plugins.network   Ignoring input sh.klima.eg.Calculations.Uptime_Unix(1557765760). Format not recognized.
    psilo909
    @psilo909
    input_seperator = '|'
    er splittet und fidnet kein |
    heisst du hast nur 1 element
    jetzt schauen seit wann das so ist
    7 years ago?!
    Tom Bombadil
    @Tom-Bom-badil
    Nur - wieso hat er dann vor dem Update diesen Fehler nicht geschmissen?
    psilo909
    @psilo909
    string.split(separator, max)
    Note: When max is specified, the list will contain the specified number of elements plus one.
    das ist an der stelle dann iregndwie erstmal nachvollziehbar
    muss es nicht so sein:
    item|itemname|wert
    und wert ist die zeile von dir
    den setzt und und schiebst ihn ins eval
    wie sieht die url genau aus
    die du aufrufst
    vom esp
    Tom Bombadil
    @Tom-Bom-badil
    Keine URL, der ESP schießt den String direkt per UDP raus. Siehe hier (sietdem lief es): https://knx-user-forum.de/forum/supportforen/smarthome-py/1189828-einbindung-esp-mit-espeasy-firmware?p=1218035#post1218035
    psilo909
    @psilo909
    soweit ich das verstehe, weiss er garnicht in welches item er den ausdruck "piped"
    Tom Bombadil
    @Tom-Bom-badil
    Ich bastel das shNG-Kommando bereits im ESP zusammen
    psilo909
    @psilo909
    aber woher weiss das plugin, dass der in receiver_port_2423 soll?
    Tom Bombadil
    @Tom-Bom-badil
    geb es dann per UDP rüber ans NAS, auf dem shNG läuft
    und dort wird der Wert durch das Receiver-Item per eval gesetzt
    Weil der receiver auf den Port eingestellt ist?
    psilo909
    @psilo909
    das item hoert konkret auf dem port?
    und nur das
    Tom Bombadil
    @Tom-Bom-badil
    ja
    psilo909
    @psilo909
    genau
    ich bin nicht sicher ob dann die methode überhaupt richtig ist, die den fehler wirft
    kenne das plugin aber auch nicht soo gut
    dispatcher = UDPDispatcher(self.parse_input, ip, port)
    hmm
    Tom Bombadil
    @Tom-Bom-badil
    Ich hatte mich eingangs gewundert (2018, als ich den obigen Versuch aus dem Forum gestartet habe) - bei TCP war in der Doku ein festes Format vorgegeben, bei UDP nicht. Deshalb hatte ich den String probiert und mich gefreut, dass es lief.
    psilo909
    @psilo909
            if 'nw_udp_listen' in obj.conf:
                ip, sep, port = obj.conf['nw_udp_listen'].rpartition(':')
                if not ip:
                    ip = '0.0.0.0'
                dest = 'udp:' + ip + ':' + port
                if dest not in self.special_listeners:
                    if self.add_listener('udp', ip, port):
                        self.special_listeners[dest][obj_type + 's'][oid] = {obj_type: obj, 'acl': acl}
                    else:
                        self.logger.warning("Could not add listener {} for {}".format(dest, oid))
                else:
                    self.special_listeners[dest][obj_type + 's'][oid] = {obj_type: obj, 'acl': acl}
    das ist dein item
    ist das ein special listener
    weil offenbar läuft er in if dest not in self.special_listeners:
    und hängt den generischen udp listener rein
    der dann in die methode mit dem split delegiert
            if generic:
                self.generic_listeners[dest] = {'items': {}, 'logics': {}, 'acl': acl}
            else:
                self.special_listeners[dest] = {'items': {}, 'logics': {}, 'acl': acl}
    Tom Bombadil
    @Tom-Bom-badil
    Die Parsing-Probleme, von denen Martin gestern sprach, betreffen nur yaml, richtig? Oder könnte das auch hier Auswirkungen haben?
    Ich kann das problem umgehen, indem ich ihm liefere, was er will (1|2|3) - dauert ne halbe Stunde, alle ESP's umzukonfigurieren. Dann ein split in's eval und schon müsste es wieder laufen ...