Autor Thema: RSSI Werte schnell und nach CUL/CUN/HMLAN Devices als Tabelle dargestellt NEUE!  (Gelesen 4502 mal)

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Probleme mit dem Empfang von devices ? ... Anbei ein Werkzeug zur einfachen Analyse der Empfangswerte


Immer wieder plagen mich Empfangsprobleme. Natürlich gibt es sich Möglichkeit mit "advaltrigger=1" an allen CUL's/HMLAN etc. die RSSI Werte mit schreiben zu lassen und in FileLog (oder dblog) zu loggen, aber manchmal benötigt man nur einen schnellen, kompletten Überblick über alle Devices nach CUL's/CUNs/HMLANs etc.  aufgeteilt um etwaige Empfangsprobleme rasch erkennen zu können.

Was ist zu tun:

1.) Bei allen CULs/CUN./HMLAN etc. attr CUL addvaltrigger=1  ... setzen (Hinweis: Das kann mittlerweile auch durch Drücken des Button "Enable RSSI reading in internals" (siehe code) erreicht werden).
2.) Folgenden Code nutzen. Dabei wird schlicht die dummy variable "RSSI_Chart" defniert und wenn in FHEM die Variable auf "refresh"  gesetzt/geklickt wird, werden die RSSI Werte (in HTML Table und farblich markiert) dargestellt. Wichtig! im Code (ca. Zeile my $HTTP="http" auf "https" setzen, wenn man FHEM via HTTPS nutzt).
Wer es einfach haben möchte, kann einfach das File fhem.rssi.cfg (attached) verwenden, nach /opt/fhem/FHEM/ kopieren (oder eben das Verzeichnis, in dem die eigenen Configs liegen) und in seiner fhem.cfg ein "include /opt/fhem/FHEM/fhem.rssi.cfg" einfügen
3.) Bei der aller ersten Nutzung, einfach mal alle Buttons schalten (siehe Bild 3 oberer Bereich), da diese nur  bei Erstnutzung noch kein "state" haben.

Die Ausgabe sieht in FHEM dann z.B. wie angehängt (Bild) aus. Die Dokumentation dazu --> siehe auch die Bilder.

Wichtig: Nicht vergessen, "refresh" zu drücken. Nur damit werden natürlich auch die Werte in der Tabelle aktualisiert. Das gilt auch und insbesondere für die Änderungen an den Parametern. Die Auswirkung erkennt man erst nach einem "refresh". Gleiches (refresh) erreicht man aber auch in einem etwaigen eigenem Code (oder cron job --> at ...) mit fhem ("set RSSI_Chart refresh").

Vorteil: Es wird nicht immer im laufenden Betrieb RSSI mit geloggt (z.B. in FileLog etc.), sondern (Ressourcen schonend) nur, wenn man "refresh" klickt, dargestellt. Die Darstellung hat mir schon oft die Positionierung der CUNOs/HMLAN etc. erleichtert.

Man erkennt überdies auch , mit welchen Werten das gleiche sendende "Gerät/Sensor" von unterschiedlichen CULs/HMLANs etc. gleichzeitig empfangen wird und kann unmittelbar die Werte vergleichen.

Add: 12.12.2016: Ich habe noch die Möglichkeit hinzu gefügt, dass auch die vergangene Zeit (in s) seit dem letzten Empfang des jeweiligen CUL's/HMLAN angegeben wird. Hierzu muss man nur auf "with_time" "klicken", anstelle von "check".

Add: 3.1.2017: In der neuen Version wird auch der beste Empfangswert via "highlighting" besser dargestellt. Damit kan man sehr schnell erkennen, welches Device, von welchem CUN/CUL etc. am besten empfangen wird und kann hier ggf. auch das IODev setzen (so es denn ein Empfangendes Devices ist).Überdies werden nun die Devices sortiert [A-->Z] angezeigt.
Die RSSI Werte können nun auch mit "Clear all RSSI values in internals" gelöscht werden, sodass ab diesem Zeitpunkt nur! die neu empfangenen Werte dargestellt werden. Das mach Sinn, wenn man z.B. ein CUL/CUNO etc. neu positioniert und nun die Werte erneut lesen/darstellen möchte.

Add: 13.1.2017: Viele Code-Änderungen, einige BugFixes und viele Erweiterungen.
Nun kann auch jedes empfangene Device einzeln aus der Darstellung/Berechnung heraus genommen werden.
Einen Differenzdarstellung (gespeicherter RSSI Wert - aktueller RSSI Wert) ist nun möglich. Gerade das macht Sinn, da hiermit ein CUL/CUNO/HMLAN oder anderes IODev funktechnisch neu positioniert werden kann und das Ergebnis als RSSI Differenz schnell sichtbar und damit der Erfolg/oder Miserfolg der Neupositionierung deutlich wird.

Add: 17.1.2017: Weitere IODev's hinzugefügt und bugfix: "Clear all RSSI values in internals" funktioniert nun korrekt.

Add: 1.2.2017: Weiteres IODev hinzugefügt (TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive), sowie HTTPS Icon fix.

Add: 2.2.2017: Colorscheme eingefügt, damit die Tabelle auch mit Bright-Styles in FHEM besser sichtbar ist (Button: Use dark colorscheme (for bright FHEM backgrounds)).

Add: 6.3.2017: Stackable CC & TSCUL hinzugefügt.

#
# v 1.0
#
##################################################
## Dummy fuer alle RSSI Werte folgende Funktion ##
##################################################
# Dummy fuer die HTML (Table) Ausgabe
define RSSI_Chart dummy
attr RSSI_Chart alias RSSI<br>Values
attr RSSI_Chart group RSSI Values
attr RSSI_Chart room RSSI
attr RSSI_Chart webCmd refresh


########################
## RSSI Setup Buttons ##
########################
define RSSI_SertUpHighlight dummy
attr RSSI_SertUpHighlight alias Highlight the best value in a row
attr RSSI_SertUpHighlight devStateIcon .*0:ios-off:1 .*:ios-on-green:0
attr RSSI_SertUpHighlight group RSSI Buttons
attr RSSI_SertUpHighlight room RSSI
attr RSSI_SertUpHighlight sortby 1

define RSSI_SetUpLastActive dummy
attr RSSI_SetUpLastActive alias Show last reception in [s]
attr RSSI_SetUpLastActive devStateIcon .*0:ios-off:1 .*:ios-on-green:0
attr RSSI_SetUpLastActive group RSSI Buttons
attr RSSI_SetUpLastActive room RSSI
attr RSSI_SetUpLastActive sortby 2

define RSSI_SetUpBestCol dummy
attr RSSI_SetUpBestCol alias Show column best value
attr RSSI_SetUpBestCol devStateIcon .*0:ios-off:1 .*:ios-on-green:0
attr RSSI_SetUpBestCol group RSSI Buttons
attr RSSI_SetUpBestCol room RSSI
attr RSSI_SetUpBestCol sortby 3

define RSSI_SetUpAverage dummy
attr RSSI_SetUpAverage alias Show average row (and Log into Logfile)
attr RSSI_SetUpAverage devStateIcon .*0:ios-off:1 .*:ios-on-green:0
attr RSSI_SetUpAverage group RSSI Buttons
attr RSSI_SetUpAverage room RSSI
attr RSSI_SetUpAverage sortby 4

define RSSI_SetUpInternals dummy
attr RSSI_SetUpInternals alias Enable RSSI reading in internals
attr RSSI_SetUpInternals devStateIcon .*0:ios-off:1 .*:ios-on-green:0
attr RSSI_SetUpInternals group RSSI Buttons
attr RSSI_SetUpInternals room RSSI
attr RSSI_SetUpInternals sortby 5

define RSSI_SetUpAverageSaveOldValues dummy
attr RSSI_SetUpAverageSaveOldValues alias Save old RSSI values and calculate only diffs (currently not saved)
attr RSSI_SetUpAverageSaveOldValues devStateIcon .*0:ios-off:1 .*:ios-on-blue:0
attr RSSI_SetUpAverageSaveOldValues group RSSI Buttons
attr RSSI_SetUpAverageSaveOldValues room RSSI
attr RSSI_SetUpAverageSaveOldValues sortby 7

define RSSI_SetUpShowOldValues dummy
attr RSSI_SetUpShowOldValues alias Show old values while using diffs
attr RSSI_SetUpShowOldValues devStateIcon .*0:ios-off:1 .*:ios-on-blue:0
attr RSSI_SetUpShowOldValues disable 1
attr RSSI_SetUpShowOldValues group RSSI Buttons
attr RSSI_SetUpShowOldValues room RSSI
attr RSSI_SetUpShowOldValues sortby 8

define RSSI_SetUpColorSchemeDark dummy
attr RSSI_SetUpColorSchemeDark alias Use dark colorscheme (for bright FHEM backgrounds)
attr RSSI_SetUpColorSchemeDark devStateIcon .*0:ios-off:1 .*:ios-on-green:0
attr RSSI_SetUpColorSchemeDark group RSSI Buttons
attr RSSI_SetUpColorSchemeDark room RSSI
attr RSSI_SetUpColorSchemeDark sortby 6

define RSSI_SetUpClearRSSIValues dummy
attr RSSI_SetUpClearRSSIValues alias Clear all RSSI values in internals
attr RSSI_SetUpClearRSSIValues devStateIcon .*0:message_garbage:1 .*:message_garbage:0
attr RSSI_SetUpClearRSSIValues group RSSI Buttons
attr RSSI_SetUpClearRSSIValues room RSSI
attr RSSI_SetUpClearRSSIValues sortby 9



###################################
# delete all internal RSSI values #
###################################
define RSSI_ClearAllRSSIValues notify RSSI_SetUpClearRSSIValues:[0,1] set RSSI_Chart clear


############################################
# schreibt die momentanen RSSI Werte       #
# in das entsprechende Reading des Devices #
############################################
# Bsp: "internal" eines Devices: CUNO2_RSSI:-71.0 wird in das Reading "CUNO2_RSSI_old:-71" geschrieben
define RSSI_Save_old_values notify RSSI_SetUpAverageSaveOldValues:[0,1] { \
my @culs=devspec2array("TYPE=CUL");;\
push(@culs, devspec2array("TYPE=HMLAN"));;\
push(@culs, devspec2array("TYPE=CUL_RFR"));;\
push(@culs, devspec2array("TYPE=HMCCUDEV"));;\
push(@culs, devspec2array("TYPE=CUL_MAX"));;\
push(@culs, devspec2array("TYPE=TSCUL"));;\
push(@culs, devspec2array("TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive"));;\
push(@culs, devspec2array("TYPE=STACKABLE_CC"));;\
\
my $cul_rssi="";;\
my $all_int="";;\
my $dev="";;\
my $but_alias="";;\
my $date=$mday.".".$month.".".$year." ".$hour.":".$min.":".$sec;;\
\
if ($EVENT eq "1")\
{\
Log 0,"Speicher momentan RSSI values der devices in die readings z.B. CUNO2_RSSI_old";;\
my @device=devspec2array("i:LASTInputDev=\\w.*");;\
foreach(@device) \
{ \
$dev=$_;;\
foreach(@culs) \
{\
if (InternalVal("$_","type","") eq "CUL_MAX")\
{\
$cul_rssi="RSSI"\
}\
else\
{\
$cul_rssi="$_"."_RSSI"\
}\
\
$all_int=InternalVal($dev,$cul_rssi,"");;\
if ($all_int)\
{\
fhem("setreading $dev ".$cul_rssi."_old ".$all_int)\
\
}\
}\
\
}\
\
$but_alias="Save old RSSI values and calculate only diffs (saved: $date)";;\
fhem ("attr RSSI_SetUpAverageSaveOldValues alias $but_alias");;\
fhem ("attr RSSI_SetUpShowOldValues disable 0");;\
fhem ("set RSSI_Chart refresh")\
}\
else\
{\
Log 0,"Loesche alte gespeicherte RSSI values aus den devices readings Bsp: CUNO2_RSSI_old";;\
foreach(@culs) \
{\
$cul_rssi="$_"."_RSSI_old";;\
fhem ("deletereading .* $cul_rssi")\
}\
$but_alias="Save old RSSI values and calculate only diffs (currently not saved)";;\
fhem ("attr RSSI_SetUpAverageSaveOldValues alias $but_alias");;\
fhem ("attr RSSI_SetUpShowOldValues disable 1")\
}\
\
}


#########################################
## Liesst die RSSI Werte aller Devices ##
#########################################
# Schreibt dieses in ein Dummy device in HTML
define rssi_read_from_device notify RSSI_Chart:(refresh|clear) { \
my @culs=devspec2array("TYPE=HMLAN");;\
push(@culs, devspec2array("TYPE=CUL"));;\
push(@culs, devspec2array("TYPE=CUL_RFR"));;\
push(@culs, devspec2array("TYPE=HMCCUDEV"));;\
push(@culs, devspec2array("TYPE=CUL_MAX"));;\
push(@culs, devspec2array("TYPE=HMUARTLGW"));;\
push(@culs, devspec2array("TYPE=TSCUL"));;\
push(@culs, devspec2array("TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive"));;\
push(@culs, devspec2array("TYPE=STACKABLE_CC"));;\
\
\
my $HTTP="http";; # change it to "https", if you using https instead of http for FHEM\
my $nr_culs=scalar @culs;;\
my $colspan=$nr_culs+3;;\
my $dev ="";;\
my $cul_rssi="";;\
my $datum = strftime "%Y-%m-%d_%H:%M:%S", localtime;;\
my $rssi_chart="<table border='1' bordercolor'black'><tr bgcolor=yellow><td colspan=".$colspan."><div align='center'><font color='black'><b>RSSI Values of all devices from: ".$datum."</b></font></div></td></tr>";;\
my $nr=0;;\
my $cnt=0;;\
my $num=0;;\
my $rr=0;;\
my $line="";;\
my $header="<td>Enable</td>";;\
my $col="green";;\
my $alias="";;\
my $bestVal="";;\
my @all_values=();;\
my @all_best_cul=();;\
my $best_value="";;\
my $ButHighLight=Value("RSSI_SertUpHighlight");;\
my $ButBestCol=Value("RSSI_SetUpBestCol");;\
my $ButLastActive=Value("RSSI_SetUpLastActive");;\
my $ButShowAverage=Value("RSSI_SetUpAverage");;\
my $ButShowOldValues=Value("RSSI_SetUpShowOldValues");;\
my $ButtonColorSchemeDark=Value("RSSI_SetUpColorSchemeDark");;\
my @cul_avg=();;\
my @cul_num=();;\
my $all_best=0;;\
my $nr_allBest=0;;\
my $disabled="";;\
my $disabled_set="";;\
my $dev_disable="";;\
my $old_rssi_val="";;\
my $org_int="";;\
my $fntColor1="lightblue";;\
my $fntColor2="white";;\
my $bgColor1="#006600";;\
my $colGood="lightgreen";;\
my $colMid="yellow";;\
my $colBad="#ff8533";;\
my $colWorse="red";;\
\
\
my $calc_diffs=ReadingsVal("RSSI_SetUpAverageSaveOldValues","state","");;\
\
if ($ButBestCol eq 1) {$header=$header."<td>best</td>"};;\
\
my @device=devspec2array("i:LASTInputDev=\\w.*");;\
@device = sort @device;;\
\
if ($ButtonColorSchemeDark eq 1)\
{\
$fntColor1="darkblue";;\
$fntColor2="darkblue";;\
$colGood="darkgreen";;\
$colMid="darkyellow";;\
$colBad="#ff8533";;\
$colWorse="red";;\
$bgColor1="#00A700";;\
}\
else\
{\
$fntColor1="lightblue";;\
$fntColor2="white";;\
$colGood="lightgreen";;\
$colMid="yellow";;\
$colBad="#ff8533";;\
$colWorse="red";;\
$bgColor1="#006600";;\
}\
\
foreach(@culs) \
{\
$header=$header."<td><div align='center'><a href=".$HTTP."://$FW_httpheader{Host}/fhem?detail=$_ target='_blank'><font color='".$fntColor1."'>".$_."</font></a><div></td>";;\
}\
\
$rssi_chart=$rssi_chart."<tr><td><div align='left'><font color='".$fntColor1."'>Device</font></div></td>".$header."</tr>";;   \
foreach(@device) \
{\
$dev=$_;;\
$line="";;\
$alias=AttrVal($dev,"alias",$dev);;\
@all_values=();;\
@all_best_cul=();;\
$num=0;; \
$dev_disable=ReadingsVal("$dev","RSSI_disable","0");;\
foreach(@culs) \
{\
\
if (InternalVal("$_","TYPE","") eq "CUL_MAX")\
{\
$cul_rssi="RSSI"\
}\
else\
{\
$cul_rssi="$_"."_RSSI"\
}\
\
if ($EVENT eq "clear") \
{\
delete($defs{"$dev"}{"$cul_rssi"})\
} \
my $all_int=InternalVal($dev,$cul_rssi,"");;\
if ($calc_diffs eq "1")\
{\
$old_rssi_val=ReadingsVal($dev,$cul_rssi."_old","");;\
if (($old_rssi_val)&&($all_int))\
{\
$org_int=$all_int;;\
$all_int=$all_int-$old_rssi_val\
}\
else\
{\
$all_int="0"\
}\
}\
\
my $cul_time=InternalVal($dev,"$_"."_TIME","");;\
my $last_activity_since = int(time - time_str2num($cul_time));;\
my $best_value = "";;\
\
if (!$cul_avg[$num])\
{\
$cul_avg[$num]=0;; \
}\
\
if (!$cul_num[$num])\
{\
$cul_num[$num]=0;; \
} \
\
if ($all_int) \
{ \
$nr ++\
}\
\
if (($all_int) && ($dev_disable eq "0"))\
{ \
$cul_avg[$num]=$cul_avg[$num] + $all_int;;\
$cul_num[$num]=$cul_num[$num] + 1;;\
@all_values = (@all_values, $all_int);;\
@all_best_cul = (@all_best_cul, "$_");;\
my $ShowOldDiffs="";;\
if ($calc_diffs ne "1")\
{\
\
if ($all_int >= -75) { $col="$colGood" }\
if ($all_int < -75)  { $col="$colMid" }\
if ($all_int <= -80) { $col="$colBad" }\
if ($all_int <= -85) { $col="$colWorse" }\
}\
else\
{\
if ($all_int >= 0) \
{ \
$col="$fntColor1" \
}\
else\
{\
$col="red"\
}\
if ($ButShowOldValues eq "1")\
{\
$ShowOldDiffs="<br><font color='".$fntColor2."' size='1'>$old_rssi_val &rarr;;;; $org_int</font>"\
}\
}\
\
my $row="<td><font color=$col> ".$all_int." </font>$ShowOldDiffs";;\
if ($ButLastActive eq 0)\
{\
$line=$line.$row."</td>";;\
}\
if ($ButLastActive eq 1) \
{\
$line=$line.$row."<div align='center'><font color='".$fntColor2."' size='1'>(".$last_activity_since." s)</font></div></td>";;\
}\
}\
else\
{\
$line=$line."<td></td>";; \
} \
$num++;;\
}\
if ($nr > 0)\
{\
# find best RSSI values and mark with bold and underline \
if (@all_values) \
{\
$best_value = $all_values[0];;\
$rr=0;;\
for(@all_values) \
{\
if ($_ > $best_value)\
{\
\
$best_value = $_;;\
$rr++;;\
\
}\
}\
}\
\
# for further extension\
# if (@all_best_cul)\
# {\
# Log 0,"$rr;; $all_best_cul[$rr];;@all_values;;@all_best_cul";;\
# }\
\
if ($dev_disable eq 0)\
{\
if (!$best_value) {$best_value=0}\
if ($best_value >= -75) { $col="$colGood" }\
if ($best_value < -75)  { $col="$colMid" }\
if ($best_value <= -80) { $col="$colBad" }\
if ($best_value <= -85) { $col="$colWorse" } \
$line =~ s/\./,/g;;\
if ($ButHighLight eq 1)\
{ \
$nr_allBest++;;\
$all_best=$all_best+$best_value;;\
my $search_best_value=$best_value;;\
$best_value =~ s/\./,/g;;\
$line =~ s/ $search_best_value /<strong><div style='background-color: $bgColor1'>$best_value<\/div><\/strong>/g;;\
}\
}\
\
if ($ButBestCol eq 1) \
{\
$bestVal="<td><font color=$col>".$best_value."</font></td>";;\
}\
\
if ($dev_disable eq 1)\
{\
$disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-off.png";;\
$disabled_set = "0";;\
$col="grey";;\
if ($ButBestCol eq 1) \
{\
$bestVal="<td></td>";;\
}\
}\
else\
{\
\
$disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";;\
$disabled_set = "1";; \
}\
\
$cnt++;;\
$rssi_chart=$rssi_chart."<tr><td><div align='left'><b><a href=$HTTP://$FW_httpheader{Host}/fhem?detail=$dev target='_blank'><font color=$col>";;\
$rssi_chart=$rssi_chart.$cnt." ".$alias."</font></a></b></div></td><td>";;\
$rssi_chart=$rssi_chart."<a href=$HTTP://$FW_httpheader{Host}/fhem?cmd=setreading%20$dev%20RSSI_disable%20$disabled_set;;;;trigger%20RSSI_Chart%20refresh>";;\
$rssi_chart=$rssi_chart."<img src=$disabled width=75%></a></td>".$bestVal.$line."</tr>";;\
\
$nr=0;; \
} \
\
}\
\
if ($ButShowAverage eq 1)\
{\
my $txt_rssi="";;\
$rssi_chart="$rssi_chart"."<tr><td colspan='100%'></td></tr>";;\
if ($calc_diffs eq "1")\
{\
$txt_rssi="delta RSSI (diff to stored values)"\
}\
else\
{\
$txt_rssi="average RSSI"\
}\
$rssi_chart="$rssi_chart"."<tr bgcolor=MediumBlue><div align='center'><td><font color='white'><b>$txt_rssi</b></font></td><td></td>";;\
if ($ButBestCol eq 1) \
{\
if (!$nr_allBest) {$nr_allBest=1}\
my $best_all="";;\
if ($calc_diffs eq "1")\
{\
$best_all= sprintf "%.2f", $all_best;;\
if ($best_all >= 0) \
{ \
$col="lightgreen"\
}\
else\
{\
$col="red"\
}\
}\
else\
{\
$best_all= sprintf "%.2f", $all_best/$nr_allBest;;\
if ($best_all != 0)\
{\
if ($best_all >= -75) { $col="lightgreen" }\
if ($best_all < -75)  { $col="yellow" }\
if ($best_all <= -80) { $col="#ff8533" }\
if ($best_all <= -85) { $col="red" } \
}\
}\
\
$rssi_chart=$rssi_chart."<td><font color=$col><b>".$best_all."</b></font></td>";;\
}\
\
my $average="";;\
for(my $i = 0;; $i < @cul_avg;; $i++) \
{ \
\
if ($cul_avg[$i] != 0)\
{\
if ($calc_diffs eq "1")\
{\
$average = sprintf "%.2f", $cul_avg[$i];;\
if ($average >= 0)\
{\
$col="lightgreen"\
}\
else\
{\
$col="red"\
}\
}\
else\
{\
$average = sprintf "%.2f", $cul_avg[$i]/$cul_num[$i];;\
if ($average >= -75) { $col="lightgreen" }\
if ($average < -75)  { $col="yellow" }\
if ($average <= -80) { $col="#ff8533" }\
if ($average <= -85) { $col="red" } \
}\
\
}\
else\
{\
$average="";; \
}\
\
$rssi_chart="$rssi_chart"."<td><font color=$col><b>$average</b></font></td>";;\
Log 0,"RSSI Average:$culs[$i];;$average";; \
}\
if (!$nr_allBest) {$nr_allBest = 1}\
my $best_all= sprintf "%.2f", $all_best/$nr_allBest;;\
Log 0,"RSSI Average all best: $best_all";;\
$rssi_chart="$rssi_chart"."</tr>";;\
}\
$rssi_chart="$rssi_chart"."</table>";;\
\
if ($EVENT eq "clear") \
{ \
Log 0,"Clearing all RSSI internal values";;\
}\
fhem ("set RSSI_Chart $rssi_chart");; \
}\


##################
## RSSI als CSV ##
##################

define rssi_csv_create notify RSSI_Chart_csv:check { \
my @culs =devspec2array("TYPE=HMLAN");;\
push(@culs, devspec2array("TYPE=CUL"));;\
my $nr_culs=scalar @culs;;\
my $colspan=$nr_culs+2;;\
my $dev ="";;\
my $cul_rssi="";;\
my $datum = strftime "%Y-%m-%d_%H:%M:%S", localtime;;\
my $rssi_chart="";;\
my $nr=0;;\
my $line="";;\
my $header="Device;;;;";;\
my $col="green";;\
my $alias="";;\
my @device=devspec2array("i:LASTInputDev=\\w.*");;\
foreach(@culs) \
{\
$header=$header."$_;;;;";;\
}\
$rssi_chart=$rssi_chart."".$header."<br>";;\
foreach(@device) \
{\
$dev=$_;;\
$line="";;\
$alias=AttrVal($dev,"alias",$dev);;\
foreach(@culs) \
{\
$cul_rssi="$_"."_RSSI";;\
my $all_int=InternalVal($dev,$cul_rssi,"");;\
if ($all_int)\
{\
$nr ++;;\
$all_int =~ s/\./,/g;;\
$line=$line.";;;;".$all_int."";;\
}\
else\
{\
$line=$line.";;;;";; \
} \
}\
if ($nr > 0)\
{\
$rssi_chart=$rssi_chart."".$alias."".$line."<br>";;\
$line="";;\
$nr=0;; \
} \
}\
\
$rssi_chart="$rssi_chart</div>";;\
fhem ("set RSSI_Chart_csv $rssi_chart");;\
}




Viele Grüße!

Andreas
« Letzte Änderung: 09 März 2017, 13:17:27 von fhem-challenge »
Gefällt mir Gefällt mir x 5 Liste anzeigen

Offline frank

  • Hero Member
  • *****
  • Beiträge: 5635
kennst du hminfo? => get hminfo rssi.
ist natürlich nicht so schön bunt.
FHEM: 5.7(SVN) => FB7390(06.04) | Pi3(jessie)
IO: CUL433_V3.3(1.00.01B53)|CUL868_V3.3(1.58)|HMLAN(0.965)|HMUSB2(0.967)|HMUART(1.4.1)
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
kennst du hminfo? => get hminfo rssi.
ist natürlich nicht so schön bunt.

Ja, aber ich habe nicht nur HM devices, sondern werte auch RSSI von meinen CUL's  (868,433) usw. aus, deshalb auch die Funktion.

Viele Grüße!


Andreas

Offline sash.sc

  • Sr. Member
  • ****
  • Beiträge: 882
Danke für dieses Chart.

Wie stelle ich es an, dass die RSSI Werte in ein LOG File geschrieben werden ????
Dann kann ich es evtl. in einen Diagramm packen !!

Gruß und Danke

Sascha
Raspi 2  Jessie aktuell; IT , div. TFA 433 MHz;div. TX29 DTH; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;ESP8622 ;nanoCUL a-fw (433 & 868 MHz);minCULwlan; WLANduino; MySensors

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16008
das kann man auch mit einer readingsGroup umsetzen. die wird auch direkt bei jedem refresh im browser aktualisiert ohne extra knopf.

define culRSSI readingsGroup <>,<HMLAN>,<CUL>,<CUL2>,<CUL3>,<panStamp>,<>\
cul_RSSI=.*:+cul_RSSI,+cul_TIME cul2_RSSI=.*:+hmlan_RSSI,+cul2_RSSI,+cul2_TIME cul3_RSSI=.*:+cul3_RSSI,+cul3_TIME panStamp_RSSI=.*:+panStamp_RSSI,+panStamp_TIME
attr culRSSI alias RSSI Werte
attr culRSSI room 9 System
attr culRSSI valueColumn { '' => 6, hmlan_RSSI => 1, cul_RSSI => 2, cul2_RSSI => 3, cul3_RSSI => 4, panStamp_RSSI => 5 }
attr culRSSI valueStyle {return undef if($READING =~ m/TIME/);; ($VALUE <= -85)?'style="color:red"':($VALUE <= -80)?'style="color:yellow"':undef}

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
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Danke für dieses Chart.

Wie stelle ich es an, dass die RSSI Werte in ein LOG File geschrieben werden ????
Dann kann ich es evtl. in einen Diagramm packen !!

Gruß und Danke

Sascha

Gerne. Anbei die relevanten Files zum Plotten der RSSI.

Hiermit alles mit :RSSI.* ins logfile "loggen":
### RSSI log
define RSSI_Logging FileLog /opt/fhem/rssi_all_log .*:RSSI.*
attr RSSI_Logging logtype text
attr RSSI_Logging room Logfiles

Hier der Plot. Hierbei muss in "attr plotfunction" das device sowie der CUL angegeben werden. Hier im Beispiel also: Wetterstation.CUNO2, damit vom device "Wetterstation" der RSSI vom CUL=CUNO2 dargestellt werden kann.
Ich stelle nahezu alle Devices und deren RSSI in Plots dar und kann dann im Überblick sehr leicht die Einflüsse bei Verschieben des Devices/des CULs im Plot erkennen. Insbesondere beim NeuPositionieren eines CULs/CUNO/was auch immer ... erkennt man schnell den gesamten Effekt auf alle Devices.

### Plot RSSI Wetterstation
define RSSI_CUNO2_Wetterstation SVG rssi_all_log:rssi_culs_plot:CURRENT
attr RSSI_CUNO2_Wetterstation plotfunction Wetterstation.CUNO2
attr RSSI_CUNO2_Wetterstation room RSSI_Plots
attr RSSI_CUNO2_Wetterstation title "Wetterstation"


Hier das gplot File. Aus meiner Sicht ist es sinnvoll, hier "Points" anstelle von Linien zu verwenden, da ich hierbei genauer erkennen kann, wann FHEM empfangen hat.
# Created by FHEM/98_SVG.pm, 2016-12-12 14:25:55
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid ytics
set ylabel "RSSI"
set y2label "RSSI"
set yrange [-95:-35]
set y2range [-95:-35]


#rssi_all_log 5:<SPEC1>::

plot "<IN>" using 1:2 axes x1y2 notitle ls l0 lw 1 with points


Anbei ein Ausschnitt der RSSI Plots, basierend auf den o.g. Files.


Viele Grüße!

Andreas
« Letzte Änderung: 22 Dezember 2016, 13:29:14 von fhem-challenge »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
das kann man auch mit einer readingsGroup umsetzen. die wird auch direkt bei jedem refresh im browser aktualisiert ohne extra knopf.

define culRSSI readingsGroup <>,<HMLAN>,<CUL>,<CUL2>,<CUL3>,<panStamp>,<>\
cul_RSSI=.*:+cul_RSSI,+cul_TIME cul2_RSSI=.*:+hmlan_RSSI,+cul2_RSSI,+cul2_TIME cul3_RSSI=.*:+cul3_RSSI,+cul3_TIME panStamp_RSSI=.*:+panStamp_RSSI,+panStamp_TIME
attr culRSSI alias RSSI Werte
attr culRSSI room 9 System
attr culRSSI valueColumn { '' => 6, hmlan_RSSI => 1, cul_RSSI => 2, cul2_RSSI => 3, cul3_RSSI => 4, panStamp_RSSI => 5 }
attr culRSSI valueStyle {return undef if($READING =~ m/TIME/);; ($VALUE <= -85)?'style="color:red"':($VALUE <= -80)?'style="color:yellow"':undef}

gruss
  andre


Ja, vollkommen richtig, geht auch gut mit readingsgroups (hatte ich auch vorher).

Kleiner Nachteil:

- Ich wechsele ab und zu mal die CULs/CUNOs/HMLAN1 (einer kommt dazu, einer wieder weg etc.) und müsste dann immer die "readingsgroups" entsprechend anpassen.
- Ich wollte ganz bewusst kein "refresh" bereits beim Seitenaufbau a'la readingsgroups, sondern diesen manuell erzeugen, damit ich die alten und neuen RSSI Werte vergleichen kann.

Eine Ergänzung ist noch das "plotten" der RSSI values , was ich additiv mache um größere (globalere) Veränderungen feststellen zu können und damit etwaige Auswirkungen auf mehrere Devices. -->  https://forum.fhem.de/index.php/topic,62184.msg544163.html#msg544163

Viele Grüße!

Andreas

« Letzte Änderung: 21 Dezember 2016, 11:12:47 von fhem-challenge »

Offline hartenthaler

  • Full Member
  • ***
  • Beiträge: 243
Ich hatte gerade gestern das Problem, dass ich auch die RSSI-Werte meiner neuen CCU2 sehen wollte (neben den HMLAN-Werten, die ich schon länger überwache). Habe dann erst einmal die Version von Andre angepasst, aber werde mir nun auch mal Deine Version, Andreas, näher ansehen. Schön fand ich, dass man die Spalten in der readingsGroup per sortColumn sortieren kann, so dass man neben der Farbkennzeichnung auch aus dem Rangplatz leicht Schlüsse ziehen kann.
define rg_RSSI readingsGroup <Sensor/Aktor>,<HMLAN>,<CCU2>,<Zeitstempel> HMLAN1_RSSI=.*:+HMLAN1_RSSI,+HMLAN1_TIME TYPE=HMCCUDEV:Heizung_.*.RSSI_DEVICE
attr rg_RSSI alias Sende- und Empfangspegel Homematic
attr rg_RSSI group Homematic
attr rg_RSSI mapping %ALIAS
attr rg_RSSI room Homematic,System
attr rg_RSSI sortColumn 2
attr rg_RSSI valueColumn { '' => 2, HMLAN1_RSSI => 1, HMLAN1_TIME => 3 }
attr rg_RSSI valueFormat { "%i dBm" if ($VALUE =~ m/^\-\d/o) }
attr rg_RSSI valueStyle {return undef if($READING =~ m/TIME/);; ($VALUE <= -85)?'style="text-align:right;;color:red"':($VALUE <= -80)?'style="text-align:right;;color:orange"':'style="text-align:right"'}
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Ich hatte gerade gestern das Problem, dass ich auch die RSSI-Werte meiner neuen CCU2 sehen wollte (neben den HMLAN-Werten, die ich schon länger überwache). Habe dann erst einmal die Version von Andre angepasst, aber werde mir nun auch mal Deine Version, Andreas, näher ansehen. Schön fand ich, dass man die Spalten in der readingsGroup per sortColumn sortieren kann, so dass man neben der Farbkennzeichnung auch aus dem Rangplatz leicht Schlüsse ziehen kann.
define rg_RSSI readingsGroup <Sensor/Aktor>,<HMLAN>,<CCU2>,<Zeitstempel> HMLAN1_RSSI=.*:+HMLAN1_RSSI,+HMLAN1_TIME TYPE=HMCCUDEV:Heizung_.*.RSSI_DEVICE
attr rg_RSSI alias Sende- und Empfangspegel Homematic
attr rg_RSSI group Homematic
attr rg_RSSI mapping %ALIAS
attr rg_RSSI room Homematic,System
attr rg_RSSI sortColumn 2
attr rg_RSSI valueColumn { '' => 2, HMLAN1_RSSI => 1, HMLAN1_TIME => 3 }
attr rg_RSSI valueFormat { "%i dBm" if ($VALUE =~ m/^\-\d/o) }
attr rg_RSSI valueStyle {return undef if($READING =~ m/TIME/);; ($VALUE <= -85)?'style="text-align:right;;color:red"':($VALUE <= -80)?'style="text-align:right;;color:orange"':'style="text-align:right"'}

Ich habe bei mir nun einige Dinge erweitert.

-->  Hier lassen sich alle RSSI Werte löschen, damit bei etwaiger Neupositionierung nur die "neuen" Werte dargestellt werden können.
--> Überdies habe ich ein "highlighting" hinzugefügt, damit man recht schnell die "bestern" Empfangswerte in einer Zeile schneller erkennen kann. Gerade , wenn man mehrere CULs/CUNOs/MAXCubes/HMLANs beseitzt, ist so ein Überblick recht hilfreich.
--> Das schreiben der RSSI Werte in den internals habe ich via "Button" nun so geregelt, dass diese für alle CULs/CULn/MAx/HMLAN etc. ein/ausgeschaltet werden können. Also quasi ein "advaltrigger 0/1" gesetzt wird.


Viele Grüße!

Andreas
« Letzte Änderung: 03 Januar 2017, 14:36:04 von fhem-challenge »

Offline synaps-o-dan

  • New Member
  • *
  • Beiträge: 24
Hallo Andreas,
vielen lieben Dank für die Arbeit, tolle Idee und Umsetzung. Gefällt mir persönlich besser als Lösungen, die auf readingsGroup  basieren. Ich habe zwei Anmerkungen:
1. Ich benutze für SlowRF neben einem CUL einen RFRCUL. Um den ebenfalls zu erfassen, habe ich den Anfang des notify rssi_read_from_device folgendermaßen geändert:
#########################################
## Liesst die RSSI Werte aller Devices ##
#########################################
# Schreibt dieses in ein Dummy device in HTML
define rssi_read_from_device notify RSSI_Chart:(refresh|clear) { \
my @culs_cul=devspec2array("TYPE=CUL");;\
my @culs =devspec2array("TYPE=HMLAN");;\
my @culs_rfr=devspec2array("TYPE=CUL_RFR");;\
push(@culs, @culs_cul, @culs_rfr);;\
(Ab da geht es mit Deinem Original-Code weiter.  Neu / geändert sind die Zeilen mit dem @culs_rfr.)
Was hältst Du von dieser Erweiterung?

2. Die Gerätenamen in der ersten Spalte sind ja gleichzeitig Links. Ich habe den Webzugriff auf fhem mit einem Zertifikat gesichert, da funktionieren die Links nicht. Ich habe die Zeile, in der Du die Links erzeugst, wie folgt geändert:
$rssi_chart=$rssi_chart."<tr><td><div align='left'><b><a href=https://$FW_httpheader{Host}/fhem?detail=$dev target='_blank'><font color=$col>".$alias."</font></a></b></div></td>".$bestVal.$line."</tr>";;\Geändert wurde "http" in "https". Dann funzt es auch mit https. Das müsste aber jeder User nach seinen Gegebenheiten anpassen. Vielleicht kann man das automatisieren? (Über Abfrage der Attribute HTTPS der FHEMWEBs? Da gibt es aber mehrere von...)

Viele Grüße,
Daniel
fhem auf Raspberry Pi 2 B
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem DS9490R 1-Wire USB Adapter

Offline DerFrickler

  • Sr. Member
  • ****
  • Beiträge: 501
die Lösung ist schön und ausbaubar... sicherlich ist das readingsGroup die einfachere Variante... aber warum nicht in dieser Form...

möglicher Fehler: bei mir erfolgt ein highlight eines Wertes -54,5 obwohl ein Wert -54 vorhanden ist.
mögliche Erweiterung: der Beste Wert muss nicht immer von demjenigen kommen der gerade funkt... möglicherweise könnte mal das IOdev noch mit reinnehmen.

Gruß!

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo Daniel,

prima. Ich habe die kleinen Änderungen im Code mit eingebaut. Über einen Variable my $HTTP="http" kann nun eingestellt werden, ob man https oder http nutzt (bei https entsprechend $HTTP="https").

Gleichzeitig habe ich auch "CUL_RFR" sowie auch etwaige CCU2 als IODev mit berücksichtigt.

Ansonsten gibt es noch viele Code-Änderungen, einige BugFixes und viele Erweiterungen.

Nun kann auch jedes empfangene Device einzeln aus der Darstellung/Berechnung heraus genommen werden.
Einen Differenzdarstellung (gespeicherter RSSI Wert - aktueller RSSI Wert) ist nun möglich. Gerade das macht Sinn, da hiermit ein CUL/CUNO/HMLAN oder anderes IODev funktechnisch neu positioniert werden kann und das Ergebnis als RSSI Differenz schnell sichtbar und damit der Erfolg/oder Misserfolg der Neupositionierung deutlich wird.

Neue Version ... siehe mein erstes Posting am Anfang des Thread.


Viele Grüße!

Andreas

Hallo Andreas,
vielen lieben Dank für die Arbeit, tolle Idee und Umsetzung. Gefällt mir persönlich besser als Lösungen, die auf readingsGroup  basieren. Ich habe zwei Anmerkungen:
1. Ich benutze für SlowRF neben einem CUL einen RFRCUL. Um den ebenfalls zu erfassen, habe ich den Anfang des notify rssi_read_from_device folgendermaßen geändert:
#########################################
## Liesst die RSSI Werte aller Devices ##
#########################################
# Schreibt dieses in ein Dummy device in HTML
define rssi_read_from_device notify RSSI_Chart:(refresh|clear) { \
my @culs_cul=devspec2array("TYPE=CUL");;\
my @culs =devspec2array("TYPE=HMLAN");;\
my @culs_rfr=devspec2array("TYPE=CUL_RFR");;\
push(@culs, @culs_cul, @culs_rfr);;\
(Ab da geht es mit Deinem Original-Code weiter.  Neu / geändert sind die Zeilen mit dem @culs_rfr.)
Was hältst Du von dieser Erweiterung?

2. Die Gerätenamen in der ersten Spalte sind ja gleichzeitig Links. Ich habe den Webzugriff auf fhem mit einem Zertifikat gesichert, da funktionieren die Links nicht. Ich habe die Zeile, in der Du die Links erzeugst, wie folgt geändert:
$rssi_chart=$rssi_chart."<tr><td><div align='left'><b><a href=https://$FW_httpheader{Host}/fhem?detail=$dev target='_blank'><font color=$col>".$alias."</font></a></b></div></td>".$bestVal.$line."</tr>";;\Geändert wurde "http" in "https". Dann funzt es auch mit https. Das müsste aber jeder User nach seinen Gegebenheiten anpassen. Vielleicht kann man das automatisieren? (Über Abfrage der Attribute HTTPS der FHEMWEBs? Da gibt es aber mehrere von...)

Viele Grüße,
Daniel
« Letzte Änderung: 13 Januar 2017, 13:47:46 von fhem-challenge »

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
die Lösung ist schön und ausbaubar... sicherlich ist das readingsGroup die einfachere Variante... aber warum nicht in dieser Form...

möglicher Fehler: bei mir erfolgt ein highlight eines Wertes -54,5 obwohl ein Wert -54 vorhanden ist.
mögliche Erweiterung: der Beste Wert muss nicht immer von demjenigen kommen der gerade funkt... möglicherweise könnte mal das IOdev noch mit reinnehmen.

Gruß!

Ja, war ein Fehler, ist nun behoben. War die Rundung vor dem Komma, welches im String ausgetauscht wurde.

Viele Grüße!

Andreas

Offline sledge

  • Jr. Member
  • **
  • Beiträge: 71
Hi Andreas,

erstmal vielen Dank für diesen "Codeschnipsel" - da ich auch unterschiedliche Systeme im Einsatz habe, ist das sehr hilfreich. Die Positionierung eines WLAN-CULs samit Jeelink-Gateway war so echt ein Kinderspiel.

Bei der Verwendung von CUL/CUN für MAX ist mir jedoch aufgefallen, dass (zumindest bei mir) lediglich die CUL_MAX in den Zeilen angezeigt werden, nicht jedoch die MAX!-Endgeräte (zB Wandthermostate oder Fensterkontakte) - siehe Anhang.

Somit habe ich zwar Homematic super im Blick, jedoch meine MAX-Geräte noch nicht so sehr. Wie man jetzt von den CUNs (für MAX) über die CUL_MAX auf die eigentlichen Devices kommt... keine Ahnung. Die Zeile für den CUL_MAX hinzugefügt

push(@culs, devspec2array("TYPE=CUL_MAX"));
war der einfache Part - aber das Internal heißt dann ja nicht "<name_des_cul>_RSSI", sondern lediglich "RSSI" - also in der Ecke

$cul_rssi="$_"."_RSSI";
zu ändern? War mir dann aber nicht sicher und wollte es nicht verbauen...

Vielleicht hast du ja eine Idee.

Gruß,

Tom

« Letzte Änderung: 14 Januar 2017, 15:55:11 von sledge »
FHEM: Intel-NUC / 2 Cube-CUN + 17 WT  + 10 FK + 4 ECO-Taster / HMLAN + HM-PB-2-WM55-2 + 4 HM-MOD-Re-8 / JeeLink + 3 TX29DTH / Jeelink + 6 PCA301 / CUL868 / LGW+CUL868

Offline sledge

  • Jr. Member
  • **
  • Beiträge: 71
OK.

Hier die Änderungen ;-) Ging dann doch fix:

Hier habe ich nur den CUL_MAX hinzugefügt:

my @culs=devspec2array("TYPE=HMLAN");
push(@culs, devspec2array("TYPE=CUL"));
push(@culs, devspec2array("TYPE=CUL_RFR"));
push(@culs, devspec2array("TYPE=CUL_MAX"));
push(@culs, devspec2array("TYPE=HMCCUDEV"));


Weiter unten dann nur die Fallunterscheidung, ob es sich um einen CULMAX handelt oder nicht - bei mir geht das aus den Namenskonventionen leicht hervor - ansonsten müsste man sich erst noch TYPE holen...

foreach(@culs)
{
                        #Check if Device is a CULMAX
                        if ($_ =~ /CULMAX/)
                        {
                                $cul_rssi="RSSI";     
                        }
                        else
                        {
        $cul_rssi="$_"."_RSSI";
                        }

Für mich erzielt es das gewünschte.

Danke nochmal für den Code.
FHEM: Intel-NUC / 2 Cube-CUN + 17 WT  + 10 FK + 4 ECO-Taster / HMLAN + HM-PB-2-WM55-2 + 4 HM-MOD-Re-8 / JeeLink + 3 TX29DTH / Jeelink + 6 PCA301 / CUL868 / LGW+CUL868

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
OK.

Hier die Änderungen ;-) Ging dann doch fix:

Hier habe ich nur den CUL_MAX hinzugefügt:

my @culs=devspec2array("TYPE=HMLAN");
push(@culs, devspec2array("TYPE=CUL"));
push(@culs, devspec2array("TYPE=CUL_RFR"));
push(@culs, devspec2array("TYPE=CUL_MAX"));
push(@culs, devspec2array("TYPE=HMCCUDEV"));


Weiter unten dann nur die Fallunterscheidung, ob es sich um einen CULMAX handelt oder nicht - bei mir geht das aus den Namenskonventionen leicht hervor - ansonsten müsste man sich erst noch TYPE holen...

foreach(@culs)
{
                        #Check if Device is a CULMAX
                        if ($_ =~ /CULMAX/)
                        {
                                $cul_rssi="RSSI";     
                        }
                        else
                        {
        $cul_rssi="$_"."_RSSI";
                        }

Für mich erzielt es das gewünschte.

Danke nochmal für den Code.

Hallo Tom,


ich habe den CUL_MAX nun auch im Code angepasse und zusätzlich ...


if (InternalVal("$_","type","") eq "CUL_MAX")\
{\
$cul_rssi="RSSI"\
}\
else\
{\
$cul_rssi="$_"."_RSSI"\
}\


... eingefügt, damit wird es auch anderen usern mit einem CUL_MAX (unabhängig von der Devicebezeichnung) möglich, den Code zu nutzen.

Ich selbst besitze kein MAX (CUL): Frage: Lautet die internal Variable tatsächlich nur "RSSI" ? ... das hatte ich jetzt einmal angenommen und im Code eingefügt.


Viele Grüße!

Andreas

Offline sledge

  • Jr. Member
  • **
  • Beiträge: 71
Hi Andreas,


das Internal des MAX!-Devices lautet in der Tat nur RSSI:

Internals:
   CFGFN
   CHANGED
   DEF        WallMountedThermostat 136daf
   FZ.ELW.CULMAX_MSGCNT 173
   FZ.ELW.CULMAX_TIME 2017-01-15 09:37:44
   IODev      FZ.ELW.CULMAX
   LASTInputDev WZ.EG.CULMAX
   MSGCNT     318
   NAME       AN.OG.WT
   NR         149
   RSSI       -64
   STATE      18.0 °C
   TYPE       MAX
   WZ.EG.CULMAX_MSGCNT 145
   WZ.EG.CULMAX_TIME 2017-01-15 09:43:34
   addr       136daf
   backend    FZ.ELW.CULMAX
   rferror    0
   type       WallMountedThermostat
   Helper:
     Dblog:
       Battery:
         Dblog:
           TIME       1484423815.28377
           VALUE      ok
       Desiredtemperature:
         Dblog:
           TIME       1484469640.95677
           VALUE      18.0
       Temperature:
         Dblog:
           TIME       1484469640.95677
           VALUE      21.5
   Readings:
     2016-12-17 17:36:19   MAXLAN_error    0
     2016-12-17 17:36:19   MAXLAN_errorInCommand
     2016-12-17 17:36:19   MAXLAN_initialized 1
     2016-12-17 17:36:19   MAXLAN_isAnswer 0
     2016-12-17 17:36:19   MAXLAN_valid    1
     2017-01-15 09:43:34   RSSI            -64
     2016-12-17 22:16:45   TimeInformationHour 1
     2017-01-14 20:57:01   battery         ok
     2016-12-17 22:20:05   boostDuration   25
     2016-12-17 22:20:05   boostValveposition 80
     2016-12-17 22:20:05   comfortTemperature 21.0
     2017-01-15 09:43:34   deltaTemp       3.5
     2017-01-15 09:43:34   desiredTemperature 18.0
     2017-01-14 20:57:01   displayActualTemperature 1
     2016-12-17 22:20:05   ecoTemperature  17.0
     2016-12-17 22:20:05   firmware        1.0
     2016-12-17 22:20:05   groupid         0
     2016-12-17 22:20:05   maximumTemperature on
     2016-12-17 22:20:05   measurementOffset 0.0
     2016-12-17 22:20:05   minimumTemperature off
     2017-01-14 20:57:01   mode            manual
     2017-01-15 08:56:31   msgcnt          123
     2017-01-15 09:43:34   state           18.0 °C
     2017-01-15 09:43:34   temperature     21.5
     2016-12-17 22:20:05   testresult      255
     2016-12-17 22:20:05   weekprofile-0-Sat-temp 17.0 °C  /  21.0 °C  /  17.0 °C
     2016-12-17 22:20:05   weekprofile-0-Sat-time 00:00-06:00  /  06:00-22:00  /  22:00-00:00
     2016-12-17 22:20:05   weekprofile-1-Sun-temp 17.0 °C  /  21.0 °C  /  17.0 °C
     2016-12-17 22:20:05   weekprofile-1-Sun-time 00:00-06:00  /  06:00-22:00  /  22:00-00:00
     2016-12-17 22:20:05   weekprofile-2-Mon-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2016-12-17 22:20:05   weekprofile-2-Mon-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2016-12-17 22:20:05   weekprofile-3-Tue-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2016-12-17 22:20:05   weekprofile-3-Tue-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2016-12-17 22:20:05   weekprofile-4-Wed-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2016-12-17 22:20:05   weekprofile-4-Wed-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2016-12-17 22:20:05   weekprofile-5-Thu-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2016-12-17 22:20:05   weekprofile-5-Thu-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2016-12-17 22:20:05   weekprofile-6-Fri-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2016-12-17 22:20:05   weekprofile-6-Fri-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2016-12-17 22:20:05   windowOpenTemperature 12.0
   Internals:
     interfaces thermostat;temperature;battery
Attributes:
   DbLogInclude battery,desiredTemperature,temperature
   IODev      FZ.ELW.CULMAX
   alias      OG Ankleide Eltern
   event-min-interval battery:86400,desiredTemperature:600,temperature:300
   event-on-change-reading battery,desiredTemperature,temperature
   group      Thermostate
   icon       max_wandthermostat
   room       MAX
   userReadings deltaTemp {sprintf("%.1f",ReadingsVal("AN.OG.WT","temperature","")-ReadingsVal("AN.OG.WT","desiredTemperature",""))}
   userattr   Ther Ther_map structexclude

Im CULMAX lautet das

nternals:
   CFGFN
   DEF        060606
   FZ.ELW.CULMAX_MSGCNT 3
   FZ.ELW.CULMAX_TIME 2017-01-15 06:58:41
   FZ.ELW.CUL_MSGCNT 7347
   FZ.ELW.CUL_RAWMSG Z0F54040312345606060600110F093B51
   FZ.ELW.CUL_RSSI -64.5
   FZ.ELW.CUL_TIME 2017-01-15 09:59:19
   IODev      FZ.ELW.CUL
   LASTInputDev FZ.ELW.CUL
   MSGCNT     7350
   NAME       FZ.ELW.CULMAX
   NR         135
   STATE      Defined
   TYPE       CUL_MAX
   WZ.EG.CUL_MSGCNT 1852
   WZ.EG.CUL_RAWMSG Z0C270442136DAF0000000024D7
   WZ.EG.CUL_RSSI -64.5
   WZ.EG.CUL_TIME 2017-01-15 09:57:54
   addr       060606
   cnt        0
   pairmode   0
   retryCount 0

Daher wurde der CUL_MAX ja auch so schön in der ersten Spalte einsortiert, als wäre er ein Enddevice.

Jetzt stelle ich fest, dass bei allen MAX!-Devices der gleiche RSSI-Wert steht, obwohl ich zwei Cubes im Einsatz habe. Aber bei den MAX!-Devices selber habe ich auch nur diesen Wert stehen - also nicht je CUL_MAX einen eigenen (wie zB bei Homematic).

Danke für die Änderung im Code.

Tom


FHEM: Intel-NUC / 2 Cube-CUN + 17 WT  + 10 FK + 4 ECO-Taster / HMLAN + HM-PB-2-WM55-2 + 4 HM-MOD-Re-8 / JeeLink + 3 TX29DTH / Jeelink + 6 PCA301 / CUL868 / LGW+CUL868

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Hallo,
vielleicht kann mir jemand helfen.
Ich bekomme immer den Fehler im Log.
Ich denke es fehlt eine Klammer oder so.
Habe auch schon mehrfach versucht den Code neu einzugeben.
Ich finde den fehler nicht!

2017.01.16 14:59:49 1: ERROR evaluating my $EVTPART0='refresh';my $EVENT='refresh';my $TYPE='dummy';my $SELF='rssi_read_from_device';my $NAME='RSSI_Chart';{  my @culs=devspec2array("TYPE=HMLAN");; push(@culs, devspec2array("TYPE=CUL"));; push(@culs, devspec2array("TYPE=CUL_RFR"));; push(@culs, devspec2array("TYPE=HMCCUDEV"));; push(@culs, devspec2array("TYPE=CUL_MAX"));;   my $HTTP="https";; # change it to "https", if you using https instead of http for FHEM my $nr_culs=scalar @culs;; my $colspan=$nr_culs+3;; my $dev ="";; my $cul_rssi="";; my $datum = strftime "%Y-%m-%d_%H:%M:%S", localtime;; my $rssi_chart="<table border='1'><tr bgcolor=yellow><td colspan=".$colspan."><div align='center'><font color='black'><b>RSSI Values of all devices from: ".$datum."</b></font></div></td></tr>";; my $nr=0;; my $cnt=0;; my $num=0;; my $line="";; my $header="<td>Enable</td>";; my $col="green";; my $alias="";; my $bestVal="";; my @all_values=();; my $best_value="";; my $ButHighLight=Value("RSSI_SertUpHighlight");; my $ButBestCol=Value("RSSI_SetUpBestCol");; my $ButLastActive=Value("RSSI_SetUpLastActive");; my $ButShowAverage=Value("RSSI_SetUpAverage");; my $ButShowOldValues=Value("RSSI_SetUpShowOldValues");; my @cul_avg=();; my @cul_num=();; my $all_best=0;; my $nr_allBest=0;; my $disabled="";; my $disabled_set="";; my $dev_disable="";; my $old_rssi_val="";; my $org_int="";; my $calc_diffs=ReadingsVal("RSSI_SetUpAverageSaveOldValues","state","");;  if ($ButBestCol eq 1) {$header=$header."<td>best</td>"};;  my @device=devspec2array("i:LASTInputDev=\\w.*");; @device = sort @device;;  foreach(@culs)  { $header=$header."<td><div align='center'><font color='lightblue'><a href=$HTTP://$FW_httpheader{Host}/fhem?detail=$_ target='_blank'>".$_."</a></font><div></td>";; $rssi_chart=$rssi_chart."<tr><td><div align='left'><font color='lightblue'>Device</font></div></td>".$header."</tr>";;     foreach(@device)  { $dev=$_;; $line="";; $alias=AttrVal($dev,"alias",$dev);; @all_values=();; $num=0;; $dev_disable=ReadingsVal("$dev","RSSI_disable","0");; foreach(@culs)  { if (InternalVal("$_","type","") eq "CUL_MAX") { $cul_rssi="RSSI" } else { $cul_rssi="$_"."_RSSI" } if ($EVENT eq "clear") { delete($defs{"$dev"}{"$cul_rssi"}) } my $all_int=InternalVal($dev,$cul_rssi,"");; if ($calc_diffs eq "1") { $old_rssi_val=ReadingsVal($dev,$cul_rssi."_old","");; if (($old_rssi_val)&&($all_int)) { $org_int=$all_int;; $all_int=$all_int-$old_rssi_val } else { $all_int="0" } } my $cul_time=InternalVal($dev,"$_"."_TIME","");; my $last_activity_since = int(time - time_str2num($cul_time));; my $best_value = "";; if (!$cul_avg[$num]) { $cul_avg[$num]=0;; } if (!$cul_num[$num]) { $cul_num[$num]=0;; }   if ($all_int)  $nr ++ } if (($all_int) && ($dev_disable eq "0")) { $cul_avg[$num]=$cul_avg[$num] + $all_int;; $cul_num[$num]=$cul_num[$num] + 1;; @all_values = (@all_values, $all_int);; my $ShowOldDiffs="";; if ($calc_diffs ne "1") { if ($all_int >= -75) { $col="lightgreen" } if ($all_int < -75)  { $col="yellow" } if ($all_int <= -80) { $col="#ff8533" } if ($all_int <= -85) { $col="red" } } else { if ($all_int >= 0)  $col="lightgreen"  } else { $col="red" } if ($ButShowOldValues eq "1") { $ShowOldDiffs="<br><font color='white' size='1'>$old_rssi_val →;;; $org_int</font>" } } my $row="<td><font color=$col> ".$all_int." </font>$ShowOldDiffs";; if ($ButLastActive eq 0) { $line=$line.$row."</td>";; } if ($ButLastActive eq 1) { $line=$line.$row."<div align='center'><font color='white' size='1'>(".$last_activity_since." s)</font></div></td>";; } } else { $line=$line."<td></td>";; } $num++;; } if ($nr > 0) { # find best RSSI values and mark with bold and underline if (@all_values)  { $best_value = $all_values[0];; for(@all_values)  { $best_value = $_ if($_ > $best_value);; } } if ($dev_disable eq 0) { if (!$best_value) {$best_value=0} if ($best_value >= -75) { $col="lightgreen" } if ($best_value < -75)  { $col="yellow" } if ($best_value <= -80) { $col="red" } if ($best_value <= -85) { $col="#CC6600" } $line =~ s/\./,/g;; if ($ButHighLight eq 1) { $nr_allBest++;; $all_best=$all_best+$best_value;; my $search_best_value=$best_value;; $best_value =~ s/\./,/g;; $line =~ s/ $search_best_value /<strong><div style='background-color: #006600'>$best_value<\/div><\/strong>/g;; } } if ($ButBestCol eq 1)  { $bestVal="<td><font color=$col>".$best_value."</font></td>";; } if ($dev_disable eq 1) { $disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-off.png";; $disabled_set = "0";; $col="grey";; if ($ButBestCol eq 1)  { $bestVal="<td></td>";; } } else $disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";; $disabled_set = "1";; } $cnt++;; $rssi_chart=$rssi_chart."<tr><td><div align='left'><b><a href=$HTTP://$FW_httpheader{Host}/fhem?detail=$dev target='_blank'><font color=$col>";; $rssi_chart=$rssi_chart.$cnt." ".$alias."</font></a></b></div></td><td>";; $rssi_chart=$rssi_chart."<a href=$HTTP://$FW_httpheader{Host}/fhem?cmd=setreading%20$dev%20RSSI_disable%20$disabled_set;;;;trigger%20RSSI_Chart%20refresh>";; $rssi_chart=$rssi_chart."<img src=$disabled width=75%></a></td>".$bestVal.$line."</tr>";; $nr=0;; } } if ($ButShowAverage eq 1) { my $txt_rssi="";; $rssi_chart="$rssi_chart"."<tr><td colspan='100%'></td></tr>";; if ($calc_diffs eq "1") { $txt_rssi="delta RSSI (diff to stored values)" } else { $txt_rssi="average RSSI" } $rssi_chart="$rssi_chart"."<tr bgcolor=MediumBlue><div align='center'><td><font color='white'><b>$txt_rssi</b></font></td><td></td>";; if ($ButBestCol eq 1)  { if (!$nr_allBest) {$nr_allBest=1} my $best_all="";; if ($calc_diffs eq "1") { $best_all= sprintf "%.2f", $all_best;; if ($best_all >= 0)  $col="lightgreen" } else { $col="red" } } else { $best_all= sprintf "%.2f", $all_best/$nr_allBest;; if ($best_all != 0) { if ($best_all >= -75) { $col="lightgreen" } if ($best_all < -75)  { $col="yellow" } if ($best_all <= -80) { $col="#ff8533" } if ($best_all <= -85) { $col="red" } } $rssi_chart=$rssi_chart."<td><font color=$col><b>".$best_all."</b></font></td>";; my $average="";; for(my $i = 0;; $i < @cul_avg;; $i++)  { if ($cul_avg[$i] != 0) { if ($calc_diffs eq "1") { $average = sprintf "%.2f", $cul_avg[$i];; if ($average >= 0) { $col="lightgreen" } else { $col="red" } } else { $average = sprintf "%.2f", $cul_avg[$i]/$cul_num[$i];; if ($average >= -75) { $col="lightgreen" } if ($average < -75)  { $col="yellow" } if ($average <= -80) { $col="#ff8533" } if ($average <= -85) { $col="red" } } } else { $average="";; } $rssi_chart="$rssi_chart"."<td><font color=$col><b>$average</b></font></td>";; Log 0,"RSSI Average:$culs[$i];;$average";; } if (!$nr_allBest) {$nr_allBest = 1} my $best_all= sprintf "%.2f", $all_best/$nr_allBest;; Log 0,"RSSI Average all best: $best_all";; $rssi_chart="$rssi_chart"."</tr>";; } $rssi_chart="$rssi_chart"."</table>";; if ($EVENT eq "clear") { Log 0,"Clearing all RSSI internal values";; } fhem ("set RSSI_Chart $rssi_chart");; }: Missing right curly or square bracket at (eval 1014159) line 1, at end of line
syntax error at (eval 1014159) line 1, at EOF

2017.01.16 14:59:49 3: rssi_read_from_device return value: Missing right curly or square bracket at (eval 1014159) line 1, at end of line
syntax error at (eval 1014159) line 1, at EOF

MFG Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo,
vielleicht kann mir jemand helfen.
Ich bekomme immer den Fehler im Log.
Ich denke es fehlt eine Klammer oder so.
Habe auch schon mehrfach versucht den Code neu einzugeben.
Ich finde den fehler nicht!

2017.01.16 14:59:49 1: ERROR evaluating my $EVTPART0='refresh';my $EVENT='refresh';my $TYPE='dummy';my $SELF='rssi_read_from_device';my $NAME='RSSI_Chart';{  my @culs=devspec2array("TYPE=HMLAN");; push(@culs, devspec2array("TYPE=CUL"));; push(@culs, devspec2array("TYPE=CUL_RFR"));; push(@culs, devspec2array("TYPE=HMCCUDEV"));; push(@culs, devspec2array("TYPE=CUL_MAX"));;   my $HTTP="https";; # change it to "https", if you using https instead of http for FHEM my $nr_culs=scalar @culs;; my $colspan=$nr_culs+3;; my $dev ="";; my $cul_rssi="";; my $datum = strftime "%Y-%m-%d_%H:%M:%S", localtime;; my $rssi_chart="<table border='1'><tr bgcolor=yellow><td colspan=".$colspan."><div align='center'><font color='black'><b>RSSI Values of all devices from: ".$datum."</b></font></div></td></tr>";; my $nr=0;; my $cnt=0;; my $num=0;; my $line="";; my $header="<td>Enable</td>";; my $col="green";; my $alias="";; my $bestVal="";; my @all_values=();; my $best_value="";; my $ButHighLight=Value("RSSI_SertUpHighlight");; my $ButBestCol=Value("RSSI_SetUpBestCol");; my $ButLastActive=Value("RSSI_SetUpLastActive");; my $ButShowAverage=Value("RSSI_SetUpAverage");; my $ButShowOldValues=Value("RSSI_SetUpShowOldValues");; my @cul_avg=();; my @cul_num=();; my $all_best=0;; my $nr_allBest=0;; my $disabled="";; my $disabled_set="";; my $dev_disable="";; my $old_rssi_val="";; my $org_int="";; my $calc_diffs=ReadingsVal("RSSI_SetUpAverageSaveOldValues","state","");;  if ($ButBestCol eq 1) {$header=$header."<td>best</td>"};;  my @device=devspec2array("i:LASTInputDev=\\w.*");; @device = sort @device;;  foreach(@culs)  { $header=$header."<td><div align='center'><font color='lightblue'><a href=$HTTP://$FW_httpheader{Host}/fhem?detail=$_ target='_blank'>".$_."</a></font><div></td>";; $rssi_chart=$rssi_chart."<tr><td><div align='left'><font color='lightblue'>Device</font></div></td>".$header."</tr>";;     foreach(@device)  { $dev=$_;; $line="";; $alias=AttrVal($dev,"alias",$dev);; @all_values=();; $num=0;; $dev_disable=ReadingsVal("$dev","RSSI_disable","0");; foreach(@culs)  { if (InternalVal("$_","type","") eq "CUL_MAX") { $cul_rssi="RSSI" } else { $cul_rssi="$_"."_RSSI" } if ($EVENT eq "clear") { delete($defs{"$dev"}{"$cul_rssi"}) } my $all_int=InternalVal($dev,$cul_rssi,"");; if ($calc_diffs eq "1") { $old_rssi_val=ReadingsVal($dev,$cul_rssi."_old","");; if (($old_rssi_val)&&($all_int)) { $org_int=$all_int;; $all_int=$all_int-$old_rssi_val } else { $all_int="0" } } my $cul_time=InternalVal($dev,"$_"."_TIME","");; my $last_activity_since = int(time - time_str2num($cul_time));; my $best_value = "";; if (!$cul_avg[$num]) { $cul_avg[$num]=0;; } if (!$cul_num[$num]) { $cul_num[$num]=0;; }   if ($all_int)  $nr ++ } if (($all_int) && ($dev_disable eq "0")) { $cul_avg[$num]=$cul_avg[$num] + $all_int;; $cul_num[$num]=$cul_num[$num] + 1;; @all_values = (@all_values, $all_int);; my $ShowOldDiffs="";; if ($calc_diffs ne "1") { if ($all_int >= -75) { $col="lightgreen" } if ($all_int < -75)  { $col="yellow" } if ($all_int <= -80) { $col="#ff8533" } if ($all_int <= -85) { $col="red" } } else { if ($all_int >= 0)  $col="lightgreen"  } else { $col="red" } if ($ButShowOldValues eq "1") { $ShowOldDiffs="<br><font color='white' size='1'>$old_rssi_val →;;; $org_int</font>" } } my $row="<td><font color=$col> ".$all_int." </font>$ShowOldDiffs";; if ($ButLastActive eq 0) { $line=$line.$row."</td>";; } if ($ButLastActive eq 1) { $line=$line.$row."<div align='center'><font color='white' size='1'>(".$last_activity_since." s)</font></div></td>";; } } else { $line=$line."<td></td>";; } $num++;; } if ($nr > 0) { # find best RSSI values and mark with bold and underline if (@all_values)  { $best_value = $all_values[0];; for(@all_values)  { $best_value = $_ if($_ > $best_value);; } } if ($dev_disable eq 0) { if (!$best_value) {$best_value=0} if ($best_value >= -75) { $col="lightgreen" } if ($best_value < -75)  { $col="yellow" } if ($best_value <= -80) { $col="red" } if ($best_value <= -85) { $col="#CC6600" } $line =~ s/\./,/g;; if ($ButHighLight eq 1) { $nr_allBest++;; $all_best=$all_best+$best_value;; my $search_best_value=$best_value;; $best_value =~ s/\./,/g;; $line =~ s/ $search_best_value /<strong><div style='background-color: #006600'>$best_value<\/div><\/strong>/g;; } } if ($ButBestCol eq 1)  { $bestVal="<td><font color=$col>".$best_value."</font></td>";; } if ($dev_disable eq 1) { $disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-off.png";; $disabled_set = "0";; $col="grey";; if ($ButBestCol eq 1)  { $bestVal="<td></td>";; } } else $disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";; $disabled_set = "1";; } $cnt++;; $rssi_chart=$rssi_chart."<tr><td><div align='left'><b><a href=$HTTP://$FW_httpheader{Host}/fhem?detail=$dev target='_blank'><font color=$col>";; $rssi_chart=$rssi_chart.$cnt." ".$alias."</font></a></b></div></td><td>";; $rssi_chart=$rssi_chart."<a href=$HTTP://$FW_httpheader{Host}/fhem?cmd=setreading%20$dev%20RSSI_disable%20$disabled_set;;;;trigger%20RSSI_Chart%20refresh>";; $rssi_chart=$rssi_chart."<img src=$disabled width=75%></a></td>".$bestVal.$line."</tr>";; $nr=0;; } } if ($ButShowAverage eq 1) { my $txt_rssi="";; $rssi_chart="$rssi_chart"."<tr><td colspan='100%'></td></tr>";; if ($calc_diffs eq "1") { $txt_rssi="delta RSSI (diff to stored values)" } else { $txt_rssi="average RSSI" } $rssi_chart="$rssi_chart"."<tr bgcolor=MediumBlue><div align='center'><td><font color='white'><b>$txt_rssi</b></font></td><td></td>";; if ($ButBestCol eq 1)  { if (!$nr_allBest) {$nr_allBest=1} my $best_all="";; if ($calc_diffs eq "1") { $best_all= sprintf "%.2f", $all_best;; if ($best_all >= 0)  $col="lightgreen" } else { $col="red" } } else { $best_all= sprintf "%.2f", $all_best/$nr_allBest;; if ($best_all != 0) { if ($best_all >= -75) { $col="lightgreen" } if ($best_all < -75)  { $col="yellow" } if ($best_all <= -80) { $col="#ff8533" } if ($best_all <= -85) { $col="red" } } $rssi_chart=$rssi_chart."<td><font color=$col><b>".$best_all."</b></font></td>";; my $average="";; for(my $i = 0;; $i < @cul_avg;; $i++)  { if ($cul_avg[$i] != 0) { if ($calc_diffs eq "1") { $average = sprintf "%.2f", $cul_avg[$i];; if ($average >= 0) { $col="lightgreen" } else { $col="red" } } else { $average = sprintf "%.2f", $cul_avg[$i]/$cul_num[$i];; if ($average >= -75) { $col="lightgreen" } if ($average < -75)  { $col="yellow" } if ($average <= -80) { $col="#ff8533" } if ($average <= -85) { $col="red" } } } else { $average="";; } $rssi_chart="$rssi_chart"."<td><font color=$col><b>$average</b></font></td>";; Log 0,"RSSI Average:$culs[$i];;$average";; } if (!$nr_allBest) {$nr_allBest = 1} my $best_all= sprintf "%.2f", $all_best/$nr_allBest;; Log 0,"RSSI Average all best: $best_all";; $rssi_chart="$rssi_chart"."</tr>";; } $rssi_chart="$rssi_chart"."</table>";; if ($EVENT eq "clear") { Log 0,"Clearing all RSSI internal values";; } fhem ("set RSSI_Chart $rssi_chart");; }: Missing right curly or square bracket at (eval 1014159) line 1, at end of line
syntax error at (eval 1014159) line 1, at EOF

2017.01.16 14:59:49 3: rssi_read_from_device return value: Missing right curly or square bracket at (eval 1014159) line 1, at end of line
syntax error at (eval 1014159) line 1, at EOF

MFG Sig10680

Hast Du den gesamten! Code in z.B. ein eigenes cfg-File geschrieben und z.B. via "include xxx.conf" im "fhem.cfg" eingebunden ?

Wann kommt der Fehler? Beim "klicken" auf "refresh" ?

Ich habe einmal "reverse" mein Codebeispiel aus dem Thread in eine eigene Include-Datei gespeichert und es läuft.

Vorschlag:

Speicher doch einmal den gesamten Code (komplett) in ein z.b. /opt/fhem/FHEM/fhem.rssi.cfg ... file (falls du linux hast).

und include den Code in Deiner fhem.cfg mit ...

include /opt/fhem/FHEM/fhem.rssi.cfg



Viele Grüße!

Andreas
« Letzte Änderung: 16 Januar 2017, 15:48:19 von fhem-challenge »

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Ich habe den Code per Paste & Copy eingefügt!
Der fehler kommt beim klicken auf refresh.
War das falsch?


Hast Du den gesamten Code in z.B. ein eigenes conf File geschrieben und z.B. via "include xxx.conf" im "fhem.cfg" eingebunden ?

Wann kommt der Fehler? Beim "klicken" auf "refresh" ?

Viele Grüße!

Andreas


mfg Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Ich habe den Code per Paste & Copy eingefügt!
Der fehler kommt beim klicken auf refresh.
War das falsch?



mfg Sig10680

Nein, war richtig.

Vorschlag:

Speicher doch einmal den gesamten Code (komplett) in ein z.b. /opt/fhem/FHEM/fhem.rssi.cfg ... file (falls du linux hast).

und include den Code in Deiner fhem.cfg mit ...

include /opt/fhem/FHEM/fhem.rssi.cfg


Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Nein, war richtig.

Vorschlag:

Speicher doch einmal den gesamten Code (komplett) in ein z.b. /opt/fhem/FHEM/fhem.rssi.cfg ... file (falls du linux hast).

und include den Code in Deiner fhem.cfg mit ...

include /opt/fhem/FHEM/fhem.rssi.cfg

Ich teste und melde mich!

Danke vorab

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Nein, war richtig.

Vorschlag:

Speicher doch einmal den gesamten Code (komplett) in ein z.b. /opt/fhem/FHEM/fhem.rssi.cfg ... file (falls du linux hast).

und include den Code in Deiner fhem.cfg mit ...

include /opt/fhem/FHEM/fhem.rssi.cfg

Danke für den Tip mit der include Datei hat es funktioniert. Jetzt muss ich nur noch feinheiten einstellen.

Kann ich auch als Typ den HMUARTLGW eintragen? und von Ihm den RSSI auszulesen?

Danke Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Danke für den Tip mit der include Datei hat es funktioniert. Jetzt muss ich nur noch feinheiten einstellen.

Kann ich auch als Typ den HMUARTLGW eintragen? und von Ihm den RSSI auszulesen?

Danke Sig10680


Ja, das geht.

Schicke mir mal bitte einen Auszug aus einem Devices, welches vom HMUARTLGW empfangen wurde (also alle Reading und Internals). Auch bitte die internals und readings des UART Devices. Wenn ich weiss, wie die internals zum RSSI beim UART lauten, kann ich das im Code einfügen.

Viele Grüße!

Andreas
« Letzte Änderung: 17 Januar 2017, 08:52:14 von fhem-challenge »

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Zitat
Bei allen CULs/CUN./HMLAN etc. attr CUL addvaltrigger=1  ... setzen (Hinweis: Das kann auch durch die Funktion (siehe code) erreicht werden

Ich bin mir nicht sicher: muss dieses Attribut gesetzt werden und um welche "Funktion" geht es?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline sig10680

  • New Member
  • *
  • Beiträge: 29

Ja, das geht.

Schicke mir mal bitte einen Auszug aus einem Devices, welches vom HMUARTLGW empfangen wurde (also alle Reading und Internals). Auch bitte die internals und readings des UART Devices. Wenn ich weiss, wie die internals zum RSSI beim UART lauten, kann ich das im Code einfügen.

Viele Grüße!

Andreas

Super das geht ja sehr schnell bei dir!

HMUARTLGW

Internals:
   AssignedPeerCnt 32
   CNT        245
   DEF        192.168.150.197
   DEVCNT     15
   DevState   99
   DevType    LGW
   DeviceName 192.168.150.197:2000
   FD         78
   LastOpen   1484558710.08688
   NAME       HMLGW
   NR         593
   PARTIAL
   RAWMSG     0500003DE3861044100F0000000A98C40C0000
   RSSI       -61
   STATE      opened
   TYPE       HMUARTLGW
   XmitOpen   1
   msgLoadCurrent 3
   msgLoadHistory 0/0/0/0/0/1/1/0/-1/0/0/0
   msgLoadHistoryAbs 3/3/3/3/3/3/2/1/1/2/2/2/2
   owner      XXXXXX
   owner_CCU  VCCU
   
Readings:
     2017-01-16 10:25:15   D-HMIdAssigned  XXXXXX
     2017-01-16 10:25:15   D-HMIdOriginal  FFFFFF
     2017-01-16 10:25:10   D-LANfirmware   1.1.5
     2017-01-16 10:25:15   D-firmware      1.4.1
     2017-01-16 10:25:10   D-serialNr      XXXXXXX
     2017-01-16 10:25:10   D-type          eQ3-HM-LGW
     2017-01-16 10:25:15   cond            ok
     2017-01-17 10:24:40   load            3
     2017-01-16 10:25:15   loadLvl         low
     2017-01-16 10:25:10   state           opened
   


CUL_HM

Internals:
   DEF        xxxxx
   HMLAN1_MSGCNT 686
   HMLAN1_RAWMSG E4C2265,0000,269A1321,FF,FFA9,B6A6414C22650A0650018CC8
   HMLAN1_RSSI -87
   HMLAN1_TIME 2017-01-17 10:57:16
   HMLGW_MSGCNT 700
   HMLGW_RAWMSG 0501002EB6A6414C22650A0650018CC8
   HMLGW_RSSI -46
   HMLGW_TIME 2017-01-17 10:57:16
   IODev      HMLGW
   LASTInputDev nanoCUL
   MSGCNT     2090
   NAME       HM_Sensor_EG_Haustuer
   NOTIFYDEV  global
   NR         589
   NTFY_ORDER 50-HM_Sensor_EG_Haustuer
   STATE      open
   TYPE       CUL_HM
   lastMsg    No:B6 - t:41 s:4C2265 d:0A0650 018CC8
   nanoCUL_MSGCNT 704
   nanoCUL_RAWMSG A0CB6A6414C22650A0650018CC8::-67:nanoCUL
   nanoCUL_RSSI -67
   nanoCUL_TIME 2017-01-17 10:57:16
   protLastRcv 2017-01-17 10:57:16
   protSnd    709 last_at:2017-01-17 10:57:16
   protState  CMDs_done
   rssi_at_HMLAN1 max:-74 min:-100 avg:-82.65 cnt:686 lst:-87
   rssi_at_HMLGW max:-40 min:-54 avg:-44.13 cnt:700 lst:-46
   rssi_at_nanoCUL min:-80.5 max:-47 cnt:704 avg:-57.5 lst:-67

Ich denke ich habe jetzt alles was du benötigst!

mfg Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Ich bin mir nicht sicher: muss dieses Attribut gesetzt werden und um welche "Funktion" geht es?

Gruß
Blueberry63

Das geht automatisch bei anklicken von "Enable RSSI reading in internals". Das muss nur einmal erfolgen, weil hier advaltrigger=1 an allen IODev's gesetzt wird und damit das "Speichern" der RSSI Werte erfolgt.

Viele Grüße!

Andreas

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Alles klar. Danke für die schnelle Antwort. Dann warte ich mal auf die angepasste Version für HMUARTLGW :-)

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Alles klar. Danke für die schnelle Antwort. Dann warte ich mal auf die angepasste Version für HMUARTLGW :-)

Gruß
Blueberry63

Ich habe den Code geändert, sodass nun das HMUARTLGW  auch gelesen wird.

Ist im Prinzip ganz einfach: Schlicht an den Stellen, an dem das array zusammengebastelt wird das entsprechende Attribut (internals), welches das IODev kennzeichnet, einfügen. Im Falle des HMUARTLGW   ist es wie folgt (rot) dar gestellt.


push(@culs, devspec2array("TYPE=HMLAN"));;\
push(@culs, devspec2array("TYPE=CUL_RFR"));;\
push(@culs, devspec2array("TYPE=HMCCUDEV"));;\
push(@culs, devspec2array("TYPE=CUL_MAX"));;\

push(@culs, devspec2array("TYPE=HMUARTLGW "));;\


Viele Grüße!

Andreas
« Letzte Änderung: 17 Januar 2017, 11:45:48 von fhem-challenge »

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Ich habe den Code geändert, sodass nun das HMUARTLGW  auch gelesen wird.

Ist im Prinzip ganz einfach: Schlicht an den Stellen, an dem das array zusammengebastelt wird das entsprechende Attribut (internals), welches das IODev kennzeichnet, einfügen. Im Falle des HMUARTLGW   ist es wie folgt (rot) dar gestellt.


push(@culs, devspec2array("TYPE=HMLAN"));;\
push(@culs, devspec2array("TYPE=CUL_RFR"));;\
push(@culs, devspec2array("TYPE=HMCCUDEV"));;\
push(@culs, devspec2array("TYPE=CUL_MAX"));;\

push(@culs, devspec2array("TYPE=HMUARTLGW "));;\


Viele Grüße!

Andreas

Super Danke bei mir läuft es einwandfrei!
Schneller Support!!! TOP!

Ein kleines Problem gibt es doch (siehe Bild)!

mfg Sig10680
« Letzte Änderung: 17 Januar 2017, 12:48:04 von sig10680 »

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Hmm, ich habe das RSSI Chart mittels der Beschreibung im 1. Post angelegt, aber die Tabelle baut sich nicht auf???

Außerdem sehe ich nirgends das Attribut "addvaltrigger=1 ".

Habe ich etwas übersehen?

Wie werden denn eigentlich die Dummies für das Menü ausgewertet? Müsste es dafür nicht Notifies geben?

Gruß
Blueberry63
« Letzte Änderung: 17 Januar 2017, 13:37:44 von blueberry63 »
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hmm, ich habe das RSSI Chart mittels der Beschreibung im 1. Post angelegt, aber die Tabelle baut sich nicht auf???

Außerdem sehe ich nirgends das Attribut "addvaltrigger=1 ".

Habe ich etwas übersehen?

Wie werden denn eigentlich die Dummies für das Menü ausgewertet? Müsste es dafür nicht Notifies geben?

Gruß
Blueberry63


Vorschlag:

Speicher doch einmal den gesamten Code (komplett) in ein z.b. /opt/fhem/FHEM/fhem.rssi.cfg ... file (falls du linux hast).

und include den Code in Deiner fhem.cfg mit ...

include /opt/fhem/FHEM/fhem.rssi.cfg


Ich vermute einmal, es fehlen Dir code-Teile. Wie sieht denn im Log die Fehlermeldung aus ?

advaltrigger wird erst dann in den Devices eingetragen, wenn Du "Enable RSSI reading in internals" eingeschaltet hast. Erst ab dann werden RSSI Werte in den internals abgespeichert.

Notify zu den Dummies müssen nicht in allen "Buttons" sein. Ich frage in einigen Fällen im Code schlicht den Wert ab. Also ein "refresh" ist dann erforderlich.

Viele Grüße!

Andreas




Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Guter Tip: mit der Include-Datei funktioniert es jetzt; hatte wohl doch einen Fehler gemacht.

Danke an dieser Stelle für das tolle Tool!

Gruß
Blueberry

P.S.: Das Leerzeichen im Code hinter "HMUARTLGW " muss aber noch wohl noch weg ;-)
« Letzte Änderung: 17 Januar 2017, 14:46:08 von blueberry63 »
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Guter Tip: mit der Include-Datei funktioniert es jetzt; hatte wohl doch einen Fehler gemacht.

Danke an dieser Stelle für das tolle Tool!

Gruß
Blueberry

P.S.: Das Leerzeichen im Code hinter "HMUARTLGW " muss aber noch wohl noch weg ;-)

Hallo Blueberry,
sieht es bei dir auch so wie in meinen Bild aus?
Du hast ja anscheinend auch ein HMUARTLGW?

MFG Sig10680

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Nein, bei mir sieht jetzt alles normal aus, also nur eine Spalte für das HMUARTLGW. Am besten kopierst Du nochmal den Code und entfernst das Leerzeichen an den beiden Stellen hinter HMUARTLGW
Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Nein, bei mir sieht jetzt alles normal aus, also nur eine Spalte für das HMUARTLGW. Am besten kopierst Du nochmal den Code und entfernst das Leerzeichen an den beiden Stellen hinter HMUARTLGW
Gruß
Blueberry63

Danke,
ich habe den HMUARTLGW als zusätzliches Device in einen versteckten Raum gefunden.
Dieser war deaktiviert! Habe ihn gelöscht und nun sieht alles sehr gut aus!

mfg Sig10680

Offline Hauswart

  • Sr. Member
  • ****
  • Beiträge: 697
Kann man die RSSI-Werte, welche man mittels Signalduino (https://forum.fhem.de/index.php/topic,38831.msg389126.html#msg389126) empfängt auch anzeigen lassen? :)
Derzeitiges Setup unter Anderem:
* HM-CFG-USB
* nanoCUL868 (SlowRF)
* MySensors
* SIGNALduino 433

Offline Aladin222

  • Full Member
  • ***
  • Beiträge: 167
hi @all,

hier habe ich wohl Verständnisprobleme  :-[

Ich nutze an einem Intel Nuc einen CUL-Stick ( CUL_HM ) , einen Max-Cube zu CUL geflasht im rfmode HomeMatic ( CUL_HM_Cube ), einen Max-Cube zu CUL geflasht im rfmode MAX ( CULMAX_1 )

list CUL_HM
Internals:
   CFGFN      /opt/fhem/FHEM/02_Cul.cfg
   CMDS       BbCFiAZEGMKUYRTVWXefmltux
   Clients    :CUL_HM:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:
   DEF        /dev/ttyACM0@9600 4434
   DeviceName /dev/ttyACM0@9600
   FD         14
   FHTID      4434
   NAME       CUL_HM
   NR         76
   PARTIAL
   STATE      Initialized
   TYPE       CUL
   VERSION    V 1.61 CUL868
   initString X21
Ar
   owner_CCU  VCCU
   Matchlist:
     1:CUL_HM   ^A....................
     8:HMS      ^810e04....(1|5|9).a001
     D:CUL_IR   ^I............
     H:STACKABLE_CC ^\*
     M:TSSTACKED ^\*
   Readings:
     2017-01-18 09:38:01   cmds             B b C F i A Z E G M K U Y R T V W X e f m l t u x
     2016-10-04 09:45:38   credit10ms      900
     2016-04-27 17:44:37   fhtbuf          AE
     2017-01-17 23:10:04   raw             is0F00FFFF0FF0
     2017-01-18 09:38:01   state           Initialized
Attributes:
   addvaltrigger 1
   hmId       1AA777
   icon       cul_cul
   model      CUL
   rfmode     HomeMatic
   room       CUL_HM

list CUL_HM_Cube

Internals:
   CFGFN      /opt/fhem/FHEM/02_CulMaxCube.cfg
   CMDS       BbCFiAZNEkGMKLUYRTVWXefltxz
   CUL_HM_Cube_MSGCNT 1
   CUL_HM_Cube_TIME 2017-01-18 09:38:36
   Clients    :CUL_HM:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:
   DEF        192.168.178.56:2323 1234
   DeviceName 192.168.178.56:2323
   FD         15
   FHTID      1234
   NAME       CUL_HM_Cube
   NR         98
   PARTIAL
   RAWMSG     A0FF3861022E2610000000AA8DF0D0658F1
   RSSI       -81.5
   STATE      Initialized
   TYPE       CUL
   VERSION    V 1.21.00 a-culfw Build: 70 (2016-04-22_17-15-27) CUBe (F-Band: 868MHz)
   initString X21
Ar
   owner_CCU  VCCU
   Matchlist:
     1:CUL_HM   ^A....................
     8:HMS      ^810e04....(1|5|9).a001
     D:CUL_IR   ^I............
     H:STACKABLE_CC ^\*
     M:TSSTACKED ^\*
   Readings:
     2017-01-18 09:38:02   cmds             B b C F i A Z N E k G M K L U Y R T V W X e f l t x z
     2017-01-18 09:38:36   state           Initialized
Attributes:
   hmId       1AA777
   icon       cul_cul
   model      CUL
   rfmode     HomeMatic
   room       CUL_HM

list CULMAX_1

Internals:
   CFGFN      /opt/fhem/FHEM/02_MaxCube.cfg
   CUNO_1_MSGCNT 25
   CUNO_1_RAWMSG Z0E35020207D2AC0883C0000118152C
   CUNO_1_RSSI -65
   CUNO_1_TIME 2017-01-18 09:54:40
   DEF        123456
   IODev      CUNO_1
   LASTInputDev CUNO_1
   MSGCNT     25
   NAME       CULMAX_1
   NR         121
   STATE      Defined
   TYPE       CUL_MAX
   addr       123456
   cnt        0
   pairmode   0
   retryCount 0
   Readings:
     2017-01-18 09:32:32   CUNO_1_RSSI_old -37.5
     2017-01-18 09:26:27   RSSI_disable    0
     2017-01-01 06:32:11   packetsLost     122
   sendQueue:
Attributes:
   IODev      CUNO_1
   group      Cul_Max
   room       CUL_HM

Dazu wird wohl auch ein CUNO_1 angelegt ( ist das normal ? )

list CUNO_1

Internals:
   CFGFN      /opt/fhem/FHEM/02_MaxCube.cfg
   CMDS       BbCFiAZNEkGMKLUYRTVWXefltxz
   CUNO_1_MSGCNT 25
   CUNO_1_TIME 2017-01-18 09:54:40
   Clients    :CUL_MAX:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:
   DEF        192.168.178.106:2323 0000
   DeviceName 192.168.178.106:2323
   FD         16
   FHTID      0000
   NAME       CUNO_1
   NR         120
   NR_CMD_LAST_H 3
   PARTIAL
   RAWMSG     Z0E35020207D2AC0883C0000118152C12
   RSSI       -65
   STATE      Initialized
   TYPE       CUL
   VERSION    V 1.20.06 a-culfw Build: 199 (2016-02-21_13-36-20) CUBe (F-Band: 868MHz)
   initString X21
Zr
Za123456
Zw111111
   Matchlist:
     1:CUL_MAX  ^Z........................
     8:HMS      ^810e04....(1|5|9).a001
     D:CUL_IR   ^I............
     H:STACKABLE_CC ^\*
     M:TSSTACKED ^\*
   Readings:
     2017-01-18 09:38:02   cmds             B b C F i A Z N E k G M K L U Y R T V W X e f l t x z
     2017-01-18 09:38:32   credit10ms      900
     2017-01-18 09:54:40   state           Initialized
     2016-03-03 20:10:44   uptime          2 09:20:45
     2016-06-18 04:01:01   version         V 1.20.06 a-culfw Build: 199 (2016-02-21_13-36-20) CUBe (F-Band: 868MHz)
   XMIT_TIME:
     1484728682.35241
     1484728682.65296
     1484728712.96819
Attributes:
   addvaltrigger 1
   group      Cul_Max
   rfmode     MAX
   room       CUL_HM

Nun habe ich die rssi.cfg nach Anleitung eingebaut - allerdings weiß ich nicht ob ich es richtig verstanden habe :

1.) Bei allen CULs/CUN./HMLAN etc. attr CUL addvaltrigger=1  ... setzen (Hinweis: Das kann auch durch die Funktion (siehe code) erreicht werden.

Wenn ich es richtig verstanden habe ,so muss ich nur addvaltrigger=1 setzen - dies habe ich getan ! Allerdings für den CULMAX_1 gibt es dieses attr wohl nicht , aber beim CUNO_1 -dort habe ich das attr gesetzt !

Leider sieht es bei mir wie folgt aus und es wird weiter nichts angezeigt :-(

Unter Device taucht nur der CULMAX_1 auf vom  CUL_HM und  CUL_HM_Cube ist nichts zu sehen ....muss hier in der cfg etwas angepasst / umbenannt werden ?

Das alles habe ich in eine VCCU zusammengefasst -leider auch nicht sicher ob ich das richtig umgesetzt habe *schäm

list VCCU :
Internals:
   CFGFN      /opt/fhem/FHEM/02_VCCU.cfg
   DEF        1AA777
   IODev      CUL_HM
   NAME       VCCU
   NOTIFYDEV  global
   NR         132
   STATE      CUL_HM:ok,CUL_HM_Cube:ok,
   TYPE       CUL_HM
   assignedIOs CUL_HM,CUL_HM_Cube
   Helper:
     HM_CMDNR   1
     mId        FFF0
     rxType     1
     Ack:
     Expert:
       def        1
       det        0
       raw        0
       tpl        0
     Io:
       vccu       vccu
       ioList:
         CUL_HM
         CUL_HM_Cube
     Mrssi:
       mNo
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
       vrt        1
     Tmpl:
Attributes:
   IODev      CUL_HM
   IOList     CUL_HM,CUL_HM_Cube
   IOgrp      vccu
   group      CUL
   model      CCU-FHEM
   room       CUL_HM
   subType    virtual
   webCmd     virtual:update

« Letzte Änderung: 18 Januar 2017, 10:12:32 von Aladin222 »

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Kann man die RSSI-Werte, welche man mittels Signalduino (https://forum.fhem.de/index.php/topic,38831.msg389126.html#msg389126) empfängt auch anzeigen lassen? :)

Ich selbst benutzer kein Signalduion. Gibt der Signalduino die RSSI Werte denn überhaupt an FHEM weiter ? Wenn ja, wie lautet die COnfig in FHEM für einen Signalduino (hier brauche ich die Internals, um den Signalduino zu identifizieren). Schreibt der Signalduino denn auch RSSI Werte in die Internals der devices, die er empfangen hat ? Wenn ja, kann ich das gerne mit einbauen.

Viele Grüße!

Andreas

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo,


hi @all,

hier habe ich wohl Verständnisprobleme  :-[

Ich nutze an einem Intel Nuc einen CUL-Stick ( CUL_HM ) , einen Max-Cube zu CUL geflasht im rfmode HomeMatic ( CUL_HM_Cube ), einen Max-Cube zu CUL geflasht im rfmode MAX ( CULMAX_1 )

list CUL_HM
Internals:
   CFGFN      /opt/fhem/FHEM/02_Cul.cfg
   CMDS       BbCFiAZEGMKUYRTVWXefmltux
   Clients    :CUL_HM:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:
   DEF        /dev/ttyACM0@9600 4434
   DeviceName /dev/ttyACM0@9600
   FD         14
   FHTID      4434
   NAME       CUL_HM
   NR         76
   PARTIAL
   STATE      Initialized
   TYPE       CUL
   VERSION    V 1.61 CUL868
   initString X21
Ar
   owner_CCU  VCCU
   Matchlist:
     1:CUL_HM   ^A....................
     8:HMS      ^810e04....(1|5|9).a001
     D:CUL_IR   ^I............
     H:STACKABLE_CC ^\*
     M:TSSTACKED ^\*
   Readings:
     2017-01-18 09:38:01   cmds             B b C F i A Z E G M K U Y R T V W X e f m l t u x
     2016-10-04 09:45:38   credit10ms      900
     2016-04-27 17:44:37   fhtbuf          AE
     2017-01-17 23:10:04   raw             is0F00FFFF0FF0
     2017-01-18 09:38:01   state           Initialized
Attributes:
   addvaltrigger 1
   hmId       1AA777
   icon       cul_cul
   model      CUL
   rfmode     HomeMatic
   room       CUL_HM

list CUL_HM_Cube
...
<snip>

Nun habe ich die rssi.cfg nach Anleitung eingebaut - allerdings weiß ich nicht ob ich es richtig verstanden habe :

1.) Bei allen CULs/CUN./HMLAN etc. attr CUL addvaltrigger=1  ... setzen (Hinweis: Das kann auch durch die Funktion (siehe code) erreicht werden.

Wenn ich es richtig verstanden habe ,so muss ich nur addvaltrigger=1 setzen - dies habe ich getan ! Allerdings für den CULMAX_1 gibt es dieses attr wohl nicht , aber beim CUNO_1 -dort habe ich das attr gesetzt !

Leider sieht es bei mir wie folgt aus und es wird weiter nichts angezeigt :-(

Unter Device taucht nur der CULMAX_1 auf vom  CUL_HM und  CUL_HM_Cube ist nichts zu sehen ....muss hier in der cfg etwas angepasst / umbenannt werden ?

Das alles habe ich in eine VCCU zusammengefasst -leider auch nicht sicher ob ich das richtig umgesetzt habe *schäm

...
<snip>


Auch ich nutzen ein MAX Cube zum (rfmode) CUL umgeflashten und habe auch zwei HMLAN-Adapter mit VCCU. Alle diese werden in der RSSI Tabelle dargestellt. Wobei die VCCU selbst nicht dargestellt werden muss, sondern die z.B. einzelnen HMLAN-Adapter.

Hast Du auch auf "refresh" geklickt ?


Die einzelnen IODev (cul,hmlan,max etc. etc.) werden im Code hier definiert.

my @culs=devspec2array("TYPE=HMLAN");
push(@culs, devspec2array("TYPE=CUL"));
push(@culs, devspec2array("TYPE=CUL_RFR"));
push(@culs, devspec2array("TYPE=HMCCUDEV"));
push(@culs, devspec2array("TYPE=CUL_MAX"));
push(@culs, devspec2array("TYPE=HMUARTLGW"));

Frage: Kannst Du mir einmal bitte die internals eines Devices schicken, die dein MAX Cul, bzw. deinen anderen CUL's ampfangen haben. Wie lauten hier die internals ? Normalerweise lauten diese internals: "[Name_des_CULs]_RSSI".

Advaltrigger=1 musst du nicht einzeln setzen, hier genügt es den Button: "Enable RSSI reading in internals" an zu klicken (zu enablen).


Viele Grüße!

Andreas
« Letzte Änderung: 19 Januar 2017, 15:13:38 von fhem-challenge »

Offline sledge

  • Jr. Member
  • **
  • Beiträge: 71
Bei mir ging es beim ersten "refresh" nur dann, wenn ich die beiden unteren Auswahlmöglichkeiten (die mit den DIFFS) jeweils disabled hatte - danach flutschte alles wunderbar.

Vielleicht hilft es?
FHEM: Intel-NUC / 2 Cube-CUN + 17 WT  + 10 FK + 4 ECO-Taster / HMLAN + HM-PB-2-WM55-2 + 4 HM-MOD-Re-8 / JeeLink + 3 TX29DTH / Jeelink + 6 PCA301 / CUL868 / LGW+CUL868

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Bei mir ging es beim ersten "refresh" nur dann, wenn ich die beiden unteren Auswahlmöglichkeiten (die mit den DIFFS) jeweils disabled hatte - danach flutschte alles wunderbar.

Vielleicht hilft es?

Wenn der Code das erste mal neu in FHEM eingefügt wird, haben die "dummy Variablen" (also die Buttons) ja keinen Wert und dort steht "? ? ?" im state. Wenn man alle "buttons" einmal angeklickt hat, stehen auch richtige Werte im state und damit im fhem.save. Nicht auszuschliessen, das es so eine Korrelation ist/war.

Viele Grüße!

Andreas


« Letzte Änderung: 21 Januar 2017, 11:46:50 von fhem-challenge »

Offline tik-tak-tok

  • Jr. Member
  • **
  • Beiträge: 54
Hallo Andreas,

ich wollte einfach mal vielen Dank sagen für den tollen Codeschnipsel! :-)
Nachdem ich den Code eingepflegt, alle "Checkboxen" mal deaktiviert habe und wieder aktiviert habe  bekomme ich nun die gewünschte Anzeige. :-)

Ich bin dir wirklich dankbar, diese Ansicht habe ich schon lange gesucht, aber für Eigenregie reicht mein Wissen in FHEM (noch) nicht.

Tausend Dank & viele Grüße,
Mike

Offline frank

  • Hero Member
  • *****
  • Beiträge: 5635
Danke,
ich habe den HMUARTLGW als zusätzliches Device in einen versteckten Raum gefunden.
Dieser war deaktiviert! Habe ihn gelöscht und nun sieht alles sehr gut aus!

mfg Sig10680
das ist aber keine gute idee.
das keepalive-device kann man ja auch für diese anwendung rausfiltern. dafür müsstest du mal ein list für das keepalive-device posten.
FHEM: 5.7(SVN) => FB7390(06.04) | Pi3(jessie)
IO: CUL433_V3.3(1.00.01B53)|CUL868_V3.3(1.58)|HMLAN(0.965)|HMUSB2(0.967)|HMUART(1.4.1)
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
das ist aber keine gute idee.
das keepalive-device kann man ja auch für diese anwendung rausfiltern. dafür müsstest du mal ein list für das keepalive-device posten.

Hallo,
ich wusste nicht das man das herausfiltern kann.
Wäre aber schön wenn du mir einen Tip geben kannst! Hier mein list vom Device.

mfg Sig10680

Internals:
   DevType    LGW-KeepAlive
   DeviceName 192.168.150.197:2001
   NAME       HMLGW:keepAlive
   NEXT_OPEN  1485778734
   NR         77538
   PARTIAL
   STATE      disconnected
   TEMPORARY  1
   TYPE       HMUARTLGW
   Readings:
     2017-01-30 13:17:54   state           disconnected
   Lgwhash:
     AssignedPeerCnt 34
     CNT        120
     DEF        192.168.150.197
     DEVCNT     175
     DevState   99
     DevType    LGW
     DeviceName 192.168.150.197:2000
     FD         78
     LastOpen   1485778671.89981
     NAME       HMLGW
     NR         593
     PARTIAL
     RAWMSG     0500003094847045907300000000F01F
     RSSI       -48
     STATE      opened
     TYPE       HMUARTLGW
     XmitOpen   1
     msgLoadCurrent 1
     msgLoadHistory 0/-1/0/0/0/0/1/0/0/0/0/0
     msgLoadHistoryAbs 2/2/3/3/3/3/3/2/2/2/2/2/2
     owner      0A0650
     owner_CCU  VCCU
       Readings:
       2017-01-30 13:17:56   D-HMIdAssigned  XXXXXX
       2017-01-30 13:17:56   D-HMIdOriginal  FFFFFF
       2017-01-30 13:17:51   D-LANfirmware   1.1.5
       2017-01-30 13:17:56   D-firmware      1.4.1
       2017-01-30 13:17:51   D-serialNr       
       2017-01-30 13:17:51   D-type          eQ3-HM-LGW
       2017-01-30 13:17:57   cond            ok
       2017-01-31 17:18:39   load            1
       2017-01-30 13:17:57   loadLvl         low
       2017-01-30 13:17:51   state           opened
     Helper:
     Keepalive:
Attributes:
   room       hidden
   verbose

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo,

das HMLANGW habe ich im Code vor ca. 2 Wochen hinzugefügt. Zwischenzeitlich war aber noch ein kleiner Fehler drin (es stand noch ein Space am "HMUARTLGW ", der ist jetzt weg. Schaue mal bitte nach ob Du in Deiner Version:

push(@culs, devspec2array("TYPE=HMUARTLGW"));;\

... in (ca. Zeile 88 und 155) stehen hast, oder noch den falschen Eintrag mit dem Space.


Viele Grüße!

Andreas

Hallo,
ich wusste nicht das man das herausfiltern kann.
Wäre aber schön wenn du mir einen Tip geben kannst! Hier mein list vom Device.

mfg Sig10680

Internals:
   DevType    LGW-KeepAlive
   DeviceName 192.168.150.197:2001
   NAME       HMLGW:keepAlive
   NEXT_OPEN  1485778734
   NR         77538
   PARTIAL
   STATE      disconnected
   TEMPORARY  1
   TYPE       HMUARTLGW
   Readings:
     2017-01-30 13:17:54   state           disconnected
   Lgwhash:
     AssignedPeerCnt 34
     CNT        120
     DEF        192.168.150.197
     DEVCNT     175
     DevState   99
     DevType    LGW
     DeviceName 192.168.150.197:2000
     FD         78
     LastOpen   1485778671.89981
     NAME       HMLGW
     NR         593
     PARTIAL
     RAWMSG     0500003094847045907300000000F01F
     RSSI       -48
     STATE      opened
     TYPE       HMUARTLGW
     XmitOpen   1
     msgLoadCurrent 1
     msgLoadHistory 0/-1/0/0/0/0/1/0/0/0/0/0
     msgLoadHistoryAbs 2/2/3/3/3/3/3/2/2/2/2/2/2
     owner      0A0650
     owner_CCU  VCCU
       Readings:
       2017-01-30 13:17:56   D-HMIdAssigned  XXXXXX
       2017-01-30 13:17:56   D-HMIdOriginal  FFFFFF
       2017-01-30 13:17:51   D-LANfirmware   1.1.5
       2017-01-30 13:17:56   D-firmware      1.4.1
       2017-01-30 13:17:51   D-serialNr       
       2017-01-30 13:17:51   D-type          eQ3-HM-LGW
       2017-01-30 13:17:57   cond            ok
       2017-01-31 17:18:39   load            1
       2017-01-30 13:17:57   loadLvl         low
       2017-01-30 13:17:51   state           opened
     Helper:
     Keepalive:
Attributes:
   room       hidden
   verbose

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Hallo,

das HMLANGW habe ich im Code vor ca. 2 Wochen hinzugefügt. Zwischenzeitlich war aber noch ein kleiner Fehler drin (es stand noch ein Space am "HMUARTLGW ", der ist jetzt weg. Schaue mal bitte nach ob Du in Deiner Version:

push(@culs, devspec2array("TYPE=HMUARTLGW"));;\

... in (ca. Zeile 88 und 155) stehen hast, oder noch den falschen Eintrag mit dem Space.


Viele Grüße!

Andreas

Hallo,
das mit dem leerzeichen hatte ich schon selber gesehen. Das ist es aber nicht das Problem. Trotzdem Danke für deine Mühe!

mfg Sig10680

Offline frank

  • Hero Member
  • *****
  • Beiträge: 5635
hi,
probiere mal folgende änderung:

push(@culs, devspec2array("TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive"));;\
FHEM: 5.7(SVN) => FB7390(06.04) | Pi3(jessie)
IO: CUL433_V3.3(1.00.01B53)|CUL868_V3.3(1.58)|HMLAN(0.965)|HMUSB2(0.967)|HMUART(1.4.1)
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
hi,
probiere mal folgende änderung:

push(@culs, devspec2array("TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive"));;\

Wenn's dann bei "sig10680" damit klappt, nehme ich es in den Code im ersten Post.


Viele Grüße!

Andreas

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
hi,
probiere mal folgende änderung:

push(@culs, devspec2array("TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive"));;\

Hallo Frank,

Danke genau das war es, man hätte eigentlich auch von selber darauf kommen können!

Danke dir nochmals....

mfg sig10680

Offline frank

  • Hero Member
  • *****
  • Beiträge: 5635
na dann, viel spass.  :)
FHEM: 5.7(SVN) => FB7390(06.04) | Pi3(jessie)
IO: CUL433_V3.3(1.00.01B53)|CUL868_V3.3(1.58)|HMLAN(0.965)|HMUSB2(0.967)|HMUART(1.4.1)
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
So eines habe ich noch und zwar wenn ich mein fhem Webif über https anspreche werden manche Icons nicht geladen!
Siehe Bild!

mfg Sig10680
« Letzte Änderung: 01 Februar 2017, 14:18:34 von sig10680 »

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
So eines habe ich noch und zwar wenn ich mein fhem Webif über https anspreche werden manche Icons nicht geladen!
Siehe Bild!

mfg Sig10680


Hast Du die Fonts ?:

find /opt/fhem -name "ios-on*"

/opt/fhem/www/images/default/ios-on-blue.png
/opt/fhem/www/images/default/ios-on-for-timer-blue.png
/opt/fhem/www/images/default/ios-on-green.png
/opt/fhem/www/images/default/ios-on-for-timer-green.png


Wenn Du SSL nutzt, hast Du auch die Zeile ...

my $HTTP="http";;
auf

my $HTTP="https";;
geändert ? Wenngleich das aber auch nur die "links" zu den Devices betrifft.


Nachtrag: ich ändere noch einmal den Code:

if ($dev_disable eq 1)
{
$disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-off.png";
$disabled_set = "0";
$col="grey";
if ($ButBestCol eq 1)
{
$bestVal="<td></td>";
}
}
else
{

$disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";

ich verwende hier (noch) nicht die Varibale $HTTP... weshalb er die Icons via http:// laden möchte.



Viele Grüße!

Andreas



« Letzte Änderung: 01 Februar 2017, 14:29:58 von fhem-challenge »

Offline sig10680

  • New Member
  • *
  • Beiträge: 29

Hast Du die Fonts ?:

find /opt/fhem -name "ios-on*"

/opt/fhem/www/images/default/ios-on-blue.png
/opt/fhem/www/images/default/ios-on-for-timer-blue.png
/opt/fhem/www/images/default/ios-on-green.png
/opt/fhem/www/images/default/ios-on-for-timer-green.png


Wenn Du SSL nutzt, hast Du auch die Zeile ...

my $HTTP="http";;
auf

my $HTTP="https";;
geändert ? Wenngleich das aber auch nur die "links" zu den Devices betrifft.


Viele Grüße!

Andreas

Hallo,
ja habe extra auf den Server geschaut die Icons sind da!
auf HTTPS habe ich es auch gestellt.

Das 2. Bild was ich angehängt habe, da sieht man das er auf http zugreift und kein Port dahinter hat?

mfg
« Letzte Änderung: 01 Februar 2017, 14:30:19 von sig10680 »

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo,
ja habe extra auf den Server geschaut die Icons sind da!
auf HTTPS habe ich es auch gestellt.

Das 2. Bild was ich angehängt habe, da sieht man das er auf http zugreift und kein Port dahinter hat?

mfg

Siehe mein Post oben:

Hier war noch ein Bug, ist jetzt gefixt. Wenn Du nicht den gesamten Code erneut bei Dir einfügen willst, ändere einfach die beiden "roten" Zeilen siehe "Code Ausschnitt" ab. Hier muss "$HTTP." vorangestellt werden.

Also aus:

$disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-off.png";

wird

$disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-off.png";


und aus


$disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";

wird

$disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";



Code Ausschnitt:

         if ($dev_disable eq 1)
         {
            $disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-off.png";
            $disabled_set = "0";
            $col="grey";
            if ($ButBestCol eq 1)
            {
               $bestVal="<td></td>";
            }
         }
         else
         {

            $disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";
            $disabled_set = "1";   
         }


dann funktioniert es.

Viele Grüße!

Andreas

« Letzte Änderung: 01 Februar 2017, 14:40:04 von fhem-challenge »

Offline DerFrickler

  • Sr. Member
  • ****
  • Beiträge: 501
ich hätte da noch einen Vorschlag. Wenn Du schon individuelle Einstellungen erlaubst, dann erlaube doch bitte auch das Einstellen des Farbschemas. Hellgrün z.B. auf schwarzem Hintergrund mag ja o.k. zu sein, nur wenn dann der Hintergrund (wie bei mir) nicht schrarz ist, dann kann man die Schrift nicht wirklich erkennen.

Gruß!

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Hallo,

ich war einige Tage "off" und habe mir eben den existierenden (und funktionierenden) Code in meiner "RSSI_incl.cfg" mit dem Code aus dem 1. Post überschrieben. Und jetzt kommt folgendes im LOG, wenn ich "Refresh" drücke:

Zitat
2017.02.01 16:28:37 3: rssi_read_from_device return value: Unknown command {, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command my, try help.
Unknown command #, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
...

Auf die Schnelle komme ich nicht auf den Fehler?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Siehe mein Post oben:

Hier war noch ein Bug, ist jetzt gefixt. Wenn Du nicht den gesamten Code erneut bei Dir einfügen willst, ändere einfach die beiden "roten" Zeilen siehe "Code Ausschnitt" ab. Hier muss "$HTTP." vorangestellt werden.

Also aus:

$disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-off.png";

wird

$disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-off.png";


und aus


$disabled = "http://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";

wird

$disabled = $HTTP."://$FW_httpheader{Host}/fhem/images/default/ios-on-green.png";

Danke dir für die schnelle Antwort, jetzt ist es super Danke!

mfg Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo,

ich war einige Tage "off" und habe mir eben den existierenden (und funktionierenden) Code in meiner "RSSI_incl.cfg" mit dem Code aus dem 1. Post überschrieben. Und jetzt kommt folgendes im LOG, wenn ich "Refresh" drücke:

Auf die Schnelle komme ich nicht auf den Fehler?

Gruß
Blueberry63


In erster Näherung vermute ich eher ein Copy-Paste Fehler.

Kopiere den gesamten Code mit einem "externen" Editor (nicht in FHEM) in Deine RSSI_incl.cfg. Im Code sind je bereits alle "\" sowie ";;" enthalten.


Ich verifiziere das mal ...

Viele Grüße!

Andreas
« Letzte Änderung: 02 Februar 2017, 09:00:17 von fhem-challenge »

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Ich habe eben nochmal den Code vom 1. Post in die Include-Datei kopiert: gleiches Ergebnis

Fehlt vielleicht irgendow eine Klammer?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Ich habe eben nochmal den Code vom 1. Post in die Include-Datei kopiert: gleiches Ergebnis

Fehlt vielleicht irgendow eine Klammer?

Gruß
Blueberry63


Ja, ich hatte ein ähnliches Ergebnis. War nicht Dein Fehler. Ich habe den Code noch einmal im ersten Post neu eingefügt.

Probier's bitte noch einmal.






Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
ich hätte da noch einen Vorschlag. Wenn Du schon individuelle Einstellungen erlaubst, dann erlaube doch bitte auch das Einstellen des Farbschemas. Hellgrün z.B. auf schwarzem Hintergrund mag ja o.k. zu sein, nur wenn dann der Hintergrund (wie bei mir) nicht schrarz ist, dann kann man die Schrift nicht wirklich erkennen.

Gruß!


Ich habe "Use dark colorscheme (instead of bright)" eingefügt, der die ColorScheme ändert. Natürlich wäre jetzt hier CSS besser, aber das will ich im Code nicht auch noch einbauen.

Du kannst die Farben nach Wunsch anpassen im Code an folgender Stelle (bei $ButtonColorSchemeDark eq 1 sind es die "dunkleren Farben" für den helleren Background:

if ($ButtonColorSchemeDark eq 1)
{
$fntColor1="darkblue";
$fntColor2="darkblue";
$colGood="darkgreen";
$colMid="darkyellow";
$colBad="#ff8533";
$colWorse="red";
$bgColor1="#00A700";
}
else
{
$fntColor1="lightblue";
$fntColor2="white";
$colGood="lightgreen";
$colMid="yellow";
$colBad="#ff8533";
$colWorse="red";
}

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Danke dir für die schnelle Antwort, jetzt ist es super Danke!

mfg Sig10680

Hallo,

gestern hat alles funktioniert und heute zeigt er wieder über https keine Icons mehr an! (auch an verschiedenen PC`s und Browsern)
Habe auch die include Datei nochmals neu eingespielt. Auch über einen Externen Editor.
Aber oben bei den Einstellungen schon?

mfg Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo,

gestern hat alles funktioniert und heute zeigt er wieder über https keine Icons mehr an! (auch an verschiedenen PC`s und Browsern)
Habe auch die include Datei nochmals neu eingespielt. Auch über einen Externen Editor.
Aber oben bei den Einstellungen schon?

mfg Sig10680

Bei mir gehts:

Bei jedem erneuten Import des Code, musst Du (in Deinem Fall)

my $HTTP="https";
setzen.


Ich habe gerade eine neuere Version im Post 1 eingefügt, welche (nebenbei, ganz anderer featureRequest) ColorScheme ändert (neuer Button). Probiers mal damit.


« Letzte Änderung: 02 Februar 2017, 11:04:45 von fhem-challenge »

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Bei mir gehts:

Bei jedem erneuten Import des Code, musst Du (in Deinem Fall)

my $HTTP="https";
setzen.


ich habe gerade eine neuere Version im Post 1 eingefügt, der (nebenbei) ColorScheme ändert (neuer Button). Probiers mal damit.

Hallo,

ja das ist mir bewusst. Ich denke er fragt bei dem Icon nicht nach dem Port (siehe Bild), ist aber nur so eine Vermutung!
Ich lebe einfach damit.

Danke
Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo,

ja das ist mir bewusst. Ich denke er fragt bei dem Icon nicht nach dem Port (siehe Bild), ist aber nur so eine Vermutung!
Ich lebe einfach damit.

Danke
Sig10680

Ist ominös. Ich nutze ja

$FW_httpheader{Host}
... der den aktuell verwendeten TCP Port einschliesst.

Frage: Klicke mal auf einen Deiner IODev's in der ersten Zeile der Tabelle (irgend ein CUL ... )...oder klick alternativ auf irgend eines Deiner Devices "links":  funktioniert dieser Link ? Der wird in exakt der gleichen Weise aufgebaut mit "$FW_httpheader{Host}".

Hast du auch wirklich die neueste Version aus Post 1 (die mit dem Button ColorScheme ?)
« Letzte Änderung: 02 Februar 2017, 11:44:28 von fhem-challenge »

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Ist ominös. Ich nutze ja

$FW_httpheader{Host}
... der den aktuell verwendeten TCP Port einschliesst.

Frage: Klicke mal auf einen Deiner IODev's in der ersten Zeile der Tabelle (irgend ein CUL ... )...oder klick alternativ auf irgend eines Deiner Devices "links":  funktioniert dieser Link ? Der wird in exakt der gleichen Weise aufgebaut mit "$FW_httpheader{Host}".

Hast du auch wirklich die neueste Version aus Post 1 (die mit dem Button ColorScheme ?)

So habe jetzt mal auf mehrere IODev geklickt, die links gehen ins nirgendwo. Ich kopiere aber trotzdem nochmal alles neu aus dem ersten Post!

Sig10680

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
So habe jetzt mal auf mehrere IODev geklickt, die links gehen ins nirgendwo. Ich kopiere aber trotzdem nochmal alles neu aus dem ersten Post!

Sig10680

Es funktioniert mit dem Code (siehe Bild).

Lösche sonst auch mal dein BrowserCache.



« Letzte Änderung: 02 Februar 2017, 11:52:01 von fhem-challenge »

Offline sig10680

  • New Member
  • *
  • Beiträge: 29
Es funktioniert mit dem Code (siehe Bild).

Lösche sonst auch mal dein BrowserCache.

Ja Cache habe ich schon gelöscht, hat auch nichts gebracht. funktioniert bei mir auch mit http aber nicht mit https!

Naja egal, die werte sind entscheidend

Danke trotzdem Sig10680

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 515
Jetzt funktioniert es bei mir wieder :-)

Danke!

Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline BlackStone

  • Full Member
  • ***
  • Beiträge: 147
lustig ist auch das im Hover von jedem device der gesammte html code der div tags angezeigt wird, bzw, der gesammte tabellenaufbau.

Offline sash.sc

  • Sr. Member
  • ****
  • Beiträge: 882
Hallo zusammen.

Ich habe ein paar esp8266 an laufen mit espeasy.
Dort lasse ich auch von jedem esp die rssi Werte mit übermitteln.
Die Werte werden als reading übermittelt.

Besteht die Möglichkeit, diese rssi Werte der esp Chips mit in die Übersicht einfließen zu lassen?

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Raspi 2  Jessie aktuell; IT , div. TFA 433 MHz;div. TX29 DTH; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;ESP8622 ;nanoCUL a-fw (433 & 868 MHz);minCULwlan; WLANduino; MySensors

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo zusammen.

Ich habe ein paar esp8266 an laufen mit espeasy.
Dort lasse ich auch von jedem esp die rssi Werte mit übermitteln.
Die Werte werden als reading übermittelt.

Besteht die Möglichkeit, diese rssi Werte der esp Chips mit in die Übersicht einfließen zu lassen?

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk


Ja, ich brauche dazu aber die device types der ESP8266, also konkret die Internals: TYPE für das ESP8266 Device. Dann kann ich die identifizieren.

Weiterhin wäre es dann einfach, wenn die Variable der RSSI Werte den Namen des Internals: [ESP8266-DeviceName]_RSSI hat.

Beispiel:

Ist Dein Name deines ESP8266 = "ESP"

... dann brauche ich die Internal Variable "TYPE"

und wenn dann dein RSSI Wert in der Variable (oder besser internals)  "ESP_RSSI" steht, ist das alles am einfachsten machbar.



Viele Grüße!


Andreas

Offline sash.sc

  • Sr. Member
  • ****
  • Beiträge: 882
Ok.

Kurz zur Info.
Die ESP Easy Devices werden über die ESPBridge von dev0 angelegt bzw angebunden.

Ich habe hier mal ein list von einem ESP Easy device

Internals:
   DEF        192.168.2.30 80 espBridge strom_RSSI
   ESP_BUILD  147
   ESP_SLEEP  0
   ESP_UNIT   0
   HOST       192.168.2.30
   IDENT      strom_RSSI
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     466
   NAME       ESPEasy_strom_RSSI
   NOTIFYDEV  global
   NR         384
   NTFY_ORDER 50-ESPEasy_strom_RSSI
   PORT       80
   STATE      RSS: -86.00
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1
   espBridge_MSGCNT 466
   espBridge_TIME 2017-03-03 16:51:48
   Readings:
     2017-03-03 16:51:48   RSSI            -86.00
     2017-03-03 16:54:05   presence        present
     2017-03-03 16:54:05   state           RSS: -86.00
   Helper:
     fpc        1488310618
     Intat:
       1:
         FN         ESPEasy_statusRequest
         INTERVAL   304
         TRIGGERTIME 03.03.2017 16:59:09
     Received:
       RSSI       1488556308
Attributes:
   IODev      espBridge
   Interval   300
   group      ESPEasy Device
   readingSwitchText 1
   room       ESPEasy
   setState   3

Man kan auf dem ESP Device den Name wilkürlich wählen, und das RSSI selbst anlegen aus dem Device und ESPEasy.

Danke schonmal im vorraus.
Sascha

P.S.: Das ESp modul heisst "strom" und die Variable RSSI
« Letzte Änderung: 03 März 2017, 17:09:52 von sash.sc »
Raspi 2  Jessie aktuell; IT , div. TFA 433 MHz;div. TX29 DTH; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;ESP8622 ;nanoCUL a-fw (433 & 868 MHz);minCULwlan; WLANduino; MySensors

Offline pc1246

  • Sr. Member
  • ****
  • Beiträge: 949
  • tempus fugit
Moin
Ich muss leider mal eine wirklich dumme Frage stellen. Wohin kommt denn der Code? Ich habe eine 99_RSSI.pm angelegt, und den Code da reinkopiert, aber das ging nicht! Sind das mehrere Schritte? Muss ich die dummies etc. anlegen und nur den echten Code in eine pm packen?
Danke und Gruss
Christoph
RasPi2
Jeelink mit 1 ETH200comfort; Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; netatmo; HM-USB mit 14 HM-CC-RT-DN, 3 HM_WDS10_TH_O; PhilipsTV; add-on board mit 6 IT-Steckdosen;3 harmony hub; Jeelink mit 6 PCA301; Somfy;
S7-300; 2 LGW; KS300

Offline sash.sc

  • Sr. Member
  • ****
  • Beiträge: 882
Nix pm. An in den Editor und alles einfügen. Sprich die config von fhem manuell bearbeiten

Gesendet von meinem SM-T560 mit Tapatalk

Raspi 2  Jessie aktuell; IT , div. TFA 433 MHz;div. TX29 DTH; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;ESP8622 ;nanoCUL a-fw (433 & 868 MHz);minCULwlan; WLANduino; MySensors

Offline Andy89

  • Full Member
  • ***
  • Beiträge: 236
Nix pm. An in den Editor und alles einfügen. Sprich die config von fhem manuell bearbeiten

Gesendet von meinem SM-T560 mit Tapatalk
Definitiv ist das die schlechteste Lösung. Die Config manuell zu bearbeiten, sollte man am besten nie tun. Das bringt nur unnötig Fehler.

Über eine RAW Definition wäre es machbar, aber ich denke ne eigene pm ist schon die beste Wahl!
FHEM 5.8 auf rPi3 (mit Homebridge); dbLog und FTUI auf DS1813+; AMAD für Fire;
HMLAN > HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-Sec-RHS,HM-TC-IT-WM-W-EU,ZEL STG RM FFK;
CUL433 > IT, Elro; LGW > PCA301,EC3000,BME280,LaCrosse;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Enigma2;Withings Scale;HUE

Offline pc1246

  • Sr. Member
  • ****
  • Beiträge: 949
  • tempus fugit
Ah ok
Naja, da habe ich dann mit Zitronen gehandelt, da ich keine CFG mehr habe!
Danke und Gruss Christoph
RasPi2
Jeelink mit 1 ETH200comfort; Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; netatmo; HM-USB mit 14 HM-CC-RT-DN, 3 HM_WDS10_TH_O; PhilipsTV; add-on board mit 6 IT-Steckdosen;3 harmony hub; Jeelink mit 6 PCA301; Somfy;
S7-300; 2 LGW; KS300

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Moin
Ich muss leider mal eine wirklich dumme Frage stellen. Wohin kommt denn der Code? Ich habe eine 99_RSSI.pm angelegt, und den Code da reinkopiert, aber das ging nicht! Sind das mehrere Schritte? Muss ich die dummies etc. anlegen und nur den echten Code in eine pm packen?
Danke und Gruss
Christoph

Hallo,


am besten so verfahren , wie ich es in:

https://forum.fhem.de/index.php/topic,62184.msg563146.html#msg563146

... beschrieben hatte.

Einfach ein "include" einer *.cfg, die man mit dem Code aus Posting 1 erstellt hatte.

Sicherlich wäre auch einen Variante mit der 99...pm denkbar, aber die müsste ich dann erst einmal anpassen.



Viele Grüße!


Andreas

Offline sledge

  • Jr. Member
  • **
  • Beiträge: 71
Hi,

just for completeness: Habe bei mir noch

push(@culs, devspec2array("TYPE=TSCUL"));
eingefügt - somit werden auch die Devices mit der TS-Firmware für Homematic einwandfrei erkannt.

Die Sache mit dem eigenen *.pm ist ggfs einen zweiten Gedanken wert. Bei mir ist auch .cfg-freie Zone - alles in der DB. Habe halt ein "leeres" notfiy angelegt und dann alles via DEFMOD eingefügt... Klappt einwandfrei.

Gruß,
Tom
FHEM: Intel-NUC / 2 Cube-CUN + 17 WT  + 10 FK + 4 ECO-Taster / HMLAN + HM-PB-2-WM55-2 + 4 HM-MOD-Re-8 / JeeLink + 3 TX29DTH / Jeelink + 6 PCA301 / CUL868 / LGW+CUL868

Offline jeti

  • Jr. Member
  • **
  • Beiträge: 85
Hallo zusammen,
ich habe eben versucht den code zu verwenden.
Damit sehe ich nun auch meinen CUL_MAX aber nicht die einzelnen Max -device...
-> ich habe kein
Zitat
addvaltrigger
attribut beim CUL_MAX, dies ist auch nach aktivierung/deaktivierung des
Zitat
Enable RSSI reading in internals
aufgetaucht...
Ich denke ich habe alle dazugehörige post gelsen, aber keine Lösung gefunden.

Habt ihr einen Tip wohin ich gucken muss?

danke und Gruß

EDIT_2:
EDIT:
ich habe nun den code in eine seperate datei fhem.rssi.cfg gespeichert und dies eingebunden. dies bringt leider diese Fehlermeldung:

Zitat
Messages collected while initializing FHEM:
configfile: RSSI_Chart: unknown attribute webCmd. Type 'attr RSSI_Chart ?' for a detailed list.
RSSI_SertUpHighlight: unknown attribute devStateIcon. Type 'attr RSSI_SertUpHighlight ?' for a detailed list.
RSSI_SertUpHighlight: unknown attribute sortby. Type 'attr RSSI_SertUpHighlight ?' for a detailed list.
RSSI_SetUpLastActive: unknown attribute devStateIcon. Type 'attr RSSI_SetUpLastActive ?' for a detailed list.
RSSI_SetUpLastActive: unknown attribute sortby. Type 'attr RSSI_SetUpLastActive ?' for a detailed list.
RSSI_SetUpBestCol: unknown attribute devStateIcon. Type 'attr RSSI_SetUpBestCol ?' for a detailed list.
RSSI_SetUpBestCol: unknown attribute sortby. Type 'attr RSSI_SetUpBestCol ?' for a detailed list.
RSSI_SetUpAverage: unknown attribute devStateIcon. Type 'attr RSSI_SetUpAverage ?' for a detailed list.
RSSI_SetUpAverage: unknown attribute sortby. Type 'attr RSSI_SetUpAverage ?' for a detailed list.
RSSI_SetUpInternals: unknown attribute devStateIcon. Type 'attr RSSI_SetUpInternals ?' for a detailed list.
RSSI_SetUpInternals: unknown attribute sortby. Type 'attr RSSI_SetUpInternals ?' for a detailed list.
RSSI_SetUpAverageSaveOldValues: unknown attribute devStateIcon. Type 'attr RSSI_SetUpAverageSaveOldValues ?' for a detailed list.
RSSI_SetUpAverageSaveOldValues: unknown attribute sortby. Type 'attr RSSI_SetUpAverageSaveOldValues ?' for a detailed list.
RSSI_SetUpShowOldValues: unknown attribute devStateIcon. Type 'attr RSSI_SetUpShowOldValues ?' for a detailed list.
RSSI_SetUpShowOldValues: unknown attribute sortby. Type 'attr RSSI_SetUpShowOldValues ?' for a detailed list.
RSSI_SetUpColorSchemeDark: unknown attribute devStateIcon. Type 'attr RSSI_SetUpColorSchemeDark ?' for a detailed list.
RSSI_SetUpColorSchemeDark: unknown attribute sortby. Type 'attr RSSI_SetUpColorSchemeDark ?' for a detailed list.
RSSI_SetUpClearRSSIValues: unknown attribute devStateIcon. Type 'attr RSSI_SetUpClearRSSIValues ?' for a detailed list.
RSSI_SetUpClearRSSIValues: unknown attribute sortby. Type 'attr RSSI_SetUpClearRSSIValues ?' for a detailed list.

Berechtigung und Besitzter der Datei habe ich bereits angepasst.

wo klemmt es denn hier? (als ich den code noch in der fhem.cfg hatte bekam ich noch das oben beschriebene Verhalten.

nach Neustart geht alles wie oben beschrieben. Ich sehe nur den CUL_MAX...
Gruß
« Letzte Änderung: 05 März 2017, 21:06:38 von jeti »

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Hallo zusammen,
ich habe eben versucht den code zu verwenden.
Damit sehe ich nun auch meinen CUL_MAX aber nicht die einzelnen Max -device...
-> ich habe kein  attribut beim CUL_MAX, dies ist auch nach aktivierung/deaktivierung des  aufgetaucht...
Ich denke ich habe alle dazugehörige post gelsen, aber keine Lösung gefunden.

Habt ihr einen Tip wohin ich gucken muss?

danke und Gruß

EDIT_2:
EDIT:
ich habe nun den code in eine seperate datei fhem.rssi.cfg gespeichert und dies eingebunden. dies bringt leider diese Fehlermeldung:
Berechtigung und Besitzter der Datei habe ich bereits angepasst.

wo klemmt es denn hier? (als ich den code noch in der fhem.cfg hatte bekam ich noch das oben beschriebene Verhalten.

nach Neustart geht alles wie oben beschrieben. Ich sehe nur den CUL_MAX...
Gruß


Hast Du nach drücken von: Enable RSSI reading in internals ... in deinem MAX-Cube ein addvaltrigger=1 ? Schicke doch mal bitte ein List von deinem CUL_MAX Device.

Viele Grüße!

Andreas

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Ok.

Kurz zur Info.
Die ESP Easy Devices werden über die ESPBridge von dev0 angelegt bzw angebunden.

Ich habe hier mal ein list von einem ESP Easy device

Internals:
   DEF        192.168.2.30 80 espBridge strom_RSSI
   ESP_BUILD  147
   ESP_SLEEP  0
   ESP_UNIT   0
   HOST       192.168.2.30
   IDENT      strom_RSSI
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     466
   NAME       ESPEasy_strom_RSSI
   NOTIFYDEV  global
   NR         384
   NTFY_ORDER 50-ESPEasy_strom_RSSI
   PORT       80
   STATE      RSS: -86.00
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1
   espBridge_MSGCNT 466
   espBridge_TIME 2017-03-03 16:51:48
   Readings:
     2017-03-03 16:51:48   RSSI            -86.00
     2017-03-03 16:54:05   presence        present
     2017-03-03 16:54:05   state           RSS: -86.00
   Helper:
     fpc        1488310618
     Intat:
       1:
         FN         ESPEasy_statusRequest
         INTERVAL   304
         TRIGGERTIME 03.03.2017 16:59:09
     Received:
       RSSI       1488556308
Attributes:
   IODev      espBridge
   Interval   300
   group      ESPEasy Device
   readingSwitchText 1
   room       ESPEasy
   setState   3

Man kan auf dem ESP Device den Name wilkürlich wählen, und das RSSI selbst anlegen aus dem Device und ESPEasy.

Danke schonmal im vorraus.
Sascha

P.S.: Das ESp modul heisst "strom" und die Variable RSSI

Hi Sascha,

Ja, ich verwende ja selbst einige ESPEasy's.


Eine Umstellung / Hinzufügen von RSSI Werten der ESPEasy Devices ist nicht trivial, weil die RSSI Werte nicht in den Internals stehen sondern in den Readings und diese sich dann nicht aus "IODEV_RSSI" zusammen setzen, da diese ja als Reading beliebig definierbar sind.

Ich ändere den gesamtCode nicht, da es zu individuell ist und keineswegs für alle lauffähig.

Aber ...

Folgendes wäre für Deine Umgebung am Code zu ändern:

(In den Code-Segmenten die ROTEN Zeilen hinzufügen, sowie die blauen Zeilen anpassen)

...
push(@culs, devspec2array("TYPE=CUL"));
push(@culs, devspec2array("TYPE=CUL_RFR"));
push(@culs, devspec2array("TYPE=HMCCUDEV"));
push(@culs, devspec2array("TYPE=CUL_MAX"));
push(@culs, devspec2array("TYPE=HMUARTLGW"));
push(@culs, devspec2array("TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive"));
push(@culs, devspec2array("TYPE=STACKABLE_CC"));
push(@culs, devspec2array("TYPE=ESPEasy:FILTER=NAME=.*rssi.*"));
...

sowie noch:

...
my $colGood="lightgreen";
my $colMid="yellow";
my $colBad="#ff8533";
my $colWorse="red";
my $cul_alias="";
my $all_int="";
...

und auch:

...
         if ($EVENT eq "clear")            
         {
            delete($defs{"$dev"}{"$cul_rssi"})
         }         
         $all_int=InternalVal($dev,$cul_rssi,"");         
         if (InternalVal("$_","TYPE","") eq "ESPEasy")
         {
            $all_int=ReadingsVal($dev,"rssi","");
         }

...



Damit werden die ESPEasy angezeigt. Voraussetzung ist:

1.) Dein ESPEasyDevice , welches den RSSI Wert anzeigt hat irgendwo im Namen "rssi" stehen (auch als substring natürlich) (das ist ja bei dir der Fall).
2.) Das reading im ESPEasy Device lautet "rssi". Ist das nicht der Fall, musst Du das Reading im Code anpassen Zeile: $all_int=InternalVal($dev,$cul_rssi,"");


Viele Grüße!

Andreas
« Letzte Änderung: 06 März 2017, 10:39:04 von fhem-challenge »

Offline sash.sc

  • Sr. Member
  • ****
  • Beiträge: 882
Vielen Dank.
Werde es bei Zeiten mal ausprobieren.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Raspi 2  Jessie aktuell; IT , div. TFA 433 MHz;div. TX29 DTH; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;ESP8622 ;nanoCUL a-fw (433 & 868 MHz);minCULwlan; WLANduino; MySensors

Offline jeti

  • Jr. Member
  • **
  • Beiträge: 85

Hast Du nach drücken von: Enable RSSI reading in internals ... in deinem MAX-Cube ein addvaltrigger=1 ? Schicke doch mal bitte ein List von deinem CUL_MAX Device.

Viele Grüße!

Andreas
am CUL selber schon:
Internals:
   CMDS       BbCFiAZNEkGMKLUYRTVWXefhltxz
   CUL_MAX_MSGCNT 244
   CUL_MAX_TIME 2017-03-07 17:20:17
   Clients    :CUL_MAX:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:
   DEF        192.168.1.55:2323 0000
   DeviceName 192.168.1.55:2323
   FD         20
   FHTID      0000
   NAME       CUL_MAX
   NR         235
   NR_CMD_LAST_H 2
   PARTIAL
   RAWMSG     Z0F0004600CA6870000000019001400BA38
   RSSI       -46
   STATE      State: Initialized; Credits: 359;
   TYPE       CUL
   VERSION    V 1.23.04 a-culfw Build: 127 (2016-12-16_23-39-31) CUBe (F-Band: 868MHz)
   initString X21
Zr
Za123456
Zw111111
   Helper:
     Dblog:
       Credit10ms:
         Dblog:
           TIME       1488903532.32174
           VALUE      359
   Matchlist:
     1:CUL_MAX  ^Z........................
     8:HMS      ^810e04....(1|5|9).a001
     D:CUL_IR   ^I............
     H:STACKABLE_CC ^\*
     M:TSSTACKED ^\*
   Readings:
     2017-02-26 16:38:44   ccconf          freq:868.300MHz bWidth:101KHz rAmpl:33dB sens:8dB
     2017-03-07 17:18:48   cmds             B b C F i A Z N E k G M K L U Y R T V W X e f h l t x z
     2017-03-07 17:18:52   credit10ms      359
     2017-02-26 16:38:36   fhtbuf          AE
     2017-03-07 17:20:17   state           Initialized
     2017-02-26 16:38:57   uptime          43 07:21:14
   XMIT_TIME:
     1488903530.82311
     1488903532.33047
Attributes:
   addvaltrigger 1
   rfmode     MAX
   room       MAX,System
   stateFormat State: state; Credits: credit10ms;
am CUL_MAX nicht...:
Internals:
   CUL_MAX_MSGCNT 244
   CUL_MAX_RAWMSG Z0F0004600CA6870000000019001400BA
   CUL_MAX_RSSI -46
   CUL_MAX_TIME 2017-03-07 17:20:17
   DEF        123456
   IODev      CUL_MAX
   LASTInputDev CUL_MAX
   MSGCNT     244
   NAME       CUL_MAX_0
   NR         236
   STATE      Defined
   TYPE       CUL_MAX
   addr       123456
   cnt        0
   pairmode   0
   retryCount 0
   Readings:
     2017-03-05 19:53:06   RSSI_disable    0
     2017-03-07 13:03:59   packetsLost     384
   sendQueue:
Attributes:
   IODev      CUL_MAX
   room       MAX,System
woran liegt das?

Gruß
Jan

Offline sash.sc

  • Sr. Member
  • ****
  • Beiträge: 882
Hi Sascha,

Ja, ich verwende ja selbst einige ESPEasy's.


Eine Umstellung / Hinzufügen von RSSI Werten der ESPEasy Devices ist nicht trivial, weil die RSSI Werte nicht in den Internals stehen sondern in den Readings und diese sich dann nicht aus "IODEV_RSSI" zusammen setzen, da diese ja als Reading beliebig definierbar sind.

Ich ändere den gesamtCode nicht, da es zu individuell ist und keineswegs für alle lauffähig.

Aber ...

Folgendes wäre für Deine Umgebung am Code zu ändern:

(In den Code-Segmenten die ROTEN Zeilen hinzufügen, sowie die blauen Zeilen anpassen)

...
push(@culs, devspec2array("TYPE=CUL"));
push(@culs, devspec2array("TYPE=CUL_RFR"));
push(@culs, devspec2array("TYPE=HMCCUDEV"));
push(@culs, devspec2array("TYPE=CUL_MAX"));
push(@culs, devspec2array("TYPE=HMUARTLGW"));
push(@culs, devspec2array("TYPE=HMUARTLGW:FILTER=DevType!=LGW-KeepAlive"));
push(@culs, devspec2array("TYPE=STACKABLE_CC"));
push(@culs, devspec2array("TYPE=ESPEasy:FILTER=NAME=.*rssi.*"));
...

sowie noch:

...
my $colGood="lightgreen";
my $colMid="yellow";
my $colBad="#ff8533";
my $colWorse="red";
my $cul_alias="";
my $all_int="";
...

und auch:

...
         if ($EVENT eq "clear")            
         {
            delete($defs{"$dev"}{"$cul_rssi"})
         }         
         $all_int=InternalVal($dev,$cul_rssi,"");         
         if (InternalVal("$_","TYPE","") eq "ESPEasy")
         {
            $all_int=ReadingsVal($dev,"rssi","");
         }

...



Damit werden die ESPEasy angezeigt. Voraussetzung ist:

1.) Dein ESPEasyDevice , welches den RSSI Wert anzeigt hat irgendwo im Namen "rssi" stehen (auch als substring natürlich) (das ist ja bei dir der Fall).
2.) Das reading im ESPEasy Device lautet "rssi". Ist das nicht der Fall, musst Du das Reading im Code anpassen Zeile: $all_int=InternalVal($dev,$cul_rssi,"");


Viele Grüße!

Andreas

Irgendwo fehlen da noch Klammern, steht im Log.

Hier mein Auszug.

delete($defs{"$dev"}{"$cul_rssi"})\
}\
                        $all_int=InternalVal($dev,$cul_rssi,"");;\         
                        if (InternalVal("$_","TYPE","") eq "ESPEasy")\
                        {\
                        $all_int=ReadingsVal($dev,"rssi","");;\
                        }\
                        my $all_int=InternalVal($dev,$cul_rssi,"");;\
if ($calc_diffs eq "1")\
{\
$old_rssi_val=ReadingsVal($dev,$cul_rssi."_old","");;\
if (($old_rssi_val)&&($all_int))\
{\
$org_int=$all_int;;\
$all_int=$all_int-$old_rssi_val\
}\
else\

Und jede Menge davon.

Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command #, try help.
Unknown command my, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
2017.03.07 19:18:20 3: rssi_read_from_device return value: Unknown command {, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.

Läuft leider nicht.

Gruß und Danke
Sascha
« Letzte Änderung: 07 März 2017, 20:07:36 von sash.sc »
Raspi 2  Jessie aktuell; IT , div. TFA 433 MHz;div. TX29 DTH; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;ESP8622 ;nanoCUL a-fw (433 & 868 MHz);minCULwlan; WLANduino; MySensors

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Irgendwo fehlen da noch Klammern, steht im Log.

Hier mein Auszug.

delete($defs{"$dev"}{"$cul_rssi"})\
}\
                        $all_int=InternalVal($dev,$cul_rssi,"");;\         
                        if (InternalVal("$_","TYPE","") eq "ESPEasy")\
                        {\
                        $all_int=ReadingsVal($dev,"rssi","");;\
                        }\
                        my $all_int=InternalVal($dev,$cul_rssi,"");;\
if ($calc_diffs eq "1")\
{\
$old_rssi_val=ReadingsVal($dev,$cul_rssi."_old","");;\
if (($old_rssi_val)&&($all_int))\
{\
$org_int=$all_int;;\
$all_int=$all_int-$old_rssi_val\
}\
else\

Und jede Menge davon.

Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command #, try help.
Unknown command my, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
Unknown command push(@culs,, try help.
2017.03.07 19:18:20 3: rssi_read_from_device return value: Unknown command {, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.

Läuft leider nicht.

Gruß und Danke
Sascha

Nein, fehlt kein ; im 1.Post. Ich habe gerade einmal mein Code aus dem 1. Post genommen und in mein FHEM importiert.

Es läuft alles.

Ich habe Dir mal die Config "fhem.rssi.cfg" angehängt, welche genauso funktioniert.

Die musst Du nur mit include fhem.rssi.cfg ... in dein FHEM.CFG einfügen.



NACHTRAG: Ich habe spasseshalber mal Deine (attached) rssi.cfg bei mir eingefügt, selbst die funktioniert.


Viele Grüße!

Andreas
« Letzte Änderung: 08 März 2017, 13:53:47 von fhem-challenge »

Offline sash.sc

  • Sr. Member
  • ****
  • Beiträge: 882
Ok!? Und da bei einem frischen fhem und frisch aufgesetzten pi.
Werde mal schauen.
Danke für deine Mühe.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk


Edit:
Anscheinend habe ich Probleme den folgende Code einzufügen.

und auch:

...
         if ($EVENT eq "clear")           
         {
            delete($defs{"$dev"}{"$cul_rssi"})
         }         
         $all_int=InternalVal($dev,$cul_rssi,"");         
         if (InternalVal("$_","TYPE","") eq "ESPEasy")
         {
            $all_int=ReadingsVal($dev,"rssi","");
         }
...


Wird ab $all hinter dem my im Orginal eingetragen, oder........
« Letzte Änderung: 09 März 2017, 17:28:48 von sash.sc »
Raspi 2  Jessie aktuell; IT , div. TFA 433 MHz;div. TX29 DTH; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;ESP8622 ;nanoCUL a-fw (433 & 868 MHz);minCULwlan; WLANduino; MySensors

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Ok!? Und da bei einem frischen fhem und frisch aufgesetzten pi.
Werde mal schauen.
Danke für deine Mühe.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk


Edit:
Anscheinend habe ich Probleme den folgende Code einzufügen.

und auch:

...
         if ($EVENT eq "clear")           
         {
            delete($defs{"$dev"}{"$cul_rssi"})
         }         
         $all_int=InternalVal($dev,$cul_rssi,"");         
         if (InternalVal("$_","TYPE","") eq "ESPEasy")
         {
            $all_int=ReadingsVal($dev,"rssi","");
         }
...


Wird ab $all hinter dem my im Orginal eingetragen, oder........


Das in Deinem "rssi.cfg" Eingetragene ist schon korrekt (deine modifizierte rssi.cfg) lief ja auch bei mir.

VIele Grüße!

Andreas

 

decade-submarginal