HM-IP Devices: Liste der RSSI Werte mit einem Klick

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Janosch111
Beiträge: 11
Registriert: 27.08.2018, 17:00
Danksagung erhalten: 1 Mal

HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von Janosch111 » 31.08.2018, 14:05

Hallo zusammen,

bin seit zwei Wochen stolzer Besitzer einer HomeMatic Lösung auf Basis einer RaspiMatic mit RPI-RF-MOD Funkmodul und (zum ersten Kennenlernen) drei angeschlossenen original HomeMatic IP Sensoren (schaltbare Steckdose, Außentemperaturfühler und Heizungsthermostat).

Um herauszufinden, wie es um die Sende- und Empfangsleistung der einzelnen Sensoren bestellt ist, habe ich mir in der WebUI im devconfig-Bereich eine Liste mit der Übersicht aller HM-IP Geräte gewünscht, aber nicht gefunden. Sie existiert offensichtlich nur für die älteren nicht-IP Sensoren.

Da ich über ein paar Programmierkenntnisse verfüge, habe ich mich mal gleich rangemacht und ein kleines JavaScript (als Bookmarklet) geschrieben, das die Informationen aus den jeweiligen Unterseiten zusammensucht und übersichtlich in einer Tabelle darstellt:

Bildschirmfoto_2018-08-31_11-39-21.png

Das Bookmarklet funktioniert nur, wenn es auf der "Device List" Unterseite des devconfig Bereichs aufgerufen wird.

Wenn es auf einer anderen Seite der WebUI gestartet wird, wird oben in der Seite ein entsprechender Link auf die korrekte Seite eingeblendet:

Bildschirmfoto_2018-08-31_11-41-05_anon.png

Hier ein paar Tipps, wie das Bookmarklet in Form eines neuen Lesenzeichens auf dem PC oder Mac im Browser erzeugt werden kann:
https://www.stichpunkt.de/bookmarklets/

Gebt also dem neuen Lesezeichen einen beliebigen Titel, z.B. "Hm-IP RSSI Info" und kopiert den nachfolgenden Code hinein:

Code: Alles auswählen

javascript:void%20function(){(function(e,t,i,n,o,s,d,r){(!(o=e.jQuery)||i%3Eo.fn.jquery||n(o))%26%26(s=t.createElement(%22script%22),s.type=%22text/javascript%22,s.src=window.location.protocol+%22//ajax.googleapis.com/ajax/libs/jquery/%22+i+%22/jquery.min.js%22,s.onload=s.onreadystatechange=function(){d||(r=this.readyState)%26%26%22loaded%22!==r%26%26%22complete%22!==r||(n((o=e.jQuery).noConflict(1),d=1),o(s).remove())},t.documentElement.childNodes[0].appendChild(s))})(window,document,%223.3.1%22,function(e,t){function%20n(t,i,n){var%20o=%22%22,s=%22unknown%22,d=%22unknown%22,r=new%20XMLHttpRequest,a=%22GET%22,c=n;r.open(a,c,!0),r.onreadystatechange=function(){if(4===r.readyState%26%26200===r.status){o+=i+%22%20(%22+t+%22):%20%22,y=I.exec(r.responseText),o+=%22RSSI_DEVICE%20=%20%22,y%26%26%22undefined%22!=typeof%20y%26%26y.length%3E1%3F(o+=y[1],s=y[1]):o+=%22unknown%22,v=E.exec(r.responseText),o+=%22%20/%20RSSI_PEER%20=%20%22,v%26%26%22undefined%22!=typeof%20v%26%26v.length%3E1%3F(o+=v[1],d=v[1]):o+=%22unknown%22,o+=%22%20%23%20%22+n;var%20a=%22%23rssioutputRssiDevice%22+t;e(a).html(s);var%20c=%22%23rssioutputRssiPeer%22+t;e(c).html(d)}},r.send()}var%20o=%22%22,s=[],d=/.+sid=(%40[A-Za-z0-9].+%40).*/,r=/devconfig.cgi\%3Fcmd=list_devices/,a=window.location.href,c=window.location.protocol+%22//%22+window.location.host,l=window.location.pathname;if(%22undefined%22!=typeof%20SessionId%3F(console.log(%22Homematic%20SessionID%20=%20%22+SessionId),o=SessionId):(s=d.exec(window.location.search),s%26%26%22undefined%22!=typeof%20s%26%26s.length%3E1%26%26(o=s[1])),frames.length%3Edocument.getElementsByTagName(%22meta%22).length)alert(%22Sorry,%20Frameset%20entdeckt...\nHier%20funktioniert%20dieses%20Bookmarklet%20nicht%20:-(%22);else%20if(%22%22===o)alert(%22Keine%20Ergebnisse.%20Bitte%20sicherstellen,%20dass%20die%20WebUi%20im%20aktuellen%20Browserfenster%20geoeffnet%20ist.%22);else%20if(r.test(a)){var%20u=document.getElementsByTagName(%22a%22),p=%22%22,h=[],g=%22%22,m=[],f=%22%22,y=[],v=[],w=/.+expand=([A-F0-9]{14}).+/,x=/([-A-Za-z0-9]+)%20\([A-F0-9]{14}\)/,I=/name=%22RSSI_DEVICE%22%20value=%22([-0-9]+)%22/,E=/name=%22RSSI_PEER%22%20value=%22([-0-9]+)%22/;if(%22undefined%22!=typeof%20u[0])for(i=0;i%3Cu.length;i++)-1!==u[i].href.search(w)%26%26(p=u[i].href.replace(w,%22$1%22),h.push(p),g=u[i].innerHTML.replace(x,%22$1%22),m.push(g));e(%22%3Cdiv%20id='rssioutput'%3E%3C/div%3E%3Chr/%3E%22).prependTo(%22body%22),e(%22%23rssioutput%22).append(%22%3Ch2%3ECollecting%20RSSI%20values%20of%20%22+h.length+%22%20HmIP%20Devices...%3C/h2%3E%22),e(%22%23rssioutput%22).append(%22%3Cstyle%20type='text/css'%3E.img_show%20{\n%20%20%20%20width:%20100px;\n%20%20%20%20height:%20100px;\n%20%20%20%20border:%201px%20solid%20black;\n%20%20%20%20display:%20none;\n%20%20%20%20position:%20absolute;\n}%3C/style%3E%22),e.getScript(%22/webui/js/extern/wz_jsgraphics.js%22,function(t,i,n){e.getScript(%22/tools/js/jsDevDescr.cgi%22,function(t,i,n){for(k=0;k%3Ch.length;k++){var%20o=%22%23rssioutputPic%22+h[k],s=%22rssioutputImgSmall%22+h[k],d=%22%20onMouseOver=\%22zoomPicture('%22+s+%22',%201)\%22%20onMouseOut=\%22zoomPicture('%22+s+%22',%200)\%22%22,r=%22%3Cimg%20id='%22+s+%22'%20src='%22+DEV_getImagePath(m[k],%22250%22)+%22'%20width='50'%20height='50'%20style='position:%20relative;z-index:%200;'%3E%22;e(o).html(%22%3Cdiv%20style='position:relative;top:0;left:0;height:50px;width:50px'%22+d+%22%3E%22+r+%22%3C/div%3E%22)}})});var%20S=%22%3Cimg%20src='https://cdnjs.cloudflare.com/ajax/libs/galleriffic/2.0.1/css/loader.gif'%20width='15'%20height='15'%3E%22,b=%22%3Ctable%20border='1'%20cellspacing='0'%20cellpadding='5'%20%3E%3Cthead%3E%3Ctr%3E%3Cth%3EDevice%20Name%3C/th%3E%3Cth%3EPic%3C/th%3E%3Cth%3ERSSI_DEVICE%3C/th%3E%3Cth%3ERSSI_PEER%3C/th%3E%3C/tr%3E%3C/thead%3E%3Ctbody%3E%22;for(j=0;j%3Ch.length;j++)f=c+l+%22%3Fcmd=config%26device=%22+h[j]+%22:0%26iface=HmIP-RF%26sid=%22+o,n(h[j],m[j],f),b+=%22%3Ctr%3E%3Ctd%20id='rssioutputName%22+h[j]+%22'%3E%22+m[j]+%22%20(%22+h[j]+%22)%3C/td%3E%3Ctd%20id='rssioutputPic%22+h[j]+%22'%20align='center'%3E%22+S+%22%3C/td%3E%3Ctd%20id='rssioutputRssiDevice%22+h[j]+%22'%20align='center'%3E%22+S+%22%3C/td%3E%3Ctd%20id='rssioutputRssiPeer%22+h[j]+%22'%20align='center'%3E%22+S+%22%3C/td%3E%3C/tr%3E%22;b+=%22%3C/tbody%3E%3C/table%3E%22,b+='%3Cscript%20type=%22text/javascript%22%3E%20%20%20%20function%20zoomPicture(id,%20zoom)%20{%20%20%20%20%20%20%20%20if%20(zoom%20==%20%221%22){%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById(id).style.height%20=%20%22150px%22;%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById(id).style.width%20%20=%20%22150px%22;%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById(id).style.zIndex%20%20=%20%2299%22;%20%20%20%20%20%20%20%20}%20else%20if%20(zoom%20==%20%220%22)%20{\n%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById(id).style.height%20=%20%2250px%22;%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById(id).style.width%20%20=%20%2250px%22;%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById(id).style.zIndex%20%20=%20%22auto%22;%20%20%20%20%20%20%20%20}%20%20%20%20}%3C/script%3E',e(%22%23rssioutput%22).append(b)}else{var%20R=c+%22/tools/devconfig.cgi%3Fcmd=list_devices%26sid=%22+o;e(%22%3Cdiv%20style='background-color:%20white;padding:%2020px;'%3E%3Ch2%3EBitte%20sicherstellen,%20dass%20dieses%20Script%20auf%20der%20korrekten%20Unterseite%20ausgefuehrt%20wird!%3Cbr/%3EDirekt-Link%20auf%20devconfig/devices:%20%3Ca%20href='%22+R+%22'%3E%22+R+%22%3C/a%3E%3C/h2%3E%3C/div%3E%3Chr/%3E%22).prependTo(%22body%22)}})}();
Für andere Entwickler stelle ich gerne auch den leserlichen Quellcode zum Debuggen oder Weiterentwicklung zur Verfügung:
https://github.com/Janosch111/homematic ... ookmarklet

Ein Klick auf das frisch angelegte Lesenzeichen, wenn die WebUI gerade zu sehen ist, sollte also nun zur gewünschten Liste führen.
Das Ganze funktioniert natürlich nicht nur über "...meine-homematic.de" sondern auch in eurem lokalen Netz mit der entsprechenden IP Adresse (192.168....) in der Browser Adresszeile.

Bitte berichtet mal ob es bei euch klappt, da ich mangels vieler Sensoren nicht alle Varianten testen konnte.


Beste Grüße,
Janosch111
Zuletzt geändert von Janosch111 am 31.08.2018, 16:24, insgesamt 1-mal geändert.

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von jmaus » 31.08.2018, 14:51

Janosch111 hat geschrieben:
31.08.2018, 14:05
Auf Zuruf (via PN) zwecks Debugging oder Weiterentwicklung stelle ich gerne auch den leserlichen Quellcode zur Verfügung.
Ja mach das bitte und poste den gesamten Quellcode hier im Forum oder auf GitHub, denn ich würde das gerne ggf. einfach mit in RaspberryMatic aufnehmen wollen wenn das leicht integrierbar ist.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Janosch111
Beiträge: 11
Registriert: 27.08.2018, 17:00
Danksagung erhalten: 1 Mal

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von Janosch111 » 31.08.2018, 16:25

Hi Ho,

aber klar doch :D
Habe im Ursprungsbeitrag den entsprechenden GitHub Link ergänzt.


Beste Grüße,
Janosch111

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von jmaus » 31.08.2018, 16:52

Danke, schaue ich mir bwi Gelegenheit an. Könntest du aber nicht gleich einfach die devconfig.cgi anpassen statt das in solch ein javascript booklet zu verteilen? Dann wäre das einfacher für mich zu übernehmen...
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

qwertz
Beiträge: 266
Registriert: 15.02.2012, 19:35
Hat sich bedankt: 6 Mal
Danksagung erhalten: 16 Mal

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von qwertz » 31.08.2018, 20:51

Sehr gute Arbeit !

Das hilft erheblich bei meinen Antennen/Standort-Tests. Die Anzahl der IP Geräte bei mir nimmt nämlich stetig zu.

Besten Dank !

P.S.
Das Sahnehäubchen wäre jetzt noch die Tabelle direkt ohne Umwege in der WebUI angezeigt zu bekommen.
Und die Kirsche auf dem Sahnehäubchen wäre noch eine Farbmarkierung der RSSI Werte wie bei der rssilist.cgi.

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von Tibin » 02.09.2018, 17:59

Hallo Janosch111,
ich fand das sehr interessant und wollte das gleich mal ausprobieren. Gesagt... getan...
Janosch111 hat geschrieben:
31.08.2018, 14:05
Das Bookmarklet funktioniert nur, wenn es auf der "Device List" Unterseite des devconfig Bereichs aufgerufen wird
Ging aber nicht, deshalb nochmal kontrolliert und festgestellt: irgendwie wird der Code immer abgeschnitten oder das URL-Feld bleibt nach dem einfügen weiß.
Zum Testen ob es überhaupt bei mir funktioniert, habe ich aus deinem Link mal diesen kurzen Code getestet:

Code: Alles auswählen

javascript:%20alert('Dies%20ist%20ein%20Dialogfenster!');
Und das funzt sehr gut mit einem Favoriten (achso ich benutze IE11)
Keine Ahnung was da schief läuft. Vielleicht hat jemand einen Tip :idea:
Habe den Code auch schon mal direkt in die Browserzeile eingefügt, da sieht man auch das am Ende nicht alles eingefügt wird:

Code: Alles auswählen

void%20function(){(function(e,t,i,n,o,s,d,r){(!(o=e.jQuery)||i%3Eo.fn.jquery||n(o))%26%26(s=t.createElement(%22script%22),s.type=%22text/javascript%22,s.src=window.location.protocol+%22//ajax.googleapis.com/ajax/libs/jquery/%22+i+%22/jquery.min.js%22,s.onload=s.onreadystatechange=function(){d||(r=this.readyState)%26%26%22loaded%22!==r%26%26%22complete%22!==r||(n((o=e.jQuery).noConflict(1),d=1),o(s).remove())},t.documentElement.childNodes[0].appendChild(s))})(window,document,%223.3.1%22,function(e,t){function%20n(t,i,n){var%20o=%22%22,s=%22unknown%22,d=%22unknown%22,r=new%20XMLHttpRequest,a=%22GET%22,c=n;r.open(a,c,!0),r.onreadystatechange=function(){if(4===r.readyState%26%26200===r.status){o+=i+%22%20(%22+t+%22):%20%22,y=I.exec(r.responseText),o+=%22RSSI_DEVICE%20=%20%22,y%26%26%22undefined%22!=typeof%20y%26%26y.length%3E1%3F(o+=y[1],s=y[1]):o+=%22unknown%22,v=E.exec(r.responseText),o+=%22%20/%20RSSI_PEER%20=%20%22,v%26%26%22undefined%22!=typeof%20v%26%26v.length%3E1%3F(o+=v[1],d=v[1]):o+=%22unknown%22,o+=%22%20%23%20%22+n;var%20a=%22%23rssioutputRssiDevice%22+t;e(a).html(s);var%20c=%22%23rssioutputRssiPeer%22+t;e(c).html(d)}},r.send()}var%20o=%22%22,s=[],d=/.+sid=(%40[A-Za-z0-9].+%40).*/,r=/devconfig.cgi\%3Fcmd=list_devices/,a=window.location.href,c=window.location.protocol+%22//%22+window.location.host,l=window.location.pathname;if(%22undefined%22!=typeof%20SessionId%3F(console.log(%22Homematic%20SessionID%20=%20%22+SessionId),o=SessionId):(s=d.exec(window.location.search),s%26%26%22undefined%22!=typeof%20s%26%26s.length%3E1%26%26(o=s[1])),frames.length%3Edocument.getElementsByTagName(%22meta%22).length)alert(%22Sorry,%20Frameset%20entdeckt...\nHier%20funktioniert%20dieses%20Bookmarklet%20nicht%20:-(%22);else%20if(%22%22===o)alert(%22Keine%20Ergebnisse.%20Bitte%20sicherstellen,%20dass%20die%20WebUi%20im%20aktuellen%20Browserfenster%20geoeffnet%20ist.%22);else%20if(r.test(a)){var%20u=document.getElementsByTagName(%22a%22),p=%22%22,h=[],g=%22%22,m=[],f=%22%22,y=[],v=[],w=/.+expand=([A-F0-9]{14}).+/,x=
"javascript:" fehlt hier natürlich am Anfang :|
Gruß Tino

Janosch111
Beiträge: 11
Registriert: 27.08.2018, 17:00
Danksagung erhalten: 1 Mal

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von Janosch111 » 03.09.2018, 00:40

Moin Tino,

besten Dank für Dein Feedback. Ja, ich konnte es auch gerade reproduzieren, dass es mit dem IE nicht funktioniert.
Entwickelt und getestet habe ich es mit Firefox und Chrome unter Windows und Linux.
Am besten also einmal einen dieser alternativen Browser ausprobieren.

Sonnige Grüße,
Janosch111

Janosch111
Beiträge: 11
Registriert: 27.08.2018, 17:00
Danksagung erhalten: 1 Mal

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von Janosch111 » 03.09.2018, 00:45

jmaus hat geschrieben:
31.08.2018, 16:52
Danke, schaue ich mir bwi Gelegenheit an. Könntest du aber nicht gleich einfach die devconfig.cgi anpassen statt das in solch ein javascript booklet zu verteilen? Dann wäre das einfacher für mich zu übernehmen...
Moin JMaus,
die CGI Welt kann ich mir bei Gelegenheit auch mal anschauen.
Ich habe nicht gewusst, dass es mit _Deiner Hilfe da so schnell Einzug erhalten könnte :-)
Mein urspünglicher Ansatz mit dem Bookmarklet war eine schnelle Lösung, die für Jedermann mit einem Klick erreichbar ist.
Ich kann mir vorstellen, dass der ein oder andere Otto Normal User schon mit dem manuellen Zusammenbau des devconfig Links überfordert ist.

Beste Grüße,
Janosch111

Janosch111
Beiträge: 11
Registriert: 27.08.2018, 17:00
Danksagung erhalten: 1 Mal

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von Janosch111 » 03.09.2018, 00:48

qwertz hat geschrieben:
31.08.2018, 20:51
Sehr gute Arbeit !

Das hilft erheblich bei meinen Antennen/Standort-Tests. Die Anzahl der IP Geräte bei mir nimmt nämlich stetig zu.

Besten Dank !

P.S.
Das Sahnehäubchen wäre jetzt noch die Tabelle direkt ohne Umwege in der WebUI angezeigt zu bekommen.
Und die Kirsche auf dem Sahnehäubchen wäre noch eine Farbmarkierung der RSSI Werte wie bei der rssilist.cgi.
Hi Ho,

besten Dank für die Lorbeeren!
Ja, die direkte Anzeige in der WebUI wünscht sich JMaus ja auch. Ich schaue da bei Gelegenheit mal rein.
Die Farbmarkierung ist vermutlich ganz easy zu realisieren. Mangels non-IP Sensoren habe ich soetwas allerdings bei mir noch nicht live gesehen.
Ich schaue mir dann mal an, wie die rssilist.cgi so tickt.

Beste Grüße,
Janosch111

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: HM-IP Devices: Liste der RSSI Werte mit einem Klick

Beitrag von Tibin » 03.09.2018, 18:25

Janosch111 hat geschrieben:
03.09.2018, 00:40
Ja, ich konnte es auch gerade reproduzieren, dass es mit dem IE nicht funktioniert.
Danke, ich habe jetzt Chrome (immer diese unterschiedlichen Browsereigenschaften :roll: ) genommen und finde es super wie es funktioniert. Selbst die Fehlermeldungen die du eingearbeitet hast, sind ein Lob wert. :!: Sag ich jetzt mal so, da ich von so etwas gar keine Ahnung habe. :?
Janosch111 hat geschrieben:
03.09.2018, 00:48
Ja, die direkte Anzeige in der WebUI wünscht sich JMaus ja auch. Ich schaue da bei Gelegenheit mal rein.
Wäre natürlich der Knaller :wink:
Ist es jetzt eigentlich ne blöde Idee, die RSSI Werte in dieser Tabelle komplett anzuzeigen getrennt nach IP und HM?
Also nochmal Hut ab für deine Arbeit und vor allem Zeit die du schon reingesteckt hast :!:
Gruß Tino

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“