[Gelöst] Spritpreise und www.clever-tanken.de

Begonnen von UweUwe, 19 Dezember 2018, 11:14:39

Vorheriges Thema - Nächstes Thema

UweUwe

Hallo Christoph Morrisson ,

das ist doch genau das, was ich mir wünsche. Kannst du dies bitte mal darstellen, schicken?
Das wäre prima.

Uwe


UweUwe

Hallo Mathze,
zwischenzeitlich war ich anderweitig tätig, leider.
Jetzt habe ich mich um deinen Vorschlag gekümmert:
Zitatdazu benötigst du nicht viel.
Du brauchst zuerst einmal ein Notify oder Doif (je nachdem was dir mehr zusagt), mit welches du auf eingehende Telegram Nachrichten reagierst.

z.B.
Code: [Auswählen]

define getMessageTelegram notify Telegram:msgId:.* { checkMessage() }


Nun legst du in der 99_myUtils eine Routine an, wo du die eingehenden Nachrichten prüfst:

Hat prima geklammt, die Tele-Bot abfragen zu den Spritpreisen laufen nun problemlos für alle angemeldeten Nutzer.
Den Code hab ich auch verstanden, es ist von verstanden immer noch ein grosser Weg zu selbst generierter Code. Ist mir sehr klar.
Merci nochmals, werde auch noch dein 2.Beispiel mit dem Benzinpreisalarm näher betrachten.








t1me2die

Moin Uwe, dass freut mich, falls du Fragen hast oder irgendwas nicht verstehst, melde Dich einfach mit einem konkreten Beispiel, dann kann ich es Dir erklären.

Gruß
Mathze

FHEM-User22

Hallo,
ich habe folgende Fehlermeldung:
Unrecognized character \xC3; marked by <-- HERE after ritpreis f<-- HERE near column 66 at ./FHEM/99_myUtils.pm line 22.

Meine 99_myUtils.pm sieht folgendermassen aus:


sub checkMessage()
{
my $id = ReadingsVal("TelegramFS","msgPeerId","");
my $alias = ReadingsVal("TelegramFS","msgPeer","");
my $message = ReadingsVal("TelegramFS","msgText","");
my $Trebsen = ReadingsVal("TankeTrebsen","SuperE5","");
my $Globus = ReadingsVal("TankeGlobus","SuperE5","");

if ($message =~ /Sprit/)
        {
            fhem "set TelegramFS message \@$id " Der Spritpreis für Diesel beträgt: \n* Trebsen: $Trebsen€ \n* Globus: $Globus€";
        }
}


Wo könnte der Fehler sein?

Dankeschön
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Otto123

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

FHEM-User22

Dankeschön Otto,
aber nun:
ERROR:
Unrecognized character \xE2; marked by <-- HERE after : $Trebsen<-- HERE near column 108 at ./FHEM/99_myUtils.pm line 22.


sub checkMessage()
{
my $id = ReadingsVal("TelegramFS","msgPeerId","");
my $alias = ReadingsVal("TelegramFS","msgPeer","");
my $message = ReadingsVal("TelegramFS","msgText","");
my $Trebsen = ReadingsVal("TankeTrebsen","SuperE5","");
my $Globus = ReadingsVal("TankeGlobus","SuperE5","");

if ($message =~ /Sprit/)
        {
            fhem "set TelegramFS message \@$id " Der Spritpreis fuer Diesel betraegt: \n* Trebsen: $Trebsen€ \n* Globus: $Globus€";
        }
}


bin ratlos...

Liebe Grüße
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Otto123

#36
Moin,

naja immer dasselbe Schema  ;D
Ich dachte Du schnallst es beim ersten  ;D
Es steht doch exakt im Text:
Unrecognized character \xE2; marked by <--
HERE after : $Trebsen<-- HERE ...

Was steht dort? Ein €

Dein Telegram oder wer auch immer auf dieser Reise kommt mit Sonderzeichen nicht klar. Vielleicht muss man die "schützen" bzw. "escapen" oder erstmal weglassen.
Eigentlich kann Perl an sich an der Stelle mit Sonderzeichen umgehen. Aber vielleicht ist irgendwo ein falscher Zeichensatz eingestellt oder so was.
Also lass erstmal alles an Sonderzeichen weg.

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

FHEM-User22

Oh Mann,
Du hast beim nächsten Treffen ein Bier gut.  ;D

Dennoch 2 weitere Fragen.
Wo muß/kann ich den Zeichensatz wohin umstellen?

Und das Ganze für zwei Nutzer mit verschiedenen Spritarten, geht das? Ich habs probiert, in die 99_myUtils.pm das Ganze 2 mal mit angepassten TelegrammDevices, da sendet er nichts mehr.

Dankeschön
FHEM auf Raspberry Pi und Proxmox und... und.... und....

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

Zitat von: FHEM-User22 am 06 April 2019, 16:17:14
Dennoch 2 weitere Fragen.
Wo muß/kann ich den Zeichensatz wohin umstellen?

Und das Ganze für zwei Nutzer mit verschiedenen Spritarten, geht das? Ich habs probiert, in die 99_myUtils.pm das Ganze 2 mal mit angepassten TelegrammDevices, da sendet er nichts mehr.
zur 1.
Ich bin mir noch nicht ganz sicher, wieso dieser Fehler auftritt. Ich kann bei mir durchaus Umlaute usw. verwenden.
Deswegen müsstest Du mal drei Stellen testen.
in der FHEM Kommandozeile
set irgendeinDummy Müller
set TelegramFS message ?? "Müller" (ich weiß nicht wie das mit Telegram wirklich geht, deswegen die ??)
in der 99_myUtils in einer Testsub
sub testmueller {fhem ("set irgendeinDummy Müller") }
Kommt der Perlfehler immer?

zur 2. da müsstes Du mal den Code posten, ich verstehe nicht, warum das nicht gehen soll.

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

FHEM-User22

Hallo Otto,

Zitat von: Otto123 am 07 April 2019, 19:00:22
zur 1.
Ich bin mir noch nicht ganz sicher, wieso dieser Fehler auftritt. Ich kann bei mir durchaus Umlaute usw. verwenden.
Bei der Neuinstallation (auf Proxmox):
# Konfigurieren lokale Sprache deutsch
sudo sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen
sudo locale-gen
sudo localectl set-locale LANG=de_DE.UTF-8 LANGUAGE=de_DE

soll ich hier irgend was anderes eintagen?

Zitat von: Otto123 am 07 April 2019, 19:00:22
Deswegen müsstest Du mal drei Stellen testen.
in der FHEM Kommandozeile
set irgendeinDummy Müller

Ich kann einen Dummy "Lampe02" auf "Müller" schalten. Das klappt.

Zitat von: Otto123 am 07 April 2019, 19:00:22
set TelegramFS message ?? "Müller" (ich weiß nicht wie das mit Telegram wirklich geht, deswegen die ??)

set TelegramFS message Müller

kommt an. Passt auch.

Zitat von: Otto123 am 07 April 2019, 19:00:22
in der 99_myUtils in einer Testsub
sub testmueller {fhem ("set irgendeinDummy Müller") }
Kommt der Perlfehler immer?

sub testmueller {fhem ("set Lampe02 Müller") }


geht ohne Fehler

Gaaaaanz seltsam, jetzt kann ich in der 99_myUtils plötzlich € eingeben und es werden keine Fehler angezeigt.
Ob das €-Zeichen durch PlugandPlay "verwurschtelt" war? Jetzt habe ich es über Tastatur eingegeben.
Auch "beträgt" macht keine Fehler mehr.
Ich habe sonst nichts geändert!

Zitat von: Otto123 am 07 April 2019, 19:00:22
zur 2. da müsstes Du mal den Code posten, ich verstehe nicht, warum das nicht gehen soll.
Das mache nachher...

Dankeschön aus Grimma
FHEM auf Raspberry Pi und Proxmox und... und.... und....

FHEM-User22

Hallo nochmal,

Zitat von: Otto123 am 07 April 2019, 19:00:22
zur 2. da müsstes Du mal den Code posten, ich verstehe nicht, warum das nicht gehen soll.

Es wird immer seltsamer, jetzt habe ich alles 2 mal (Für 2 Telegramme) angelegt, und siehe da, es klappt. Ich weiss nicht, was gestern los war. Jetzt klappt alles.

Supi, Freu.

Jetzt nur noch 2 Wünsche.... schnellwechduck....

Spritpreise im Telegram auf 2 Stellen runden, die 0,009 bleibt ja meist gleich.

und in der 99_myUtils:

my $id = ReadingsVal("TelegramFS","msgPeerId","");
my $alias = ReadingsVal("TelegramFS","msgPeer","");
my $message = ReadingsVal("TelegramFS","msgText","");
my $Trebsen = ReadingsVal("TankeTrebsen","SuperE5","");
my $TankeAralGrimmaAB = ReadingsVal("TankeAralGrimmaAB","SuperE5","");
my $TankeStarNHF = ReadingsVal("TankeStarNHF","SuperE5","");
my $Globus = ReadingsVal("TankeGlobus","SuperE5","");

if ($message =~ /Sprit/)
        {
            fhem "set TelegramFS message \@$id Der Spritpreis fuer Super beträgt: \n* Trebsen: $Trebsen € \n* ARAL oben: $TankeAralGrimmaAB € \n* Star NHF: $TankeStarNHF € \n* Globus: $Globus €";


Könnte man das zusammenfassen, also nur eine Zeile mit "Tanke*" nötig ist und natürlich beim Ausdruck der Telegramzeile den Devicenamen?

Ansonsten Alles Super! Dankeschön für Eure Hilfen.

Grüße aus Grimma
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Otto123

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

Jamo

Ich bekomme seit ein paar Tagen bei Clever-tanken immer nur noch eine Fehlermeldung:

"Read response to Update didn't match any Reading(s)"

Hat das auch einer? Oder hat einer viell. eine Idee?

Der Spritpreismonitor ist wie im Wiki definiert, z.B. "SHELL"  https://wiki.fhem.de/wiki/Spritpreismonitor
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

yersinia

viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl