Modul: 74_UnifiSwitch - Auslesen und Steuern von UnifiSwitches (USW)

Begonnen von Wuehler, 12 Mai 2018, 00:37:44

Vorheriges Thema - Nächstes Thema

Wuehler

Moin,

Neue Version ist hochgeladen.

Neue Readings:

  • cpu
  • mem
  • general_temperature
  • fan_level
  • overheating

@Toka: Der Fehler
PERL WARNING: Argument "readings" isn't numeric in addition (+) at ./FHEM/74_UnifiSwitch.pm line 164.
ist darin auch behoben. Vorher ging der Befehl set clear readings nicht.

Viele Grüße,
Dirk

ToKa

RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

reibuehl

Hallo,

wäre es möglich, die "Power Cycle" Funktion für PoE Ports aus der Unifi GUI in das Modul zu integrieren? Damit könnte man Systeme, die hängen, aus FHEM heraus reseten.

Gruß,
Reiner
Reiner.

Wuehler

Moin Reiner,
geht das nich mir set poeMode off/on?
Viele Grüße, Dirk

reibuehl

Hallo Dirk,

poeMode sehe ich bei mir nicht in den set Befehlen oder der CommandRef. Vielleicht ist meine Version zu alt? Ich verwende die Version 3.4.0 von 74_Unifi. Wurde set poeMode später eingebaut oder muss ich da 74_UnifiSwitch.pm verwenden? Bisher habe ich nur den Kontroller per define ubnt Unifi <IP> <PORT> <USER> <PASS> angebunden.

Gruß,
Reiner
Reiner.

OdfFhem

@reibuehl

Wiki sagt:
Zitat
Das Modul UnifiClient ermöglicht die Steuerung eines Unifi-Controllers durch FHEM. Wenn durch den Unifi-Controller auch ein UnifiSwitch verwaltet wird, so legt das Modul bei aktiviertem autocreate UnifiSwitch-Devices an.

reibuehl

Oh! Die UnifiSwitch Devices hatte ich übersehen  ???

Ja, da gibt es poeMode... ich hatte das wohl irgendwie beim Controller erwartet - mein Fehler.

Danke für den Hinweis!
Reiner.

rubinho

@Wuehler

Ich hätte noch einen Verbesserungsvorschlag für das Modul.

Du kannst ja durch das Attribut portProfileDisableID ein Profil definieren, das man mittels Befehl disablePort aktivieren kann.
Dabei muss man ja nicht zwinged das Profil "disable" angeben. Man kann im Grunde auch den Port damit wieder einschalten.

Mein Vorschlag wäre, dass man mittels Attributen seine bevorzugten Profile anlegen kann, um dann die Möglichkeit zu haben, den Port nicht nur zu deaktivieren, sondern auch in einem Profil seiner Wahl zu aktivieren. (Ohne jedesmal das Attribut ändern zu müssen)

Grund für meine Anfrage... Ich möchte diverse Ports (Die meiner Kinder) am Tag nur für eine gewisse Zeit akivieren.

Vorab danke

Gruß
Rubinho
Fhem 5.9@Zotac Zbox Ci327 | HMCCU | Z-Wave@ZMEEUZB1 | HUE Bridge Gen2 | knxd over IP

Wuehler

Moin,

im Anhang eine Version mit neuem setter "portProfile". Da kannst du eine ID mitgeben. Das Ganze habe ich nicht ausprobiert, da es schon ewig her ist, dass ich mich im UnifiController damit beschäftigt habe und ich gerade die Familie nicht mit Experimenten stören möchte. Also probier mal und berichte. Wenn alles funktioniert schau bitte auch mal auf die Doku und mach einen besseren Formulierungsvorschlag, damit auch Dritte verstehen was geht. Wenn man zu viel schreiben müsste kann ich das auch in einen WIKI-Artikel ablegen.

VG,
Dirk

Andy89

Hallo an alle,
ich hätte noch eine Frage. Ich hatte es in letzter Zeit sehr oft, dass sich die externe IP Adresse meiner UDM pro geändert hat und deswegen jedes Mal ein neues UnifiSwitch Device per autocreate angelegt wurde. Habe nur ich das Problem und habe etwas falsch gemacht oder betrifft das mehr Leute?

Beste Grüße
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Wuehler

Moin,

denke, dass das allen UDM-Besitzern aktuell so geht, wenn sie autocreate auf on haben. Der Code lautet folgendermaßen:

if (defined $h->{type} && (($h->{type} eq "usw") || ($h->{type} eq "udm"))){
   my $usw_name="";
   if (defined $h->{name}){
      $usw_name=makeDeviceName($h->{name});
   }else{
      $usw_name=makeDeviceName($h->{ip});
   }
   Dispatch($hash,"UnifiSwitch_".$usw_name.encode_json($h),undef); # Wenn es "UnifiSwitch_".$usw_name noch nicht gibt wird das Device durch autocreate (wenn on) angelegt
}


Bei einer UDM wird es vermutlich keinen Namen geben, oder kann man irgendwo einen eintragen?
Ansonsten mal verbose auf 5 stellen und mir die Logeinträge sende, die mit "UnifiSwitch_Parse - executed" beginnen und kurz danach die IP der UDM anzeigen.

VG,
Dirk

Andy89

Zitat von: Wuehler am 01 November 2020, 13:06:27
Bei einer UDM wird es vermutlich keinen Namen geben, oder kann man irgendwo einen eintragen?
Ansonsten mal verbose auf 5 stellen und mir die Logeinträge sende, die mit "UnifiSwitch_Parse - executed" beginnen und kurz danach die IP der UDM anzeigen.
Hallo und danke für die schnelle Antwort.
Wäre es da nicht sinnvoll einen Namen per Attr zu übergeben oder einfach den Namen des Unifi Gerätes zu übernehmen?

welchen Teil genau brauchst du aus dem verbose 5 log?:

2020.11.01 14:09:02.417 5: unifi: dispatch UnifiSwitch_78.xx.xx.61{"num_sta":38,"syslog_key":"75afdd02bc06c1a7676beb2a72580572e79a7ceeb7c1fcf388f6715feeeb4554",[... viele Zeichen ...]
2020.11.01 14:09:02.418 5: unifi (UnifiSwitch_Parse) - executed. UnifiSwitch: Adress: 78.xx.xx.61
2020.11.01 14:09:02.419 5: unifi (UnifiSwitch_Parse) - executed. UnifiSwitch: message_json: {"num_sta":38,....[hier kommt eine Nachricht mit seeeeehr vielen Zeichen]
2020.11.01 14:09:02.420 4: unifi (UnifiSwitch_Parse) - return: UNDEFINED UnifiSwitch_78.xx.x.61 UnifiSwitch 78.x.x.61


Beste Grüße
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Wuehler

Alle anderen Geräten kann man im UnifiController einen Namen geben, der UDM anscheinend nicht. Im message_json-Teil des Logs könnte ich sonst mal reinschauen, ob ich etwas passendes finde. Ggf. eine ID. Kannst du mir auch gerne per pm senden.
Man könnte FHEM-Unifi auch für genau eine UDM lauffähig machen, wenn ich bei einer UDM immer udm als Name nehme. Aber irgendwann wird es mal jemanden geben, der zwei UDM in FHEM einbinden möchte. Dann würde es einen Namenskonflikt geben.

Andy89

Zitat von: Wuehler am 01 November 2020, 14:37:11
Alle anderen Geräten kann man im UnifiController einen Namen geben, der UDM anscheinend nicht. Im message_json-Teil des Logs könnte ich sonst mal reinschauen, ob ich etwas passendes finde. Ggf. eine ID. Kannst du mir auch gerne per pm senden.
Man könnte FHEM-Unifi auch für genau eine UDM lauffähig machen, wenn ich bei einer UDM immer udm als Name nehme. Aber irgendwann wird es mal jemanden geben, der zwei UDM in FHEM einbinden möchte. Dann würde es einen Namenskonflikt geben.
ich glaube ich hab mich falsch ausgedrückt. Das UDM hat ja im FHEM einen Namen. Un das würde ich als Namen vom UnifiSwitch nehmen (wollen)..
Ich hab dir per PN den Logs geschickt. wenn du das anderes brauchst, sag einfach Bescheid.
Danke!

Beste Grüße
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Wuehler

Aus Sicht FHEM besteht die UDM aus zwei FHEM-Devices: UnifiController = Unifi und UnifiSwitch = UnifiSwitch
Kann man zwei UDM zusammen verwenden? Und die zweite über den in die erste integrierten Controller steuern? Oder ist soetwas definitiv ausgeschlossen?
Ich denke, dass ich als Namen ,,udm" + id verwenden kann. Das ist dann allerdings eine nicht abwärtskompatibele Änderung. Da die anderen UDM-User aber vermutlich auch das Problem neuer Devices haben wenn es eine neue externe IP gibt sollte das iO sein.