Autor Thema: Nmap readingsGroup  (Gelesen 5777 mal)

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #15 am: 30 April 2017, 18:29:58 »
Leider nicht, da ich es nicht schaffe den Value des readings #1_state.absent durch das icon rc_RED und den Value #1_state.present durch das Icon rc_GREEN zu ersetzen.

Die sonst funktionierenden Ersetzungen greifen nicht.

Gernot
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17742
Antw:Nmap readingsGroup
« Antwort #16 am: 30 April 2017, 18:55:40 »
nimm die perl code version von value format und ordne sie dem default '' zu.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #17 am: 01 Mai 2017, 01:04:05 »
Hallo andre,

Danke für den Hinweis. Mit valueFormat funktioniert die Ersetzung. Was muss ich ändern, damit des Textes "rc_GREEN" und "rc_RED" das jeweiligen Icon angezeigt wird?

Danke,

Gernot

defmod nmapListe readingsGroup <>,<Nr>,<IP-Adresse>,<Rechner-Name>,<MAC>,<Status>,<Hersteller> \
nmap:@3,#1_ip,<#1>,(.*)_alias,#1_macAddress,#1_state,#1_macVendor
attr nmapListe cellStyle { "c:1" => 'style="text-align:right"' }
attr nmapListe icon it_network
attr nmapListe room 92 Informationen
attr nmapListe sortColumn 2
attr nmapListe valueFormat { ($VALUE eq 'absent')?"rc_RED":($VALUE eq 'present')?"rc_GREEN":NmapNr($VALUE)}
attr nmapListe valueStyle {$READING =~ m/(.+)_/;;\
 my $state = ReadingsVal($DEVICE, $1."_state", "NA");;\
 my $style = "";;\
 \
 return('style="text-align: right;; '.$style.'"') if($state eq "present" && $READING =~ m/_uptime/);;\
 return('style="color: #FF0000;; text-align: right;; '.$style.'"') if($state eq "absent" && $READING =~ m/_uptime/);;\
 \
 return('style="'.$style.'"') if($state eq "present");;\
 return('style="color: #FF0000;; '.$style.'"') if($state eq "absent");;\
}
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #18 am: 01 Mai 2017, 08:39:31 »
Ich hab's dank andre und igami geschafft.
Meine readingsGroup (jetzt ohne die Nutzung von 99_myUtils):
defmod nmapListe readingsGroup <>,<Nr>,<IP-Adresse>,<onl>,<RechnerName>,<MAC>,<Hersteller> \
nmap:@4,#1_ip,<#1>,#1_state,(.*)_alias,#1_macAddress,#1_macVendor
attr nmapListe cellStyle { "c:1" => 'style="text-align:right"',"c:3" => 'style="text-align:center"',"c:4" => 'style="text-align:left"' }
attr nmapListe icon it_network
attr nmapListe room 92 Informationen
attr nmapListe sortColumn 2
attr nmapListe valueFormat { if ($VALUE eq 'absent') {\
     "<img src='./fhem/images/default/10px-kreis-rot.png' alt='absent'>"\
     }\
  elsif ($VALUE eq 'present') {\
     "<img src='./fhem/images/default/10px-kreis-gruen.png' alt='present'>"\
     }\
  elsif (substr($READING,rindex($READING,"_")) eq "_ip") {\
     substr($VALUE,rindex($VALUE,".")+1)\
     } \
  else {\
    ""\
    }\
}
attr nmapListe valueStyle {$READING =~ m/(.+)_/;;\
 my $state = ReadingsVal($DEVICE, $1."_state", "NA");;\
 my $style = "";;\
 \
 return('style="text-align: right;; '.$style.'"') if($state eq "present" && $READING =~ m/_uptime/);;\
 return('style="color: #FF0000;; text-align: right;; '.$style.'"') if($state eq "absent" && $READING =~ m/_uptime/);;\
 \
 return('style="'.$style.'"') if($state eq "present");;\
 return('style="color: #FF0000;; '.$style.'"') if($state eq "absent");;\
}

Anregungen für zu Optimierung des Codes nehme ich gerne an.
 
Danke noch einmal an andre und igami,

Gernot
« Letzte Änderung: 01 Mai 2017, 08:41:43 von supernova1963 »
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2449
  • RTFM
    • commandref
Antw:Nmap readingsGroup
« Antwort #19 am: 01 Mai 2017, 08:54:35 »
Sieht gut aus :)
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Usertreffen im Kreis Gütersloh! Nächster Termin im August.

FHEM Module: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, Twilight, WeekdayTimer
FHEM Module ToDo: Babel, FluxLED, HABridgeUpdater

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #20 am: 01 Mai 2017, 14:16:15 »
Ich habe noch etwas aufgeräumt, die Farbe der abwesenden geändert und einen Link hintern den Namen gelegt, wenn der #1_alias mit -80 bzw. -443 endet.
Es öffnet sich ein neues Fenster (wer das nicht mag, kann target='_blank' entfernen oder durch target='_self' ersetzen) mit der URL aus der IP-Adresse (http://[#1_ip] bei 80 bzw. https://[#1_ip]:443)

Einen schönen Feiertag,

Gernot

defmod nmapListe readingsGroup <>,<Nr>,<IP-Adresse>,<onl>,<RechnerName>,<MAC>,<Hersteller> \
nmap:@4,#1_ip,<#1>,#1_state,(.*)_alias,#1_macAddress,#1_macVendor
attr nmapListe cellStyle { "c:1" => 'style="text-align:right"',"c:3" => 'style="text-align:center"',"c:4" => 'style="text-align:left"' }
attr nmapListe icon it_network
attr nmapListe room 92 Informationen
attr nmapListe sortColumn 2
attr nmapListe valueFormat { my $ipAddr = substr($READING,0,index($READING,"_"));;\
  #Icon für #1_state.absent Spalte 'onl' \
  return("<img src='./fhem/images/default/10px-kreis-rot.png' alt='absent'>") if($VALUE eq "absent");;\
  #Icon für #1_state.present Spalte 'onl' \
  return("<img src='./fhem/images/default/10px-kreis-gruen.png' alt='present'>") if($VALUE eq "present");;\
  #Spalte 'Nr' zur Sortierung aus der IP extrahieren    \
  return(substr($VALUE,rindex($VALUE,".")+1)) if(substr($READING,rindex($READING,"_")) eq "_ip");;\
  return("<a url='http://".$ipAddr."' onclick='window.open(\"http://".$ipAddr."\");; return false;;'>".$VALUE."</a>") if(substr(ReadingsVal($DEVICE,$READING,""),rindex(ReadingsVal($DEVICE,$READING,""),"-")+1) eq "80");;\
  return("<a url='https://".$ipAddr."' onclick='window.open(\"https://".$ipAddr."\");; return false;;'>".$VALUE."</a>") if(substr(ReadingsVal($DEVICE,$READING,""),rindex(ReadingsVal($DEVICE,$READING,""),"-")+1) eq "443");;\
  #Anderenfalls soll das valueFormat leer bleiben bzw. nachstehenden Inhalt verwenden\
  return("");;\
}
attr nmapListe valueStyle {$READING =~ m/(.+)_/;;\
 my $state = ReadingsVal($DEVICE, $1."_state", "NA");;\
 my $style = "";;\
 \
 return('style="text-align: right;; '.$style.'"') if($state eq "present" && $READING =~ m/_uptime/);;\
 return('style="color: #bfbfbf;; text-align: right;; '.$style.'"') if($state eq "absent" && $READING =~ m/_uptime/);;\
 \
 return('style="'.$style.'"') if($state eq "present");;\
 return('style="color: #bfbfbf;; '.$style.'"') if($state eq "absent");;\
}


Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...
Gefällt mir Gefällt mir x 3 Liste anzeigen

Offline choetzu

  • Sr. Member
  • ****
  • Beiträge: 727
Antw:Nmap readingsGroup
« Antwort #21 am: 01 Mai 2017, 20:46:32 »
Hallo Supernova1963

wow, das sieht sehr schön aus... Woher hast du das FHEM-Template? Danke fürs Feedback.

Lg C
Interesse an Schweizer Usertreffen? https://forum.fhem.de/index.php/topic,88308.0.html

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #22 am: 01 Mai 2017, 21:52:21 »
Hallo choetzu,

Das FHEM-Template ist von Matthias Kleine https://haus-automatisierung.com/hardware/fhem/2016/05/16/fhem-tutorial-reihe-part-5-look-and-feel-von-fhem-veraendern.html

Funktioniert dein nmap jetzt?

Gernot
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...

Offline choetzu

  • Sr. Member
  • ****
  • Beiträge: 727
Antw:Nmap readingsGroup
« Antwort #23 am: 01 Mai 2017, 22:04:08 »
Danke für deine Antwort, werde ich gleich mal ausprobieren ;)

Funktioniert dein nmap jetzt?

Nein, leider nicht. Ich konnte aber den Fehler etwas einkreisen. Am device nmap liegt es m.E. nicht. Denn ohne readingsGroup geht es problemlos, also ohne Fehlermeldung.

Wenn ich es gemäss der Anleitung von igami mache (https://forum.fhem.de/index.php/topic,70041.msg625079.html#msg625079) dann klappt die readingsGroup solange, bis ich folgendes Attribut setze

attr Nmap_readingsGroup valueStyle {$READING =~ m/(.+)_/;;\
 my $state = ReadingsVal($DEVICE, $1."_state", "NA");;\
 my $style = "font-family: monospace;;";;\
 \
 return('style="color: #61CE3C;; text-align: right;; '.$style.'"') if($state eq "present" && $READING =~ m/_uptime/);;\
 return('style="color: #FF0000;; text-align: right;; '.$style.'"') if($state eq "absent" && $READING =~ m/_uptime/);;\
 \
 return('style="color: #61CE3C;; '.$style.'"') if($state eq "present");;\
 return('style="color: #FF0000;; '.$style.'"') if($state eq "absent");;\
}

sobald ich dies mache, kommen die Fehlermeldungen wieder. Meine perl-Kenntnisse sind gleich 0, so dass ich auch nach xmal durchlesen, keine Ahnung habe, woran es liegen könnte...

hmm, ich habe jetzt mal die readingsGroup deaktiviert.
Interesse an Schweizer Usertreffen? https://forum.fhem.de/index.php/topic,88308.0.html

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2449
  • RTFM
    • commandref
Antw:Nmap readingsGroup
« Antwort #24 am: 02 Mai 2017, 06:19:38 »
Wie gibts du das Attribut ein? Das ist die Raw definition.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Usertreffen im Kreis Gütersloh! Nächster Termin im August.

FHEM Module: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, Twilight, WeekdayTimer
FHEM Module ToDo: Babel, FluxLED, HABridgeUpdater

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #25 am: 02 Mai 2017, 06:43:35 »
Meine Perl Kenntnisse sind ebenfalls mehr als bescheiden. Das valueStyle Attribut habe ich, - bis auf Anpassungen des Farb Codes -, unverändert von igami übernommen.

Nur sicherheitshalber, den defmod Code trägst du doch in der "Raw definition" ein und führst ihn mit "Execute commands" aus, oder?
Insbesondere dieser Code funktioniert nämlich nicht mit dem "bösen, bösen, bösen" direkt editieren der fhem.conf.

Anderenfalls hilft den Experten ein list Nmap_readingsGroup bei der Fehleranalyse oft weiter.

Gernot

@igami: du warst schneller

« Letzte Änderung: 02 Mai 2017, 06:50:12 von supernova1963 »
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...

Offline choetzu

  • Sr. Member
  • ****
  • Beiträge: 727
Antw:Nmap readingsGroup
« Antwort #26 am: 02 Mai 2017, 23:09:16 »
Hallo, was ist genau mit raw Definition gemeint? Ich mache es wie folgt. Im Device nmap_readingGroup klicke ich auch attr und wähle dann valueStyle in der Liste aus. Danach gebe ich den Code ein.. Save und fertig..

Ist das falsch?
Interesse an Schweizer Usertreffen? https://forum.fhem.de/index.php/topic,88308.0.html

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #27 am: 03 Mai 2017, 05:45:50 »
Daran liegt es, nimm den Link Raw definition in der letzten Zeile der Anzeige der Definition des Devices und ersetze den Code  ganz oder teilweise.
Es funktioniert sogar in der Raw Definition eines beliebigen Devices. Ich habe mir ein defmodEdit als einfachen Dummy angelegt, den ich für diese Code-Erfassung verwende.

Vergleich Attribut und Raw Definition:

Attribut Editor valueStyle:
{$READING =~ m/(.+)_/;
 my $state = ReadingsVal($DEVICE, $1."_state", "NA");
 my $style = "";
 
 return('style="text-align: right; '.$style.'"') if($state eq "present" && $READING =~ m/_uptime/);
 return('style="color: #bfbfbf; text-align: right; '.$style.'"') if($state eq "absent" && $READING =~ m/_uptime/);
 
 return('style="'.$style.'"') if($state eq "present");
 return('style="color: #bfbfbf; '.$style.'"') if($state eq "absent");
}
Aus der Raw Definition:
attr nmapListe valueStyle {$READING =~ m/(.+)_/;;\
 my $state = ReadingsVal($DEVICE, $1."_state", "NA");;\
 my $style = "";;\
 \
 return('style="text-align: right;; '.$style.'"') if($state eq "present" && $READING =~ m/_uptime/);;\
 return('style="color: #bfbfbf;; text-align: right;; '.$style.'"') if($state eq "absent" && $READING =~ m/_uptime/);;\
 \
 return('style="'.$style.'"') if($state eq "present");;\
 return('style="color: #bfbfbf;; '.$style.'"') if($state eq "absent");;\

Probier's aus, und es klappt!

Gernot

Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 735
Antw:Nmap readingsGroup
« Antwort #28 am: 16 August 2017, 16:29:04 »
Vielen Dank. Sieht super aus.

Bei mir wird der farbige Punkt für Online/Offline links angezeigt. Wie kann ich das zentrieren?
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 308
Antw:Nmap readingsGroup
« Antwort #29 am: 16 August 2017, 20:23:43 »
Hier wird es festgelegt (c:1 = Spalte 1, ...)

....
attr nmapListe cellStyle { "c:1" => 'style="text-align:right"',"c:3" => 'style="text-align:center"',"c:4" => 'style="text-align:left"' }
...
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 16.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, Proplanta, FIRMATA, Homekit, MQTT + espBridge, HMCCU, Nmap, ...