Einrichtung eines Akku am Cubietruck

Begonnen von FHEMAN, 25 März 2015, 22:31:58

Vorheriges Thema - Nächstes Thema

Spezialtrick

Könntest du deine SendMessage Funktion auch posten?
FHEM - Debmatic - Zigbee2MQTT - Homekit

FHEMAN

Ich hoffe, es hilft Dir. Du musst die Variablen noch auf Deine Bedürfnisse anpassen. Für sendEmail musst Du evtl. noch ein Update durchführen. Wenn es nicht geht, suche hier mal im Forum. Da gibt es eine Lösung.

Weiß evtl. jemand, wie man in Perl Funktionsparameter einen Defaultwert geben kann?

######## DebianMail  Mail auf dem Cubie versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "XXX\@gmx.net";
my $konto = "XXX\@gmx.net";
my $passwrd = "XXXXXXXXXXXXXXXXXXXXXX";
my $provider = "mail.gmx.net:25";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";

$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=yes -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}

##########################################################
# SendMessage
# Sendet eine Nachricht an Anruf, Mail, Pushover, SMS, Log  mit Lautstärke silent, normal, loud, alarm
# SendMessage("Meldung von Alarmanlage", "Alarm wurde ausgelöst durch Wohnzimmerfenster", "Pushover,Mail,Log", "loud")
sub SendMessage($$$$) {
  my ($title, $description, $dev, $vol) = @_;
  my @devices = split(/,\s*/, uc($dev));
  foreach my $device (@devices) {
    if ($device eq "SMS") {
        system("echo $title: $description | sudo /usr/bin/gnokii --sendsms +49XXXXXXX &");
        Log 1, ('SMS versandt: '.$title.': '.$description);
} elsif ($device eq "PUSHOVER") {
        my $volume = "";
    if ($vol eq "normal") { $volume = "pushover";}
        elsif ($vol eq "silent") {$volume = "none";}
        elsif ($vol eq "loud") {$volume = "tugboat";}
        elsif ($vol eq "alarm") {$volume = "siren";}
        else {$volume = $vol;}
        if ($vol eq "alarm") {
        fhem("set Pushover1 msg '$title' '$description' '' 2 '$volume' 30 600");
        } else {
fhem("set Pushover1 msg '$title' '$description' '' 0 '$volume'");
        }
    } elsif ($device eq "LOG") {
    Log 1, ($title.': '.$description);
    } elsif ($device eq "MAIL") {
    DebianMail('XXX@mailbox.org', $title, $description);
    }
  }
}
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Spezialtrick

Vielen Dank damit hat es nun funktioniert und der Cubie sendet entsprechende Nachrichten.

Ausschließlich die Mitteilung bei Umschaltung von Batterie auf AC funktioniert bei mir nicht. Im Log findet sich diese Fehlermeldung:

2015.04.12 18:37:34 3: set Pushover msg 'New Battery status: AC' '' '' 0 'pushover' : Syntax: <Pushover_device> msg [title] <msg> [<device> <priority> <sound> [<retry> <expire>]]


Offenbar liegt ein Syntax Fehler vor. Funktioniert diese Mitteilung bei Dir?
FHEM - Debmatic - Zigbee2MQTT - Homekit

stromer-12

Zitat von: Spezialtrick am 11 April 2015, 19:44:46
So ist es bei mir auch. Bleibt das Reading denn bestehen, wenn du "event-on-update-reading" bzw. "event-on-change-reading" setzt? Sobald ich dieses Attribut setze, verschwindet das Reading battery nach kurzer Zeit.

Das Reading "battery" wird nur erzeugt wenn das Reading "power_battery_stat" ein Event erzeugt. Also muss "power_battery_stat" in "event-on-update-reading" bzw. "event-on-change-reading" stehen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

FHEMAN

Zitat von: Spezialtrick am 12 April 2015, 18:44:39
Vielen Dank damit hat es nun funktioniert und der Cubie sendet entsprechende Nachrichten.

Ausschließlich die Mitteilung bei Umschaltung von Batterie auf AC funktioniert bei mir nicht. Im Log findet sich diese Fehlermeldung:

2015.04.12 18:37:34 3: set Pushover msg 'New Battery status: AC' '' '' 0 'pushover' : Syntax: <Pushover_device> msg [title] <msg> [<device> <priority> <sound> [<retry> <expire>]]


Offenbar liegt ein Syntax Fehler vor. Funktioniert diese Mitteilung bei Dir?
Hast Du ein Standard Device vergeben -> attr device?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Spezialtrick

Zitat von: stromer-12 am 12 April 2015, 21:26:50
Das Reading "battery" wird nur erzeugt wenn das Reading "power_battery_stat" ein Event erzeugt. Also muss "power_battery_stat" in "event-on-update-reading" bzw. "event-on-change-reading" stehen.

Das erklärt, warum sich das eine Reading immer wieder verschwunden ist. :)

Zitat von: derron am 13 April 2015, 00:04:02
Hast Du ein Standard Device vergeben -> attr device?

Nein ich habe kein Device vergeben. Sollte man das?
FHEM - Debmatic - Zigbee2MQTT - Homekit

FHEMAN

Ich habe das Attribut "power_battery_stat" im 1. Post nachgetragen, danke für die Info.

Als Standarddevice habe ich eines vergeben. Ich könnte mir vorstellen, dass
set Pushover msg 'New Battery status: AC' '' '' 0 'pushover'
sonst nicht funktioniert, da der 4. Parameter <device> bei diesem Aufruf leer ist.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Spezialtrick

Welches Standart Device hast du gewählt? Ich habe nun "Fhem" eingetragen und bekomme weiterhin keine Nachricht. -.-
FHEM - Debmatic - Zigbee2MQTT - Homekit

FHEMAN

Zu Pushover versuch dich bitte mal, im Wiki aufzuschlauen. Dann kannst du die Benachrichtigungsfunktion deinem Bedarf anpassen.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB