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
    So, jetzt sollte es passen ...
    Tom Bombadil
    @Tom-Bom-badil
    Kurze Frage: Das Network Plugin scheint seit dem Update bei mir nicht mehr zu laufen, vermutlich aufgrund eines Konfigurationsfehlers. Vor dem Update lief es definitiv durch. Und irgendwie stehe ich auf dem Schlauch und finde den im Log beschriebenen Fehler nicht:
    WARNING  lib.metadata      plugin 'network': Invalid value 'True' in plugin configuration file for parameter 'udp' -> using 'yes' instead
    etc/plugin.yaml:
    nw:
        class_name: Network
        class_path: plugins.network
        ip: 0.0.0.0
        port: 2423
        http: 2422
        udp: yes
        udp_acl: '*'
    plugins/network/plugin.yaml:
    parameters:
        # Definition of parameters to be configured in etc/plugin.yaml
        udp:
            type: str
            default: 'no'
            valid_list:
              - yes
              - no
            description:
                de: "Eingehende UDP Verbindungen akzeptieren"
                en: "Accept incoming UDP connections"
    Da steht nirgendwo 'True' O.o
    psilo909
    @psilo909
    zumindest empfangend habe ich derzeit keine probleme
    nw:
        class_name: Network
        class_path: plugins.network
        ip: 192.168.178.100
        port: 9999
        tcp: 'yes'
        # tcp_acl= 127.0.0.1 | 10.0.0.150
        udp: 'yes'
        http: 8888
    kriege den fehler auch nicht?!
    schau mal ob yes in anführungszeichen das gleiche ergebnis liefert
    Tom Bombadil
    @Tom-Bom-badil
    Mach ich ... hat eigentlich das ´default: 'no'´eine Auswirkung? Fakt ist, keiner der ESP's hat seit dem Update Daten geliefert ...
    Unbenannt.png
    Alle Sensoren haben eine roten Indikator ...
    Tom Bombadil
    @Tom-Bom-badil
    Ok, mit Anführungszeichen ist der Fehler weg, aber Daten kommen immer noch nicht an. Muss ich mich wohl doch tiefer reinwühlen ...
    psilo909
    @psilo909
    wobei es ohne anführungszeichen auch gehen sollte
    @msinn wieso wird das anders geparsed?
    no wirkt nur dann wenn du es weglässt dachte ich
    @Tom-Bom-badil ich bin nicht sicher wie das acl attribut gehandhabt wird
    evtl hat das bei dir damit zu tun
    msinn
    @msinn
    Das mit dem Parsing ist eine Unschönheit in yaml 1.1. evtl. wird das je nach ruaml.yaml Version auch etwas anders gehandhabt. Laut yaml v1.1 werden no, yes und noch andere Strings, wenn sie nicht in Anführungszeichen stehen als boolsche Werte interpretiert und nicht als strings. Deshalb bei true, false, yes, no (und ähnlichen Strings) immer auf die Anführungszeichen achten.
    psilo909
    @psilo909
    @Tom-Bom-badil kannst ja mal manuell daten an das item übergeben
    achja nach welcher prämisse setzt du rot? Datenempfang seit zeit x nicht vorhanden? habe auch esp/raspi zero w verteilt. so ein status wäre was feines
    Tom Bombadil
    @Tom-Bom-badil
    Ich generiere auf dem ESP unixtime() und schick die als Item mit rüber. Alle 5 Minuten werden Werte gesendet. Wurde ein Wert 15 Minuten nicht geändert, ist was faul und der Wert kippt von grün nach rot. (alle devices haben den gleichen NTP-Server)
    Beispiel für das DG:
    klima:
    
        dg: # Dachgeschoss
            Sensor:
                Temperature:
                    type: num
                    database: 'init'
                Humidity:
                    type: num
                    database: 'init'
                Pressure:
                    type: num
                    database: 'init'
            Calculations:
                Dewpoint:
                    type: num
                    database: 'init'
                Uptime_Unix:              # delivered from ESP as %unixtime% in seconds since 1970/01/01
                    type: num
                Dummy:                    # Placeholder for the 2 remaining 'dummy' Items
                    type: num
            isOnline:                     # Online within the last 30 minutes?
                type: bool
                database: 'init'
                eval: True if (__import__('time').time()-1800 < sh...Calculations.Uptime_Unix()) else False
                cycle: 30
    'isOnline' ist der Wert ...
    Korrektur: Nach 30 Minuten kippt das Item von grün nach Rot, gerade gesehen ...
    Script für die Visu:
    Tom Bombadil
    @Tom-Bom-badil
            /** ********* DG ********************* **/
            <div class="infobutton temp_dg">
                <a href="#dg_temphum_popup" data-rel="popup">
                    <div class="infobutton_temphum_LED">{{basic.symbol('', 'klima.eg.isOnline', ['•','•'],'',[1,0],'',['lime','red'])}}</div>
                    {{basic.print('','klima.dg.Sensor.Temperature','°C','','[21,24]',['deepskyblue,lime,orange'])}}<br/>
                    {{basic.print('','klima.dg.Sensor.Humidity',   ' %','','[40,60]',['deepskyblue,lime,orange'])}}
                </a>
            </div>
            <div id="dg_temphum_popup" class="centerbox" data-role="popup" data-overlay-theme="c" style="width: 75%;">
                <a href="#" class="ui-btn-right" data-rel="back" data-role="button" data-icon="delete" data-iconpos="notext" >Close</a>
                <div data-role="header" class="centerbox_header"> Dachgeschoss - Wochenansicht </div>
                <br/>
                {{ plot.period('', ['klima.dg.Sensor.Humidity','klima.dg.Sensor.Temperature'], 'raw', '1w', 'now', [30,20], [70,24], '', ['Feuchte','Temperatur'], ['chocolate','yellow'], ['area','line'], ['','%','°C'], 'advanced', ['1','2'], ['0','1'], ['chocolate','yellow'], '', ['%','°C']) }}
                <br/>
            </div>
    Und so siehts dann bei Antippe/Anklicken des Items aus:
    Unbenannt.png
    Tom Bombadil
    @Tom-Bom-badil
    Ist alles noch im Bastelstadium, funktionert aber ... sicher kann man auch irgendwie mit item.age() arbeiten, aber hab mich damals aus irgendwelchen Gründen für diesen Weg entschieden
    Tom Bombadil
    @Tom-Bom-badil
    Ok, ich bin jetzt einen Schritt weiter in Sachen nicht mehr funktionierende Sensoren. Irgendwie will das Network Plugin wohl seit der 1.6 ein bestimmtes Format haben? Vorher (bis zum Update vorgestern) wurde nur einfach ein beliebiger String in ein "Receiver-Item" geschrieben, was prima funktioniert hat.
    2019-05-13  18:45:19 DEBUG    plugins.network   UDPDispatcher: incoming connection from 192.168.178.60:53594 to 0.0.0.0:2423
    2019-05-13  18:45:19 INFO     plugins.network   Ignoring input sh.klima.schuppen1.Calculations.Dewpoint(6.5). Format not recognized.
    Der übermittelte Wert lautet sh.klima.schuppen1.Calculations.Dewpoint(6.5) und soll in ein Receiver-Item vom Typ str geschrieben werden (jeder Sensor 'kennt' sein zugehöriges shNG-Item und nimmt die Adressierung selbst vor):
    _receiver_port_2423:
        name: 'Zentraler UDP Receiver, zB Klimasensoren'
        type: str
        nw: 'yes'
        nw_udp_listen: 2423
        on_update:
            - eval(value)
    psilo909
    @psilo909
    hmm seit 2016 nicht viel geändert:
    Tom Bombadil
    @Tom-Bom-badil
    Kann es sein, dass ich den übermittelten String in Hochkommas setzen muss?
    psilo909
    @psilo909
    vielleicht zieht da was via metadaten
    glaube ich aber eigentlich nicht
    ich schicke ja auch zahlen hin
    
    if trigger['by'] == 'Item':
        lItemName = trigger['source']
        lItem = sh.return_item(lItemName)
        sh.nw.udp('192.168.178.100', 9999, 'item|{0}|{1}'.format(lItemName, lItem()))
        logger.info("udpSend: {0}, {1}".format(lItemName, lItem()))
    else:
        logger.debug("Keine Triggerung udpSend von Item")
    Tom Bombadil
    @Tom-Bom-badil
    ich schicke das ganze 'Kommando' als String, das shNG dann über das eval ausführt: sh.klima.schuppen1.Calculations.Dewpoint(6.5)
    psilo909
    @psilo909
    wobei auf der sendenden maschine noch eine ältere version des plugins laeuft
    nur der empfänger hat die neuste
    Tom Bombadil
    @Tom-Bom-badil
    ok, Du hast die klassische Variante 'Item, Wert' ... ich hab quasi 'Freitext', was bis 1.5 sauber lief
    psilo909
    @psilo909
    vielleicht ne änderung am eval