Änderung Dummy-Status per SNMP

Begonnen von JohnDenver0815, 18 Oktober 2016, 09:04:12

Vorheriges Thema - Nächstes Thema

JohnDenver0815

Hallodrio,
da dies mein erster Beitrag hier im Forum ist: hallo in die Runde, ich bin der Neue und soll hier singen... ;-)

Kurz zu mir: Ich habe das halbe Rentenalter erreicht/überschritten, bin eigentlich in der IT auf den OSI-Layern 2 und 3 unterwegs und bin programmiertechnisch eher BASIC-versaut. Mit der Syntax von Perl hab ich manchmal (öfters) so meine Sorgen, aber irgendwann wird das schon irgendwie im Kopf bleiben. Seit einer Woche habe ich nun FHEM auf nem RaspPi am Laufen und fummel mich in die Materie ein. Und wer hätte es gedacht, prompt kamen auch die ersten Probleme.

Erste eigene Zielsetzung war die Ansteuerung einer Rack-PDU von APC, um die eigens dafür gebastelte interne PHP-Page abzulösen. Da ich hierfür kein passendes Modul gefunden habe, habe ich dies (wie bisher) per SNMPSET realisiert.

Erstellt habe ich in FHEM dafür folgende Objekte:

1 Dummy: WHG_AZ_PowSW_01 (nur erstmal für den ersten Port, insgesamt gibt es auf der Leiste 8 Ports) mit dem Attribut webCmd on:off
define WHG_AZ_PowSW_01 dummy
attr WHG_AZ_PowSW_01 webCmd on:off

1 Notify zum Einschalten: WHG_AZ_PowSW_01_On
define WHG_AZ_PowSW_01_On notify WHG_AZ_PowSW_01:on {system('snmpset -v 1 -c COMMUNITY IP-ADDR .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1 i 1')}
1 Notify zum Ausschalten: WHG_AZ_PowSW_01_Off
define WHG_AZ_PowSW_01_Off notify WHG_AZ_PowSW_01:off {system('snmpset -v 1 -c COMMUNITY IP-ADDR .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1 i 2')}

Bis hier hin funktioniert alles wie gewünscht (und kann so auch gern als Tutorial übernommen werden | COMMUNITY und IP-ADDR sind hier Platzhalter und sollten mit euren eigenen Angaben befüllt werden).
Da sich allerdings der Status der Ports auch außerhalb von FHEM ändern kann (z.B. haben nach einem Stromausfall alle Ports den Status "an"), wollte ich eine Abfrage implementieren, damit der Dummy (WHG_AZ_PowSW_01) auch immer den aktuellen Status anzeigt.

Da es (lt. meinem Verständnis) nicht möglich ist, einem Notify eine Intervallabfrage hinzuzufügen, wollte ich dies per SYSSTAT (WHG_AZ_PowSW_State) lösen. Das Auslesen ist in diesem Fall auch kein Problem und wird folgendermaßen gelöst:
define WHG_AZ_PowSW_State SYSSTAT 60 600 IP-ADDR
attr WHG_AZ_PowSW_State event-on-change-reading 1
attr WHG_AZ_PowSW_State mibs .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1:Port01_state
attr WHG_AZ_PowSW_State snmp 1
attr WHG_AZ_PowSW_State snmpCommunity COMMUNITY
attr WHG_AZ_PowSW_State snmpVersion 1


Im Reading Port01_state bekomme ich für "an" eine 1, für "aus" eine 2 als Wert zurück.
Diese Werte wollte ich in einem weiteren Notify (WHG_AZ_PowSW_01_Check) weiter verarbeiten und damit folgendermaßen den Dummy (WHG_AZ_PowSW_01) triggern:
define WHG_AZ_PowSW_01_Check notify WHG_AZ_PowSW_State {if (ReadingsVal("WHG_AZ_PowSW_State","Port01_state" ne "1"){fhem("setstate WHG_AZ_PowSW_01 off" ;; )} else {\
fhem("setstate WHG_AZ_PowSW_01 on" ;; )}}


Leider funktioniert das nicht wie gewünscht, d.h. der Status des Dummy bleibt auch nach manuellem Schalten des Ports unverändert, obwohl der Wert im SYSSTAT wie geplant alle 60 Sekunden aktualisiert (und geändert) wird. Auch im Log passiert rein überhaupt nichts. Wo liegt mein Denkfehler? Über einen Denkanstoss wäre ich dankbar.

LG
John

justme1968

ich habe deinen beitrage erst kurz überflogen. aber folgendes ist mir schon mal aufgefallen:

- fhem arbeitet event basiert. events werden per notify verarbeitet. um zu bestimmten zeiten etwas zu tun gibt es at.
  at sollte aber normalerweise nicht verwendet werden um aktiv einen status abzufragen. jeden falls dann nicht wenn
  das gerät events liefern kann.
- setstate erzeigt keine events. es ist in 99% alles fälle nicht das richtige für den endanwender. das gui wird so zum beispiel
  nicht automatisch aktualisiert.


ich würde folgendes vorschagen:
- statt dummy und notify besser readingsProxy verwenden. das spart fhem devices
- im wiki ist ein beispiel für das schalten per shellscipt. das kann man anpassen
- den code in 99_myUtils.pm auslagern und die parameter die sich unterscheiden übergeben
- vermutlich kann man sogar die kommandozeilen parameter zum teil automatisch readings namen festmachen
- den readings proxy kann mit so mit SYSSTAT verbinden das der aktuelle status dort her kommt. beispiele
  für so etwas sind im wiki weiter oben bei multichannel 1-wire switches.
- wenn du noch eine formatierte gesamt ansicht möchtest schau dir readingGroup an.
- wenn du die einzelnen switches garnicht als einzelne fhem devices brauchst um sie auf unterschiedliche räume zu verteilen
  sondern dir die gesamtansicht reicht geht auch das per readingsGroup. darüber kannst du auch per klick schalten.
- der aufhänger für alles wäre dann SYSSTAT mit dem aktellen status und
  readingsProxy und/oder readingsGroup für die darstellung und das interaktive schalten.

vermutlich ist es gut wenn du die beta version des SYSTAT moduls von hier: https://forum.fhem.de/index.php/topic,42771.0.html. da ist auch die snmp abfrage komplett nicht blockierend.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

JohnDenver0815

Hallo,
vielen Dank für die Denkanstösse. Ich sehe, viele Wege führen nach Rom, manche aber eher über Umwege. Ich werd das Konstrukt dann mal umstricken und schauen, ob dann das gewünschte Ergebnis eintritt. Auf alle Fälle gibts dazu noch ne Rückmeldung.

Thema SYSSTAT: wie meinst du das mit "nicht blockiert"?

LG

justme1968

in der aktuell eingecheckten version arbeitet sysstate blockierend. d.h. so lange eine snmp abfrage läuft wartet fhem. bei einer einzelnen abfrage ist das noch recht unkritisch  (ausser es gibt netzwerk probleme oder die gegenstelle antwortet nicht oder verzögert) bei mehreren abfragen wie deine 8  macht sich das aber bemerkbar.

die verlinkte betaversion macht die abfrage komplett nicht blockierend im hintergrund und fhem läuft während dessen weiter.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Dopamin

Hallo

Ich bin auch gerade auf der Suche nach solch einer Möglichkeit. Und zwar möchte ich meine PoE Ports vom Switch über FHEM schalten können.
Dieses soll auch mittels SNMP geschehen. Der Switch unterstützt SNMP und von einem Rechner aus kann ich auch per SNMP die Ports an/ausschalten und auch PoE ak/deaktivieren.

Werde auch mal einiges probieren aber bin da auch an einem Lösungsvorschlag bzw. Beispielscript dran interessiert :-)

Vielen Dank Im Voraus

MfG

Dopamin

JohnDenver0815

Hallo nochmal,
eines Vorweg: wer von Perl keine Ahnung hat und sich auch nicht stunden-/tage-/wochenlang von seinen Liebsten abkapseln möchte, der sollte die Finger von FHEM lassen. So zumindest mein Eindruck bis hierher. Nun aber zurück zum eigentlichen Problem:

Mein SYSSTAT funktioniert und übergibt die Werte auch alle ordnungsgemäß an meine readingsGroup, wenn auch (noch) nicht mit Umwegen über die 99_myUtils, sondern hardcoded.

Hier ein list vom SYSSTAT:
Internals:
   DEF        60 600 [IP-ADDR]
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 0
   HOST       [IP-ADDR]
   INTERVAL   60
   INTERVAL_FS 600
   NAME       WHG_AZ_PowSW_State
   NR         24
   STATE      Initialized
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 300
   snmpCommunity [COMMUNITY]
   snmpVersion 1
   Readings:
     2016-10-20 13:14:59   Port01_name     Schaukasten
     2016-10-20 13:14:59   Port01_state    2
     2016-10-20 13:14:59   Port02_name     Anlage
     2016-10-20 13:14:59   Port02_state    1
     2016-10-20 13:14:59   Port03_name     Monitor rechts
     2016-10-20 13:14:59   Port03_state    1
     2016-10-20 13:14:59   Port04_name     USB 3.0 Hub
     2016-10-20 13:14:59   Port04_state    1
     2016-10-20 13:14:59   Port05_name     Drucker
     2016-10-20 13:14:59   Port05_state    2
     2016-10-20 13:14:59   Port06_name     Festplatte
     2016-10-20 13:14:59   Port06_state    2
     2016-10-20 13:14:59   Port07_name     Tischleiste
     2016-10-20 13:14:59   Port07_state    1
     2016-10-20 13:14:59   Port08_name     Monitor links
     2016-10-20 13:14:59   Port08_state    2
   filesystems:
Attributes:
   mibs       .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1:Port01_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.1:Port01_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.2:Port02_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.2:Port02_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.3:Port03_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.3:Port03_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.4:Port04_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.4:Port04_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.5:Port05_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.5:Port05_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.6:Port06_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.6:Port06_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.7:Port07_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.7:Port07_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.8:Port08_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.8:Port08_name
   room       Arbeitszimmer
   snmp       1
   snmpCommunity [COMMUNITY]
   snmpVersion 1


und von der readingsGroup:
Internals:
   DEF        <Zimmer>,<Device>,<Status>
WHG_AZ_PowSW_State:Port01_name,Port01_state
WHG_AZ_PowSW_State:Port02_name,Port02_state
WHG_AZ_PowSW_State:Port03_name,Port03_state
WHG_AZ_PowSW_State:Port04_name,Port04_state
WHG_AZ_PowSW_State:Port05_name,Port05_state
WHG_AZ_PowSW_State:Port06_name,Port06_state
WHG_AZ_PowSW_State:Port07_name,Port07_state
WHG_AZ_PowSW_State:Port08_name,Port08_state
   NAME       TestGroup
   NR         25
   NTFY_ORDER 50-TestGroup
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     WHG_AZ_PowSW_State 1
   Content2:
   DEVICES:
     ARRAY(0x11b7bf0)
     ARRAY(0x15cd900)
     ARRAY(0x15c4be8)
     ARRAY(0x15d0a20)
     ARRAY(0x1560b78)
     ARRAY(0x15439e0)
     ARRAY(0x15d5d20)
     ARRAY(0x15d6b18)
     ARRAY(0x15d3890)
   Fhem:
     lastDefChange 20
     last_update 1476961536.61981
   Helper:
     DEF
     mapping    %ROOM
     Positions:
       WHG_AZ_PowSW_State.Port01_name 2:1
       WHG_AZ_PowSW_State.Port01_state 2:2
       WHG_AZ_PowSW_State.Port02_name 3:1
       WHG_AZ_PowSW_State.Port02_state 3:2
       WHG_AZ_PowSW_State.Port03_name 4:1
       WHG_AZ_PowSW_State.Port03_state 4:2
       WHG_AZ_PowSW_State.Port04_name 5:1
       WHG_AZ_PowSW_State.Port04_state 5:2
       WHG_AZ_PowSW_State.Port05_name 6:1
       WHG_AZ_PowSW_State.Port05_state 6:2
       WHG_AZ_PowSW_State.Port06_name 7:1
       WHG_AZ_PowSW_State.Port06_state 7:2
       WHG_AZ_PowSW_State.Port07_name 8:1
       WHG_AZ_PowSW_State.Port07_state 8:2
       WHG_AZ_PowSW_State.Port08_name 9:1
       WHG_AZ_PowSW_State.Port08_state 9:2
     Values:
       formated:

         ARRAY(0x1569128)
         ARRAY(0x15d2f90)
       orig:

         ARRAY(0x15ce778)
         ARRAY(0x1569410)
       prefixsuffix:

         ARRAY(0x1543b30)
         ARRAY(0x15d09a8)
Attributes:
   mapping    %ROOM
   nolinks    0
   notime     1
   room       Arbeitszimmer


Jetzt kriege ich allerdings ums Verrecken keinen Schalter (on:off) in die Übersicht. Muss ich den händisch anlegen (durch Eintrag in Internals-DEF)? Beim Dummy hatte es gereicht, ein webCmd-Attribut anzulegen (und die Befehle dann logischerweise noch mit anzuhängen), bei readingsGroup klappt das aber so scheinbar nicht.

Und an welcher Stelle muss ich FHEM sagen, dass die Werte 1 und 2 (die Rückgabe von WHG_AZ_PowSW_State:Port0x_State) on und off bedeuten sollen? Muss das schon im SYSSTAT oder erst in der readingsGroup passieren?

Es wäre schön, wenn mich jemand abholen könnte, bevor ich das ganze Projekt einstampfe und bei meiner PHP-Page zum Schalten bleibe.
Nichts gegen FHEM, ist sicher alles gut durchdacht und schlüssig, aber mit jedem weiteren Artikel/Codebrei, den ich lese, werde ich von weiteren Fragezeichen erschlagen. Bin ich zu alt dafür?

Und noch etwas: da der Thread-Titel nicht mehr ganz passend ist würde ich den gern umbenennen. Passiert das im ersten Post oder wie muss ich das anstellen?

LG und Danke im Voraus

justme1968

kommandos werden bei readingsGroup über das commands attribut konfiguriert.

wenn du mir von beiden devices ein jsonlist2 listing postest mach ich dir ein beispiel.

wie soll es denn aussehen? statt 1/2 ein icon das man anklicken kann um zu toggeln ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

JohnDenver0815

Hi,
toggle erachte ich nicht als sinnvoll, da auch ausserhalb von FHEM geschalten werden kann und durch die SNMP-Abfrage alle 60sec u.U. ein falscher IST-Zustand angenommen wird. 2 explizite on/off-Schalter pro Zeile würden da in meinen Augen mehr Sinn ergeben. Status sollte lediglich als Anzeige dienen (1=on, 2=off; eventuell auch über ein Icon gelöst).

Hier mein jsonlist2 vom SYSSTAT:
{
  "Arg":"WHG_AZ_PowSW_State",
  "Results": [
  {
    "Name":"WHG_AZ_PowSW_State",
    "PossibleSets":"",
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 disable:1 disabledForIntervals raspberrycpufreq:1 raspberrytemperature:0,1,2 synologytemperature:0,1,2 stat:1 uptime:1,2 ssh_user  snmp:1 mibs:textField-long snmpVersion:1,2 snmpCommunity filesystems showpercent event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride userattr",
    "Internals": {
      "DEF": "60 600 [IP-ADDR]",
      "HAS_Net::SNMP": "1",
      "HAS_Sys::Statistics": "0",
      "HOST": "[IP-ADDR]",
      "INTERVAL": "60",
      "INTERVAL_FS": "600",
      "NAME": "WHG_AZ_PowSW_State",
      "NR": "24",
      "STATE": "Initialized",
      "TYPE": "SYSSTAT",
      "USE_SNMP": "1",
      "interval_fs": "360",
      "snmpCommunity": "[COMMUNITY]",
      "snmpVersion": "1"
    },
    "Readings": {
      "Port01_name": { "Value":"Schaukasten", "Time":"2016-10-20 14:13:59" },
      "Port01_state": { "Value":"2", "Time":"2016-10-20 14:13:59" },
      "Port02_name": { "Value":"Anlage", "Time":"2016-10-20 14:13:59" },
      "Port02_state": { "Value":"1", "Time":"2016-10-20 14:13:59" },
      "Port03_name": { "Value":"Monitor rechts", "Time":"2016-10-20 14:13:59" },
      "Port03_state": { "Value":"1", "Time":"2016-10-20 14:13:59" },
      "Port04_name": { "Value":"USB 3.0 Hub", "Time":"2016-10-20 14:13:59" },
      "Port04_state": { "Value":"1", "Time":"2016-10-20 14:13:59" },
      "Port05_name": { "Value":"Drucker", "Time":"2016-10-20 14:13:59" },
      "Port05_state": { "Value":"2", "Time":"2016-10-20 14:13:59" },
      "Port06_name": { "Value":"Festplatte", "Time":"2016-10-20 14:13:59" },
      "Port06_state": { "Value":"2", "Time":"2016-10-20 14:13:59" },
      "Port07_name": { "Value":"Tischleiste", "Time":"2016-10-20 14:13:59" },
      "Port07_state": { "Value":"1", "Time":"2016-10-20 14:13:59" },
      "Port08_name": { "Value":"Monitor links", "Time":"2016-10-20 14:13:59" },
      "Port08_state": { "Value":"2", "Time":"2016-10-20 14:13:59" }
    },
    "Attributes": {
      "mibs": ".1.3.6.1.4.1.318.1.1.4.4.2.1.3.1:Port01_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.1:Port01_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.2:Port02_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.2:Port02_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.3:Port03_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.3:Port03_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.4:Port04_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.4:Port04_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.5:Port05_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.5:Port05_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.6:Port06_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.6:Port06_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.7:Port07_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.7:Port07_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.8:Port08_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.8:Port08_name",
      "room": "Arbeitszimmer",
      "snmp": "1",
      "snmpCommunity": "[COMMUNITY]",
      "snmpVersion": "1"
    }
  }  ],
  "totalResultsReturned":1
}


und vom readingsGroup:
{
  "Arg":"TestGroup",
  "Results": [
  {
    "Name":"TestGroup",
    "PossibleSets":"visibility:toggle,toggle2,show,hide",
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 disable:1,2,3 style timestampStyle commands:textField-long mapping:textField-long nameIcon:textField-long cellStyle:textField-long nameStyle:textField-long valueColumn:textField-long valueColumns:textField-long valueFormat:textField-long valuePrefix:textField-long valueSuffix:textField-long valueIcon:textField-long valueStyle:textField-long separator nolinks:1 noheading:1 nonames:1 notime:1 nostate:1 firstCalcRow:1,2,3,4 alwaysTrigger:1,2 sortDevices:1 sortFn visibility:hidden,hideable,collapsed,collapsible setList setFn:textField-long cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride userattr",
    "Internals": {
      "DEF": "<Zimmer>,<Device>,<Status>\u000aWHG_AZ_PowSW_State:Port01_name,Port01_state\u000aWHG_AZ_PowSW_State:Port02_name,Port02_state\u000aWHG_AZ_PowSW_State:Port03_name,Port03_state\u000aWHG_AZ_PowSW_State:Port04_name,Port04_state\u000aWHG_AZ_PowSW_State:Port05_name,Port05_state\u000aWHG_AZ_PowSW_State:Port06_name,Port06_state\u000aWHG_AZ_PowSW_State:Port07_name,Port07_state\u000aWHG_AZ_PowSW_State:Port08_name,Port08_state",
      "NAME": "TestGroup",
      "NR": "25",
      "NTFY_ORDER": "50-TestGroup",
      "STATE": "Initialized",
      "TYPE": "readingsGroup"
    },
    "Readings": {    },
    "Attributes": {
      "mapping": "%ROOM",
      "nolinks": "0",
      "notime": "1",
      "room": "Arbeitszimmer"
    }
  }  ],
  "totalResultsReturned":1
}


Zum Verständnis: jsonlist2 zeigt dir/mir quasi den kompletten PERL-Code der Devices, während list nur eine formatierte Ansicht ausgibt?

Dopamin

Hallo

Also ich habe nun mein Notifi hinbekommen. Ist vielleicht nicht das sauberste aber mit diesem Notify funktioniert auch die Anzeige wenn ich meine Geräte über Weboberfläche an und ausschalte. Hintergrund ist das ich Cisco PoE IP Telefone habe. Ich habe in FHEM ein SYSSTAT angelegt, welches Infos über SNMP von meinem PoE Switch holt.

Nun habe ich mir einen Dummy für mein Cisco Telefon gebaut (IT-Switch) welches bei on einen SNMP Befehl zum anschalten des PoEStatus zum Switch schickt und bei off diesen halt ausschaltet.
Das funktioniert super.

Nun habe ich mir zusätzlich ein Notify gebaut welches die SNMP Infos vom Switch ausliest und wenn der PoE Status auf 0 ist setzt er das Cisco Telefon auf off und bei 1 auf an.

define Cisco_WZ_Check notify switch:PoEStatus1.* { if (ReadingsVal("switch","PoEStatus1","") eq "1") { fhem("setstate Cisco_WZ on") } else { fhem("setstate Cisco_WZ off") } }


Switch ist in dem Fall das Object switch in FHEM und Cisco_WZ ist mein Cisco Telefon Object im FHEM. PoEStatus1 ist ein Reading vom switch.

Vielleicht hilft dir das weiter.

Bei mir funktioniert es auf jedenfall

Gruß

Dopamin