Modul PostMe

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

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

#120
OK, ist ein einfacher csrfToken-Error.

Wollte ich sowieso einbauen, ist hiermit geschehen. Version 2.07 verfügt über volle csrfToken-Unterstützung und wurde soeben eingecheckt.

LG

pah

ToM_ToM

Hallo Zusammen und einen schönen Sonntag. :)

Ich wollte auch mal die Listen-Zusendfunktion per Telegram nutzen, jedoch funktioniert diese bei mir lediglich mit der Einkaufsliste. Bei den anderen Listen passiert nichts.

Geht:
get PostIt message Einkaufsliste

Geht nicht (liefert keine Telegram-Nachricht):
get PostIt message Wunschliste
get PostIt message Urlaubmitnahmeliste
get PostIt message Urlaubmitnahmeliste_Sommer
get PostIt message Urlaubmitnahmeliste_Winter


attr PostIt postme01MsgRec im folgenden Code ersetzt


defmod PostIt PostMe
attr PostIt DbLogExclude .*
attr PostIt postme01MsgRec 123456789
attr PostIt postmeClick 0
attr PostIt postmeIcon images/default/pin_red_32.png
attr PostIt postmeMsgFun PostMeTelegram
attr PostIt postmeStd Einkaufsliste,Wunschliste,Urlaubmitnahmeliste,Urlaubmitnahmeliste_Sommer,Urlaubmitnahmeliste_Winter
attr PostIt postmeStyle SVG
attr PostIt room Allgemein

setstate PostIt Urlaubmitnahmeliste sent by messenger
setstate PostIt 2018-02-19 17:31:18 postme01Cont Motoröl 5W30 Shell Helix Ultra,Müllbeutel 20l
setstate PostIt 2017-07-28 17:42:11 postme01Name Einkaufsliste
setstate PostIt 2017-07-29 11:52:52 postme02Cont 1TB Samsung SSD
setstate PostIt 2017-07-28 17:42:11 postme02Name Wunschliste
setstate PostIt 2018-03-04 11:09:19 postme03Cont Tempos,ASS+C,Duschgel,Schampoo,Rasierer,Deo
setstate PostIt 2018-03-04 11:02:00 postme03Name Urlaubmitnahmeliste
setstate PostIt 2018-03-04 11:15:34 postme04Cont Badehose
setstate PostIt 2018-03-04 11:13:10 postme04Name Urlaubmitnahmeliste_Sommer
setstate PostIt 2018-03-04 11:17:44 postme05Cont Winterschuhe,Handschuhe,Pudelmütze,Thermounterhose
setstate PostIt 2018-03-04 11:13:24 postme05Name Urlaubmitnahmeliste_Winter
setstate PostIt 2018-03-04 11:13:24 postmeCnt 5
setstate PostIt 2018-03-04 12:11:31 state Urlaubmitnahmeliste sent by messenger


Und hier meine sub:


sub PostMeTelegram($$$) {
  my ($recipient, $subject, $list) = @_;
  my @items = split(",", $list);
  @items = sort(@items);

  fhem("set TelegramBot message \@".$recipient." $subject:\n - ".join("\n - ", @items));
  return;
}


Hat jemand von euch eine Idee wo der Fehler liegen könnte?

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

ext23

Hallo,

mir schwebt da eine kleine Idee vor. Ich hab so ein kleinen Thermo Drucker und ich dachte mir es wäre doch nett wenn man über ein Button die Einkaufsliste ausrucken kann. In den Supermärkten ist selten 3/4G (dank jammer) vorhanden und das Hauseigene WLAN nutze ich aus tracking Gründen nicht.

Kann man das irgendwie hin bekommen wenn der Therme Drucker via CUPS im Netz hängt?

/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)

Freee84neu

Hallo, ich weiß hier hat schon lange keiner mehr was geschrieben, hoffe aber auf Hilfe  :)

Bin heute auf dieses Device gestoßen.

Hab es jetzt soweit am laufen. Ziel ist es eine Übersicht zu bekommen wer alles zum Einsatz der Freiwilligen Feuerwehr kommt. In einer Telegramm Gruppe kommt eine Abfrage. Mann drückt dem Button ,,Einsatz". Dann erscheint der Name in der Liste ,,Einsatz-Status". Das klappt auch alles. Dann wird nach einer Zeit oder bei Status Abfrage die Liste mit Telegramm versendet. Siehe Bild. Klappt auch wunderbar

Was mich etwas stört ist das die Reihenfolge nicht stimmt (Test2,Test3,Test4,Test1) und im allgemein die Anordnung mit den Strichen. Schön wäre wenn die Namen einfach in Reihenfolge untereinander stehen würden.

Kann mir da wohl jemand auf die Sprünge helfen?

List Postme (PostIt)
Internals:
   FUUID      5fe9c9f6-f33f-8c01-0127-378f789560399dca
   NAME       PostIt
   NR         1205
   STATE      Einsatz-Status sent by messenger
   TYPE       PostMe
   mayBeVisible 1
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2020-12-29 04:05:29   postme01Cont    Test1,Test2,Test3,Test4
     2020-12-28 20:41:57   postme01Name    Einsatz-Status
     2020-12-28 20:41:57   postmeCnt       1
     2020-12-29 04:05:34   state           Einsatz-Status sent by messenger
Attributes:
   postme01MsgRec 628351245
   postmeClick 1
   postmeMsgFun PostMeTelegram
   postmeStd  Einsatz-Status
   postmeStyle jQuery



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

Prof. Dr. Peter Henning

Und was ist bitte die Frage?

1. Die Reihenfolge der Anzeige ist die Reihenfolge im Reading, das wird auch so bleiben. Wer es anders will, soll sich eine separate Sortierroutine schreiben.
2. Die Bindestriche stammen nicht aus dem Modul.

LG

pah

Freee84neu

Hallo

Also für mich sind sie nicht in der Reihenfolge des Readings

postme01Cont    Test1,Test2,Test3,Test4

Telegramm Reinfolge ist ,, Test2,Test3,Test4,Test1

Reihe 1 -
Reihe 2 Test2
Reihe 3 -
Reihe 4 Test3
Reihe 5 -
Reihe 6 Test4
Reihe 7 -Test1

Wäre es nicht so richtig

Reihe 1 Test1
Reihe 2 -
Reihe 3 Test2
Reihe 4 -
Reihe 5 Test3
Reihe 6 -
Reihe 7 Test4

Und weil ich es mir nicht erklären kann ist meine Frage warum ist es diese Reihenfolge.
Und die zweite Frage wenn die Bindestriche nicht aus dem Modul stammen müssen sie ja aus der 99utilitis kommen, und wenn ja ob wir einer helfen kann wo das Passiert.

Gruß Mike

Maista

Moin Mike

Zitat$subject:\n - ".join

Vermutlich wird dein Bindestrich hier gesetzt.

Gruß Gerd

Prof. Dr. Peter Henning

Nicht vermutlich, sondern auch realiter.

LG

pah

Freee84neu

#128
Danke dann war meine Vermutung ja richtig.

Das hab ich aber leider immer noch nicht so drauf. Das verstehe ich immer nur zu 20%. Dann muss ich mal weiter schauen.
Das Device TBot_List ist da zwar etwas zu viel an der Stelle. Aber hat mich auch weiter gebracht.
Ist nur schade das man dort nicht leise zustellen kann 😉.
Aber mal ein wenig testen. Vielleicht bekomm ich den String ja doch noch hin

Freee84neu

Moin so die Bindestriche hab ich weg!

sub PostMeTelegram($$$) {
  my ($recipient, $subject, $list) = @_;
  my @items = split(",", $list);
  @items = sort(@items);

  fhem("set MikeFhemBot silentmsg \@".$recipient." $subject:\n ".join("\n ", @items));
  return;
}


Aber leider immer noch das das erste Reading immer am Schluss steht