[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern

Begonnen von der.einstein, 08 April 2017, 15:40:50

Vorheriges Thema - Nächstes Thema

CoolTux

Ich kann versuchen Code bei zu tragen sofern ich einige Zusammenhänge und vor allem Ergebnisse verstehe. Testen kann ich leider nicht. Eigentlich wollte ich ja der.einstein nur ein Grundgerüst bieten   ;D
Aber wenn ich schon mal dabei bin.


Es muss doch möglich sein entsprechend die Requests zusammen zu setzen und ab zu schicken und dann den Response der da kommt weiter zu verarbeiten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

OK, dann versuche ich mich mal an ein paar Änderungen...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

der.einstein

Zitat von: viegener am 14 September 2017, 14:06:20
OK, dann versuche ich mich mal an ein paar Änderungen...
Ich werde an dem Code klar weiterschreiben. Allerdings hab ich den Eindruck gewonnen, dass das was ich schreibe eher FHEM untypisch ist. Mir wäre jetzt z. B. egal welches Perl oder FHEM Paket dafür jetzt geladen werden muss, solange das ganze halbwegs performant ist. Ihr hattet ja eher das meiste von mir wieder rausgeschmissen (was ich jetzt nicht schlimm finde). Aber es wäre halt Käse, dass ich weiterschreibe, es hier hochstelle, und allgemeines Desinteresse bzw. Ablehnung das Resultat sind.  In dem Fall hat die Arbeit für mich kaum Sinn.

Falls ihr darauf besteht, alles in GitHub mit Pull Requests etc. zu machen, hab ich da erstmal ne neue Baustelle, wo ich mich einarbeiten müsste.

Wie gesagt ich werd auf jeden Fall weitermachen, aber es macht natürlich am meisten Sinn, wenn wir die Arbeit sinnvoll bündeln können. [emoji41] [emoji106]

Grüße.

Gesendet von meinem LG-D855 mit Tapatalk


CoolTux

Zitat von: der.einstein am 14 September 2017, 15:50:12
Ich werde an dem Code klar weiterschreiben. Allerdings hab ich den Eindruck gewonnen, dass das was ich schreibe eher FHEM untypisch ist. Mir wäre jetzt z. B. egal welches Perl oder FHEM Paket dafür jetzt geladen werden muss, solange das ganze halbwegs performant ist. Ihr hattet ja eher das meiste von mir wieder rausgeschmissen (was ich jetzt nicht schlimm finde). Aber es wäre halt Käse, dass ich weiterschreibe, es hier hochstelle, und allgemeines Desinteresse bzw. Ablehnung das Resultat sind.  In dem Fall hat die Arbeit für mich kaum Sinn.

Falls ihr darauf besteht, alles in GitHub mit Pull Requests etc. zu machen, hab ich da erstmal ne neue Baustelle, wo ich mich einarbeiten müsste.

Wie gesagt ich werd auf jeden Fall weitermachen, aber es macht natürlich am meisten Sinn, wenn wir die Arbeit sinnvoll bündeln können. [emoji41] [emoji106]

Grüße.

Gesendet von meinem LG-D855 mit Tapatalk

Und genau deswegen habe ich bereits mehrmals Dir empfohlen Dich in FHEM Developer einzuarbeiten. Dazu gehört der Developer Guide im Wiki, sich andere Module (Multimedia) an zu schauen und sich eine Art Mentor zu suchen.

Es bringt nichts wenn FHEM für 3 Sekunden blockiert wird weil der TV aus ist jemand irgendwas gedrückt hat oder die define Routine läuft. Da laufen die Frauen bei manchen Usern Amok oder der User selber weil wichtige Events für Markisen im Wind ausbleiben.
Du hast bisher für Dich entwickelt und ohne FHEM. Da waren die Ansprüche nicht so hoch und wenn dann halt nur Deine. Ein Modul wird für die Gemeinschaft entwickelt und sollte bestimmten Vorgaben entsprechen. Ist nicht immer Einfach aber meistens Machbar  ;D

Ich denke Mal die erste Aufgabe sollte sein Request und Response zu trennen. Gerne auch erstmal mit der bestehenden Aufruflösung. Wenn das klappt sollte es einfacher sein das auf HttpUtils_NonblockingGet um zu bauen. Es sei denn jemand löst das in einem Rutsch.


Git ist eigentlich Recht einfach. Ich weiß ja nicht wie du entwickelst aber es gibt Integrationen in IDE's oder auch in Editoren.
Bei Linux kann ich Dir helfen, Windows kenne ich gar nicht.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

@der.einstein: Das klingt jetzt eher frustriert und das war sicher nicht meine Absicht.

Grundsätzlich müssen die Dinge aber mit dem Rest von FHEM zusammenpassen, denn sonst kann das keiner Nutzen - Wenn FHEM komplett für Sekunden blockiert wird, weil auf eine Antwort vom Fernseher gewarte wird geht das nicht. --> Deshalb HTTPUtils

Ausserdem vermute ich, dass Cooltux und ich den Ansatz sehen, erstmal müssen die grundsätzlichen Ablaufe define/set/etc laufen, dann kann man funktionen erweitern - deshalb viele Änderungen

Git ist nur einfach besser als Files im Forum austauschen - Wenn Du einen anderen Vorschlag hast wie der Austausch gehen soll - gerne
Ist auch nicht wirklich einfach für Perl aber erlaubt es halt Änderungen von mehreren Leuten zu mergen - Deine Änderungen habe ich gestern händisch übernehmen müssen und das war sehr fehlerkritisch



Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Ohh Cooltux - Du warst schneller

@der.einstein: Ich habe hier eine Version die mit httputils geht - lass mich wissen ob es Interesse gibt
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

CoolTux

Meinst Du jetzt eine Version des LoeweTV Modules? Dann habe ich Interesse.


Ich glaube bei all unseren geschreibe habe ich das wichtigste komplett vergessen.
@der.einstein
Vielen vielen Dank für Deine tolle Vorbereitung. Du hast sicherlich lange im Internet Zeit verbracht um Deine Lösung zu bekommen. Wirklich gute Arbeit. Lass uns nun zusammen versuchen diese tolle Arbeit in FHEM für andere Nutzbar zu machen. Wirst sehen das macht großen Spaß. Nur nicht frustriert hinwerfen nur weil es gerade etwas holprig ist oder Teile weg kommen wo Du bereits investiert hast. Man lernt niemals um sonst.




Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

der.einstein

Zitat von: CoolTux am 14 September 2017, 16:24:46
Meinst Du jetzt eine Version des LoeweTV Modules? Dann habe ich Interesse.


Ich glaube bei all unseren geschreibe habe ich das wichtigste komplett vergessen.
@der.einstein
Vielen vielen Dank für Deine tolle Vorbereitung. Du hast sicherlich lange im Internet Zeit verbracht um Deine Lösung zu bekommen. Wirklich gute Arbeit. Lass uns nun zusammen versuchen diese tolle Arbeit in FHEM für andere Nutzbar zu machen. Wirst sehen das macht großen Spaß. Nur nicht frustriert hinwerfen nur weil es gerade etwas holprig ist oder Teile weg kommen wo Du bereits investiert hast. Man lernt niemals um sonst.




Grüße
Ja minimal Frust war jetzt sicherlich mal da. [emoji6]
Ich wollte nur vermeiden, dass wir jetzt aneinander vorbeiarbeiten und ihr mich irgendwo abhängt. Dann könnte ich selber nichts mehr an dem Modul ändern.
Die DeveloperWikis zu Multimedia und Modulen im Allgemeinen habe ich wie gesagt gelesen. Aber es ist nunmal was anderes darüber zu lesen oder es praktisch umzusetzen.
Daher hier meine Bitte: Nehmt mich mit, bei der Entwicklung. Spass macht es allemal. 

Übrigens Wohn ich hier in Kronach in Reichweite des Werksverkaufs. Also falls jemand mal was von Loewe braucht...

Grüße.

Gesendet von meinem LG-D855 mit Tapatalk

viegener

Zitat von: CoolTux am 14 September 2017, 16:24:46
Meinst Du jetzt eine Version des LoeweTV Modules? Dann habe ich Interesse.


Die frage war zwar primär an der.einstein gerichtet - aber ja es ist ein Version des LoeweTV-Moduls mit HTTPUtils, die asynchron arbeitet (nonblocking über HTTPUtil) - zumindest getAccess und getDeviceData haben bei mir funktioniert. Habe es mal über http in github hochgeladen (habe egrade keinen git client hier), leider kennt es das nun als komplette Ersetzung  :o und zeigt keine detailierten Änderungsinfos
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Habe mal einen pull request gestellt.

@der.einstein: Die neueste Version ist hier: https://raw.githubusercontent.com/viegener/fhem-LoeweTV/devel/82_LoeweTV.pm

Wenn Du eine andere Idee hast zum SourceCodeAustausch sag Bescheid - ich bin nicht auf github festgelegt...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

der.einstein

Zitat von: viegener am 14 September 2017, 18:17:35
Die frage war zwar primär an der.einstein gerichtet - aber ja es ist ein Version des LoeweTV-Moduls mit HTTPUtils, die asynchron arbeitet (nonblocking über HTTPUtil) - zumindest getAccess und getDeviceData haben bei mir funktioniert. Habe es mal über http in github hochgeladen (habe egrade keinen git client hier), leider kennt es das nun als komplette Ersetzung  :o und zeigt keine detailierten Änderungsinfos
Ich bin daran auf jeden Fall interessiert.
Wenn du's auf GitHub gestellt hast, schau ich's mir gern an.

Grüße.

Gesendet von meinem LG-D855 mit Tapatalk


viegener

OK, ich bin heute nochmal ein wenig weitergekommen und habe auch mal das queuing eingebaut.

Dabei bin ich ich allerdings auf ein paar Inkonsistenzen gestossen:
- Bei mir kommt keine MAC Addresse - vermutlich geht bei mir der wakeup deshalb auch nicht
- In der Anfrage RequestAccess sollte eigentlich wohl die MAC-des Clients (also des FHEM_Rechners auftauchen), momentan kein grosse Problem, aber vermutlich sollte man das auf die FHEM uniqueid umstellen?
- momentan wird zwar keep-alive gesetzt aber der Socket bleibt nicht offen - vielleicht kann man das auch lassen
- Mir ist nicht klar,w as eigentlich für den Befehl connect vorgesehen war?
- was sollten wir in die fcid eintragen?

Ich stelle noch eine weitere Version nach github
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

CoolTux

Zitat von: viegener am 14 September 2017, 22:53:49
OK, ich bin heute nochmal ein wenig weitergekommen und habe auch mal das queuing eingebaut.

Dabei bin ich ich allerdings auf ein paar Inkonsistenzen gestossen:
- Bei mir kommt keine MAC Addresse - vermutlich geht bei mir der wakeup deshalb auch nicht
- In der Anfrage RequestAccess sollte eigentlich wohl die MAC-des Clients (also des FHEM_Rechners auftauchen), momentan kein grosse Problem, aber vermutlich sollte man das auf die FHEM uniqueid umstellen?
- momentan wird zwar keep-alive gesetzt aber der Socket bleibt nicht offen - vielleicht kann man das auch lassen
- Mir ist nicht klar,w as eigentlich für den Befehl connect vorgesehen war?
- was sollten wir in die fcid eintragen?

Ich stelle noch eine weitere Version nach github

Guten Morgen,

1. Bekommst Du gar keine MAC im response mitgeliefert?
2. FHEM uniqueid umstellen? Warum? Die FHEM uniqueid ist doch für sensible Daten als Container gedacht. Verstehe gerade Deinen Gedanken nicht ganz  ;D
3. Ich halte das eigentlich für nicht so schlimm. Es kann sein das der Socketserver trotz keep-alive den Socket nach dem Response zu macht.
4. Ist beim kopieren über geblieben, da noch nicht genau wusste wie das handling an sich sein wird.
5.
Zitat von: der.einstein am 07 September 2017, 19:41:55
Daneben ist vielleicht noch die "fcid" zu erwähnen.
Die kann man benutzen, um eine Session zu kennzeichnen. Ist nur dann relevant, wenn mehrere Geräte gleichzeitig den TV per SOap ansprechen. Z. B. dann, wenn ich die Senderliste Abfrage und über 100 Sender drin sind. Denn, der TV kann bis zu 100 Items (egal was) auf einmal schicken, sind es mehr, muss ich öfter abfragen. Bei den Sendern ist das noch zu umgehen, wer hat schon 100+ Sender in 1 Liste. Aber es kann interessant werden bei z. B. den Aufnahmen, da hab ich schon deutlich mehr.
Jedoch, sollte es ausreichen die fcid einmalig zu setzen und gut ist.
Sollte also egal sein was man da setzt, oder? Hauptsache eindeutig


Ich habe bisschen Pflege betrieben und die set Befehle an die AV Richtlinien angepasst.
@Viegener
Kannst Du bitte kurz erklären wer $ret genau füllt

# send the request non blocking
    if ( defined( $ret ) ) {
      Log3 $name, 1, "LoeweTV_SendRequest $name: Failed with :$ret:";
      LoeweTV_HU_Callback( $hash->{HU_SR_PARAMS}, $ret, "");

    } else {
      $hash->{HU_DO_PARAMS}->{args} = \@args;
     
      Log3 $name, 4, "LoeweTV_SendRequest $name: call url :".$hash->{HU_SR_PARAMS}->{url}.": ";
      HttpUtils_NonblockingGet( $hash->{HU_SR_PARAMS} );

    }

Ich habe im Code nur noch ein my $ret gefunden in der selbigen Routine.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

@Viegener
Kannst über Github erkennen das ich etwas neues gepusht habe? Bekommst Du da eine Meldung?


@der.einstein
Wenn Du Fragen hast dann einfach Fragen!



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

Zitat von: CoolTux am 15 September 2017, 07:28:46
@Viegener
Kannst über Github erkennen das ich etwas neues gepusht habe? Bekommst Du da eine Meldung?

Nein ich bekomme nur benachrichtigungen bei "conversations" also zum Beispiel wenn Du pull-requests übernimmst.
Nach meinem verständnis muss ich die immer manuell in meinen Fork übernehmen bevor ich loslege.

Einfacher wäre vermutlich, wenn Du mich als "collaborator" in Deinem Repository zulässt (Settings / Collaborators), ich vermute dann kan ich direkt von meiner Platte Änderungen pushen und Konflikte werden dann schon aufgelöst.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können