Modul für WLAN Radios mit Frontier Silicon Chipsatz (SilverCrest/Medion/Hama...)

Begonnen von mumpitzstuff, 07 November 2017, 00:21:27

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Wann in den beiden Readings etwas angezeigt wird, kann ich leider nicht sagen. Diese Funktionen werden vom Radio angeboten, mir ist aber ebenfalls nicht bekannt ob und wann da was angezeigt wird. Ich vermute mal beim abspielen von mp3 Dateien müsste etwas angezeigt werden.

mumpitzstuff

Ich habe jetzt mal eine erste Testversion für die Navigation fertig gestellt und hoffe, dass soweit schon mal alles reibungslos funktioniert. Darüber hinaus habe ich den Kompatibilitätsmodus überarbeitet und den Dirty Hack auf eine solidere Basis gestellt (Queue auf Timerbasis für alle ausgehenden Requests).

Für alle Mutigen hänge ich eine Testversion hier an und warte erst einmal eure Rückmeldungen ab. Ich würde mich freuen wenn der Ein oder Andere das mal testen könnte. Offiziell wird diese Version erst, wenn ich mind. 1-2 positive Rückmeldungen erhalte...  ;D

Bedienung:
Unter Get findet man ein ls Befehl. Mit diesem kann man die Navigation öffnen. Bitte nach dem Starten kurz warten, die Daten werden erst vom Radio im Hintergrund geholt und dann ausgegeben. Der Dialog kann <<BACK und NEXT>> enthalten. <<BACK springt immer in die nächsthöhere Ebene zurück, falls diese verfügbar ist. NEXT>> wird nur angezeigt, wenn mehr als die angezeigten Einträge zur Verfügung stehen (maximal rund 100 Einträge werden auf jeder Seite angezeigt). Leider kann ich nicht alle Einträge mit einmal anzeigen, dann müsste der Anwender teilweise 5-6 Minuten warten und das will ich niemandem zumuten.

Einen entscheidendes Problem habe ich bei der Bedienung leider noch nicht lösen können. Bei jedem Klick wird ein neuer Dialog geöffnet und am Ende muss man alle geöffneten Dialoge mit OK bestätigen. Ich habe es leider nicht geschafft die alten Dialoge irgendwie mit Javascript selbst zu schliessen. Falls dahingehend irgend jemand eine Idee hat, wäre ich sehr dankbar, wenn er diese mit mir teilen könnte.

automatisierer

Modul läuft, allerdings funktioniert die Navigation bei mir nicht. Kommt nur ein Fenster mit <<Back und OK, sonst leer.

Hab das get einmal mit Verbose 5 gemacht (ich hab ReverseLog eingestellt, daher der letzte Eintrag als erstes):
2018.01.02 20:08:15.002 5: Kueche_Radio: Multiple GET_MULTIPLE successful.

</fsapiGetMultipleResponse>
</fsapiResponse>
<value><s32>-1</s32></value>
<status>FS_OK</status>
<node>netRemote.nav.numItems</node>
<fsapiResponse>
</fsapiResponse>
<value><c8_array>Dark necessities - Red Hot Chili Peppers</c8_array></value>
<status>FS_OK</status>
<node>netRemote.play.info.text</node>
<fsapiResponse>
</fsapiResponse>
<value><c8_array></c8_array></value>
<status>FS_OK</status>
<node>netRemote.play.info.graphicUri</node>
<fsapiResponse>
</fsapiResponse>
<value><c8_array></c8_array></value>
<status>FS_OK</status>
<node>netRemote.play.info.album</node>
<fsapiResponse>
</fsapiResponse>
<value><c8_array></c8_array></value>
<status>FS_OK</status>
<node>netRemote.play.info.artist</node>
<fsapiResponse>
</fsapiResponse>
<value><u32>0</u32></value>
<status>FS_OK</status>
<node>netRemote.play.info.duration</node>
<fsapiResponse>
</fsapiResponse>
<status>FS_NODE_DOES_NOT_EXIST</status>
<node>netRemote.play.info.artistDescription</node>
<fsapiResponse>
</fsapiResponse>
<status>FS_NODE_DOES_NOT_EXIST</status>
<node>netRemote.play.info.albumDescription</node>
<fsapiResponse>
</fsapiResponse>
<status>FS_NODE_DOES_NOT_EXIST</status>
<node>netRemote.play.info.description</node>
<fsapiResponse>
</fsapiResponse>
<value><c8_array>WDR 2           </c8_array></value>
<status>FS_OK</status>
<node>netRemote.play.info.name</node>
<fsapiResponse>
<fsapiGetMultipleResponse>
2018.01.02 20:08:14.969 5: Kueche_Radio: URL http://192.168.171.170:80/fsapi/GET_MULTIPLE?pin=1234&node=netRemote.play.info.name&node=netRemote.play.info.description&node=netRemote.play.info.albumDescription&node=netRemote.play.info.artistDescription&node=netRemote.play.info.duration&node=netRemote.play.info.artist&node=netRemote.play.info.album&node=netRemote.play.info.graphicUri&node=netRemote.play.info.text&node=netRemote.nav.numItems& returned:
2018.01.02 20:08:14.964 5: Kueche_Radio: Presets LIST_GET_NEXT successful.

</fsapiResponse>
</item>

<field name="name"><c8_array></c8_array></field>
<item key="19">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="18">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="17">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="16">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="15">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="14">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="13">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="12">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="11">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="10">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="9">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="8">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="7">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="6">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="5">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="4">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="3">
</item>

<field name="name"><c8_array></c8_array></field>
<item key="2">
</item>

<field name="name"><c8_array>WDR 2           </c8_array></field>
<item key="1">
</item>

<field name="name"><c8_array>1LIVE           </c8_array></field>
<item key="0">
<status>FS_OK</status>
<fsapiResponse>
2018.01.02 20:08:14.917 5: Kueche_Radio: URL http://192.168.171.170:80/fsapi/LIST_GET_NEXT/netRemote.nav.presets/-1?pin=1234&maxItems=20 returned:
2018.01.02 20:08:14.913 5: Kueche_Radio: Multiple GET_MULTIPLE successful.

</fsapiGetMultipleResponse>
</fsapiResponse>
<value><c8_array>Radio-Kueche</c8_array></value>
<status>FS_OK</status>
<node>netRemote.sys.info.friendlyName</node>
<fsapiResponse>
</fsapiResponse>
<value><c8_array>ir-mmi-FS2026-0500-0142_V2.10.13.EX65638-2RC6</c8_array></value>
<status>FS_OK</status>
<node>netRemote.sys.info.version</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>0</u8></value>
<status>FS_OK</status>
<node>netRemote.nav.depth</node>
<fsapiResponse>
</fsapiResponse>
<value><s32>-1</s32></value>
<status>FS_OK</status>
<node>netRemote.nav.numItems</node>
<fsapiResponse>
</fsapiResponse>
<value><u32>3</u32></value>
<status>FS_OK</status>
<node>netRemote.nav.caps</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>1</u8></value>
<status>FS_OK</status>
<node>netRemote.nav.status</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>1</u8></value>
<status>FS_OK</status>
<node>netRemote.nav.state</node>
<fsapiResponse>
<fsapiGetMultipleResponse>
2018.01.02 20:08:14.885 5: Kueche_Radio: URL http://192.168.171.170:80/fsapi/GET_MULTIPLE?pin=1234&node=netRemote.nav.state&node=netRemote.nav.status&node=netRemote.nav.caps&node=netRemote.nav.numItems&node=netRemote.nav.depth&node=netRemote.sys.info.version&node=netRemote.sys.info.friendlyName& returned:
2018.01.02 20:08:14.878 5: Kueche_Radio: Multiple GET_MULTIPLE successful.

</fsapiGetMultipleResponse>
</fsapiResponse>
<value><u8>0</u8></value>
<status>FS_OK</status>
<node>netRemote.sys.audio.mute</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>7</u8></value>
<status>FS_OK</status>
<node>netRemote.sys.audio.volume</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>21</u8></value>
<status>FS_OK</status>
<node>netRemote.sys.caps.volumeSteps</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>0</u8></value>
<status>FS_OK</status>
<node>netRemote.play.shuffle</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>0</u8></value>
<status>FS_OK</status>
<node>netRemote.play.repeat</node>
<fsapiResponse>
</fsapiResponse>
<value><u32>0</u32></value>
<status>FS_OK</status>
<node>netRemote.play.position</node>
<fsapiResponse>
</fsapiResponse>
<value><c8_array></c8_array></value>
<status>FS_OK</status>
<node>netRemote.play.errorStr</node>
<fsapiResponse>
</fsapiResponse>
<value><u32>2060</u32></value>
<status>FS_OK</status>
<node>netRemote.play.caps</node>
<fsapiResponse>
</fsapiResponse>
<value><u8>2</u8></value>
<status>FS_OK</status>
<node>netRemote.play.status</node>
<fsapiResponse>
</fsapiResponse>
<value><u32>4</u32></value>
<status>FS_OK</status>
<node>netRemote.sys.mode</node>
<fsapiResponse>
<fsapiGetMultipleResponse>
2018.01.02 20:08:14.840 5: Kueche_Radio: URL http://192.168.171.170:80/fsapi/GET_MULTIPLE?pin=1234&node=netRemote.sys.mode&node=netRemote.play.status&node=netRemote.play.caps&node=netRemote.play.errorStr&node=netRemote.play.position&node=netRemote.play.repeat&node=netRemote.play.shuffle&node=netRemote.sys.caps.volumeSteps&node=netRemote.sys.audio.volume&node=netRemote.sys.audio.mute& returned:
2018.01.02 20:08:14.833 5: Kueche_Radio: Power GET successful.

</fsapiResponse>
<value><u8>1</u8></value>
<status>FS_OK</status>
<fsapiResponse>
2018.01.02 20:08:14.822 5: Kueche_Radio: URL http://192.168.171.170:80/fsapi/GET/netRemote.sys.power?pin=1234 returned:
2018.01.02 20:08:14.778 5: Kueche_Radio: SetNextTimer called

mumpitzstuff

Was mir auffällt ist:

</fsapiResponse>
<value><s32>-1</s32></value>
<status>FS_OK</status>
<node>netRemote.nav.numItems</node>
<fsapiResponse>


Ich bin bisher davon ausgegangen, das hier irgendwas größer 0 drin stehen muss, denn das ist in meiner Implementierung die Anzahl der Navigationselemente. Ich kann bei mir aber auch so einen Zustand (wie du ihn beschreibst) herbeiführen, wenn ich z.B. die Hilfe ausgewählt habe. Passiert denn etwas, wenn du einfach mal <<BACK anklickst? Vielleicht befindest du dich in irgend einer Navigationsebene in der nichts drin steht.

In welchem Zustand befindet sich dein Radio? An/Aus? Welcher Input ist ausgewählt? Die Navigation ist abhängig vom Input glaube ich. Wähle mal Internet Radio aus und guck bitte was dann passiert.

In deinem Log kann ich nicht erkennen das du <<Back angeklickt hast, denn dann müsste eigentlich irgend sowas im Log erscheinen "netRemote.nav.action.navigate".

Klaus0815

Ich helfe Euch gerne, das mal zu testen
Mir erschließt sich nur der Sinn gerade nicht?
Was kann man mit der Navigation anstellen?
Kann ich dann statt direkt über FHEM zu sagen
- geh auf Input FM
lieber
- gehe ins Menü, 3 x hoch, Enter, 2 x runter, , Enter?

Welche Vorteile bringt das? Gibt es Punkte die nicht direkt angesteuert werden können?

Viele Grüße

Klaus


automatisierer

Back hatte ich nicht geklickt, dachte ich wäre in der untersten Ebene...

Habe es nun nachgeholt, passiert aber auch nix, geht nur jedes mal ein weiteres Fenster mit <<Back und OK auf.

Radio ist on und Input habe ich DAB und Internetradio getestet.

Soll ich nochmal alles durchtesten mit Verbose 5?

mumpitzstuff

Zitat von: Klaus0815 am 02 Januar 2018, 23:44:16
Ich helfe Euch gerne, das mal zu testen
Mir erschließt sich nur der Sinn gerade nicht?
Was kann man mit der Navigation anstellen?
Kann ich dann statt direkt über FHEM zu sagen
- geh auf Input FM
lieber
- gehe ins Menü, 3 x hoch, Enter, 2 x runter, , Enter?

Welche Vorteile bringt das? Gibt es Punkte die nicht direkt angesteuert werden können?

Viele Grüße

Klaus

Mit der Navigation kannst du z.b. die Mp3 dateien von deinem USB Stick auswählen und abspielen oder beim Internet Radio dir die zur Verfügung gestellten Radiosender ansehen und dann einen auswählen. Dort stehen dir dann mehrere tausend Sender zur Verfügung. Im Anhang siehst du was ich meine.

mumpitzstuff

Zitat von: automatisierer am 02 Januar 2018, 23:48:41
Back hatte ich nicht geklickt, dachte ich wäre in der untersten Ebene...

Habe es nun nachgeholt, passiert aber auch nix, geht nur jedes mal ein weiteres Fenster mit <<Back und OK auf.

Radio ist on und Input habe ich DAB und Internetradio getestet.

Soll ich nochmal alles durchtesten mit Verbose 5?

Hmm okay. Ich würde dann lieber noch ein paar Debugausgaben einfügen und mich noch mal melden. Erstmal danke fürs ansehen!

mumpitzstuff

Ich habe die Navigation noch einmal überarbeitet und bei mir funktioniert es jetzt soweit reibungslos.

Könnte sich jemand die neue angehängte Version noch einmal ansehen bitte und mir Bericht erstatten (Unter Get den ls Befehl auswählen)?

Es werden einige Zusatzinformationen ins Logfile geschrieben (Loglevel 3), allerdings nur wenn man irgendwas mit der Navigation macht. Man muss also für weitere Analysen nicht Verbose 5 einschalten, sondern kann mir direkt den Output zukommen lassen.

Mir ist es einmal passiert, dass gar nichts mehr angezeigt wurde. Ich musste daraufhin die Power Taste am Radio 3s lang drücken, um das Radio in den Standby zu bringen. Danach habe ich das Radio wieder eingeschaltet und die Navigation lief danach einwandfrei.

supernova1963

Frohes Neues ..., und, danke für deine tolle Arbeit!!!

Ergebnis Navigationstest mit NumanTwo:

2018.01.04 06:07:02 3: telnetForBlockingFn_1515042422: port 36041 opened
2018.01.04 06:07:02 3: 03_Kuechenradio: Blocking call running to read navigation items.
2018.01.04 06:07:02 1: ERROR evaluating {SIRD_EndNavigation('03_Kuechenradio|<<BACK')}: Undefined subroutine &main::uri_escape called at ./FHEM/17_SIRD.pm line 414.

List 03_Kuechenradio:

Internals:
   CHANGED   
   DEF        192.168.1.13  1234 20
   INTERVAL   20
   IP         192.168.1.13
   NAME       03_Kuechenradio
   NOTIFYDEV  global
   NR         43
   NTFY_ORDER 50-03_Kuechenradio
   PIN        1234
   STATE      on
   TYPE       SIRD
   READINGS:
     2018-01-04 05:38:32   currentTitle    SWR3
     2018-01-04 05:33:20   duration        0
     2018-01-03 20:38:55   friendlyName    Kuechenradio
     2018-01-04 05:38:19   graphicUri      http://chaltec.wifiradiofrontier.com/setupapp/setup1/logo/logo-530.png
     2018-01-04 06:07:53   infoText        This is what you came for / Calvin Harris;  Rihanna
     2018-01-04 05:38:15   input           internetradio
     2018-01-04 05:33:23   mute            off
     2018-01-04 05:55:25   playStatus      playing
     2018-01-04 06:08:14   position        4:00
     2018-01-04 06:08:30   power           on
     2018-01-04 06:08:30   presence        present
     2018-01-04 06:04:03   preset         
     2018-01-04 05:33:22   repeat          off
     2018-01-04 05:33:22   shuffle         off
     2018-01-04 06:08:30   state           on
     2018-01-03 20:38:55   version         ir-mmi-FS2026-0500-0370_V2.11.13c.EX68183-1A30
     2018-01-04 05:38:31   volume          6
     2018-01-04 05:38:31   volumeStraight  2
   helper:
     CL:
       Authenticated 1
       BUF       
       FW_ID      61
       LASTACCESS 1515042422
       NAME       WEB_192.168.1.120_56831
       NR         66
       PEER       192.168.1.120
       PORT       56831
       SNAME      WEB
       SSL       
       STATE      Connected
       TEMPORARY  1
       TYPE       FHEMWEB
       canAsyncOutput 1
     RUNNING_PID:
       abortFn    SIRD_AbortNavigation
       arg        03_Kuechenradio|-1|0|100
       bc_pid     1
       finishFn   SIRD_EndNavigation
       fn         SIRD_DoNavigation
       pid        2107
       telnet     telnetForBlockingFn_1515042422_127.0.0.1_47238
       terminated 1
       timeout    60
       abortArg:
Attributes:
   room       91 Systeme

mumpitzstuff

Hmm da hab ich wohl vergessen für Uri escape das Modul einzubinden. Komisch das ich den Fehler nicht bekomme.

mumpitzstuff

Hier noch mal eine Version wo das fehlende Modul korrekt eingebunden wird.

Mit Telnet wäre ich übrigens noch vorsichtig an der Stelle, da habe ich zwar grob was drin, aber das ist noch sehr unreif. Ein Test mit einem Browser wäre am besten.


supernova1963

Der Fehler ist weg, aber es wird noch nichts angezeigt.


2018.01.04 21:40:10 3: 03_Kuechenradio: Blocking call running to read navigation items.
2018.01.04 21:40:10 3: WEB_192.168.1.120_62649 asyncOutput: device gone, output was: <html><div class="container"><h3 style="text-align: center;">Navigation</h3><hr><div class="list-group"><a onClick="FW_cmd(\'/fhem?XHR=1&cmd=get%2003_Kuechenradio%20ls%20-1%202\');$(\'#FW_okDialog\').remove();" style="display:flex;align-items:center;cursor:pointer;"><<BACK</a></div></div></html>
2018.01.04 21:40:10 3: 03_Kuechenradio: Blocking call finished to read navigation items.


List:

Internals:
   DEF        192.168.1.13  1234 20
   INTERVAL   20
   IP         192.168.1.13
   NAME       03_Kuechenradio
   NOTIFYDEV  global
   NR         43
   NTFY_ORDER 50-03_Kuechenradio
   PIN        1234
   STATE      on
   TYPE       SIRD
   READINGS:
     2018-01-04 21:39:44   currentTitle    SWR3
     2018-01-04 21:39:45   duration        0
     2018-01-03 20:38:55   friendlyName    Kuechenradio
     2018-01-04 21:39:46   graphicUri      http://chaltec.wifiradiofrontier.com/setupapp/setup1/logo/logo-530.png
     2018-01-04 21:44:26   infoText        SWR3 CLUB
     2018-01-04 21:39:46   input           internetradio
     2018-01-04 21:39:48   mute            off
     2018-01-04 21:39:46   playStatus      playing
     2018-01-04 21:43:47   position        4:00
     2018-01-04 21:44:23   power           on
     2018-01-04 21:44:23   presence        present
     2018-01-04 21:39:43   preset         
     2018-01-04 21:39:47   repeat          off
     2018-01-04 21:39:47   shuffle         off
     2018-01-04 21:44:43   state           on
     2018-01-03 20:38:55   version         ir-mmi-FS2026-0500-0370_V2.11.13c.EX68183-1A30
     2018-01-04 21:39:48   volume          9
     2018-01-04 21:39:48   volumeStraight  3
   helper:
     CL:
       Authenticated 1
       BUF       
       FW_ID      133
       LASTACCESS 1515098410
       NAME       WEB_192.168.1.120_62649
       NR         143
       PEER       192.168.1.120
       PORT       62649
       SNAME      WEB
       SSL       
       STATE      Connected
       TEMPORARY  1
       TYPE       FHEMWEB
       canAsyncOutput 1
Attributes:
   room       91 Systeme

mumpitzstuff

Womit greifst du auf fhem zu? Mit irgendwas wie iOS oder einem Mac? Unter iOS konnte ich nämlich genau dieses Problem beobachten. Unter Windows/Android gehts bei mir. Ich bin der Ursache noch nicht auf den Grund gekommen, bin aber langsam mit meinem Latein am Ende.

supernova1963

OK, folgende Tests habe ich durchgeführt:

1. iPad: Google Chrome oder Safari: keine Reaktion
2. OS X: Google Chrome oder Safari: PopUp mit "<<< back"
3. Windows 10: Google Chrome oder Edge: PopUp mit "<<< back"

Ich würde dir gerne helfen, aber leider fehlt mir das Wissen.
Als laienhafte Umgehung, würde ich zunächst die Ergebnisse in ein reading mit Links packen, z.B.:
<html>
  <table>
    <tr id='0000' title='Xyz'>
      <td id='0000' title='Abc'>
        <a href='/fhem?cmd= ...' >Text</a>
      </td>
      <td ...
      </tr> ...
  </table>
</html>


Wie gesagt, keine Lösung nur eine holprige laienhafte Umgehung !!!

Gernot