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 (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