Ankündigung

Einklappen
Keine Ankündigung bisher.

WG (Linux Debian) als Multiroom-System (Code Sammlung)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    AW: WG (Linux Debian) als Multiroom-System (Code Sammlung)

    Das Wetter kommt von temperatur Sensoren und wunderground weather bei mir. Wird auf den bus geschickt und dort werden sie mit einem zweiten Script an die GA des ansagen plugins geschickt.
    Das ist keine echte Datei sondern die variable wird direkt aus dem Bus befüllt.

    Wieso dsnoop und nicht direkt über die bindings? Sowie in der asound.conf (alsa-only) (ist auf der ersten Seite verlinkt)

    Gruß

    Gesendet von meinem GT-N7100 mit Tapatalk 2

    Kommentar


      Zitat von vlamers Beitrag anzeigen
      Ich hab mir provisorisch ein Plugin geschrieben das alle mpds restartet. Wird per GA aus der Visu getriggerd.
      Könntest du mir den Code verraten, mit dem ich die mpd's beim WG-Reboot starten(lassen) kann. Über die Visu wäre natürlich am elegantesten.
      Ich habe momentan noch das Problem, dass ich das WG des öfteren neu starten muss - bis alles eingerichtet ist - und der WAF ist etwa -100 wenn dann immer erstmal kein Radio geht
      Gruß -mfd-
      KNX-UF-IconSet since 2011

      Kommentar


        AW: WG (Linux Debian) als Multiroom-System (Code Sammlung)

        Also hier mal aus meinem backup(da meine dyndns fritzbox kombi mal wieder nicht mag)
        Sollte auch ohne pulseaudio laufen.
        Nicht erschrecken das Wasser quick and dirty. Wird durch ein extra GA ausgelöst

        Code:
        my $force_reload = '13/1/25';
        my $pulse = "pulseaudio";
        my $player1 = "mpd";
        my $player2 = "mpd2";
        my $player3 = "mpd3";
        my $Radio_an_GA = '13/1/0';
        
        ##########################################################
        
        #################################################################
        # do not change anything below, all config stays above
        #################################################################
        
        # subscribe plugin and call it only when necessary
        $plugin_subscribe{$force_reload}{$plugname} = 1;
        $plugin_info{$plugname.'_cycle'} = 0;
        
        
        if ($msg{'dst'} eq ($force_reload))
        {
        if ($msg{'apci'} eq 'A_GroupValue_Write') # change volume
        {
        if ($msg{'data'} == 1) {
        my $debug = `killall $player1`;
        my $debug = `killall $player2`;
        my $debug = `killall $player3`;
        my $debug = `killall $pulse`;
        my $debug = `$pulse -k`;
            
            my $debug = `/etc/init.d/$player1 restart`;
            my $debug = `/etc/init.d/$player2 restart`;
            my $debug = `/etc/init.d/$player3 restart`;
           knx_write($Radio_an_GA,0,1);
            return "Force reload OK";
        }
        else {return "nok"}
        }
        }
        Uns das nehm ich als ansagen trigger:
        ( auch Quick and dirty)
        Code:
        my $vorhersage_ansage = '15/1/1';
        my $info_wz = '3/1/2';
        my $verstaerker='13/1/2';
        ################# Alle Einstellungen ab hier #############################
        my @ansage;
        my @PV_Tag;
        my @PV_Tag_gestern;
        my @PV_Monat;
        my @PV_Jahr;
        my $rolladen_zentrals ='7/0/0';
        my $rolladen_ansage = '15/1/8';
        my $anwesend = '13/2/0';
        my $Alarm_Modus = '15/1/9';
         my $volume = '13/1/22';
        my $laut_anfang = "60";
        # subscribe plugin on Announcement trigger GA and Solar_aktiv GA
        $plugin_subscribe{$info_wz}{$plugname} = 1;
        $plugin_subscribe{$anwesend}{$plugname} = 1;
        $plugin_subscribe{$rolladen_zentrals}{$plugname} = 1;
        $plugin_info{$plugname.'_cycle'} = 0;
        
        push @ansage, { name=>"aussen_temp",                                 # was needed for debugging
                              DPT =>"9.001",                                            # The DPT for the GA. (Temperature=9)
                              ga=>'11/1/0', 
                              ansage_ga=>'15/1/0'                                       # The GA for the value, will be the second part of the Announcement
                              };
        push @ansage, { name=>"vorhersage",                                 # was needed for debugging
                              DPT =>"9.001",                                            # The DPT for the GA. (Temperature=9)
                              ga=>'15/0/2', 
                              ansage_ga=>'15/1/1'                                       # The GA for the value, will be the second part of the Announcement
                              };   
        push @ansage, { name=>"wohnzimmer",                                 # was needed for debugging
                              DPT =>"9.001",                                            # The DPT for the GA. (Temperature=9)
                              ga=>'11/2/0', 
                              ansage_ga=>'15/1/3'                                       # The GA for the value, will be the second part of the Announcement
                              };
        push @ansage, { name=>"WW",                                 # was needed for debugging
                              DPT =>"9.001",                                            # The DPT for the GA. (Temperature=9)
                              ga=>'12/0/0', 
                              ansage_ga=>'15/1/4'                                       # The GA for the value, will be the second part of the Announcement
                              };
        push @ansage, { name=>"Heizung",                                 # was needed for debugging
                              DPT =>"9.001",                                            # The DPT for the GA. (Temperature=9)
                              ga=>'12/0/1', 
                              ansage_ga=>'15/1/5'                                       # The GA for the value, will be the second part of the Announcement
                              };
         ####### Normale Ansagen Ende ####
        
        
        
        ####Start PV Ansage######
        
        push @PV_Tag, { name=>"Ertrag_Tag",
                    DPT=>"9.001",
                    ga=>'14/1/1',
                    ansage_ga=>'15/1/10'
        
        };
        push @PV_Tag_gestern, {
        name=>"Ertrag Gestern",
                    DPT=>"9.001",
                    ga=>'14/1/1',
                    ansage_ga=>'15/1/13'
        };
        push @PV_Monat, { name=>"Ertrag_Monat",
                    DPT=>"9.001",
                    ga=>'14/1/5',
                    ansage_ga=>'15/1/11'
        
        };
        push @PV_Jahr, { name=>"Ertrag_Jahr",
                    DPT=>"9.001",
                    ga=>'14/1/7',
                    ansage_ga=>'15/1/12'
        
        };
         
         ############################### Ende der Einstellungen ###################################################
        
        if ($msg{'dst'} eq $info_wz && ($msg{'apci'} eq 'A_GroupValue_Write'))  {
        if ($msg{'value'} == 1) {
        #pugin_log ($plugname, 1);
        
        
         knx_write($verstaerker ,1,1);
                knx_write($volume,$laut_anfang,5);
        
        foreach my $element (@ansage){
        #my $name = $element->{name};
        my $wert = knx_read(($element->{ga}), 0, $element->{DPT});
        #my $write = (($element->{name}),$wert,($element->{DPT}));
        #knx_write(($element->{name}));
        #plugin_log($plugname, ($element->{name}));
        knx_write(($element->{ansage_ga},$wert,($element->{DPT})));
        knx_write($volume,$laut_anfang,5);
        next;
        #pugin_log ($plugname, $write);
        }  
        }
        }
        if ($msg{'dst'} eq $rolladen_zentrals && ($msg{'apci'} eq 'A_GroupValue_Write'))  {
        if ($msg{'value'} == 1) {
        knx_write($verstaerker ,1,1);
        knx_write($rolladen_ansage,1,1.017);
        }}
        if ($msg{'dst'} eq $anwesend && ($msg{'apci'} eq 'A_GroupValue_Write'))  {
        if ($msg{'value'} == 1) {
        knx_write($volume,$laut_anfang,5);
        knx_write($verstaerker ,1,1);
        knx_write($Alarm_Modus,0,1);
        }
        if ($msg{'value'} == 0) {
        knx_write($volume,$laut_anfang,5);
        knx_write($verstaerker ,1,1);
        knx_write($Alarm_Modus == 0);}
        }
        
         else { return 0;}
        Tipps und anregungen sind herzlich willkommen!

        Gruß

        Gesendet von meinem GT-N7100 mit Tapatalk 2

        Kommentar


          Audiozuspieler DVB-S

          Super.
          Danke an dieser Stelle nochmals für den großartigen Support.

          Ich habe inzwischen auch mal mit der Zuspielung von Radio per DVB-S experimentiert.
          Hier gibt es einen Thread dazu

          Kurz gefasst: Streaming unter Windows mit VLC klappt. Wenn ich einen Sender am WG über eine mpd-Instanz abspiele holpert die Ausgabe und bricht ab.
          Auf der Konsole am WG nachgesehen braucht mpd in dem Fall ~100% CPU.
          Meines Wissens werden die DVB-S Radiosender mit

          MPEG1-Layer2 (mp2)
          320kbit
          48kHz

          ausgestrahlt (zumindest öffentlich-rechtliche).
          Es wäre natürlich sehr schick das am WG zum Laufen zu bekommen.
          Gruß -mfd-
          KNX-UF-IconSet since 2011

          Kommentar


            Zitat von vlamers Beitrag anzeigen
            Ich hab mir provisorisch ein Plugin geschrieben das alle mpds restartet.
            Kleiner Tipp: pack das in den monit: jeder mpd sollte dafür ein sep. pid-file haben, eine Datei unter /etc/monit/enable/.., syntax sollte sich aus dort vorhandenen ableiten lassen - hat sich bewährt

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              Ich habe eine sehr langsame Internet Verbindung. Wenn ich Telefoniere, irgendwas runter lade oder im Internet auf aufwändigen Seite surfe driften die outputs eines Radio Streams auseinander (da hackt es dann ab und an, danach laufen sie nicht mehr synchron). Dann wird ein force-reload fällig...


              Gruß Volker

              Kommentar


                48 kHz?

                Gibt es grundsätzlich bei der Wiedergabe von Dateien/Streams mit 48kHz Probleme bzgl. Performance? Werden diese mit den vorhandenen Einstellungen generell versucht umzuwandeln?
                Gruß -mfd-
                KNX-UF-IconSet since 2011

                Kommentar


                  AW: WG (Linux Debian) als Multiroom-System (Code Sammlung)

                  Hi ich hatte bis jetzt noch nie Probleme. Gibt es Probleme bei dir?

                  Gruß

                  Gesendet von meinem GT-N7100 mit Tapatalk 2

                  Kommentar


                    Zitat von vlamers Beitrag anzeigen
                    Gibt es Probleme bei dir?
                    Wie ich oben geschrieben habe (#154), habe ich bei Zuspielung von Digitalradio (DVB Audio-Stream) 100% CPU-Last. Ich höre nur ein paar Tonfetzen und dann bricht die Ausgabe ab. Deshalb versuche ich jetzt herauszufinden woher das kommt. Die einzige Erklärung die ich dafür habe wäre eben dass das WG versucht aus dem Stream mit 48 kHz einen 44,1 kHz zu machen...
                    Gruß -mfd-
                    KNX-UF-IconSet since 2011

                    Kommentar


                      Hmm, recoden ist "worst case", ich habs jetzt nicht getestet aber aus dem Bauch: das schafft das WG nicht.
                      Und das ist sogar hilfreich, weil man damit erkennt das man ca 5W evtl. wegen eines Konfigurationsfehlers 24x7 verbrennt.
                      Das ist wenig, 35ct am Tag (bei mir liegt der Arbeitspreis dank Energiewende eher bei 29ct), wenig, aber trotzdem fast 13€ im Jahr, die man in den Gulli wirft.

                      Warum ich den neuen vdr noch nicht ins Repo geschoben habe? ganz einfach: es ruckelt. selbst auf nem 1,8GHz Atom-D525
                      Das ist unbrauchbar, ein weiterer Beweis für meine These "never change a running system"- das lief vorher mit dem "alten" 1.6 jahrelang ohne ruckler..

                      Makki
                      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                      -> Bitte KEINE PNs!

                      Kommentar


                        AW: WG (Linux Debian) als Multiroom-System (Code Sammlung)

                        Nimmst du pulseaudio oder alsa-only?

                        Gesendet von meinem GT-N7100 mit Tapatalk 2

                        Kommentar


                          alsa-only
                          Also genau so wie du es für das WG-Patchlevel 35 gepostet hast.
                          Gruß -mfd-
                          KNX-UF-IconSet since 2011

                          Kommentar


                            AW: WG (Linux Debian) als Multiroom-System (Code Sammlung)

                            Dann spiel mal mit der buffer_size in der asound.conf. das hat bei mir geholfen

                            Gesendet von meinem GT-N7100 mit Tapatalk 2

                            Kommentar


                              Ich hab mal ne Frage an Euch, vielleicht habt ihr einen Rat.

                              Gestern wurden bei mir die Boxen für das Multiroomsystem in den einzelnen Räumen eingebaut.

                              Ich auf meinem Communitygate MPD in Kombination mit Pulse als Zuspieler eingerichtet, funktioniert auch reibungslos. Ich nutze die 4 Ausgangskanäle der Logilink USB 7.1 für die Zuspielereingänge vom Russound C5.

                              Nun ist es so, drehe ich das Volume vom Alsa, MPD und vom Russound auf, hör ich ein unglaubliches Brummen auf den Boxen, was wirklich nervtötend ist.

                              Da hier viele eine externe Logilink USB Soundbox nutzen, habt ihr ähnliche Erfahrungen gemacht?

                              Es muss hier an der Soundkarte mit dem Rechner liegen, schalte ich einen IPOD an die Zuspieler-Eingänge vom Russound, habe ich keinerlei Brummen.

                              Ich habe bereits einiges im Internet gegoogelt, z.B. Mantelstromfilter, der soll aber nur helfen, wenn man eine Radioantenne angeschlossen hat (hab ich aber nicht) oder man solle den Rechner mit der Soundkarte auf einer andere Steckdose setzen. Hilft auch nicht.

                              Oder ist die Logilink einfach zu billig und produziert an sich schon ein leichtes Brummen, was dann über den Verstärker noch lauter wird ?

                              Kommentar


                                Ich hab das Brummen nur bei billigen verstärkern. Da hilft ein "Masse-Filter"!?
                                Am Onkyo und am Uralten Kenwood gehts auch ohne.
                                Hast du evtl ein Störfeld in der Nähe der Soundkarte/Soundkabel?

                                Gruß

                                Kommentar

                                Lädt...
                                X