ringdoorbell etc. - mqtt

Begonnen von brain666, 21 April 2022, 13:26:07

Vorheriges Thema - Nächstes Thema

Damian

So, ich bin jetzt einen Schritt weiter. Es war wohl nicht die neuste Node-Version installiert. Mit Node 16 kann ich nun den Key mit init-ring-mqtt.js erstellen. ring-mqtt.js bricht aber beim Starten ab:

fhem@raspberrypi:/opt/ring-mqtt$ /usr/bin/node /opt/ring-mqtt/ring-mqtt.js
Error [ERR_REQUIRE_ESM]: require() of ES Module /opt/ring-mqtt/node_modules/is-online/index.js from /opt/ring-mqtt/lib/main.js not supported.
Instead change the require of index.js in /opt/ring-mqtt/lib/main.js to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> (/opt/ring-mqtt/lib/main.js:10:18)
    at Object.<anonymous> (/opt/ring-mqtt/ring-mqtt.js:2:1) {
  code: 'ERR_REQUIRE_ESM'
}

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

JF Mennedy

Zitat von: pflock_y am 04 Juni 2022, 07:14:26
Moin,
Ich hatte mich erst einmal mit der docker Methode beschäftigt, will aber leider nicht so richtig.
Ich werde mir mal die manuelle Sachen anschauen. Mal sehen wie weit ich da komme.

vg
pflock_y

Der Docker läuft bei mir eigentlich recht problemlos. FHEM läuft ebenfalls im Docker. Ich hatte anfangs ganz andere Probleme, die ich in einem anderem Thread thematisert habe:
Zitat von: JF Mennedy am 29 Juli 2022, 12:40:57
Hallo,

das Thema ist zwar schon etwas älter, ich habe aber vor kurzem ring-mqtt ausprobiert und finde es eigentlich sehr gut, da ich hierbei die Möglichkeit habe die Location (arm-away, arm-home, disarm) bei Ring zu verändern, was z.B bei fhempy oder anderen Ring-Lösungen nicht geht.

Ich habe 2 Ring Türklingeln und 1 Ring Chime sowie die Location in FHEM als MQTT2 Devices eingebunden. Im MQTT2-Server ist für meine FHEM Instanz eine feste ClientID vergeben.

Soweit so gut, aber ich habe exreme Schwierigkeiten mit meinen beiden Klingel. Diese laufen einige Tage problemlos, und irgendwann fangen sie an mein Log (in Verbose 5) mit folgenden Meldungen zu befüllen:


2022.07.28 21:55:12.281 1: ERROR evaluating my $CID=   $evalSpecials->{'%CID'};my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $EVTPART2=   $evalSpecials->{'%EVTPART2'};my $EVTPART3=   $evalSpecials->{'%EVTPART3'};my $EVTPART4=   $evalSpecials->{'%EVTPART4'};my $EVTPART5=   $evalSpecials->{'%EVTPART5'};my $EVTPART6=   $evalSpecials->{'%EVTPART6'};my $EVTPART7=   $evalSpecials->{'%EVTPART7'};my $EVTPART8=   $evalSpecials->{'%EVTPART8'};my $EVTPART9=   $evalSpecials->{'%EVTPART9'};my $JSONMAP=   $evalSpecials->{'%JSONMAP'};my $NAME=   $evalSpecials->{'%NAME'};my $TOPIC=   $evalSpecials->{'%TOPIC'};{return undef; { $TOPIC =~ m,$DEVICETOPIC\/.*\/([a-zA-Z\-_]+),; $1 eq 'ips'? {"ip4"=> (split ',',$EVENT)[0]}:{"$1"=>$EVENT} }}: Global symbol "$DEVICETOPIC" requires explicit package name (did you forget to declare "my $DEVICETOPIC"?) at (eval 55982946) line 1.

2022.07.28 21:55:12.281 3: Global symbol "$DEVICETOPIC" requires explicit package name (did you forget to declare "my $DEVICETOPIC"?) at (eval 55982946) line 1.


Nach einem Neustart von FHEM werden die Readings der beiden Klngeln nicht mehr aktualisiert, das Chime Device sowie Location Device gehen immer noch problemlos. Im MQTT-Explorer kommen aber immer noch munter alle Aktualisierungen der jeweiligen Topics an...

Nach Löschen und Neuanlgen der beiden Devices funktionieren sie wieder für ein paar Tage, bis spätestens FHEM zu BackUp-Zwecken wöchentlich heruntergefahren und neugestartet wird.

Mir ist auch aufgefallen, dass das erstellen des Snaphotes jeweils 2 mal im Millisekundenbereich folgenden Log-Eintrag erstellt:


2022.07.28 00:00:03.517 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/image => snapshotImage
2022.07.28 00:00:03.565 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/attributes => { json2nameValue($EVENT,'',$JSONMAP) }
2022.07.28 00:00:03.608 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/image => snapshotImage
2022.07.28 00:00:03.651 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/attributes => { json2nameValue($EVENT,'',$JSONMAP) }
2022.07.28 00:00:32.807 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/image => snapshotImage
2022.07.28 00:00:32.849 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/attributes => { json2nameValue($EVENT,'',$JSONMAP) }
2022.07.28 00:00:32.874 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/image => snapshotImage
2022.07.28 00:00:32.921 4: MQTT2_DEVICE_Parse: MQTT2_RING_HAUSTUER ring/u0u4dz-vm-0/camera/083a882690cc/snapshot/attributes => { json2nameValue($EVENT,'',$JSONMAP) }


Ich habe jetzt mal das Intervall von 30 Sekunden auf 10 Minuten abgehoben... Das Reading des Images ist eine Rohdatei, die aussieht wie die Karte bei Valetudo, vielleicht macht das ja auch Probleme

Anbei noch die Lists der jeweiligen Devices:

Chime:

Internals:
   CID        FHEM-MARDELLE5
   DEF        FHEM-MARDELLE5
   FUUID      62a86817-f33f-8cc0-87b8-182c3877bd411c96
   FVERSION   10_MQTT2_DEVICE.pm:0.258890/2022-03-27
   IODev      MQTT2_SERVER
   LASTInputDev MQTT2_SERVER
   MQTT2_SERVER_CONN MQTT2_SERVER_172.17.0.11_48024
   MQTT2_SERVER_MSGCNT 180
   MQTT2_SERVER_TIME 2022-07-29 12:13:51
   MSGCNT     180
   NAME       MQTT2_RING_CHIME
   NR         1044
   STATE      volume
   TYPE       MQTT2_DEVICE
   eventCount 180
   READINGS:
     2022-07-28 21:57:35   IODev           MQTT2_SERVER
     2022-07-29 12:13:51   firmwareStatus  Up to Date
     2022-07-29 12:13:51   lastUpdate      2022-07-29T07:30:02Z
     2022-07-28 21:58:57   minutes_remaining 0
     2022-07-28 21:58:58   play_ding_soundState OFF
     2022-07-28 21:58:58   play_motion_soundState OFF
     2022-07-28 21:58:57   snoozeState     OFF
     2022-07-28 21:58:57   snooze_minutesState 150
     2022-07-28 18:35:28   state           volume
     2022-07-29 11:48:57   subscriptions   # $SYS/#
     2022-07-29 06:15:08   volumeState     8
     2022-07-29 12:13:51   wirelessNetwork MelowMennedy
     2022-07-29 12:13:51   wirelessSignal  -39
Attributes:
   DbLogExclude .*
   IODev      MQTT2_SERVER
   alias      Chime
   autocreate 0
   devicetopic ring/u0u4dz-vm-0/chime/54e0195dcc62
   readingList $DEVICETOPIC/volume/state:.* volumeState
  $DEVICETOPIC/snooze/state:.* snoozeState
  $DEVICETOPIC/snooze/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/snooze_minutes/state:.* snooze_minutesState
  $DEVICETOPIC/play_ding_sound/state:.* play_ding_soundState
  $DEVICETOPIC/play_motion_sound/state:.* play_motion_soundState
  $DEVICETOPIC/info/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       56_MQTT,78_Ring
   setList    volume:slider,0,1,11 $DEVICETOPIC/volume/command $EVTPART1
snooze:ON $DEVICETOPIC/snooze/command $EVTPART1
snooze_minutes:slider,0,10,1440 $DEVICETOPIC/snooze_minutes/command $EVTPART1
play_ding_sound:ON $DEVICETOPIC/play_ding_sound/command $EVTPART1
play_motion_sound:ON $DEVICETOPIC/play_motion_sound/command $EVTPART1
attr MQTT2_RING_CHIME stateFormat infoState
   webCmd     volume


Klingel 1:

Internals:
   CID        FHEM-MARDELLE5
   DEF        FHEM-MARDELLE5
   FUUID      62e0e755-f33f-8cc0-5fe2-c136d8c0e055470d
   FVERSION   10_MQTT2_DEVICE.pm:0.258890/2022-03-27
   IODev      MQTT2_SERVER
   LASTInputDev MQTT2_SERVER
   MQTT2_SERVER_CONN MQTT2_SERVER_172.17.0.11_48024
   MQTT2_SERVER_MSGCNT 9
   MQTT2_SERVER_TIME 2022-07-28 21:58:58
   MSGCNT     9
   NAME       MQTT2_RING_HAUSTUER
   NR         1062
   STATE      inactive
   TYPE       MQTT2_DEVICE
   eventCount 9
   READINGS:
     2022-07-28 21:57:35   IODev           MQTT2_SERVER
     2022-07-28 21:51:46   eventId         7125470616654510585
     2022-07-28 21:53:51   firmwareStatus  Up to Date
     2022-07-28 21:58:57   lastMotion      1659027911
     2022-07-28 21:58:57   lastMotionTime  2022-07-28T17:05:11Z
     2022-07-28 21:53:51   lastUpdate      2022-07-28T19:18:13Z
     2022-07-28 21:58:57   motionDetectionEnabled true
     2022-07-28 19:08:12   motionState     OFF
     2022-07-28 21:58:57   personDetected  true
     2022-07-28 21:58:58   status          inactive
     2022-07-28 21:53:51   still_Image_URL https://localhost:8123{{ states.camera.haustuer_snapshot.attributes.entity_picture }}
     2022-07-28 21:58:58   streamState     OFF
     2022-07-28 21:53:51   stream_Source   rtsp://172.17.0.11:8554/083a882690cc_live
     2022-07-29 11:48:57   subscriptions   # $SYS/#
     2022-07-28 21:58:40   timestamp       1659038316
     2022-07-28 21:53:51   wiredNetwork    online
Attributes:
   DbLogExclude .*
   IODev      MQTT2_SERVER
   alias      Ring Haustür
   autocreate 0
   devicetopic ring/u0u4dz-vm-0/camera/083a882690cc
   readingList $DEVICETOPIC/ding/state:.* dingState
  $DEVICETOPIC/motion/state:.* motionState
  $DEVICETOPIC/light/state:.* lightState
  $DEVICETOPIC/siren/state:.* sirenState
  $DEVICETOPIC/info/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/stream/state:.* streamState
  $DEVICETOPIC/event_stream/state:.* event_streamState
  $DEVICETOPIC/event_select/state:.* event_select
  $DEVICETOPIC/ding/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/motion/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/snapshot/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/stream/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/event_stream/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/event_select/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/snapshot/image:.* snapshotImage

   room       56_MQTT,78_Ring
   setList    light:ON,OFF $DEVICETOPIC/light/command $EVTPART1
siren:ON,OFF $DEVICETOPIC/siren/command $EVTPART1
stream:ON,OFF $DEVICETOPIC/stream/command $EVTPART1
snapshot_interval:slider,10,100,604800 $DEVICETOPIC/snapshot_interval/command $EVTPART1
motion_event_select:select,1,2,3,4,5 $DEVICETOPIC/event_select/command Motion $EVTPART1
On-demand_event_select:select,1,2,3,4,5 $DEVICETOPIC/event_select/command On-demand $EVTPART1
Ding_event_select:select,1,2,3,4,5 $DEVICETOPIC/event_select/command Ding $EVTPART1
   stateFormat status
   verbose    5


Klingel 2:

Internals:
   CID        FHEM-MARDELLE5
   DEF        FHEM-MARDELLE5
   FUUID      62e0e81f-f33f-8cc0-25ea-4a0f20d4baaeac27
   FVERSION   10_MQTT2_DEVICE.pm:0.258890/2022-03-27
   IODev      MQTT2_SERVER
   LASTInputDev MQTT2_SERVER
   MQTT2_SERVER_CONN MQTT2_SERVER_172.17.0.11_48024
   MQTT2_SERVER_MSGCNT 3
   MQTT2_SERVER_TIME 2022-07-28 21:58:51
   MSGCNT     3
   NAME       MQTT2_RING_TERRASSE
   NR         1063
   STATE      inactive
   TYPE       MQTT2_DEVICE
   eventCount 3
   READINGS:
     2022-07-29 11:49:01   IODev           MQTT2_SERVER
     2022-07-28 21:53:51   batteryLevel    100
     2022-07-28 21:53:51   firmwareStatus  Up to Date
     2022-07-28 21:58:51   lastMotion      1658222686
     2022-07-28 21:58:51   lastMotionTime  2022-07-19T09:24:46Z
     2022-07-28 21:53:51   lastUpdate      2022-07-28T18:48:03Z
     2022-07-28 21:58:51   motionDetectionEnabled true
     2022-07-28 21:58:51   personDetected  false
     2022-07-28 21:58:51   status          inactive
     2022-07-28 21:53:51   still_Image_URL https://localhost:8123{{ states.camera.terrasse_snapshot.attributes.entity_picture }}
     2022-07-28 21:58:51   streamState     OFF
     2022-07-28 21:53:51   stream_Source   rtsp://172.17.0.11:8554/343ea41120cb_live
     2022-07-29 11:48:57   subscriptions   # $SYS/#
     2022-07-28 21:53:51   wirelessNetwork MelowMennedy
     2022-07-28 21:53:51   wirelessSignal  -57
Attributes:
   DbLogExclude .*
   IODev      MQTT2_SERVER
   alias      Ring Terrasse
   autocreate 0
   devicetopic ring/u0u4dz-vm-0/camera/343ea41120cb
   disable    0
   readingList $DEVICETOPIC/ding/state:.* dingState
  $DEVICETOPIC/motion/state:.* motionState
  $DEVICETOPIC/light/state:.* lightState
  $DEVICETOPIC/siren/state:.* sirenState
  $DEVICETOPIC/info/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/stream/state:.* streamState
  $DEVICETOPIC/event_stream/state:.* event_streamState
  $DEVICETOPIC/event_select/state:.* event_select
  $DEVICETOPIC/ding/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/motion/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/snapshot/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/stream/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/event_stream/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/event_select/attributes:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/snapshot/image:.* snapshotImage
   room       56_MQTT,78_Ring
   setList    light:ON,OFF $DEVICETOPIC/light/command $EVTPART1
siren:ON,OFF $DEVICETOPIC/siren/command $EVTPART1
stream:ON,OFF $DEVICETOPIC/stream/command $EVTPART1
snapshot_interval:slider,10,100,604800 $DEVICETOPIC/snapshot_interval/command $EVTPART1
motion_event_select:select,1,2,3,4,5 $DEVICETOPIC/event_select/command Motion $EVTPART1
On-demand_event_select:select,1,2,3,4,5 $DEVICETOPIC/event_select/command On-demand $EVTPART1
Ding_event_select:select,1,2,3,4,5 $DEVICETOPIC/event_select/command Ding $EVTPART1
   stateFormat status
   verbose    5


Location:

Internals:
   CID        FHEM-MARDELLE5
   DEF        FHEM-MARDELLE5
   FUUID      62d68af9-f33f-8cc0-c38a-29cf5fd341cb650c
   FVERSION   10_MQTT2_DEVICE.pm:0.258890/2022-03-27
   IODev      MQTT2_SERVER
   LASTInputDev MQTT2_SERVER
   MQTT2_SERVER_CONN MQTT2_SERVER_172.17.0.11_48024
   MQTT2_SERVER_MSGCNT 7
   MQTT2_SERVER_TIME 2022-07-29 10:56:18
   MSGCNT     7
   NAME       MQTT2_RING_MODE
   NR         1061
   STATE      armed_home
   TYPE       MQTT2_DEVICE
   eventCount 13
   READINGS:
     2022-07-28 21:57:35   IODev           MQTT2_SERVER
     2022-07-29 10:56:18   modeState       armed_home
     2022-07-29 10:56:18   state           mode
     2022-07-29 11:48:57   subscriptions   # $SYS/#
Attributes:
   DbLogExclude .*
   IODev      MQTT2_SERVER
   alias      Location Mode
   autocreate 0
   devicetopic ring/u0u4dz-vm-0/alarm/u0u4dz-vm-0_mode/mode
   readingList $DEVICETOPIC/state:.* modeState
   room       56_MQTT,78_Ring
   setList    mode:select,disarm,arm_home,arm_away $DEVICETOPIC/command $EVTPART1
   stateFormat modeState
   webCmd     mode


Falls jemand eine Ahnung hat, was da passiert, wäre ich dankbar :-)

Gruss Jan

Hier ging es darum, dass ich das Devicetopic fest als Attribut gesetzt haben. Seit  ich das Topic komplett wie in dem Beispiel vorgebe, läuft alles recht rund...

Die Scripts im wie hier im Beispiel habe ich noch nicht so recht zum Laufen gebracht im Docker...

Gruss Jan

brain666

Servus zusammen,

da es bei mir durch meinen letzen system Upgrade auch nicht mehr starten wollte
habe ich es nun auch über einen Docker am laufen ohne Probleme.

brain666

Servus zusammen,

seit der Umstellung auf Docker bis heute keinen einzigen aussetzer.
Scripte laufen auch ohne Probleme.