fhem mit sonos im docker container Problem

Begonnen von lewej, 27 April 2017, 22:01:53

Vorheriges Thema - Nächstes Thema

AndreM

Zitat von: FunkOdyssey am 17 September 2018, 15:31:49
Ja, ich wollte es aber irgendwann auf fhem/fhem umstellen.
https://github.com/docker-home-automation-stack/fhem-docker?files=1

Schönen Guten Abend,
hat sich hier bereits was getan? Funktioniert Sonos auch mit dem fhem/fhem Dockerimage und wenn ja WIE??  ;D

Schönen Gruß
Andre

AndreM

Hallo zusammen,
nach längerem warten und zögern habe ich jetzt doch nochmal den Versuch unternommen, SOnos in mein fhem/fhem docker container vie sonos container wie hier beschrieben zu implementieren.

Ich betreibe nun den fhem-sonos container und den fhem/fhem container wie folgt.

fhem-sonos:

############################################################################
# FHEM SONOS
#############################################################################

# Image und Version
# Debian --> debian:jessie
# RPi    --> resin/rpi-raspbian:latest
# Ubuntu --> ubuntu:latest
FROM debian:jessie

MAINTAINER Erdmaennchen <ich@welt.com>

############################################################################
# Benutzdefinierte Parameter
############################################################################

# Timezone
ENV TZ="Europe/Berlin"

#F HEM
ENV FHEM_VERSION 5.8

############################################################################
# Laufwerke (docker volume) erstellen
############################################################################

# Dockerfile             Docker volume erstellen
# docker-compose (yml)   Docker volume in container mounten

# VOLUME /my_vol

############################################################################
# Portfreigabe
############################################################################

# host

############################################################################
# Update/Install/Zeitzone
############################################################################

# Standart Pakete installieren
ARG PACKAGE="nano wget git-core curl apt-transport-https usbutils net-tools tar xz-utils"

# set version label
ARG BUILD_DATE
ARG VERSION
LABEL build_version="Version:- ${VERSION} Build-date:- ${BUILD_DATE}"

# Develepor Commands
ARG _clean="cd / && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*"
ARG _apt_clean="eval apt-get clean && $_clean"
ARG _update="eval apt-get update && apt-get upgrade -y --force-yes"
ARG _install="eval apt-get install -y --force-yes"
ARG _deinstall="eval apt-get purge -qq"

# Develepor Parameter
ENV DEBIAN_FRONTEND noninteractive
ENV TERM xterm

# Updates & Dist-Upgrades installieren
RUN $_update && \
apt-get install -y --force-yes --no-install-recommends apt-utils && \
apt-get dist-upgrade -y --force-yes

# Standart Pakete installieren
RUN $_install $PACKAGE

# Zeitzone einstellen
RUN echo ${TZ} > /etc/timezone && dpkg-reconfigure tzdata

############################################################################
# Pakete installieren
############################################################################

# non-free & contrib Quellen hinzufügen (snmp-mibs-downloader)
RUN sed -i "s/$/ contrib non-free/g" etc/apt/sources.list

# Neue Quellen updaten & Install dependencies
RUN $_update && $_install \
perl \
etherwake \
dfu-programmer \
build-essential \
snmpd \
snmp \
snmp-mibs-downloader \
telnet \
sqlite3 \
samba \
samba-common-bin \
lirc

# Install perl packages
RUN $_install \
libavahi-compat-libdnssd-dev \
libalgorithm-merge-perl \
libclass-dbi-mysql-perl \
libclass-isa-perl \
libcommon-sense-perl \
libdatetime-format-strptime-perl \
libdbi-perl \
libdevice-serialport-perl \
libdpkg-perl \
liberror-perl \
libfile-copy-recursive-perl \
libfile-fcntllock-perl \
libio-socket-ip-perl \
libio-socket-ssl-perl \
libjson-perl \
libjson-xs-perl \
libmail-sendmail-perl \
libsocket-perl \
libswitch-perl \
libsys-hostname-long-perl \
libterm-readkey-perl \
libterm-readline-perl-perl \
libwww-perl \
libxml-simple-perl \
libdbd-sqlite3-perl \
libtext-diff-perl \
libsoap-lite-perl \
libxml-parser-lite-perl

# Install für SONOS
#RUN cpan SOAP::Lite

# Install fhem
RUN wget https://fhem.de/fhem-${FHEM_VERSION}.deb && dpkg -i fhem-${FHEM_VERSION}.deb
RUN userdel fhem

WORKDIR "/opt/fhem"

# Update Config kopieren
COPY /data/fhem.cfg.update ./fhem.cfg

# FEHM starten zum Updaten (durch notify in fhem.cfg)
RUN perl fhem.pl fhem.cfg | tee /opt/fhem/log/fhem.log

############################################################################
# CleanUp
############################################################################

RUN $_update && $_apt_clean

############################################################################
# Start-Script
############################################################################

COPY entrypoint.sh /entrypoint.sh
CMD bash /entrypoint.sh


docker-compose.yml (Auschnitte):

############################################################################
# Service: FHEM
############################################################################

    fhem:
        restart: always
        ports:
            - "8083:8083"
            - "7072:7072"
            - "3000:3000"
            - "4711:4711"
            - "1900:1900/udp"
        image: fhem/fhem:latest
        privileged: true
        devices:
            - "/dev/ttyACM0:/dev/ttyACM0"
        volumes:
            - ./fhem/core/:/opt/fhem/
            - /dev/serial/by-id:/dev/serial/by-id

        network_mode: "bridge"

        depends_on:
            - "sonos"

        environment:
            FHEM_UID: 0
            FHEM_GID: 1000
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin


############################################################################
# Service: SONOS
############################################################################
           
    sonos:
        container_name: fhem_sonos
        build: fhem_sonos
        volumes:
            - ./fhem_sonos/entrypoint.sh:/entrypoint.sh
        hostname: fhem_sonos
        network_mode: "host"

networks:
    fhem-network:
            driver: bridge


Im fhem/fhem Container habe ich jetzt in allen Varianten versucht das Sonos device anzulegen:

define Sonos SONOS <IP-Server>:4711 120 10 10
define Sonos SONOS sonos:4711 120 10 10
define Sonos SONOS fhem-sonos:4711 120 10 10
define Sonos SONOS localhost:4711 120 10 10

Hier steht denn je nach Variante mal "open" mal "disconnected"

Im fhem-log steht immer:


2020.07.01 19:09:40 3: Sonos device opened
2020.07.01 19:09:42 5: SONOS0: SetData:Sonos:5:-:syn:::0::
2020.07.01 19:09:42 5: SW: SetData:Sonos:5:-:syn:::0::
2020.07.01 19:09:42 5: SONOS0: Received: 'SetData:Sonos:5:-:syn:::0::'
2020.07.01 19:09:42 5: SONOS0: SetValues:SONOS:disable=0|INTERVAL=120|NAME=Sonos
2020.07.01 19:09:42 5: SW: SetValues:SONOS:disable=0|INTERVAL=120|NAME=Sonos
2020.07.01 19:09:42 5: SONOS0: Received: 'SetValues:SONOS:disable=0|INTERVAL=120|NAME=Sonos'
2020.07.01 19:09:42 5: SW: StartThread
2020.07.01 19:09:42 5: SONOS0: Received: 'StartThread'
2020.07.01 19:09:42 1: SONOS1: UPnP-Thread gestartet.
2020.07.01 19:09:42 4: SONOS1: SONOS_Client_Data_Retreive(SONOS, attr, bookmarkSaveDir, .) -> DEFAULT
2020.07.01 19:09:42 4: SONOS1: Calling SONOS_LoadBookmarkValues("undef", "undef") ~ SaveDir: "."
2020.07.01 19:09:42 1: SONOS2: LongJobs-Thread gestartet. Prüfe auf LongJobs...
2020.07.01 19:09:43 4: SONOS3: SONOS_Client_Data_Retreive(SONOS, def, INTERVAL, 0) -> 120
2020.07.01 19:09:43 1: SONOS3: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 120 Sekunden...
2020.07.01 19:09:43 1: SONOS4: Restore-Thread gestartet. Warte auf Arbeit...



Im fhem-sonos Container habe ich nichts weiter konfiguriert.
Dort erscheint die Fehlermeldung:


2020.07.01 18:45:52.848 0: SONOS0: Retries left (wait 30s): 1
2020.07.01 18:46:22.890 0: SONOS0: Can't bind Port 4711: Bind failed: Address already in use at /opt/fhem/FHEM/00_SONOS.pm line 9870.

2020.07.01 18:46:22.891 0: SONOS0: Retries left (wait 30s): 0
Bind failed... at /opt/fhem/FHEM/00_SONOS.pm line 9879.



  • Wo kann ich jetzt ansetzten zu suche?
  • Habe ich vergessen Einstellungen vorzunehmen?

ch.eick

Zitat von: AndreM am 22 April 2020, 16:08:56
hat sich hier bereits was getan? Funktioniert Sonos auch mit dem fhem/fhem Dockerimage und wenn ja WIE??  ;D
Hallo zusammen,

es ist zwar schon etwas länger her, aber ich schreibe mal trotzdem.

Im Dez./Jan. bin ich auf Docker umgestiegen und habe fhem/fhem als Basis genommen.
Die FHEM Installation habe ich einfach rüber kopiert und dann noch aufgeräumt.
Leider kann ich nicht sagen, ob Sonos sofort wieder lief, da ich zuerst noch folgendes Problem hatte. Ein SMA Energie Manager lief nicht, da die fhem/fhem Installation kein udp zu lies. Das scheint im Docker ein Problem zu sein. Daraufhin musste ich dann mangels weiterer Kenntnisse auf "network_mode host" umstellen, wodurch dann alle Container mit der Host IP erreichbar sind, so wie es vorher bei der Installation ohne Docker ja auch gewesen ist.

Ausschnitte aus der docker-compose.yml

version: '3.3'

networks:
  net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.27.0.0/24

...snip...

  fhem:
    image: fhem/fhem:latest
    restart: always
    network_mode: host
    privileged: true

...snip...

Hierdurch gingen dann die udp Pakete wieder wie vorher auch, was anscheinend dann auch für die SONOS udp Verbindung passend war.
Später habe ich dann auch irgendwann nach Sonos geschaut, aber da lief es bereits schon.
Den separaten Sonos Docker Container habe ich noch nicht getestet.

Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

FunkOdyssey

Offtopic: Denkt daran, dass ihr den Docker-Container und Image löscht und neu anlegen lasst, da es vor wenigen Tagen ein neues Update von Reinerlein gegeben hat.

ch.eick

Zitat von: FunkOdyssey am 02 Juli 2020, 11:44:52
Offtopic: Denkt daran, dass ihr den Docker-Container und Image löscht und neu anlegen lasst, da es vor wenigen Tagen ein neues Update von Reinerlein gegeben hat.
Das habe ich mich bisher noch nicht getraut. Sind dann alle debian Updates drin?


services:
  fhem:
    image: fhem/fhem:latest
    restart: always
    network_mode: host
    privileged: true
#    devices:
#      - "/dev/ttyACM0:/dev/ttyACM0"
    volumes:
      - "./core/:/opt/fhem/"
    environment:
      PIP_PKGS: "vallox_websocket_api fhem"
      CPAN_PKGS: "Crypt::OpenSSL::AES XML::Bare"
      FHEM_UID: 6061
      FHEM_GID: 6061
      TIMEOUT: 10
      RESTART: 1
      TELNETPORT: 7072
      TZ: Europe/Berlin
    depends_on:
      - "mysql"
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

rohlande

#66
Hallo Zusammen,

Ich habe das Problem mit dem aktuellen Docker Container nicht.#Aber die SMB Problematik bekomme ich nicht gelöst. --> einfach auf localhost mappen. dann geht alles.
Ich verwende den Container mit einer MCVLAN auf einer Synology im Portainer. Läuft bisher sehr stabil....
2021.01.06 09:29:07.996 1: SONOS2: LongJobs-Thread gestartet. Prüfe auf LongJobs...

2021.01.06 09:29:08.054 1: SONOS3: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...

2021.01.06 09:29:08.061 2: SONOS1: Discover Sonosplayer 'Wohnzimmer' (S12) Software Revision 12.2.2 with ID 'RINCON_949F3EF627E601400_MR'

2021.01.06 09:29:08.114 1: SONOS4: Restore-Thread gestartet. Warte auf Arbeit...

2021.01.06 09:29:08.998 2: SONOS1: SonosPlayer 'Wohnzimmer' (S12) with ID 'RINCON_949F3EF627E601400_MR' is already defined (as 'Sonos_Wohnzimmer') and will only be updated

2021.01.06 09:29:10.118 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated

2021.01.06 09:29:10.135 2: SONOS1: Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009359

2021.01.06 09:29:10.149 2: SONOS1: Rendering-Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009360

2021.01.06 09:29:10.162 2: SONOS1: GroupRendering-Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009361

2021.01.06 09:29:10.173 2: SONOS1: ContentDirectory-Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009362

2021.01.06 09:29:10.185 2: SONOS1: Alarm-Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009363

2021.01.06 09:29:10.197 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009364

2021.01.06 09:29:10.208 2: SONOS1: DeviceProperties-Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009365

2021.01.06 09:29:10.466 2: SONOS1: MusicServices-Service-subscribing successful with SID=uuid:RINCON_949F3EF627E601400_sub0000009366

2021.01.06 09:29:10.466 3: SONOS1: Discover: End of discover-event for "Wohnzimmer".

2021.01.06 09:29:10.489 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.571 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.581 3: SONOS1: Event: Received GroupRendering-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.581 3: SONOS1: Event: End of GroupRendering-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.592 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.608 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.620 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.629 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.642 3: SONOS1: Event: Received DeviceProperties-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.643 3: SONOS1: Event: End of DeviceProperties-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.655 3: SONOS1: Event: Received MusicServices-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.656 3: SONOS1: Event: End of MusicServices-Event for Zone "Sonos_Wohnzimmer".

2021.01.06 09:29:10.671 3: SONOS1: Event: Received ContentDirectory-Event for Zone "Sonos_Wohnzimmer".


Sieht gut aus und ich kann auch alles, bis auf Sprachausgabe verwenden.
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

Otto123

Hallo Christian,

vielleicht können wir das im passenden Thread machen?
https://forum.fhem.de/index.php?topic=111711.msg1303460#msg1303460

In diesem geht es ja weder um den sonos2mqtt docker container noch um sonos2mqtt sondern um das alte sonos Modul im Docker Container.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ch.eick

Zitat von: Otto123 am 01 April 2024, 11:01:00vielleicht können wir das im passenden Thread machen?
Hallo Otto,
ich habe es gerade umgezogen
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick