FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Andre0909 am 22 April 2018, 22:17:11

Titel: Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 22 April 2018, 22:17:11
moin habe foldendes probiert:

define WD_Stausmeldung WeekdayTimer teleBot 78|13:30|{fhem("set teleBot silentmsg ℹ <b>Systems OK </b> \n <i>Up: </i>(ReadingsVal("System","fhemuptime_text",0)) \n <i>Modus: </i>(ReadingsVal("Automatikmodus","state",0)) ⚠(ReadingsVal("Ueberwachungsmodus","state",0))🔔 (ReadingsVal("Klingelbenachrichtigungsdummy","state",0))")}

Das klappt aber nicht. Was mache ich falsch? Was will ich? jeden Tag um 13:30 eine Telegram Nachricht mit dem Inhalt dahinter....

Nutze Telegram für sehr viele Meldungen die alle ähnlich lauten aber der Zusammenhang mit weekdaytimer will nicht klappen ... :(

Jmd ne idee?
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 23 April 2018, 09:26:34
Ja.

LG

pah
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 23 April 2018, 13:19:13
Zitat von: Prof. Dr. Peter Henning am 23 April 2018, 09:26:34
Ja.

LG

pah
Aha ?!


Gesendet von iPhone mit Tapatalk
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: CoolTux am 23 April 2018, 13:28:22
Ich würde das mit einem at lösen, ich glaube für Dein Vorhaben ist der WeekdayTimer nicht so gut.
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Beta-User am 23 April 2018, 13:31:22
Näheres zu solcher Art Antwort wie der von pah ist hier zu finden: In welcher Gruppe sollte ich meine Fragen stellen (https://forum.fhem.de/index.php/topic,13092.0.html), link in diesem Post: https://forum.fhem.de/index.php/topic,13092.msg105687.html#msg105687

@CoolTux: gebe dir recht, wenn es wie hier täglich zur gleichen Zeit sein soll.

Für den Fall, dass es um die Einarbeitung in den WeekdayTimer ging: die Syntax paßt nicht zu dem, was Weekdaytimer möchte, lt. commandref sollte das so aussehen:
define <name> WeekdayTimer <device> [<language>] [weekdays] <profile> <command>|<condition>

Übertragen auf deine Frage könnte also folgendes Klappen

define WD_Stausmeldung WeekdayTimer teleBot 78|13:30|on {fhem "set teleBot silentmsg ..."}

Das "on" brauchst du nur, damit die Syntax paßt, das könnte auch "blabla" oder "42" stehen...
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: CoolTux am 23 April 2018, 13:33:54
Bitte bloß nicht 42!!
Damit wären automatisch alle Fragen beantwortet  ;D
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Beta-User am 23 April 2018, 13:43:04
Oje, wie konnte ich das übersehen?!?

Die kniffelige Frage ist aber doch, ob der WDT den Wert dieser Antwort auch zu schätzen weiß? Er bekommt sie ja schließlich, und niemand sonst ::) .
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 23 April 2018, 16:23:35
Hmm. Bisher hat er ja keine Sachfrage gestellt, sondern nur gefragt, ob jemand eine Idee hat. Der Semantik nach muss diese sich noch nicht einmal auf sein Problem beziehen...

Allerdings könnte man natürlich "Was mache ich falsch" auch als Frage verstehen => Antwort: String-Delimiter ".


LG

pah
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 25 April 2018, 17:11:39
Zitat von: Beta-User am 23 April 2018, 13:31:22
Näheres zu solcher Art Antwort wie der von pah ist hier zu finden: In welcher Gruppe sollte ich meine Fragen stellen (https://forum.fhem.de/index.php/topic,13092.0.html), link in diesem Post: https://forum.fhem.de/index.php/topic,13092.msg105687.html#msg105687

@CoolTux: gebe dir recht, wenn es wie hier täglich zur gleichen Zeit sein soll.

Für den Fall, dass es um die Einarbeitung in den WeekdayTimer ging: die Syntax paßt nicht zu dem, was Weekdaytimer möchte, lt. commandref sollte das so aussehen:
define <name> WeekdayTimer <device> [<language>] [weekdays] <profile> <command>|<condition>

Übertragen auf deine Frage könnte also folgendes Klappen

define WD_Stausmeldung WeekdayTimer teleBot 78|13:30|on {fhem "set teleBot silentmsg ..."}

Das "on" brauchst du nur, damit die Syntax paßt, das könnte auch "blabla" oder "42" stehen...

Danke werde ich ausprobieren
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 25 April 2018, 17:16:28
Zitat von: CoolTux am 23 April 2018, 13:28:22
Ich würde das mit einem at lösen, ich glaube für Dein Vorhaben ist der WeekdayTimer nicht so gut.

Gebe ich dir recht, wollte nur flexibler sein, da dies später auch zu anderen Zeiten und Wochentagsabhängig gestaltet werden soll.
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 25 April 2018, 17:18:35
Zitat von: Prof. Dr. Peter Henning am 23 April 2018, 16:23:35
Hmm. Bisher hat er ja keine Sachfrage gestellt, sondern nur gefragt, ob jemand eine Idee hat. Der Semantik nach muss diese sich noch nicht einmal auf sein Problem beziehen...

Allerdings könnte man natürlich "Was mache ich falsch" auch als Frage verstehen => Antwort: String-Delimiter ".


LG

pah

In welchem Land ist "Was mache ich falsch? " und ein entsprechender Codeschnipsel keine Sachfrage? Wir können einen philosophischen, grammatikalischen oder sonstigen Diskurs aber gerne auch per PN führen. Sonst müsste ich jetzt auf die Posting regeln betreffend "beim Thema bleiben" verweisen oder?

So long ..

ak
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 27 April 2018, 13:22:58
Zitat von: Beta-User am 23 April 2018, 13:31:22
Näheres zu solcher Art Antwort wie der von pah ist hier zu finden: In welcher Gruppe sollte ich meine Fragen stellen (https://forum.fhem.de/index.php/topic,13092.0.html), link in diesem Post: https://forum.fhem.de/index.php/topic,13092.msg105687.html#msg105687

@CoolTux: gebe dir recht, wenn es wie hier täglich zur gleichen Zeit sein soll.

Für den Fall, dass es um die Einarbeitung in den WeekdayTimer ging: die Syntax paßt nicht zu dem, was Weekdaytimer möchte, lt. commandref sollte das so aussehen:
define <name> WeekdayTimer <device> [<language>] [weekdays] <profile> <command>|<condition>

Übertragen auf deine Frage könnte also folgendes Klappen

define WD_Stausmeldung WeekdayTimer teleBot 78|13:30|on {fhem "set teleBot silentmsg ..."}

Das "on" brauchst du nur, damit die Syntax paßt, das könnte auch "blabla" oder "42" stehen...
Genauso geht es auch nicht .. vermute mal irgendwas falsches mit Klammern aber komme nicht drauf


Gesendet von iPhone mit Tapatalk
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Beta-User am 27 April 2018, 13:57:11
Kein Ahnung, warum das nicht funktioniert.

Anbei ein Beispiel, das ich seit langem so im Einsatz habe:
define Timer_Brunnen_Schildkroeten WeekdayTimer Wasser_Schildkroeten 10:45|1800 12:30|1800 14:00|1800 15:30|1800 17:00|1800 19:00|1800 { if (ReadingsVal("Aussentemperatur_Nord", "state", "no") > 8 && ReadingsVal("Heizung_Schildkroeten","state","active") eq "disabled") { fhem ("set $NAME on-for-timer $EVENT")}}

Soweit mir geläufig, sind die runden Klammern bei fhem ("set $NAME on-for-timer $EVENT") eigentlich nicht notwendig; vielleicht baust du testweise mal welche rein. Wenn das immer noch hakt, kannst du ja noch $NAME statt teleBot testen, aber eigentlich sollte das völlig egal sein.
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 27 April 2018, 15:33:09
Wie schon gesagt: Der String ist korrupt, weil die Anführungszeichen ("Delimiter"...) nicht in der richtigen Hierarchie stehen. Ich kann ja verstehen, dass man lieber "Diskurse" führt, als Anführungszeichen zu zählen - dann müssen doch aber bitte die Grundlagen stimmen.

LG

pah
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 29 April 2018, 11:10:34
Zitat von: Prof. Dr. Peter Henning am 27 April 2018, 15:33:09
Wie schon gesagt: Der String ist korrupt, weil die Anführungszeichen ("Delimiter"...) nicht in der richtigen Hierarchie stehen. Ich kann ja verstehen, dass man lieber "Diskurse" führt, als Anführungszeichen zu zählen - dann müssen doch aber bitte die Grundlagen stimmen.

LG

pah

Den  Diskurs habe ich kaum begonnen. 2. Hat es ja einen Sinn, dass es im Anfängerforum steht und nicht im "telegram"-Forum, da mir klar war das irgendwo ein "Syntax"-Problem bestehen muss. Mit deiner ersten Antwort konnte ich daher nicht wirklich was anfangen...

.. Back to Basic:

Ich raff es immer noch nicht

define WD_Stausmeldung WeekdayTimer teleBot 78|13:30|on {fhem("set teleBot silentmsg ℹ <b>Systems OK </b> \n <i>Up: </i>(ReadingsVal("System","fhemuptime_text",0)) \n <i>Modus: </i>(ReadingsVal("Automatikmodus","state",0)) ⚠(ReadingsVal("Ueberwachungsmodus","state",0))🔔 (ReadingsVal("Klingelbenachrichtigungsdummy","state",0))")}

Das 1. ""-Paar "klammert" den set von Anfang bis Ende ein {fhem("set ....")}. Die restlichen "" dienen jeweils für die ReadingsVals. Hier habe ich auch keinen zuviel gezählt. Raffs net, sorry
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Beta-User am 29 April 2018, 12:03:51
Das Problem, auf das pah zurecht hingewiesen hat, ist dass die äußeren "" eben nicht klammern, sondern das erste " mit dem nächstfolgenden " zusammengehört. Man muß daher " und ' im Wechsel verwenden. Du solltest daher z.B. mal  alle "inneren" Anführungszeichen testweise mit ' ersetzen.
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 29 April 2018, 20:50:42
Eben "Basic". Perl Data Types.

pah
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 29 April 2018, 21:14:30
Zitat von: Beta-User am 29 April 2018, 12:03:51
Das Problem, auf das pah zurecht hingewiesen hat, ist dass die äußeren "" eben nicht klammern, sondern das erste " mit dem nächstfolgenden " zusammengehört. Man muß daher " und ' im Wechsel verwenden. Du solltest daher z.B. mal  alle "inneren" Anführungszeichen testweise mit ' ersetzen.

Verstanden. Danke wird ausprobiert
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 29 April 2018, 21:31:03
Neinnein. Software entwickelt man nicht durch Ausprobieren (induktiv) - sondern durch das Lernen der Grundlagen und Anwendung der Regeln (deduktiv). Sonst kommt beim nächsten Mal wieder nichts heraus.

Also bitte ernsthaft nachlesen im perldoc, wie man Datentypen verwendet.

pah

Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 30 April 2018, 13:42:44
Zitat von: Beta-User am 29 April 2018, 12:03:51
Das Problem, auf das pah zurecht hingewiesen hat, ist dass die äußeren "" eben nicht klammern, sondern das erste " mit dem nächstfolgenden " zusammengehört. Man muß daher " und ' im Wechsel verwenden. Du solltest daher z.B. mal  alle "inneren" Anführungszeichen testweise mit ' ersetzen.
Hab ich geändert das die inneren ,," durch ,' ersetzt wurden. Jetzt kommt die Meldung zwar aber die readingsval werden nicht aufgelöst. Also bekomme ich als Meldung

[emoji671] Systems OK 
Up: (ReadingsVal('System','fhemuptime_text',0))
Modus: (ReadingsVal('Automatikmodus','state',0)) [emoji615](ReadingsVal('Ueberwachungsmodus','state',0))[emoji348] (ReadingsVal('Klingelbenachrichtigungsdummy','state',0))


Gesendet von iPhone mit Tapatalk
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 30 April 2018, 15:43:25
Lustig - der Fragesteller probiert immer weiter herum, und hat die einfachsten Grundlagen nicht verstanden ...

Also noch einmal Hilfe zur Selbsthilfe:
- Bitte lesen über Perl Datentypen
- Bitte lesen Perl String-Grundlagen, z.B. http://perl101.org/strings.html
- Bitte einfach bei Google eingeben "perl string zusammensetzen".

LG

pah
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 30 April 2018, 20:03:05
Zitat von: Prof. Dr. Peter Henning am 30 April 2018, 15:43:25
Lustig - der Fragesteller probiert immer weiter herum, und hat die einfachsten Grundlagen nicht verstanden ...

Also noch einmal Hilfe zur Selbsthilfe:
- Bitte lesen über Perl Datentypen
- Bitte lesen Perl String-Grundlagen, z.B. http://perl101.org/strings.html
- Bitte einfach bei Google eingeben "perl string zusammensetzen".

LG

pah

Lustig, der "Fragesteller" hat trotzdem ein hervorragend funktionierendes FHEM mit FTUI aufgebaut ohne jeglich Vorbildung. Wie denn das ohne die "einfachsten Grundlagen"? Durch probieren - fail - neu probieren, nachlesen... Aber Was ein Idiot. Törricht von mir daher im Anfängerforum eine Frage zu stellen ohne ein PERL-Profi zu sein, der ich bisher nicht sein musste. Aber schließen wir es einfach hier, sonst bin ich wieder Schuld wegen Diskurs und so. Kein Bock mehr, ich setze es anders um. Schön wenn das für den "Antwortenden" lustig ist. Ich erwarte hier kein "so muss es gehen". Aber Arroganz hätte ich hier nicht erwartet. LG
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: amenomade am 30 April 2018, 20:57:14
Komm... Der Ton ist vielleicht doch sarkastisch gewesen, aber die Leseempfehlungen sind gut. Kurz um weiter zu helfen, so wird deine erste Definition interpretiert:
Zitat{fhem("set teleBot silentmsg ℹ <b>Systems OK </b> \n <i>Up: </i>(ReadingsVal("System","fhemuptime_text",0)) \n <i>Modus: </i>(ReadingsVal("usw

Das 2. Wort System gehört schon nicht mehr zum String. Ausserdem, wird "ReadingsVal" innerhalb eines Strings mit " " als reine... String interpretiert. Was Du aber willst, ist das die Funktion ReadingsVal() durchgeführt wird. Dafür musst Du String-Verknüfung (dot) benutzen, und Strings und Funktionen (datatypes) nicht mischen.

Zitat{fhem("set teleBot silentmsg ℹ <b>Systems OK </b> \n <i>Up: </i>(" . ReadingsVal("System","fhemuptime_text",0) . ") \n <i>Modus: </i>" . ReadingsVal("bla","bla") . "text" . Funktion() . "text" . Funktion() . "restlischer Text")}

Alternativ, Interpolation von Variablen in " " Strings:

Zitat{my $r1 = ReadingsVal("System","fhemuptime_text",0); my $r2 = ReadingsVal("bla","bla") ; fhem("set teleBot silentmsg ℹ <b>Systems OK </b> \n <i>Up: </i>$r1 \n <i>Modus: </i>$r2")}
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 30 April 2018, 21:15:40
vielen lieben Dank, so verstehe ich es als Anfänger auch. Und ja ich habe mir die Links anschaut. Danke fürs erklären.
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Andre0909 am 01 Mai 2018, 09:27:42
Zitat von: Andre0909 am 30 April 2018, 21:15:40
vielen lieben Dank, so verstehe ich es als Anfänger auch. Und ja ich habe mir die Links anschaut. Danke fürs erklären.
@admin @moderator da ich aufgrund dieses Threads schon privat per Nachricht durch einen antwortetenden hier bedroht werde und sowas für mich kein Spaß mehr ist bitte ich darum diesen Thread und meine Anmeldung hier zu löschen. Sowas habe ich definitiv noch nie erlebt und da ist für mich auch eine Grenze erreicht. Auf Wiedersehen .


Gesendet von iPhone mit Tapatalk
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: HubertM am 01 Mai 2018, 09:48:14
Bitte diese PN hier veröffentlichen!
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Byte09 am 01 Mai 2018, 10:02:34
Zitat von: Andre0909 am 01 Mai 2018, 09:27:42
@admin @moderator da ich aufgrund dieses Threads schon privat per Nachricht durch einen antwortetenden hier bedroht werde und sowas für mich kein Spaß mehr ist bitte ich darum diesen Thread und meine Anmeldung hier zu löschen. Sowas habe ich definitiv noch nie erlebt und da ist für mich auch eine Grenze erreicht. Auf Wiedersehen .


Gesendet von iPhone mit Tapatalk

Hi Andre ,

wollte dich gerade privat anschreiben , geht leider ncht mehr - wenn du willst wechsel mit deinem Anliegen in dem MSwitch Thread, damit kannst du es schnell und einfach lösen .
https://forum.fhem.de/index.php/topic,86199.0.html (https://forum.fhem.de/index.php/topic,86199.0.html)
gruss Byte09
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Amenophis86 am 01 Mai 2018, 11:07:41
Habe den Thread bereits mitverfolgt und bitte mich bezüglich der privaten Nachrichten anzuschreiben @Andre0909.
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 01 Mai 2018, 18:18:24
Habe ich gerade...

LG

pah
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: HubertM am 01 Mai 2018, 22:06:22
@LG pah, Du warst aber nicht gefragt  ;)
Titel: Antw:Codehilfe: Kombination WD + perlCode
Beitrag von: Prof. Dr. Peter Henning am 02 Mai 2018, 07:42:37
Sehr qualifizierter Beitrag.

pah