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

Fredi69

fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

stobor

Eine Frage bzgl der Text-Formatierung beim Email-Versand:

Derzeit verschicke ich so:

fhem "attr SSCam.West snapEmailTxt subject => Bewegungsalarm $sAlias, body => $date ($sSender) - Kamera West (\$DATE ,\$TIME)";

Wie kann ich denn im Email-Body bspw. mit Zeilenumbrüchen arbeiten?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

DS_Starter

Du machst aus dem Attribut snapEmailTxt ein Longtext Feld:


attr ... widgetOverride snapEmailTxt:textField-long


Dann kannst du mit "Enter" einfach Zeilenumbrüche editieren, z.B.:


subject => Bewegungsalarm $CAM,
body => Eine Bewegung wurde am $CAM registriert
($DATE / $TIME)


Ich denke ich werde die Attribute für den Snap/Aufnahmeversand generell zu Longtext-Feldern machen. Dann editiert man diese Attribute generell leichter.

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

stobor

Hallo Heiko,
dann habe ich also tatsächlich sichtbare Zeilenumbrüche im Perl-Code (99_myUtils.pm)?
So etwa (ich bin nicht so der Perl-Experte)? :
...
fhem "attr SSCam.West widgetOverride snapEmailTxt:textField-long;

fhem "attr SSCam.West snapEmailTxt subject => Bewegungsalarm $sAlias, body => $date ($sSender)
- Kamera West (\$DATE ,\$TIME)
---
Mower 
MowerPosLat $MowerPosLat 
MowerPosLon $MowerPosLon 
MowerActivity $MowerActivity ";
fhem "set SSCam.West snap 6 2";
...


Ich meine mich zu erinnern, dass Doppelpunkte nicht erlaubt sind. Gibt es dazu schon was Neues?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

DS_Starter

Im Code (99_myUtils.pm) habe ich es noch nicht probiert, aber sollte klappen. Probiers mal.

Doppelpunkte kannst du inzwischen verwenden. Ich weiß nicht mehr wann ich diese EInschränkung beseitigt habe, aber muß schon lange her sein.
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

DS_Starter

Habe eine neue Version eingescheckt die Langtextfelder für besagte Attribute enthält.

Außerdem kann man nun in dem body-Text HTML-Tags verwenden. Hier ein Beispiel für Fettschrift und Zeilenumbruch, was in einer Zeile eingegeben werden kann.


attr ... snapEmailTxt  subject => Bewegungsalarm $CAM, body => Eine Bewegung wurde am <b>$CAM</b> registriert : <br>($DATE / $TIME)


Ist morgen im Update.
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

stobor

Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

stobor

Ich habe nun meinen Code angepasst:

fhem "attr SSCam.Sued snapEmailTxt subject => PIR-Alarm $sAlias, body => $date<br>Auslöser: $sSender<br><br>Kamera Sued<br>Snapshot-time: $CTIME<br><br><b>Mower:</b><br> MowerPosLat: $MowerPosLat<br> MowerPosLon: $MowerPosLon<br> MowerActivity: $MowerActivity";


Nun bekomme ich einen Fehler:
Global symbol "$CTIME" requires explicit package name (did you forget to declare "my $CTIME"?) at ./FHEM/99_myUtils.pm

$FILE liefert den gleichen Fehler.

Verstehe ich hier die Doku falsch, oder benutze ich sie falsch?
(https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station)

Kann ich $CTIME so nicht verwenden?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

DS_Starter

Ah, ja das ist natürlich eine kleine Falle.
Die Variablen $CTIME, $FILE sind nur innerhalb des SSCam Paketes zugreifbar, also wenn du das Attr im Device fest setzt (wie es eigentlich gedacht ist).
Das hat etwas mit der Perl Paketierung zu tun. Der Code in 99_myUtils.pm läuft im sogenannten Main-Package.

Du setzt ja quasi das Attribut dynamisch über fhem "..."

Versuche es mal so:


fhem "attr SSCam.Sued snapEmailTxt subject => PIR-Alarm $sAlias, body => $date<br>Auslöser: $sSender<br><br>Kamera Sued<br>Snapshot-time: \$CTIME<br><br><b>Mower:</b><br> MowerPosLat: $MowerPosLat<br> MowerPosLon: $MowerPosLon<br> MowerActivity: $MowerActivity";


Also escapen -> \$CTIME bzw. \$FILE

Ist dieses dynamische Setzen des Attr eigentlich nötig ?
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

stobor

Ich hab's jetzt so probiert - in der 99_myUtils:
fhem "attr SSCam.West snapEmailTxt subject => PIR-Alarm $sAlias, body => $date<br>Auslöser: $sSender<br><hr><br>Kamera West<br>Snapshot-time: \$CTIME - \$FILE<br><hr><br><b>Mower:</b><br> MowerPosLat: $MowerPosLat<br> MowerPosLon: $MowerPosLon<br> MowerActivity: $MowerActivity<br><hr><br>";


In der Email kommt es dann so an:

...
Snapshot-time: \$CTIME - \$FILE
...


Die Platzhalter werden also nicht ersetzt.
Hast Du noch eine Idee?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

DS_Starter

Ja, ich kann im Modul auch eine einfache Form CTIME bzw. FILE erlauben.
Das hätte ich auch gleich machen können, aber wegen der Rückwärtskompatibilität muss ich jetzt beide Varianten gestatten.
Ich erstelle dir mal ein Testmodul und melde mich wieder.

LG
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

DS_Starter

Hallo stobor,

ich habe dir eine Testversion in mein contrib gelegt.
Man kann nun alternativ #CAM, #DATE, #TIME, #FILE, #CTIME als Platzhalter verwenden.
Damit sollte dein Szenario funktionieren.

Zum Download in der FHEMWEB Kommandozeile inklusive der Anführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/49_SSCam.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/49_SSCam.pm"
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

stobor

Hallo DS_Starter,
ich habe jetzt den Code in der 99_myUtlis angepasst:
fhem "attr SSCam.West snapEmailTxt subject => PIR-Alarm $sAlias, body => $date<br>Auslöser: $sSender<br><hr><br>Kamera West<br>Snapshot-time: #CTIME - #FILE<br><hr>";

In der Email steht dann der "Variablenname", aber nicht deren Wert:
...
Snapshot-time: #CTIME - #FILE
...

Auch ein \#FILE hilft nicht.
Ich hatte den Rechner auch einmal komplett neu gestartet.

Oder nutze ich das falsch?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

DS_Starter

Du nutzt das richtig. Da habe ich noch einen Fehler im Modul.
Ich checke das.
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

DS_Starter

#2459
Habe gerade festgestellt, dass beim Attr snapEmailTxt bisher nur die Platzhalter

$CAM    - Device-Alias bzw. der Name der Kamera in der SVS falls der Device-Alias nicht vorhanden ist
$DATE    - aktuelles Datum
$TIME    - aktuelle Zeit

verwendet bzw. ersetzt werden.
Das hat sicherlich seinen Grund. Ich schaue mal ob ich CTIME, FILE noch hinzufügen kann wie es bei z.B. bei snapTelegramTxt  der Fall ist.

Jetzt weiß ich wieder weshalb ... beim Email Versand kann man mehrere Snaps in einer Email gruppieren. In dem Fall gibt es nicht den einen CTIME / FILE.
Ich überlege ....
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