BRAVIA modul nach Update, FHEM absturz

Begonnen von m311331, 07 Januar 2021, 17:56:48

Vorheriges Thema - Nächstes Thema

m311331

Hi @all,

Erstmal wünsche ich allen hier im Forum ein Gutes Neues Jahr !

Mein letztes FHEM update war schon etwas her, daher wollte ich mal den Jahreswechsel nutzen um das nachzuholen. 
Nach dem Update musste ich leider feststellen, das daß BRAVIA-Modul auch ein Update bekommen hat, und sobald der TV eingeschaltet wird FHEM "abschießt".

Ich hatte vor dem Update version  "70_BRAVIA.pm 21376 2020-03-08 09:22:57Z vuffiraa"
und nach dem Update version "70_BRAVIA.pm 22330 2020-07-02 19:32:12Z vuffiraa"

Die neue Version erzeugt jetzt bei mir beim einschalten des TV's folgenden Fehler
Not a SCALAR reference at ./FHEM/70_BRAVIA.pm line 1771.
im modul ist das der Teil: %speaker = @{$return->{result}}[0] if (!%speaker && ${$return->{result}} > 0);

und FHEM stürtzt ab  (von running zu exited)
● fhem.service - LSB: FHEM server
   Loaded: loaded (/etc/init.d/fhem; bad; vendor preset: enabled)
   Active: active (exited) since Do 2021-01-07 16:41:57 CET; 1h 9min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 592 ExecStart=/etc/init.d/fhem start (code=exited, status=0/SUCCESS)

es geht also nix mehr  :o
ein Login über das Webinterface ist nicht mehr möglich 

habe im Forum gesucht aber leider zu diesem Fehler nichts gefunden  :-\

könnte mir bitte einer helfen ?
würde das BRAVIA Modul gerne auch weiterhin updaten können
ohne es zu excluden.

mfg. m31



juemuc

Hallo,

bei mir funktioniert alles in der aktuellen Version. Eventuell das Device neu definieren.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

vuffiraa

Hallo m31,

dein Problem ist mir bisher noch nicht bekannt. Kannst du mal ein Log mit verbose=5 machen, während du den TV einschaltest?
Welches Modell hast du?

Wir werden es schon wieder zu laufen kriegen ;)

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

m311331

#3
Hallo VuffiRaa,

Besten Dank schon mal für deine Mühe

so hier der Log vom einschalten des TV's bis zum FHEM crash
hoffe das passt so ?

-edit-
Modell: KD-49XD7005

Gruß m31

vuffiraa

Hallo m31,

es liegt an den Kopfhörern, bzw. daran, dass der TV die steuern möchte.
Das hatte ich nicht bedacht. Ich melde mich und würde dir eine Version zum Testen bereitstellen.

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

m311331

Hallo VuffiRaa,

gerne
hatte mich schon daran versucht aber hab's nicht hinbekommen  :(

besten Dank für deinen Support !!!  :)

mfg. m31

vuffiraa

Hallo m31,

ich habe im GitHub eine Entwicklerversion des Moduls hochgeladen: https://github.com/fhem/BRAVIA/tree/dev

Diese könntest du testen, wenn du in der Kommandozeile von FHEM folgendes ausführst:
update all https://raw.githubusercontent.com/fhem/BRAVIA/dev/controls_BRAVIA.txt

Nach einem Neustart ist dann die neue Version aktiv.

Falls dann bei dir wieder alles geht, würde ich die Version in FHEM übernehmen, sodass sie dann auch mit dem normalen FHEM-Update verteilt wird.

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

m311331

#7
Hallo VuffiRaa,

--edit--
UPPS  :-[ :'(

sorry das war zu früh 
das Update hatte nicht hingehauen keine Ahnung warum, es war noch die alte Version

der Fehler Not a SCALAR reference at ./FHEM/70_BRAVIA.pm line 1771.
ist leider immer noch da

    # getVolumeInformation
    elsif ( $service eq 'getVolumeInformation') {
      if ( ref($return) eq 'HASH' && ref($return->{result}) eq 'ARRAY') {
        my $elements = $return->{result}[0];
        if (ref($elements) eq 'ARRAY') {
          my %speaker = ();
          foreach my $target (@$elements) {
            if (ref($target) eq 'HASH') {
              %speaker = %$target if ($target->{'target'} eq 'speaker');
              last;
            }
          }
          %speaker = @{$return->{result}}[0] if (!%speaker && ${$return->{result}} > 0);
          if (%speaker) {
            readingsBeginUpdate($hash);
            readingsBulkUpdateIfChanged( $hash, 'volume', $speaker{volume} );
            readingsBulkUpdateIfChanged( $hash, 'mute', ($speaker{mute} ? "on" : "off") );
            readingsEndUpdate( $hash, 1 );
          }
        }
      }
    }


ist da deine Änderung drin ? ???

Gruß m31[/s]

vuffiraa

Ja, da habe ich was geändert:
    # getVolumeInformation
    elsif ( $service eq 'getVolumeInformation') {
      if ( ref($return) eq 'HASH' && ref($return->{result}) eq 'ARRAY') {
        my $elements = $return->{result}[0];
        if (ref($elements) eq 'ARRAY') {
          my %speaker = ();
          foreach my $target (@$elements) {
            if (ref($target) eq 'HASH') {
              %speaker = %$target if ($target->{'target'} eq 'speaker');
              last;
            }
          }
          %speaker = %{@$elements[0]} if (!%speaker && $elements > 0);
          if (%speaker) {
            readingsBeginUpdate($hash);
            readingsBulkUpdateIfChanged( $hash, 'volume', $speaker{volume} );
            readingsBulkUpdateIfChanged( $hash, 'mute', ($speaker{mute} ? "on" : "off") );
            readingsEndUpdate( $hash, 1 );
          }
        }
      }
    }


Du hast nicht zufällig nach dem Update aus dem Git noch ein normales FHEM-Update gemacht? Das FHEM-Update überschreibt die Entwicklerversion des Moduls wieder mit der alte Variante.

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

m311331

Hallo VuffiRaa,

ZitatDu hast nicht zufällig nach dem Update aus dem Git noch ein normales FHEM-Update gemacht? Das FHEM-Update überschreibt die Entwicklerversion des Moduls wieder mit der alte Variante.
:-X anscheinend 
war gestern auf'm Sprung und wollte das noch schnell erl.

hab's heute nochmal neu gemacht
und es schaut gut aus ! :)

Besten Dank für deinen super Support !

Gruß m31

m311331

#10
Hallo VuffiRaa,

Der Fehler ist def. weg !

Fernseher wurde jetzt schon mehrfach gestartet ohne Problem.
und der Log schaut auch gut aus.
Somit kann ich ich dir weitergeben es sollte kein Problem sein die Version in FHEM zu übernehmen, sodass sie dann auch mit dem normalen FHEM-Update verteilt wird.

Gruß m31


vuffiraa

Vielen Dank für die Rückmeldung!

Dann übernehme ich mal die Änderung in die offizielle Version.

Gruß VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa

Zitat von: vuffiraa am 20 Januar 2021, 19:33:00
Vielen Dank für die Rückmeldung!

Dann übernehme ich mal die Änderung in die offizielle Version.

Gruß VuffiRaa

Ab morgen (Montag) wird die Änderung per Update verteilt.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean