Modul PostMe

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

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Na, ein Fehler nicht direkt - das Modul interpretiert den leeren String korrekterweise als Bestandteil aller Einträge.

Ich denk mal drüber nach, ob ich das abfange.

LG

pah

Fixel2012

#76
Hey,
das Modul hört sich echt super an!

Leider habe ich es bisher weder geschafft ein PostMe via Telegram zu verschicken, noch das PostMe verschönert anzuzeigen(siehe bild im Wiki).

Ich denke das PostMe grafisch anzuzeigen geht über folgenden Code: <embed src="/fhem/PostMe_widget?type=pins&postit=<postit>"/>
Aber wo füge ich den Code ein, bzw was stelle ich mit ihm an? ::) ;D

Wie hier schon in den Kommentaren beschrieben wurde, habe ich in der 99_MyUtils.pm den Code eingefügt und entsprechend für mich abgeändert (nameder Sub und Telegram sende Befehl).

Leider Erfolgs los... Was mache ich falsch?

Hier noch ein List des device:

Internals:
   CFGFN
   NAME       PostIt
   NR         168
   STATE      Initialized
   TYPE       PostMe
   mayBeVisible 1
   Readings:
     2017-01-31 20:37:49   postme01Cont    Sauerkraut
     2017-01-28 13:44:34   postme01Name    Einkaufsliste
     2017-01-28 13:49:50   postme02Cont
     2017-01-28 13:49:50   postme02Name    TEST
     2017-01-28 13:49:50   postmeCnt       2
     2017-01-31 12:00:36   state           Initialized
Attributes:
   postmeClick 0
   postmeIcon images/default/pin_red_32.png
   postmeMsgFun PostMeTelegram
   postmeStyle jQuery
   room       Zentral


Der Code in meiner 99_MyUtils.pm:

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



Kann mir dort jemand helfen?
Danke und Gruß Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

ThomasMagnum

Hallo pah,

habe per Update gesehen das du eine Prüfung eines leeren Listeneintrag eingebaut hast.
Vielen Dank dafür!

Hintergrund war nicht die Bedienung per Webview, sondern per Jabber, da kann es schon mal vorkommen das kein Listeneintrag mit übergeben wird.

Gruß, Thomas

igami

#78
Ich würde mir noch wünschen, dass man bei get eine eigenen Funktion angeben kann.
Z.B. "get PostMe userfuc all" und dann bekommt man eben den Rückgabewert seiner Funktion angezeigt.

Und ich würde gerne die Meldung "Error, item $item is already present in PostMe $listname" unterdrücken können. z.B. als Attribut noWarning
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

budda85

Guten Morgen,
ich verstehe das mit dem FHEM2FHEM nicht ganz, so wie es im Wiki beschrieben ist.

Ich mache mir also ein zweites FHEM auf einem zweiten Raspberry. Hier richte ich mir dann den TelegramBot ein plus das notify.
Alles andere, wie PostMe und die Sachen für die myUtils richte ich dann an meinem "Haupt-FHEM" ein und richte ein FHEM2FHEM per Log ein.
Ist das richtig? Oder muss ich auf dem zweiten FHEM auch wieder FHEM2FHEM einrichten damit ich die Ergebnisse von der Sub bekomme?

Bin über jeden Tipp dankbar  :)
Gruß
Jan

Loredo

Zitat von: igami am 16 Februar 2017, 10:48:06
Und ich würde gerne die Meldung "Error, item $item is already present in PostMe $listname" unterdrücken können. z.B. als Attribut noWarning


Ist mir auch aufgefallen, als ich den Support für den msg-Befehl hinzugefügt habe.
Eine geringerer Schwellenwert fürs Logging wäre u.U. eher wünschenswert. IMHO sind das keine Priorität 1 Nachrichten, eher 4 oder maximal 3.

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Prof. Dr. Peter Henning

#81
ZitatEine geringerer Schwellenwert fürs Logging wäre u.U. eher wünschenswert. IMHO sind das keine Priorität 1 Nachrichten, eher 4 oder maximal 3.

Sehe ich anders - denn das ist wirklich ein Bedienungsfehler, weil items nicht doppelt vorkommen dürfen. Speziell für die Items, die aus dem msg-Modul kommen: Die sollten m.E. einen (abgekürzten ?) Zeitstempel bekommen, dann tritt das Problem gar nicht auf.

LG

pah

Loredo

Zitat von: Prof. Dr. Peter Henning am 27 März 2017, 20:59:48Speziell für die Items, die aus dem msg-Modul kommen: Die sollten m.E. einen (abgekürzten ?) Zeitstempel bekommen, dann tritt das Problem gar nicht auf.


Leider kann man keine Leerzeichen für den Namen der Listen verwenden, weshalb hier aktuell nur blieb die Nachrichtendetails als Attribute und somit mehrere Nachrichten auf dem selben PostIt abzulegen. Die Attribute kann man sich in der FHEMWEB UI natürlich aktuell nicht über jQuery o.ä. anzeigen lassen.


Mit "modify" lassen sich auch keine Attribute hinzufügen, sofern im Item ein Leerzeichen enthalten ist. Daher ist Item aktuell auch nicht ganz als Träger für eine längere Nachricht geeignet, ohne auf die Nutzung von Attributen zu verzichten.


---


TL;DR


Ich habe jetzt nochmal etwas herumgespielt. Schade ist, dass die Notizzettelnamen keine Leerzeichen beinhalten können und keine Leerzeichen im Text (bzw. bei dessen Anzeige) berücksichtigt werden. Wenn dann noch die Attribute funktionieren würden, dann wäre es ziemlich genial.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Prof. Dr. Peter Henning

Dass keine Leerzeichen in Namen vorkommen dürfen, soll eigentlich so bleiben. Ist aber keine Einschränkung - ich verwende z.B. in Peters_Liste einen Unterstrich.
Warum also nicht für eine Systemnachricht verwenden

set PostMe create 2017-03-28_Systemnachricht

Items dürfen beliebig viele Leerzeichen haben. Und selbstverständlich kann man auch solchen Items Attribute geben.
Beispiel:

set PostMe add Peters_Liste Düse Gartenschlauch => fügt das Item Düse Gartenschlauch hinzu
set PostMe modify Peters_Liste Düse Farbe hellblau => macht daraus Düse Gartenschlauch [Farbe="hellblau"]
set PostMe modify Peters_Liste Düse Marke nicht Gardena => macht daraus Düse Gartenschlauch [Farbe="hellblau" Marke="nicht Gardena"]


Der Trick besteht also darin, zur Erkennung nicht das gesamte Item zu verwenden, sondern lediglich den führenden Begriff.

Derzeit hat man also das Problem, dass zwei verschiedene Items "Düse Staubsauger" und "Düse Gartenschlauch" zwar möglich sind - aber dann für den zweiten Item keine Attribute gesetzt werden können. Möglicherweise kann ich das bei Gelegenheit noch escapen - also dafür sorgen, dass man beim Setzen vpn Attributen das Leerzeichen im Item als \s o.ä. angeben kann.  Ich habe aber derzeit extrem viel andere Dinge um die Ohren, das kommt also nicht sehr schnell...
Denn eine Einschränkung ist das ja auch nicht - man könnte z.B. problemlos "Gartenschlauchdüse" und "Staubsaugerdüse" verwenden - das ist ja der Vorteil der deutschen Sprache ...

Im Übrigen schlage ich vor, konkrete Wünsche an das Modul auch so zu benennen - und nicht so hintenrum als "schade, dass das und das nicht geht" zu formulieren.

LG

pah

Loredo


Hallo pah,

Mir ist noch aufgefallen, dass im Logfile ein paar Fehler auftauchen:


2017.04.02 22:07:18.350 1: PERL WARNING: Scalar value @args[0] better written as $args[0] at ./FHEM/95_PostMe.pm line 1019, <$fh> line 366.
2017.04.02 22:07:18.351 1: PERL WARNING: Scalar value @args[0] better written as $args[0] at ./FHEM/95_PostMe.pm line 1085, <$fh> line 366.
2017.04.02 22:07:20.358 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/95_PostMe.pm line 148.
2017.04.02 22:29:58.680 1: PERL WARNING: Use of uninitialized value $res in string ne at ./FHEM/95_PostMe.pm line 192.


Ich wünsche mir konkret, dass diese bei Gelegenheit korrigiert werden. (besser so?)



Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Prof. Dr. Peter Henning

Besser. Verschafft mir aber immer noch nicht mehr Zeit  ;)

LG

pah

yrwyddfa

Ist es angedacht / möglich / gewünscht, wunderlist mit einzubinden? Also beispielsweise, dass eine fertige List an Wunderlist geschickt wird, um die dortigen Einträge zu ergänzen?
Bei uns ist Wunderlist wegen der Amazon-Push-Buttons am Laufen (und, weil meine Frau sich dafür erwärmen ließ - sie auf ein neues System zu bringen dürfte sich als komplex erweisen).
If every day has its number, Monday would be a zero division.

yrwyddfa

Zur Wunderlist: nachdem der Dienst wohl demnächst eingestellt wird, hat sich das nun wohl von selbst erledigt ;)

Ich habe derzeit allerdings das Problem, dass, sobald ich irgendetwas mit dem Modul anstellen möchte, mir das mit einem Whitescreen quitiert wird. Das betrifft sowohl Das Hantieren mit Listen (add, create, ...) als auch ein list laufen in eine weiße Seite.

Die Logfile sagt folgendes:


2017.05.07 18:25:42 3: FHEMWEB WEB CSRF error:  ne csrf_XXXXXXXXXXXXXXXXX. For detals see the csrfToken FHEMWEB attribute
2017.05.07 18:31:11 3: FHEMWEB WEB CSRF error: csrf_YYYYYYYYYYYYYYYYYYYYYYY ne csrf_ZZZZZZZZZZZZZZZZZZZZZ. For detals see the csrfToken FHEMWEB attribute
2017.05.07 18:31:12 3: FHEMWEB WEB CSRF error: csrf_AAAAAAAAAAAAAAAAAAAAA ne csrf_BBBBBBBBBBBBBBBBBBB. For detals see the csrfToken FHEMWEB attribute


Sonst habe ich nirgendwo Schwiergkeiten. Wenn ich probehalber

attr WEB csrfToken none


setze, funktioniert sowohl ein list als auch das Arbeiten mit den Listen problemlos. Muss hier noch irgendetwas gesetzt werden, damit das mit dem csrtToken richtig funktioniert?
If every day has its number, Monday would be a zero division.

Prof. Dr. Peter Henning

Irgendwann werde ich das in das Modul einbauen. Dauert aber.

LG

pah

yrwyddfa

Ah ok. Dsnke für die Info. Bin von einem PEBCAK ausgegangen ^^
Da ich eh den Zugriff von außen komplett untersagt habe ist das auch erst mal kein Problem für mich es so zu lassen.

Manchmal könnt so ein Tag auch wirklich mal 24 Stunden mehr haben ;)
If every day has its number, Monday would be a zero division.