email versenden zur Erinnerung an die Mülltonne

Begonnen von Domjo75, 14 Oktober 2016, 11:12:44

Vorheriges Thema - Nächstes Thema

Domjo75

Hallo zusammen,
nach einem guten halben Jahr pause mache ich nun wieder an meiner Haussteuerung weiter.
Heute morgen habe ich versucht meinen implementierten Abfallkalender mit der email Funktion zu verknüpfen.

Ich habe bereits einen funktionierenden Abfallkalender, der per Google ICS die Termine abholt. Das ganze wird mir im FTUI per Icon angezeigt. Am Tag des "Rausstell-Termins" drehen sich die Icon. Klappt super, nur muss man da auch immer reinschauen :)

Eine eMail Funktion ist auch bereits eingebaut. Im Moment macht die aber nichts anderes als täglich eine Test-Mail rauszuschicken.

Nun würde ich das ganze gerne verknüpfen. Ich möchte also eine Mail am "Rausstell-Termin" verschicken, die mich erinnert, dass die Tonne raus muss.

Könnt Ihr mir da weiterhelfen, ich steh komplett auf dem Schlauch.

Gruss
Dominik

Domjo75


Tedious

Ich würde ein DOIF nehmen. Wenn Bedingung (z.B. Müll in Tagen =1) erfüllt ist sende die EMail "Müll muss raus".
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

JoWiemann

Du musst schon ein bisschen mehr an Infos geben. Welchen Abfallkalender (Modul, Eigenlösung), wie sieht die Definition aus ( ein list wäre hilfreich), welche E-Mail Funktion?

Grüße Jörg


Gesendet von iPhone mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Domjo75

OK...
ich habe für jede Mülltonne ein Dummy Device angelegt, welches jeweils die verbleibenden Tage als STATE anzeigt.

Name BIOMUELL
State 1

Name PAPIER
State 9

Ich versuche das mal aus dem Beispiel der Batterie in der Hilfe abzuleiten:

define di_BIOMUELL DOIF ([":BIOMUELL: 1"] and [?BIOMUELL:$DEVICE] ne "1") ({DebianMail('yourname@gmail.com', 'FHEM - Mülltonne: $DEVICE rausstellen')}, setreading BIOMUELL $DEVICE 1)

attr di_BIOMUELL do always
attr di_BIOMUELL notexist "novalue"

So etwa? Wie stelle ich sicher, dass mich das DOIF nicht alle 3min mit einer Mail beglückt?

Gruss
Dominik

Domjo75

Zitat von: JoWiemann am 19 Oktober 2016, 09:50:20
Du musst schon ein bisschen mehr an Infos geben. Welchen Abfallkalender (Modul, Eigenlösung), wie sieht die Definition aus ( ein list wäre hilfreich), welche E-Mail Funktion?

Hilft mein Code weiter? Ich habe das irgendwann mal im Forum gefunden und eingebaut.
#MuellKalender

define Abfall Calendar ical url https://calendar.google.com/calendar/ical/6l1gak0ar6rxxxxxxxxxxxxxxxgroup.calendar.google.com/private-374dee4e884xxxxxxxxxxxxx334fa4/basic.ics 43200
attr Abfall group Abfall
attr Abfall room Information

define Abfall_at at *00:15:00 set Abfall update
attr Abfall_at group Abfall
attr Abfall_at room Status

define Abfall_Update notify Abfall:(modeUpcoming|modeAlarmOrStart).* {Abfalltermine("$EVENT")}
attr Abfall_Update group Abfall
attr Abfall_Update room Status

define Papier dummy
attr Papier event-on-change-reading state
attr Papier group Abfall
attr Papier room Status

define Restmuell dummy
attr Restmuell event-on-change-reading state
attr Restmuell group Abfall
attr Restmuell room Status

define Biomuell dummy
attr Biomuell event-on-change-reading state
attr Biomuell group Abfall
attr Biomuell room Status

define Plastik dummy
attr Plastik event-on-change-reading state
attr Plastik group Abfall
attr Plastik room Status

define Muellalert dummy
attr Muellalert event-on-change-reading state
attr Muellalert group Abfall
attr Muellalert room Status

define at_Muellalert at *00:20:00 {if(Value("Papier") eq "1" || Value("Restmuell") eq "1" || || Value("Biomuell") eq "1" Value("Plastik") eq "1") {fhem("set Muellalert on")} else { fhem("set Muellalert off")}}
attr at_Muellalert group Abfall
attr at_Muellalert room Status


Kann ich einfach diesen Befehl missbrauchen und noch ein ({DebianMail('yourname@gmail.com', 'FHEM - Mülltonne: $DEVICE rausstellen')} anhängen?
define at_Muellalert at *00:20:00 {if(Value("Papier") eq "1" || Value("Restmuell") eq "1" || || Value("Biomuell") eq "1" Value("Plastik") eq "1") {fhem("set Muellalert on")} else { fhem("set Muellalert off")}; {DebianMail('yourname@gmail.com', 'FHEM - Mülltonne: $DEVICE rausstellen')}}

Devender

Ja, das geht.
Willst du jetzt ein DOIF oder ein at nutzen?
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

Domjo75

Das AT gefällt mir besser.
Ich habe das jetzt so gemacht:
define at_MuellalertMail at *00:20:00 {if(Value("Papier") eq "1" || Value("Restmuell") eq "1" || Value("Biomuell") eq "1" || Value("Plastik") eq "1") { DebianMail('do***@***.de','WatchDOG Haussteuerung Muell', "Mülltonne",'') }}
attr at_MuellalertMail group Abfall
attr at_MuellalertMail room Status


Die Mail kommt an; alles schick. Die Königslösung wäre jetzt, wenn ich noch einbauen könnte welche Tonne ich rausschieben muss.

Devender

Kannst du doch.
Du kannst z.b das Reading next_text aus deiner Abfalldefinition auslesen.

Also, wenn dein at ausgelesen hat, dass morgen ein Muellbehaelter abgeholt wird
Ziehst du dir mit ReadingsVal noch das Reading next_text und setzt es direkt in deiner Mail ein.

FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

Domjo75

die Kurve bekomme ich nicht. Ich finde kein Reading next_text

Devender

Das Reading findest du im definierten Modul Abfall.
Vorausgesetzt du verwendest das.
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

Domjo75

Das fehlt mir. Ich versuche es gerade zu installieren. Meine Leitung ist aber gerade kippelig.

Domjo75

#12
So, geschafft. Wie bekomme ich das Reading nun in meine Mail? Mit List myAbfall bekomme ich alles schön aufgelistet
Bisher sieht es so aus

define at_MuellalertMail at *00:20:00 {if(Value("Papier") eq "1" || Value("Restmuell") eq "1" || Value("Biomuell") eq "1" || Value("Plastik") eq "1") { DebianMail('do***@***.de','WatchDOG Haussteuerung Muell', "Die [myAbfall:next_text] Tonne wird morgen abgeholt",'') }}
attr at_MuellalertMail group Abfall
attr at_MuellalertMail room Status


An kommt dann einen Mail mit genau diesem Inhalt "Die [myAbfall:next_text] Tonne wird morgen abgeholt"

Edit: Ich hab´s dann endlich geschafft. Jetzt schickt er mir alle Info´s die ich brauche :) Danke für die Hilfe

Skipper

Hallo zusammen,
Ich würde das gerne nutzen. Ich habe allerdings folgende zusätzliche Schwierigkeit, an einigen Wochen im Jahr sind bei mir zwei Tonnen am gleichen Tag fällig. Jetzt will ich natürlich beide Tonnen in einer Mail stehen haben. Hat einer eine Idee, die nicht einer Fallunterscheidung gleich kommt? Also wie wenn Blaue Tonne = 1 und Schwarze Tonne dann tu X oder wenn Schwarze Tonne = 1 und Blaue Tonne > 1 dann tu Y?

Kleiner Unterschied zu der Lösung von oben bei mir, ich hab alle Tonnen in einem Device.
Grüße

Otto123

Hi,

ich habe Deinen Text jetzt 10 mal gelesen und nicht verstanden.  :o Willst Du jetzt eine Fallunterscheidung oder nicht?
Dein dritter Satz in Perl:
if (ReadingsVal('Device','Blaue Tonne','') eq '1' and ReadingsVal('Device','Schwarze Tonne','') ) {X};
if (ReadingsVal('Device','Blaue Tonne','') gt '1' and ReadingsVal('Device','Schwarze Tonne','') eq  '1') {Y} 

Wobei mir Dein Satz unvollständig erscheint :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz