49_SSCam: Fragen, Hinweise, Neuigkeiten und mehr rund um dieses Modul

Begonnen von DS_Starter, 14 Dezember 2015, 16:19:08

Vorheriges Thema - Nächstes Thema

oli82

Nutze SmartVisu auf einem recht performanten Android Tablet und habe eine DS918.
Ruckeln kann ich nur bei einer Kamera feststellen und da liegt es am POE-Powerline Adapter ;)

DS_Starter

Hallo zusammen,

ZitatWie ist die Framerate bei dir? Auch so schlecht wie bei mir?
Bezüglich dieser Problematik hatten wir weiter vorn schonmal diskutiert.
Ich hatte mich darüber auch bereits mit dem Synology-Support ausgetauscht. Die Empfehlung von den Kollgen ist in diesem Fall in der SVS für die Kamera bei Geräteeistellungen -> Video -> Allgemein -> Videoformat -> MJPEG einzustellen.
Hintergrund ist, dass die API MJPEG liefern muss will man den Stream im Browser abspielen, was ja der Fall ist. Ist die CAM auf ein anderes Format eingestellt, muss intern erst konvertiert werden.
Gut möglich, dass das nicht auf allen Modellen so zügig funktioniert wie man sich das wünscht, was sicherlich auch von der verwendeten Auflösung abhängt, also der Menge der Daten die verarbeitet werden muss.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ThomasMagnum

Hallo zusammen,

nachdem meine SSCam / SVS seit Monaten sehr zuverlässig läuft (Danke Heiko!), möchte ich mich nun um kleine, kosmetische, Verbesserungen in meinen Abläufen kümmern.

Folgendes habe ich eingerichtet:

  • Der Homemode wird per Doif morgens auf "on" und Abends auf "off" geschaltet, weiterhin wird der Homemode bei Abwesenheit ebenfalls auf "off" gesetzt.
  • Zur Benachrichtigung bei einer Bewegung nutze ich ein Doif welches bei einer neuen Aufnahme / Snapshot mir per XMPP eine Nachricht sendet. Das ganze aber nur wenn der Homemode auf "off" steht.

Da ich die Bewegungserkennung durchgehend aktiviert habe, auch wenn ich zu Hause bin möchte ich nachsehen können wer bzw. was alles passiert ist, bekomme ich jedesmal wenn Abends der Homemode auf "off" gesetzt wird eine Nachricht, da sich die Readings "CamLastRec" und "LastSnapTime" ja im Laufe des Tages geändert haben.

Meine Frage nun, wie kann ich diese Nachricht verhindern? Habt ihr eine Idee was ich in mein Doif noch einbauen kann um das zu vermeiden?
Hier der entscheidende Teil aus meinem doif:

((([WIFICAM01:CamLastRec]) or ([WIFICAM01:LastSnapFilename])) and [SVS:HomeModeState] eq "off")

({fhem("set XMPP Modul msgmuc mucid\@conference.domain.de *** Bewegungsalarm! ***\n\nHier ein Schnappschuss:\n\n\>http://fhemIP:8083/fhem/svs/\@Snapshot/[WIFICAM01:LastSnapFilename]\n\nUnd hier die zuletzt angelegte Videodatei:\n\n\>http://fhemIP:8083/fhem/svs/WIFICAM01/[WIFICAM01:CamLastRec]\n\nDie Links sind nur im Heimnetz direkt zu öffnen. Ausserhalb bitte eine VPN-Verbindung herstellen!")})


Gruß, Thomas

DS_Starter

#918
Hallo Thomas,

ich nutze DOIF nicht und kann das Verhalten auch nicht testen, aber mir scheint es logisch in diesem Fall im DOIF das Attribut  checkReadingEvent = 1 zu setzen.
So wie ich in der Commandref gelesen habe werden wohl per default  die Events aller Readings eines Devices genutzt um dann die angegebenen Readings auszuwerten.
Do willst ja eigentlich nur Events auswerten die von CamLastRec oder LastSnapFilename kommen.

Auszug aus commandref DOIF:
Zitat
Readingauswertung nur beim Event des jeweiligen Readings

Standardmäßig werden angegebene Readings ausgewertet, wenn irgendein Event des angegebenen Devices triggert. Möchte man gezielt nur dann ein angegebenes Reading auswerten, wenn sich nur dieses ändert, so lässt sich das mit dem Attribut checkReadingEvent einschränken. Das ist insb. dann interessant, wenn ein Modul verschiedene Readings zu unterschiedlichen Zeitpunkten aktualisiert.

Beispiel:

define di_lamp DOIF ([mytwilight:light] < 3) (set lamp on) DOELSEIF ([mytwilight:light] > 3) (set lamp off)
attr di_lamp checkReadingEvent 1

Probier mal, vielleicht klappt das so.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

matzewob

Moin, ich hab mal eine Frage,

ich habe die Cams soweit eingebunden. Allerdings aktualisieren sich meine readings nicht automatisch.
Das Reading
ZitatCamLastRec 20180219PM/Eingang20180219-171336-1519056816.mp4 2018-02-19 17:33:20
ist veraltet, wärend das Reading
LastSnapFilename Eingang-20180224-1209407239.jpg 2018-02-24 12:15:09
aktuell ist.

Wenn ich ein
get Eingang caminfoall auslöse passt es wieder.

Gibt es eine Möglichkeit das er das Reading aktuell hält?

Gruß

Matze

DS_Starter

Ja, gibt es.

Setze dir das Attribut pollcaminfoall z.B.

Zitat
pollcaminfoall = 210

ALLERDINGS wird bei mir das Reading CamLastRec, CamLastRecTime nach jeder Aufnahme automatisch aktualisiert.
Diese beiden Readings sind Bestandteil vom Attribut "event-on-change-reading" was ich bei mir gesetzt habe.

Du verwendest die aktuellste Version nehme ich an.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

matzewob

Cool, danke das scheint zu funktionieren.

Ich habe jetzt
event-on-change-reading.*
sowie
pollcaminfoall = 210

Komisch ist jetzt das das hier nicht geht, Befehl funktioniert aber wenn ich ihn so ausführe, nur halt nicht automatisch.

define N.Eingang.Video.TeleBot notify Eingang:CamLastRec.* { my $var = '/mnt/surveillance/Eingang/'.(ReadingsVal("Eingang","CamLastRec",""));; fhem ("set Telegram sendMedia $var Eine Video an der Haustür wurde aufgezeichnet;; set Telegram sendMedia ".'@user'." $var Eine Video an der Haustür wurde aufgezeichnet");; }

Und das hier geht ohne Probleme automatisch.

define N.Eingang.Snap.TeleBot notify Eingang:LastSnapFilename.* {\
my $var = '/mnt/surveillance/@Snapshot/'.(ReadingsVal("Eingang","LastSnapFilename",""));; fhem ("set Telegram sendImage $var Eine Bewegung an der Haustür wurde aufgezeichnet;; set Telegram sendImage ".'@user'." $var Eine Bewegung an der Haustür wurde aufgezeichnet");;\
}


Habt ihr da noch einen Tipp woran das liegen kann das der Snapshot automatisch kommt und das Video nicht?

DS_Starter

Sieht eigentlich alles gut aus.
Was passiert denn wenn du während der Aufnahme "set ... off" auslöst. Wird dann das Reading upgedated ?

Und ändere mal bitte dein Notify so ab (Doppelpunkt nach CamLastRec) :


define N.Eingang.Video.TeleBot notify Eingang:CamLastRec:.* {....
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

matzewob

Japp das Reading wird aktualisiert

wie gesagt das Image geht auch nur das Video zieht nicht an

DS_Starter

Hier mal meine notify Definition für Telegram. Der Link vom Video wird mitgeschickt:


defmod N.CamCP1.Rec.TeleBot notify CamCP1:CamLastRec:.* set teleBot message [CamCP1:VideoFolder]/[CamCP1:CamLastRec] Bewegungsaufnahme beim Carport
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

matzewob

Hab deinen Befehl mal übernommen. Klappt leider auch nicht, die Readings werden jetzt aber unmittelbar nach einem Event aktualisiert.
Verstehe langsam echt nix mehr

DS_Starter

Hmm ... versuche doch mal in einem zweiten Browserfenster dir den Eventmonitor anzuzeigen und den Event mit "CamLastRec" genau anzuschauen.
Wie sieht der Event bei dir aus ?
Was sendet Telegram denn ? Irgendwas wird ja sicherlich kommen ...

Wenn du damit nicht weiter kommst müssen wir morgen schauen ... muss gleich weg.

LG,
Heiko

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

matzewob

Er schickt bei dem Video event nix. Das notify triggert nichtmal.

Ich geb mal meine conf hier rein:

define Eingang SSCam Eingang 192.168.179.22 5000
attr Eingang event-on-change-reading .*
attr Eingang httptimeout 60
attr Eingang pollcaminfoall 60
attr Eingang room KAMERAS
attr Eingang webCmd on:off:snap:enable:disable



define N.Eingang.Snap.TeleBot notify Eingang:LastSnapFilename:.* {\
my $var = '/mnt/surveillance/@Snapshot/'.(ReadingsVal("Eingang","LastSnapFilename",""));; fhem ("set Telegram sendImage $var Eine Bewegung an der Haustür wurde aufgezeichnet;; set Telegram sendImage ".'@user'." $var Eine Bewegung an der Haustür wurde aufgezeichnet");;\
}
attr N.Eingang.Snap.TeleBot room KAMERAS




define N.Eingang.Video.TeleBot notify Eingang:CamLastRec.* { my $var = '/mnt/surveillance/Eingang/'.(ReadingsVal("Eingang","CamLastRec",""));; fhem ("set Telegram sendMedia $var Eine Video an der Haustür wurde aufgezeichnet;; set Telegram sendMedia ".'@Lina_Melzian'." $var Eine Video an der Haustür wurde aufgezeichnet");; }
attr N.Eingang.Video.TeleBot room KAMERAS



Wie gesagt,
N.Eingang.Snap.TeleBot funktioniert TOP und er triggert bei geändertem reading.

N.Eingang.Video.TeleBot triggert nicht, reading ändert sich aber .


DS_Starter

Also wenn das Notify nicht triggert obwohl der Event "CamLastRec" kommt, liegt es am Notify.
Dein Eventmonitor sollte bezogen auf CamLastRec soetwas ausgeben:

2018-02-25 08:18:17.830 SSCam CamCP1 on
2018-02-25 08:18:18.412 SSCam CamCP1 Record: Start
2018-02-25 08:18:18.412 SSCam CamCP1 on
2018-02-25 08:18:19.482 SSCam CamCP1 LastUpdateTime: 25.02.2018 / 08:18:19
2018-02-25 08:18:48.820 SSCam CamCP1 Record: Stop
2018-02-25 08:18:48.820 SSCam CamCP1 off
2018-02-25 08:18:51.098 SSCam CamCP1 CamEventNum: 31
2018-02-25 08:18:51.098 SSCam CamCP1 CamLastRec: 20180225AM/Carport20180225-081809-1519543089.mp4
2018-02-25 08:18:51.098 SSCam CamCP1 CamLastRecTime: 25.02.2018 / 08:18:09 - 08:18:48


Hast du mal im Logfile nach Fehlern bezüglich des Notify Devices geschaut ?

Teste doch mal so etwas:


define N.Eingang.Video.TeleBot notify Eingang.*CamLastRec.* { Log3 'Eingang', 1, "Event CamLastRec triggered";}
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

matzewob

Japp, genau das finde ich im LOG:


2018-02-25 09:32:08 SSCam Eingang LastUpdateTime: 25.02.2018 / 09:32:08
2018-02-25 09:32:58 SSCam Eingang PollState: Active - next time: 09:33:58
2018-02-25 09:33:00 SSCam Eingang CamEventNum: 1928
2018-02-25 09:33:00 SSCam Eingang CamLastRec: 20180225AM/Eingang20180225-093234-1519547554.mp4
2018-02-25 09:33:00 SSCam Eingang CamLastRecTime: 25.02.2018 / 09:32:34 - 09:32:54


Vom notify taucht allerdings nichts auf