MQTT und SIRD

Begonnen von mrhaefele@gmx.de, 12 Februar 2017, 14:03:20

Vorheriges Thema - Nächstes Thema

mrhaefele@gmx.de

Hallo,

ich bin gerade dabei zeitkritische (lange) oder blockierende Vorgänge auszulagern in eine weitere FHEM Instanz (auf demselben Intel NUC auf dem mein FHEM läuft).
Bisher habe ich auf der 2. FHEM Instand ein Sonos Client und ein weiteres Internetradio (mit 17_SIRD.pm) ausgelagert, weil mir mit "apptime" für beide lange "Totzeiten" angezeigt wurden.

Die Verbindugn der beiden FHEM Instanzen mache ich mit MQTT nach dieser Anleitung - https://forum.fhem.de/index.php?topic=36228.0. Klappt (eigentlich) super.

Jetzt das "Aber".

Ein "apptime" auf der Hauptinstanz zeigt keine Auffälligkeiten, aber ein apptime auf der 2. FHEM Instanz, auf der "nur" die beiden Streaming Clients laufen, zeigt folgendes:

         name             function    max  count    total  average maxDly
                         MQTT2Broker           MQTT::Read  16060  29801  2904129    97.45      0 HASH(MQTT2Broker)
                       EG.Paul.Radio             SIRD_Set  16038  34043  2742121    80.55      0 HASH(EG.Paul.Radio); EG.Paul.Radio; volume
                  tmr-SIRD_GetStatus      HASH(0x4b734d0)   4141     13    17648  1357.54    256 HASH(EG.Paul.Radio)
                  tmr-SIRD_GetStatus      HASH(0x5b39440)   1709     14    13648   974.86    266 HASH(EG.Paul.Radio)
                               Sonos           SONOS_Read    594     37    12499   337.81      0 HASH(Sonos)
                  tmr-SIRD_GetStatus      HASH(0x4919b10)    559     14     2350   167.86    141 HASH(EG.Paul.Radio)
                                 WEB               FW_Set     23     25      369    14.76      0 HASH(WEB); WEB; rereadicons
                 MQTT2_EG.Paul.Radio MQTT::BRIDGE::Notify      8  33142    66018     1.99      0 HASH(MQTT2_EG.Paul.Radio); HASH(EG.Paul.Radio)
           MQTT2_Sonos_Arbeitszimmer MQTT::BRIDGE::Notify      3     49       31     0.63      0 HASH(MQTT2_Sonos_Arbeitszimmer); HASH(Sonos_Arbeitszimmer)
  tmr-SONOS_IsSubprocessAliveChecker      HASH(0x5ab0028)      2    132      185     1.40  11994 HASH(Sonos)
                     tmr-MQTT::Timer      HASH(0x5b42820)      1     66       66     1.00    546 HASH(MQTT2Broker)
                       EG.Paul.Radio             SIRD_Get      0      6        0     0.00      0
                             Logfile          FileLog_Log      0  99561        0     0.00      0
                         MQTT2Broker         MQTT::Notify      0     25        0     0.00      0
                         MQTT2Broker            MQTT::Set      0      6        0     0.00      0
                               Sonos         SONOS_Notify      0  99561        0     0.00      0
                 Sonos_Arbeitszimmer SONOSPLAYER_Attribute      0     25        0     0.00      0
                 Sonos_Arbeitszimmer   SONOSPLAYER_Notify      0  99561        0     0.00      0
                 Sonos_Arbeitszimmer      SONOSPLAYER_Set      0     25        0     0.00      0
               Sonos_ArbeitszimmerRG readingsGroup_Notify      0  99561        0     0.00      0
    Sonos_ArbeitszimmerRG_Favourites readingsGroup_Notify      0  99561        0     0.00      0



Mein Log file läuft über und es werden wahrninnig viele Events erzeugt, ohne dass ich irgendetwas am Radio mache

2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: incoming publish received
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: outgoing publish sent
2017-02-12 13:36:17 SIRD EG.Paul.Radio input
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: incoming publish received
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: outgoing publish sent
2017-02-12 13:36:17 SIRD EG.Paul.Radio input
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: incoming publish received
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: outgoing publish sent
2017-02-12 13:36:17 SIRD EG.Paul.Radio input
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: incoming publish received
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: outgoing publish sent
2017-02-12 13:36:17 SIRD EG.Paul.Radio input
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: incoming publish received
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: outgoing publish sent
2017-02-12 13:36:17 SIRD EG.Paul.Radio input
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: incoming publish received
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: outgoing publish sent
2017-02-12 13:36:17 SIRD EG.Paul.Radio input
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: incoming publish received
2017-02-12 13:36:17 MQTT_BRIDGE MQTT2_EG.Paul.Radio transmission-state: outgoing publish sent
2017-02-12 13:36:17 SIRD EG.Paul.Radio input


Nach ein paar Minutes hört es wieder auf mit z.B. einer Meldung wie diese und dann kommt eine Meldung nur alle 5 min

2017.02.12 13:02:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:50 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:50 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:50 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:50 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:02:50 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:03:06 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRD.pm line 159.
2017.02.12 13:04:50 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:09:48 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:14:48 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:19:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:24:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:29:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:34:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:39:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:44:49 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume


Wie gesagt, ich habe am Radio während dieses Log voll lief nichts am Radio gemacht.

Nach dem ganzen habe ich dann wieder das Radio benutzt und das ganze ging von vorne los....


2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:20 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:21 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:21 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:21 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume
2017.02.12 13:54:21 2: SIRD UDO set EG.Paul.Radio (192.168.178.34) volume


Zum Nachvollziehen hier meine definizionen aus der fhem.cfg (Hauptinstanz)

define MQTTBroker MQTT localhost:1883
attr MQTTBroker room MQTT
define MQTT_EG.Paul.Radio MQTT_DEVICE
attr MQTT_EG.Paul.Radio IODev MQTTBroker
attr MQTT_EG.Paul.Radio eventMap /on:on/off:off/volume 0:vol_0/volume 20:vol_20/volume 40:vol_40/volume 50:vol_50/volume 75:vol_75/volume 100:vol_100
attr MQTT_EG.Paul.Radio publishSet on off /EG.Paul.Radio/state
attr MQTT_EG.Paul.Radio publishSet_input InternetRadio Spotify MediaPlayer DAB-Radio FM-Radio AUX /EG.Paul.Radio/input
attr MQTT_EG.Paul.Radio publishSet_volume 0 40 50 75 100 /EG.Paul.Radio/volume
attr MQTT_EG.Paul.Radio room MQTT
attr MQTT_EG.Paul.Radio stateFormat power/volume/input
attr MQTT_EG.Paul.Radio subscribeReading_currentTitle /EG.Paul.Radio/currentTitle
attr MQTT_EG.Paul.Radio subscribeReading_infoText /EG.Paul.Radio/infoText
attr MQTT_EG.Paul.Radio subscribeReading_input /EG.Paul.Radio/input
attr MQTT_EG.Paul.Radio subscribeReading_mute /EG.Paul.Radio/mute
attr MQTT_EG.Paul.Radio subscribeReading_power /EG.Paul.Radio/power
attr MQTT_EG.Paul.Radio subscribeReading_presence /EG.Paul.Radio/presence
attr MQTT_EG.Paul.Radio subscribeReading_volume /EG.Paul.Radio/volume
attr MQTT_EG.Paul.Radio webCmd on:off:vol_0:vol_20:vol_40:vol_50:vol_75:vol_100
define MQTT_Sonos_Arbeitszimmer MQTT_DEVICE
attr MQTT_Sonos_Arbeitszimmer IODev MQTTBroker
attr MQTT_Sonos_Arbeitszimmer autoSubscribeReadings /Sonos_Arbeitszimmer/+
attr MQTT_Sonos_Arbeitszimmer eventMap /Play:on/Pause:off/Volume 0:vol_0/Volume 6:vol_6/Volume 10:vol_10/Volume 20:vol_20/Volume 30:vol_30/Volume 40:vol_40/Volume 50:vol_50/StartFavourite SWR3%20Elchradio%2097.5%20(Adult%20Contemporary):SWR3/StartFavourite SWR1%20Baden-Württemberg:SWR1/StartFavourite antenne%201:ant/StartFavourite bigFM%20live:bigFM/StartFavourite Global%20Kryner:Kryn/StartFavourite Es%20werde%20Nicht:Knor/StartFavourite Hit%20Radio%20Ohr:Ohr/StartFavourite Radio%20Swiss%20Jazz:Swiss/StartFavourite Disco%2089:Disco/StartFavourite die%20neue%20welle:welle
attr MQTT_Sonos_Arbeitszimmer publishSet Play Pause MuteT /Sonos_Arbeitszimmer/state
attr MQTT_Sonos_Arbeitszimmer publishSet_Speak /Sonos_Arbeitszimmer/Speak
attr MQTT_Sonos_Arbeitszimmer publishSet_StartFavourite /SWR3/ /SWR1/ /antenne/ /bigFM/ /welle/ /Kryner/ /Es\swerde\sNicht/ /Ohr/ /Radio\sSwiss\sJazz/ /Disco/ /Sonos_Arbeitszimmer/StartFavourite
attr MQTT_Sonos_Arbeitszimmer publishSet_Volume 0 6 10 20 30 40 50 /Sonos_Arbeitszimmer/Volume
attr MQTT_Sonos_Arbeitszimmer room MQTT
attr MQTT_Sonos_Arbeitszimmer stateFormat transmission-state Vol:Volume infoSummarize1
attr MQTT_Sonos_Arbeitszimmer subscribeReading_LastActionResult /Sonos_Arbeitszimmer/LastActionResult
attr MQTT_Sonos_Arbeitszimmer subscribeReading_Speak /Sonos_Arbeitszimmer/Speak
attr MQTT_Sonos_Arbeitszimmer subscribeReading_StartFavourite /Sonos_Arbeitszimmer/StartFavourite
attr MQTT_Sonos_Arbeitszimmer subscribeReading_Volume /Sonos_Arbeitszimmer/Volume
attr MQTT_Sonos_Arbeitszimmer subscribeReading_currentSender /Sonos_Arbeitszimmer/currentSender
attr MQTT_Sonos_Arbeitszimmer subscribeReading_infoSummarize1 /Sonos_Arbeitszimmer/infoSummarize1
attr MQTT_Sonos_Arbeitszimmer subscribeReading_infoSummarize2 /Sonos_Arbeitszimmer/infoSummarize2
attr MQTT_Sonos_Arbeitszimmer subscribeReading_infoSummarize3 /Sonos_Arbeitszimmer/infoSummarize3
attr MQTT_Sonos_Arbeitszimmer subscribeReading_state /Sonos_Arbeitszimmer/state
attr MQTT_Sonos_Arbeitszimmer subscribeReading_transportState /Sonos_Arbeitszimmer/transportState
attr MQTT_Sonos_Arbeitszimmer webCmd on:off:vol_0:vol_6:vol_10:vol_20:vol_30:vol_40:vol_50:SWR3:SWR1:ant:bigFM:Kryn:Knor:Ohr:Swiss:Disco:welle


fhem.cfg (die Instanz in die ich meine Streamingclients (Sonos und SIRD) ausgelagert habe

define MQTT2Broker MQTT localhost:1883
attr MQTT2Broker room MQTT
define MQTT2_EG.Paul.Radio MQTT_BRIDGE EG.Paul.Radio
attr MQTT2_EG.Paul.Radio IODev MQTT2Broker
attr MQTT2_EG.Paul.Radio publishReading_currentTitle /EG.Paul.Radio/currentTitle
attr MQTT2_EG.Paul.Radio publishReading_infoText /EG.Paul.Radio/infoText
attr MQTT2_EG.Paul.Radio publishReading_input /EG.Paul.Radio/input
attr MQTT2_EG.Paul.Radio publishReading_mute /EG.Paul.Radio/mute
attr MQTT2_EG.Paul.Radio publishReading_power /EG.Paul.Radio/power
attr MQTT2_EG.Paul.Radio publishReading_presence /EG.Paul.Radio/presence
attr MQTT2_EG.Paul.Radio publishReading_volume /EG.Paul.Radio/volume
attr MQTT2_EG.Paul.Radio publishState /EG.Paul.Radio/state
attr MQTT2_EG.Paul.Radio room MQTT
attr MQTT2_EG.Paul.Radio stateFormat transmission-state
attr MQTT2_EG.Paul.Radio subscribeSet /EG.Paul.Radio/state
attr MQTT2_EG.Paul.Radio subscribeSet_input /EG.Paul.Radio/input
attr MQTT2_EG.Paul.Radio subscribeSet_volume /EG.Paul.Radio/volume
define MQTT2_Sonos_Arbeitszimmer MQTT_BRIDGE Sonos_Arbeitszimmer
attr MQTT2_Sonos_Arbeitszimmer IODev MQTT2Broker
attr MQTT2_Sonos_Arbeitszimmer publishReading_GroupVolume /Sonos_Arbeitszimmer/GroupVolume
attr MQTT2_Sonos_Arbeitszimmer publishReading_LastActionResult /Sonos_Arbeitszimmer/LastActionResult
attr MQTT2_Sonos_Arbeitszimmer publishReading_SetVolume /Sonos_Arbeitszimmer/SetVolume
attr MQTT2_Sonos_Arbeitszimmer publishReading_Volume /Sonos_Arbeitszimmer/Volume
attr MQTT2_Sonos_Arbeitszimmer publishReading_currentSender /Sonos_Arbeitszimmer/currentSender
attr MQTT2_Sonos_Arbeitszimmer publishReading_infoSummarize1 /Sonos_Arbeitszimmer/infoSummarize1
attr MQTT2_Sonos_Arbeitszimmer publishReading_infoSummarize2 /Sonos_Arbeitszimmer/infoSummarize2
attr MQTT2_Sonos_Arbeitszimmer publishReading_infoSummarize3 /Sonos_Arbeitszimmer/infoSummarize3
attr MQTT2_Sonos_Arbeitszimmer publishReading_transportState /Sonos_Arbeitszimmer/transportState
attr MQTT2_Sonos_Arbeitszimmer publishState /Sonos_Arbeitszimmer/state
attr MQTT2_Sonos_Arbeitszimmer room MQTT
attr MQTT2_Sonos_Arbeitszimmer stateFormat transmission-state
attr MQTT2_Sonos_Arbeitszimmer subscribeSet /Sonos_Arbeitszimmer/state
attr MQTT2_Sonos_Arbeitszimmer subscribeSet_Speak /Sonos_Arbeitszimmer/Speak
attr MQTT2_Sonos_Arbeitszimmer subscribeSet_StartFavourite /Sonos_Arbeitszimmer/StartFavourite
attr MQTT2_Sonos_Arbeitszimmer subscribeSet_Volume /Sonos_Arbeitszimmer/Volume

define EG.Paul.Radio SIRD 192.168.178.34 1234 sird14
attr EG.Paul.Radio event-on-change-reading .*
attr EG.Paul.Radio room Musik
attr EG.Paul.Radio stateFormat power/volume/input
attr EG.Paul.Radio verbose 1

define Sonos SONOS
attr Sonos room Sonos
attr Sonos targetSpeakDir /opt/fhem2/SonosSpeak
attr Sonos targetSpeakFileTimestamp 1
attr Sonos targetSpeakMP3FileDir /opt/fhem2/SonosSpeak
attr Sonos targetSpeakURL \\192.168.178.94\SonosSpeak
define Sonos_Arbeitszimmer SONOSPLAYER RINCON_949F3E19ED8201400_MR
attr Sonos_Arbeitszimmer alias Arbeitszimmer
attr Sonos_Arbeitszimmer generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
attr Sonos_Arbeitszimmer generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
attr Sonos_Arbeitszimmer generateInfoSummarize3 <Volume prefix="Lautstärke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/>
attr Sonos_Arbeitszimmer generateVolumeSlider 1
attr Sonos_Arbeitszimmer getAlarms 1
attr Sonos_Arbeitszimmer group Arbeitszimmer
attr Sonos_Arbeitszimmer icon icoSONOSPLAYER_icon-S12.png
attr Sonos_Arbeitszimmer minVolume 0
attr Sonos_Arbeitszimmer model Sonos_S12
attr Sonos_Arbeitszimmer room Sonos
attr Sonos_Arbeitszimmer sortby 1
attr Sonos_Arbeitszimmer stateVariable Presence
attr Sonos_Arbeitszimmer userReadings Favourites:LastActionResult.*?GetFavouritesWithCovers.* { if (ReadingsVal("Sonos_Arbeitszimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Radios:LastActionResult.*?GetRadiosWithCovers.* { if (ReadingsVal("Sonos_Arbeitszimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, Playlists:LastActionResult.*?GetPlaylistsWithCovers.* { if (ReadingsVal("Sonos_Arbeitszimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }, currentTrackPosition:LastActionResult.*?GetCurrentTrackPosition.* { if (ReadingsVal("Sonos_Arbeitszimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1;; } }
attr Sonos_Arbeitszimmer verbose 3



Das entsteht so viel Traffic, dass damit selbst mein neu eingerichteter Intel NUC in die Knie geht. Weiß jemand Hilfe. Liegt es am SIRD MOdul oder an meiner MQTT Konfiguration?

Danke und Gruß

Udo