Autor Thema: Offizielles FHEM Docker Basis Image für verschiedene Plattformen  (Gelesen 324896 mal)

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 912
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1560 am: 25 April 2022, 14:51:00 »
Zitat
Haben wir aber nicht schon mehrfach festgestellt, dass dir dieser Weg kein positives Ergebnis liefern wird? Ist doch der gleiche Weg wie neulich. Wieso sollte da plötzlich ein neues Ergebnis rauskommen?
Weil der Container im docker-Hub wohl offensichtlich aktualisiert wurde. Es lässt sich ja auch im Vergleich zu früher ein neuer Container laden. Vorher wurde ja mit einer Fehlermeldung abgebrochen, jetzt ein Image geladen - offensichtlich ist nur die Frage ob es das richtige Image ist.

Zitat
Nein, ist eben nicht das Gleiche. Liegt daran, wie Docker arbeitet.
Dann erklär mir bitte warum die Container-Station diese Möglichkeit bietet wenn das so am Konzept vorbei ist.


Online Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8694
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1561 am: 25 April 2022, 16:05:36 »
Eigentlich arbeitet Docker in einem Schichtmodel. Ein runtergeladener/Installierter Container dagegen nicht.
Wenn Du also z.B.
Debian
 \- SMTP
 |- FHEM
 |- ....
Wir der Ubuntu teil nur einmal runtergeladen und für FHEM/SMTP/... jeweils nur die Änderungen. Ist eigentlich sogar verschachtelter als hier angedeutet. Mann Sieht diese Teilstücke, wenn man ein "docker pull" macht. Ein runtergeladener Container ist dagegen monolitisch.

Das es Syno einfach anders macht als andere, bedeutet nicht, das es gut ist ......
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 912
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1562 am: 25 April 2022, 16:24:49 »
@Wernieman
Das heißt wenn ich einen Container ziehe, lade ich eigentlich nur einen gewissen Teil - richtig verstanden?

@all
Ich habe es jetzt auch hinbekommen das Image mit der Version Bullseye zu ziehen. Es hat folgendes Erstellungsdatum: 2022/04/24
Offenbar ist in der Container-Station ein Bug, der dazu führt, dass egal was man angibt immer die latest-Version gezogen wird wenn man unter Images ein Image zieht. Wenn man hingegen unter Erstellen nach einem Container sucht und dort auf Installieren klickt, dann kann man die verschiedenen Versionen auswählen und er zieht auch die ausgewählte Version. Dort werden auch alle vier neuen Versionen angezeigt.
In einem daraus erstellen Contaier kann ich dann auch fhem-alexa problemlos installieren. Heißt also erst mal die Daten aus dem alten Server auf den neuen übertragen und dann alles durchprobieren.

Offline LutzG

  • Jr. Member
  • **
  • Beiträge: 53
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1563 am: 25 April 2022, 16:25:53 »
Du kannst davon ausgehen, dass Aktualisierungen in dev-buster zuerst verfügbar sind und erst später in buster bereitgestellt werden.

Also:
 -  fhem/fhem:dev-bullseye (buster) -> eher "testing" / wenn Mal was nicht funktioniert?
 -  fhem/fhem:bullseye (buster) -> produktiver Einsatz?

Noch eine Frage wegen der npm Packete, die ja nicht mehr per Default im Container sind. Ich hab doch etwas Bammel, das produktive System umzustellen.  :-\

Ich verwende nur Alexa, (kein Google / Ikea / Homebridge). Also brauche ich doch für den Container nur:
 -e NPM_PKGS="alexa-fhem alexa-cookie2" #(auf Github steht "alexa-cookie" ohne "2" ?)

Für Alexa verwende ich aber ab und zu "homebridgeMapping", brauche ich dann doch: homebridge, homebridge-fhem? Und ich habe noch "pm2 - 5.2.0", wo ich nicht weiß, ob ich das brauche.

Die kann ich aber sicher weg lassen;
 - gassistant-fhem -> nur für Google?
 - tradfri-fhem -> Ikea?

Vielen Dank für die Geduld! Lutz
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy, Mosquitto (zum testen).
Intranet: E350 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

Online Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8694
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1564 am: 25 April 2022, 16:39:40 »
@Wernieman
Das heißt wenn ich einen Container ziehe, lade ich eigentlich nur einen gewissen Teil - richtig verstanden?

Nein ... wenn Du es komplett lädst, ist es ein monolitischer Block, siehe mein Beitrag
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2738
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1565 am: 25 April 2022, 18:31:21 »
-  fhem/fhem:dev-bullseye (buster) -> eher "testing" / wenn Mal was nicht funktioniert?
 -  fhem/fhem:bullseye (buster) -> produktiver Einsatz?

Könnte man so stehen lassen. Wenn allerdings niemand die dev Tags verwendet, wird auch niemand einen Fehler finden bevor er in die anderen Images wandert :)

Ich verwende nur Alexa, (kein Google / Ikea / Homebridge). Also brauche ich doch für den Container nur:
 -e NPM_PKGS="alexa-fhem alexa-cookie2" #(auf Github steht "alexa-cookie" ohne "2" ?)

Anstelle im Image etwas zu installieren nur weil es geht, kannst Du auch dafür das speziell geschaffene Docker Image verwenden:
https://github.com/fhem/alexa-fhem-docker

Einfach alle Container in das gleiche Netzwerk hängen und gut ist.
So betreibe ich mein FHEM auch. FHEM Container, Alexa-FHEM Container und einen MariaDB Container in einem docker Netzwerk.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Online Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8694
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1566 am: 25 April 2022, 22:26:06 »
Und genau DAS ist der Sinn von Docker. Kleine, Spezielle Container, welche auch (meistens) funktionieren, da genau so getestet
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline LutzG

  • Jr. Member
  • **
  • Beiträge: 53
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1567 am: 26 April 2022, 00:03:07 »
Anstelle im Image etwas zu installieren nur weil es geht, kannst Du auch dafür das speziell geschaffene Docker Image verwenden:
https://github.com/fhem/alexa-fhem-docker

Finde leider keine Anleitung, mit der ich das hin bekomme. :-[
Mein "Test" fhem-Container heißt "fhem2" (Installation hinter 2 Rutern)

Container antwortet auf http (nicht https):
{"header":{"namespace":"Alexa.ConnectedHome.Control","name":"UnsupportedOperationError","payloadVersion":"2","messageId":"f307b220-6454-4952-bf9c-XXXX20e1527"},"payload":{}}
Das Device:
defmod alexa alexa
attr alexa alexaFHEM-auth crypt:5e5dXXXXXXXXX60c545e2419
attr alexa alexaFHEM-config ./alexa-fhem.cfg
attr alexa alexaFHEM-host 172.19.0.2
attr alexa alexaFHEM-log ./log/alexa-%Y-%m-%d.log
attr alexa alexaMapping #Characteristic=<name>=<value>,...\
On=verb=schalte,valueOn=an;;ein,valueOff=aus,valueToggle=um\
\
Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
Hue=verb=stelle,valuePrefix=auf,values=rot:0;;grün:128;;blau:200\
Hue=verb=färbe,values=rot:0;;grün:120;;blau:220\
\
Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER\
Saturation=verb=sättige,values=AMAZON.NUMBER\
\
TargetPosition=verb=mach,articles=den;;die,values=auf:100;;zu:0\
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad\
\
Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
#Weckzeit=verb=stelle,valuePrefix=auf;;für,values=AMAZON.TIME,valueSuffix=uhr
attr alexa alexaTypes #Type=<alias>[,<alias2>[,...]]\
light=licht,lampen\
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
attr alexa devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
attr alexa echoRooms #<deviceId>=<room>\

attr alexa fhemIntents #IntentName=<sample utterance>\
gutenMorgen=guten morgen\
guteNacht=gute nacht
attr alexa persons #<personId>=<name>\

attr alexa stateFormat alexaFHEM

setstate alexa stopped
setstate alexa 2022-04-25 23:39:53 alexaFHEM stopped

Fehlermeldung Portainer - alexa-fhem:
*** FHEM: connection failed: Error: read ECONNRESET
[4/25/2022, 11:32:05 PM] [FHEM2] trying longpoll to listen for fhem events
[4/25/2022, 11:32:05 PM] [FHEM2] starting longpoll: http://fhem2:8083/fhem2?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1650922325686
[4/25/2022, 11:32:05 PM] [FHEM2] longpoll error: Error: read ECONNRESET, retry in: 30000msec
*** FHEM: connection failed: Error: read ECONNRESET
[4/25/2022, 11:32:31 PM] >>>> [srv]
[4/25/2022, 11:32:31 PM] ERROR: SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Server.processBody (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:327:26)
    at Server.<anonymous> (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:338:33)
    at IncomingMessage.emit (events.js:412:35)
    at endReadableNT (internal/streams/readable.js:1334:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) from ::ffff:192.168.5.110
[4/25/2022, 11:32:31 PM] <<<< [srv] {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"UnsupportedOperationError","payloadVersion":"2","messageId":"f307b220-6454-4952-bf9c-XXXXXXX527"},"payload":{}}
[4/25/2022, 11:32:35 PM] [FHEM2] trying longpoll to listen for fhem events
[4/25/2022, 11:32:35 PM] [FHEM2] starting longpoll: http://fhem2:8083/fhem2?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1650922355702
[4/25/2022, 11:32:35 PM] [FHEM2] longpoll error: Error: read ECONNRESET, retry in: 30000msec
*** FHEM: connection failed: Error: read ECONNRESET
[4/25/2022, 11:33:05 PM] [FHEM2] trying longpoll to listen for fhem events
[4/25/2022, 11:33:05 PM] [FHEM2] starting longpoll: http://fhem2:8083/fhem2?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1650922385717
[4/25/2022, 11:33:05 PM] [FHEM2] longpoll error: Error: read ECONNRESET, retry in: 30000msec

Fehlermeldung Portainer - fhem2:
2022.04.25 23:40:06.025 1: FHEMWEB SSL/HTTPS error:  SSL accept attempt failed error:1408F09C:SSL routines:ssl3_get_record:http request (peer: 172.19.0.2)
2022.04.25 23:40:13.019 3: alexa: using ssh cmd /usr/bin/ssh 172.19.0.2
ssh: connect to host 172.19.0.2 port 22: Connection refused
ssh: connect to host 172.19.0.2 port 22: Connection refused
2022.04.25 23:40:13.101 2: alexa: starting alexa-fhem: /usr/bin/ssh 172.19.0.2  -c /tmp/alexa-fhem.cfg -a xx:xx -s
2022.04.25 23:40:13.107 3: alexa: starting
2022.04.25 23:40:13.119 3: alexa: using logfile: ./log/alexa-2022-04-25.log
2022.04.25 23:40:13.131 3: alexa: read: end of file reached while sysread
2022.04.25 23:40:13.132 3: alexa: stopped
2022.04.25 23:40:33.013 3: alexa: using ssh cmd /usr/bin/ssh 172.19.0.2
ssh: connect to host 172.19.0.2 port 22: Connection refused

Fehlermeldung alexaFHEMlog:
*** CONFIG: parsed completely
[25/04/2022, 22.23.09] os.homedir()=/opt/fhem
[25/04/2022, 22.23.09] this is alexa-fhem 0.5.62
[25/04/2022, 22.23.09] connecting to FHEM ...
[25/04/2022, 22.23.09] [FHEM] defaults to: will not send proactive events
[25/04/2022, 22.23.09] [FHEM] trying longpoll to listen for fhem events
[25/04/2022, 22.23.09] [FHEM] starting longpoll: https://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1650918189949
[25/04/2022, 22.23.10] [FHEM] got csrfToken: csrf_549770843262937
[25/04/2022, 22.23.10] [FHEM] Checking devices and attributes...
[25/04/2022, 22.23.10] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&fwcsrf=csrf_549770843262937&XHR=1
[25/04/2022, 22.23.10] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&fwcsrf=csrf_549770843262937&XHR=1
[25/04/2022, 22.23.10] [FHEM] waiting for events ...
[25/04/2022, 22.23.10] [FHEM] Fetching FHEM devices...
[25/04/2022, 22.23.10] [FHEM] fetching: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName%3D..*&fwcsrf=csrf_549770843262937&XHR=1
[25/04/2022, 22.23.10] [FHEM] longpoll ended, reconnect in: 200msec
[25/04/2022, 22.23.10] [FHEM] There was a problem connecting to FHEM (https://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&fwcsrf=csrf_549770843262937&XHR=1).
[25/04/2022, 22.23.10] [FHEM]   401: Authorization Required
[25/04/2022, 22.23.10] [FHEM] There was a problem connecting to FHEM (https://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&fwcsrf=csrf_549770843262937&XHR=1).
[25/04/2022, 22.23.10] [FHEM]   401: Authorization Required
[25/04/2022, 22.23.10] [FHEM] There was a problem connecting to FHEM (null)
[25/04/2022, 22.23.10] [FHEM]   401: Authorization Required
*** FHEM: connection failed: 401: Authorization Required
[25/04/2022, 22.23.10] Got SIGTERM, shutting down alexa-fhem...
[25/04/2022, 22.23.10] Reading alexaFHEM.ProxyConnection set to stopping;; alexa-fhem terminating
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'
Unknown cipher type '/tmp/alexa-fhem.cfg'

Seit 17 Uhr übe ich mit "alexa-fhem-docker". Das funktioniert ziemlich leicht schnell...   ???
-e NPM_PKGS="alexa-fhem alexa-cookie2"
Edit:
Die IP's:
172.19.0.2 alexa-fhem
172.19.0.3 fhem
« Letzte Änderung: 26 April 2022, 00:31:29 von LutzG »
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy, Mosquitto (zum testen).
Intranet: E350 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2738
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1568 am: 26 April 2022, 08:16:46 »
Finde leider keine Anleitung, mit der ich das hin bekomme. :-[
Mein "Test" fhem-Container heißt "fhem2" (Installation hinter 2 Rutern)

Fehlermeldung Portainer - alexa-fhem:
*** FHEM: connection failed: Error: read ECONNRESET
[4/25/2022, 11:32:05 PM] [FHEM2] trying longpoll to listen for fhem events
[4/25/2022, 11:32:05 PM] [FHEM2] starting longpoll: http://fhem2:8083/fhem2?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1650922325686
[4/25/2022, 11:32:05 PM] [FHEM2] longpoll error: Error: read ECONNRESET, retry in: 30000msec
*** FHEM: connection failed: Error: read ECONNRESET
[4/25/2022, 11:32:31 PM] >>>> [srv]
[4/25/2022, 11:32:31 PM] ERROR: SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Server.processBody (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:327:26)
    at Server.<anonymous> (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:338:33)
    at IncomingMessage.emit (events.js:412:35)
    at endReadableNT (internal/streams/readable.js:1334:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) from ::ffff:192.168.5.110


Edit:
Die IP's:
172.19.0.2 alexa-fhem
172.19.0.3 fhem

Bei mir ist es schon eine Weile her, allerdings kann ich mich an keine größeren Probleme erinnern.
Eventuell erlaubt dein fhemweb den Zugriff nicht. Ich habe für den Zugriff von z.B. alexa-fhem ein eigenes FHEMWEB definiert in dem über das Attribut allowfrom definiert ist, wer es nutzen darf.

Hier ein Beispiel:
defmod WEBapi FHEMWEB 8088 global
attr WEBapi allowfrom localhost|alexa-fhem
attr WEBapi csrfToken none
attr WEBapi editConfig 0
attr WEBapi longpoll websocket
attr WEBapi room system
attr WEBapi title FHEM Web API
attr WEBapi verbose 3

Da laut deinen Fehlermerldungen ein Zugriff auf http://fhem2:8083/ nicht möglich ist, könnte es an der Erlaubnis liegen.
Was ich allerdings auch seltsam finde ist dass der Zugriff auf den Pfad /fhem2 versucht wird.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa
Zustimmung Zustimmung x 1 Liste anzeigen

Offline LutzG

  • Jr. Member
  • **
  • Beiträge: 53
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1569 am: 27 April 2022, 00:10:39 »
Eventuell erlaubt dein fhemweb den Zugriff nicht.
[...]

Hier ein Beispiel:
defmod WEBapi FHEMWEB 8088 global
attr WEBapi allowfrom localhost|alexa-fhem
[...]
Damit bekomme ich auch keine Verbindung.  :(

Was ich allerdings auch seltsam finde ist dass der Zugriff auf den Pfad /fhem2 versucht wird.

Wenn der alexa-fhem Container "neu" startet (config gelöscht), kommt der Log in Portainer:
*** FHEM: connection failed: Error: getaddrinfo ENOTFOUND fhem
[4/26/2022, 11:17:33 PM] [FHEM] trying longpoll to listen for fhem events
[4/26/2022, 11:17:33 PM] [FHEM] starting longpoll: http://fhem:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1651007853119

Auf "fhem:8083" kann er den Container nicht finden, meiner heißt fhem2. Ich vermute "ENOTFOUND" weißt darauf hin? Darum habe ich in der:
...../Docker/volumes/alexa-fhem/_data/config.json
   [...]
  },
  "connenctions" [
   [...]
   "server": "fhem" #-> in fhem2 geändert
  ]

Dann ändert sich der Log:
*** FHEM: connection failed: Error: read ECONNRESET
[4/26/2022, 11:25:49 PM] [FHEM] trying longpoll to listen for fhem events
[4/26/2022, 11:25:49 PM] [FHEM] starting longpoll: http://fhem2:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1651008349179
[4/26/2022, 11:25:49 PM] [FHEM] longpoll error: Error: read ECONNRESET, retry in: 30000msec

Ping fhem2 funktioniert in der Portainer-Console vom alexa-fhem Container.

Den Container "fhem2" verwende ich, damit er die Anwesenheit der Rechner/Drucker außerhalb der DMZ an meinen "Haupt-fhem-server" in der DMZ meldet. Darum möchte ich ihn auch nicht umbenennen. Kann sein, dass ich da was verstellt habe.  ???

Ich werd mal die nächste Zeit auf einem nicht verwendetem Raspi mit den Containern rum spielen und die Default-Namen lassen. Vielleicht auch mit Docker Compose das "nachvollziehbarer" installieren - muss ich auch erst Mal noch lesen...

Vielen Dank erst Mal für die Hilfe!

Herzliche Grüße, Lutz

Edit:
Nicht daran gedacht, der Container ist noch "fhem/fhem:latest" von "2020-08-03" den ich bis jetzt mit "apt-get update && apt-get upgrade ..." aktualisiert habe.
« Letzte Änderung: 27 April 2022, 01:35:28 von LutzG »
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy, Mosquitto (zum testen).
Intranet: E350 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2738
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1570 am: 27 April 2022, 22:12:56 »
Ich werd mal die nächste Zeit auf einem nicht verwendetem Raspi mit den Containern rum spielen und die Default-Namen lassen. Vielleicht auch mit Docker Compose das "nachvollziehbarer" installieren - muss ich auch erst Mal noch lesen...


1. Ich habe jetzt folgendes gemacht, dauer ca. 10 Minuten:

docker-compose.yml angelegt und darin ein Netzwerk "test_net" und zwei Services "fhem2" und "alexa-fhem2" definiert:

version: '2.3'

networks:
  test_net:
    driver: bridge
    # enable_ipv6: true
    ipam:
      driver: default
      config:
        - subnet: 172.28.0.0/28
          gateway: 172.28.0.1
        # - subnet: fd00:0:0:0:27::/80
        #   gateway: fd00:0:0:0:27::1

services:

  ####
  # HINT: use only ONE of the example "fhem:" service
  # definitions below !
  #

  # Minimum example w/o any custom environment variables
  fhem2:
    image: ghcr.io/fhem/fhem/fhem-docker:bullseye
    restart: always
    networks:
      - test_net
    ports:
      - "18083:8083"
    volumes:
      - "./fhem/:/opt/fhem/"
  alexa-fhem2:
    image: ghcr.io/fhem/fhem/alexa-fhem:2
    restart: always
    networks:
     - test_net
    ports:
      - "13000:3000"
    volumes:
      - "./alexa-fhem/:/alexa-fhem/"
    environment:
      ALEXAFHEM_UID: 6062
      ALEXAFHEM_GID: 6062
      TZ: Europe/Berlin

2. Dann habe ich die Container gestartet und den von dir besagten Fehler erhalten:

alexa-fhem2_1  | [4/27/2022, 10:01:50 PM] [FHEM] starting longpoll: http://fhem:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1651089710257
alexa-fhem2_1  | [4/27/2022, 10:01:50 PM] [FHEM] longpoll error: Error: getaddrinfo ENOTFOUND fhem, retry in: 20000msec
alexa-fhem2_1  | *** FHEM: connection failed: Error: getaddrinfo ENOTFOUND fhem

3. In xx den servernamen auf fhem2 angepasst.

  "connections": [
    {
      "name": "FHEM",
      "webname": "fhem",
      "filter": "alexaName=..*",
      "uid": "6062",
      "port": "8083",
      "server": "fhem2"
    }
  ]

4. Den Service "alexa-fhem" neu geartet, damit die aktualisierte Konfigurartion geladen wird:


alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] trying longpoll to listen for fhem events
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] starting longpoll: http://fhem2:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1651089858202
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] Server listening on: http://:::3000 for direct connections
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] got csrfToken: csrf_772725298117442
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] Checking devices and attributes...
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM]   executing: http://fhem2:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&fwcsrf=csrf_772725298117442&XHR=1
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM]   executing: http://fhem2:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&fwcsrf=csrf_772725298117442&XHR=1
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] waiting for events ...
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] Fetching FHEM devices...
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] fetching: http://fhem2:8083/fhem?cmd=jsonlist2%20alexaName%3D..*&fwcsrf=csrf_772725298117442&XHR=1
alexa-fhem2_1  | [4/27/2022, 10:04:18 PM] [FHEM] no alexa device found. please define it.

Verbindung steht von alexa-fhem container zum fhem container.

Fhemweb entspricht hier dem default:
defmod WEB FHEMWEB 8083 global

So funktioniert es. Portainer nutze ich nicht, aber dort kannst Du bestimmt auch docker-compose hinterlegen
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline LutzG

  • Jr. Member
  • **
  • Beiträge: 53
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1571 am: 28 April 2022, 01:12:27 »
1. Ich habe jetzt folgendes gemacht, dauer ca. 10 Minuten:

Ich übe schon den ganzen Tag... :o  Ganz, ganz lieben Dank!  :)

Fehlermeldungen sind weg, ich musste aber noch:
define alexa alexa
attr alexa alexaFHEM-host 172.28.0.3

sonst war das npm Packet: "alexa-fhem" nicht installiert.

Laut: https://wiki.fhem.de/wiki/FHEM_Connector_für_Amazon_Alexa, soll bei der Definition des alexa-Device ein " SSH-Key", "Secret-Key", ... erzeugt werden. Kann es sein, weil bei mir schon Alexa läuft, dass eine Anmeldung an eurem Server nicht (noch Mal) möglich ist?
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy, Mosquitto (zum testen).
Intranet: E350 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

Offline HansDampfHH

  • Full Member
  • ***
  • Beiträge: 444
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1572 am: 13 Mai 2022, 13:34:42 »
Moin, habe mich auch versucht meine aktuelle FHEM Installation in einen Docker-Container zu ziehen.
Das hat bisher sehr gut funktioniert. Im Moment hänge ich bei alexa-fhem fest.

Erster Versuch war es das Package per npm im Container zu installieren. Grundsätzlich ging das.
Das ganze per Environment-Variable automatisch zu installieren hat dann aber nicht mehr funktioniert.

Also bin ich über den Hinweis hier im Thread auf den alexa-fhem Container übergegangen.
Leider funktioniert das bei mir bisher nicht so ohne Probleme. Wäre dankbar für Hinweise wo das Problem steckt.

--------------------------------------------------------------------------------------------------
Alternativ die Frage, warum ich "alexa-fhem" nicht per environment in docker-compose mit NPM_PKGS="alexa-fhem" installiert bekomme?
Zumindest quittiert das Device nach einem Recreate des Containers mit "alexa-fhem not installed. install with 'sudo npm install -g alexa-fhem'".

EDIT: Die Option über die Umgebungsvariable NPM_PKGS funktioniert mittlerweile. Von daher hätte ich eine funktionierende Option.
Aber grundsätzlich habe ich eigentlich Interesse daran alexa-fhem in einem eigenen Container laufen zu lassen.
--------------------------------------------------------------------------------------------------

Aktueller Stand. Hier ein Define und List vom Device:
define Alexa alexa
attr Alexa alexaFHEM-config ./alexa-fhem.cfg
attr Alexa alexaFHEM-host alexa-fhem [ALTERNATIV die ip, gleicher Fehler]
attr Alexa alexaFHEM-log %L/alexa-%Y-%m-%d.log
attr Alexa alexaMapping #Characteristic=<name>=<value>,...\
attr Alexa alexaTypes #Type=<alias>[,<alias2>[,...]]\
attr Alexa devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
attr Alexa echoRooms #<deviceId>=<room>\
attr Alexa fhemIntents #IntentName=<sample utterance>\
attr Alexa persons #<personId>=<name>\
attr Alexa stateFormat alexaFHEM

Internals:
   FUUID      627e2c34-aaaa-bbbb-0cc6-f4b4e506e5205769
   FVERSION   39_alexa.pm:0.238200/2021-02-24
   LAST_START 2022-05-13 13:29:46
   LAST_STOP  2022-05-13 13:29:46
   NAME       Alexa
   NOTIFYDEV  global,global:npmjs.*alexa-fhem.*
   NR         311
   NTFY_ORDER 50-Alexa
   PARTIAL   
   STARTS     2
   STATE      stopped
   TYPE       alexa
   active     0
   alexa-fhem version 0.5.61
   logfile    %L/alexa-%Y-%m-%d.log
   CoProcess:
     cmdFn      alexa_getCMD
     name       alexaFHEM
     state      stopped
   READINGS:
     2022-05-13 13:29:46   alexaFHEM       stopped
     2022-05-13 12:00:20   alexaFHEM.bearerToken crypt:7b7374....01070d5556
     2022-05-13 12:00:20   alexaFHEM.skillRegKey crypt:7a0370240f0e205e1....57708737650780d555f0653
   helper:
Attributes:
   alexaFHEM-config ./alexa-fhem.cfg
   alexaFHEM-host 172.29.0.2
   alexaFHEM-log %L/alexa-%Y-%m-%d.log

Hier der Ausschnit des FHEM-Logfiles:
2022.05.13 12:39:39.019 3: Alexa: using ssh cmd /usr/bin/ssh 172.29.0.2
ssh: connect to host 172.29.0.2 port 22: Connection refused
ssh: connect to host 172.29.0.2 port 22: Connection refused
2022.05.13 12:39:39.073 2: Alexa: starting alexa-fhem: /usr/bin/ssh 172.29.0.2  -c /tmp/alexa-fhem.cfg
2022.05.13 12:39:39.080 3: Alexa: starting
2022.05.13 12:39:39.090 3: Alexa: using logfile: /opt/fhem/log/alexa-2022-05-13.log
2022.05.13 12:39:39.108 3: Alexa: read: end of file reached while sysread
2022.05.13 12:39:39.109 3: Alexa: stopped

Und hier das Alexa-Logfile. Den Fehler mit dem Cipher findet man 1-2 mal hier im Thread/Forum aber leider keine für mich ersichtliche Lösung.
(Die ganzen Devices habe ich mal weggelassen)
[13/05/2022, 11.06.24] using config from ./alexa-fhem.cfg
*** CONFIG: parsed completely
[13/05/2022, 11.06.24] os.homedir()=/opt/fhem
[13/05/2022, 11.06.24] this is alexa-fhem 0.5.62
[13/05/2022, 11.06.24] connecting to FHEM ...
[13/05/2022, 11.06.24] [FHEM] defaults to: will not send proactive events
[13/05/2022, 11.06.24] [FHEM] trying longpoll to listen for fhem events
[13/05/2022, 11.06.24] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1652432784525
[13/05/2022, 11.06.24] [FHEM] got csrfToken: qBZXcla2WrxRAYM5Gf
[13/05/2022, 11.06.24] [FHEM] Checking devices and attributes...
[13/05/2022, 11.06.24] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&fwcsrf=qBZXcla2WrxRAYM5Gf&XHR=1
[13/05/2022, 11.06.24] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&fwcsrf=qBZXcla2WrxRAYM5Gf&XHR=1
[13/05/2022, 11.06.24] [FHEM] waiting for events ...
[13/05/2022, 11.06.24] [FHEM] Fetching FHEM devices...
[13/05/2022, 11.06.24] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName%3D..*&fwcsrf=qBZXcla2WrxRAYM5Gf&XHR=1
[13/05/2022, 11.06.24] [FHEM] alexa device is Alexa
[13/05/2022, 11.06.24] [FHEM] mappings for Alexa: {}
[13/05/2022, 11.06.24] [FHEM] Alexa will not send proactive events
[13/05/2022, 11.06.24] [FHEM] Alexa uses ID: 62769401-f33f-xxxx-xxxx-bcebc6b5f872947c
[13/05/2022, 11.06.24] Server listening on: http://127.0.0.1:41595 for proxy connections
[13/05/2022, 11.06.24] *** SSH: checking proxy configuration
[13/05/2022, 11.06.24] sshautoconf: home=/opt/fhem, spath=/opt/fhem/.alexa, cpath=./alexa-fhem.cfg, sshpath=/opt/fhem/.ssh
[13/05/2022, 11.06.24] Passed config: {
  sshproxy: {
    description: 'FHEM Connector',
    ssh: '/usr/bin/ssh',
    options: [ '-i', '/opt/fhem/.ssh/id_rsa', '-p', 58824, 'fhem-va.fhem.de' ],
    'bind-ip': '127.0.0.1',
    server: Server {
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      _connections: 0,
      _handle: [TCP],
      _usingWorkers: false,
      _workers: [],
      _unref: false,
      allowHalfOpen: true,
      pauseOnConnect: false,
      httpAllowHalfOpen: false,
      timeout: 0,
      keepAliveTimeout: 5000,
      maxHeadersCount: null,
      headersTimeout: 60000,
      requestTimeout: 0,
      _connectionKey: '4:127.0.0.1:0',
      [Symbol(IncomingMessage)]: [Function: IncomingMessage],
      [Symbol(ServerResponse)]: [Function: ServerResponse],
      [Symbol(kCapture)]: false,
      [Symbol(async_id_symbol)]: 90
    }
  },
  connections: [
    {
      port: 8083,
      server: '127.0.0.1',
      filter: 'alexaName=..*',
      webname: 'fhem',
      uid: 6061,
      name: 'FHEM'
    }
  ]
}
[13/05/2022, 11.06.24] sshautoconf: SSH key seems to exist
[13/05/2022, 11.06.25] sshautoconf: Our SSH key is known at the reverse proxy, good!
[13/05/2022, 11.06.25] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7B%22Alexa%22%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bjsonlist2%20Alexa%3B%7B%24defs%7B%22Alexa%22%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&fwcsrf=qBZXcla2WrxRAYM5Gf&XHR=1
[13/05/2022, 11.06.25] BearerToken '...44977' read from Alexa
[13/05/2022, 11.06.25] 39_alexa.pm is new version: true
[13/05/2022, 11.06.25] sshautoconf: completed successfully
[13/05/2022, 11.06.25] *** SSH: proxy configuration set up done
[13/05/2022, 11.06.25] Reading alexaFHEM.ProxyConnection set to starting;; starting SSH
[13/05/2022, 11.06.25] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7B%22Alexa%22%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20Alexa%20alexaFHEM.ProxyConnection%20starting%3B%3B%20starting%20SSH%3B%7B%24defs%7B%22Alexa%22%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&fwcsrf=qBZXcla2WrxRAYM5Gf&XHR=1
[13/05/2022, 11.06.25] Starting SSH with -R 1234:127.0.0.1:41595 -oServerAliveInterval=90 -i /opt/fhem/.ssh/id_rsa -p 58824 fhem-va.fhem.de
*** FHEM: connected
[13/05/2022, 11.06.25] [FHEM] got: 26 results
[13/05/2022, 11.06.25] [FHEM] Structure.Tischlampen is scene
[13/05/2022, 11.06.25] [FHEM] Structure.Tischlampen has
[13/05/2022, 11.06.25] [FHEM]   On [state;on,off]
[13/05/2022, 11.06.25] [FHEM] Structure.Tischlampen will not send proactive events
[13/05/2022, 11.06.25] [FHEM] Structure.Tischlampen uses ID: 6278ac15-f33f-f519-a25c-169ff81c57986934
  2022-05-13 11:06:25 caching: Structure.Tischlampen-state: off
[13/05/2022, 11.06.26] Reading alexaFHEM.ProxyConnection set to running;; SSH connected
[13/05/2022, 11.06.26] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7B%22Alexa%22%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20Alexa%20alexaFHEM.ProxyConnection%20running%3B%3B%20SSH%20connected%3B%7B%24defs%7B%22Alexa%22%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&fwcsrf=qBZXcla2WrxRAYM5Gf&XHR=1
[13/05/2022, 11.06.26] *** SSH: proxy connection established
[13/05/2022, 11.06.26] SSH: Welcome at the reverse proxy!  This pseudoshell does not react to any input - do not get irritated.
Unknown cipher type '/tmp/alexa-fhem.cfg'




« Letzte Änderung: 14 Mai 2022, 18:08:05 von HansDampfHH »
FHEM auf Debian Buster, Intel NUC, CUL433, CUL868, Zigbee, CCU2, Jeelink

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2738
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1573 am: 13 Mai 2022, 16:49:25 »
Hallo Lutz,

du hast Dem Alexa Modul mitgegeben, dass es sich mit dem Container per SSH verbinden soll

attr Alexa alexaFHEM-host 172.29.0.2
Du hast aber keine Credentials eingerichtet, damit das anmelden dort klappt.
Du kannst das Attribut entfernen, dann wird nicht mehr versucht per SSH in den alexa-fhem-container zu verbinden.

Ansonsten wäre es prima, wenn die Zeitstempel der Logfiles zueinander passen.


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline LutzG

  • Jr. Member
  • **
  • Beiträge: 53
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1574 am: 14 Mai 2022, 00:33:20 »
Hallo Sidey,

du hast Dem Alexa Modul mitgegeben, dass es sich mit dem Container per SSH verbinden soll

attr Alexa alexaFHEM-host 172.29.0.2
Du hast aber keine Credentials eingerichtet, damit das anmelden dort klappt.
Mit den "Credentials", da weiß ich jetzt nicht, was ich wo einrichten soll.  :-\

Ich hatte deine "docker-compose.yml" auf einem Testsystem installiert aber ohne den Eintrag, hatten die Container Probleme sich zu finden und im alexa-Modul war die Meldung dass "alexa-fhem" nicht installiert ist. So hatte ich es aus den Log-Datein gemeint zu verstehen. Aber nachdem ich die Amazon-Anmeldeseite nicht bekommen habe, habe ich mich nicht mehr getraut, mein Produktivsystem umzustellen. Die Einrichtung von alexa hatte damals auch nicht auf Anhieb funktioniert, dass war mir dann zu heiß.  :-\

Ich habe dann nur den Container gewechselt von:
fhem/fhem:latest --> ghcr.io/fhem/fhem/fhem-docker:bullseye
und die "Environment variables" gesetzt:
NPM_PKGS --> alexa-fhem alexa-cookie2 homebridge
für den Presence Container:
fhem/fhem:latest --> ghcr.io/fhem/fhem/fhem-minimal-docker:bullseye
danach liefen die Container wieder.

Ansonsten wäre es prima, wenn die Zeitstempel der Logfiles zueinander passen.

Das verstehe ich jetzt nicht. Holen sich die Container nicht die Zeit vom Wirt? Die SD-Karte hab ich leider schon wieder platt gemacht. ::)

Grüße Lutz
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy, Mosquitto (zum testen).
Intranet: E350 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.