Modul PostMe

Begonnen von Prof. Dr. Peter Henning, 26 Oktober 2016, 22:17:35

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Hallo Leute,

ich habe ein kleines Hilfsmodul geschrieben, mit dem man beliebig viele "Sticky Notes" generieren kann - ähnlich wie die gelben Post-Its von 3M.

Zu jedem dieser PostMes (sagen wir mal, eines heißt "Einkaufsliste" ...) kann man beliebig viele Stichworte (oder Strings) hinzufügen oder wieder wegnehmen.
Auf Knopfdruck wird ein solches PostMe per eMail oder Instant Messenger (z.B. Telegram) an vordefinierte Personen versandt, oder auf einem TTS-Device ausgegeben.

Mein Use-Case dazu: Per Spracherkennung auf einem wandhängenden Tablet wird die Einkaufsliste im Laufe der Woche gefüllt. Bei Wocheneinkauf kann man noch vom Supermarkt aus eine Telegram Message an unseren häuslichen Bot senden und bekommt die aktuelle Einkaufsliste zurück.
Außerdem kann man einen TelegramBot so aufsetzen, dass die Liste auch von außen per Telegram gefüllt werden kann.

Im Ergebnis ein sehr hoher WAF.

Das Modul wird inzwischen per regulärem Update verteilt.

Zur Dokumentation bitte ins Wiki schauen, http://www.fhemwiki.de/wiki/Modul_PostMe

LG

pah

Markus Bloch

Hallo pah,

der Workaround in der Define-Funktion wegen $init_done ist nicht notwendig, da InternalTimer() nur blockiert, sofern der 4. Parameter auf 1 gesetzt ist. Siehe dazu: http://www.fhemwiki.de/wiki/DevelopmentModuleAPI#InternalTimer

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Prof. Dr. Peter Henning

Ah, ok. Das ist einfach eine Karteileiche, per Copy and Paste aus einem meiner anderen Module übernommen.

Danke, fliegt raus.

LG

pah

laberlaib

Sowas in der Art hatte ich gesucht und wollte mir auch mal anschauen, wie so eine Modulprogrammierung funktioniert (Fernziel: Anbindung an todo.txt, was ja eigentlich ähnlich ist wie hier, nur halt nicht Reading sondern Dateibasiert).

Wenn ich hier per remove etwas von der Liste nehmen will, was es nicht gibt, dann wird das ganze Reading geändert:
postme01Cont         Olub,Oluuf
dann ein
set pi_PostIts Apeman remove asdfff
ergibt
postme01Cont         Olub,OluuOluuf
set pi_PostIts Apeman remove hohoho
2016.10.27 21:24:42 3: [Postme] Removed item hohoho from PostMe named Apeman
postme01Cont           Olub,OluuOluuOluuOluuf
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Prof. Dr. Peter Henning

Welche Version ?

LG

pah

laberlaib

#5
Gestern hab ichs hier aus dem Forum runtergeladen.
Ich guck in die Datei wenn ich wieder daheim bin.

Edit:

my $postmeversion    = "0.31";
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

visionsurfer

Hallo,

nur für mich zum Verständnis. Ist sowas in der Art nicht schon mit dem Wunderlist Modul möglich ?
Ansonsten coole Idee.

Grüße,
Visionsurfer

marvin78

Es sind zwei verschiedene Ansätze. PostMe ist deshalb angenehm, weil es direkt auf FHEM basiert. Nichts liegt in der Cloud und man ist Herr seiner Daten. Das finde ich sehr gut.

wunderlist hat den Vorteil, dass man nicht noch sein eigenes Interface etc, bauen muss, um es bequem durch mehrere Personen, auch von Unterwegs, nutzen zu können.

Prof. Dr. Peter Henning

Ich werde heute noch eine aktuelle Version hochladen - in 0.31 war eigentlich der Fehler beim "remove" schon behoben, wundert mich.

OK, wie geht es weiter, was ist das Ziel:

Erstens ist das Ding wirklich lokal (Wolkenlos, d.h. Cloud-frei), mit persistenter Speicherung der Listen in fhem.save.
Zweitens - das läuft bereits im Test - wird man es auf beliebigen Webseiten (auch außerhalb von FHEM !) mit einem einfachen <embed ...> Tag einbinden können. Der macht an Ort und Stelle wahlweise eine HTML-Mini-Tabelle oder eine SVG-Grafik mit mausaktiven "Pins". Fährt man mit der Maus drüber (oder, wahlweise, auf Klick), poppen die PostMe-Minifenster mit dem Inhalt hoch. Zum Ausprobieren mit der aktuellen Version 0.33 einfach mal als Icon-Attribut setzen:

<embed src="/fhem/PostMe_widget?type=pin&postit=PostIt"/>

(Achtung: statt PostIt muss der eigene Devicename drin stehen)

Drittens hat sich der Versand per Telegram oder eMail extrem gut bewährt, an der SMS und am Telefonanruf wird schon gearbeitet.

LG

pah

igami

Hallo pah,

kannst du noch kurz Beschreiben wie das mit der Telegram integration funktioniert?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

ext23

Moin, ich hab mir das Modul auch mal installiert, da ich schon länger nach einem Einkaufs- und Notizzettel suche. Müsste man nur noch TabletUI fähig machen, damit das schick aus sieht. Mit der Spracherkennung klingt auch interessant. Ich werde mir das mal anschauen.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

TomLee

Um die Notizen im FTUI anzuzeigen dachte ich mir versuchs mal mit nem iframe:

<header>Notizen</header>
<div data-type="iframe"
    data-src="http://192.168.188.26:8083/fhem/PostMe_widget?type=SVG&postit=poststick&name=Einkaufsliste" 
></div>


Sieht dann schon Mal so wie auf dem Bild im Anhang aus.😊
Nachteil ist wie bei meinen anderen bisherigen Ansätzen (mit readingsgroup und readingshistory) Notizen im Ftui anzuzeigen, das neue Einträge nur nach einem manuellen aktualisieren der Seite erscheinen.

Die blaue Schrift ist auf dem Bild verschwommen das liegt am abspeichern des bearbeiteten Bildes auf dem Tablet, im Ftui wird die Schrift richtig angezeigt. 

Prof. Dr. Peter Henning

Einen Update-Mechanismus habe ich in Planung.

LG

pah

ext23

#13
Also irgendwie will das onmouseover nicht bei mir, es sieht nur aus wie im Anhang aber passiert nichts wenn ich drüber fahre. Oder es liegt am Chrome.

/Daniel

UPDATE: *lool* OK ist der PopUpBlocker, da gehen auf dem PC ja gleich hunderte Popups auf ;-) Ist mehr für Tablets gedacht ja ;-)
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

igami

#14
Zitat von: igami am 29 Oktober 2016, 12:41:26
Hallo pah,

kannst du noch kurz Beschreiben wie das mit der Telegram integration funktioniert?
Habs nun selbst verstanden. Ich lege mir eine Sub an die die Nachricht zusammenbaut und gebe noch einen Empfänger für die entsprechende Liste an.

attr <PostMe> postme01MsgRec <TelegramID>
attr postmeMsgFun PostMeTelegram


sub PostMeTelegram($$$) {
  my ($recipient, $subject, $text) = @_;
  my @items = split(",", $text);
  @items = sort(@items);
 
  fhem("set TelegramBot message \@".$recipient." $subject:\n - ".join("\n - ", @items));
  return;
}


Ich würde mir gerne noch eine rename Funktion wünschen :)
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED