Wecken je nach Verkehrslage z.B. durch Abfrage von google maps (o.ä.)

Begonnen von schlupp, 13 Februar 2014, 00:02:34

Vorheriges Thema - Nächstes Thema

spetial

Zitat von: P.A.Trick am 29 November 2015, 18:49:49
Hm bei mir dasselbe...bekomme die Userreadings nicht in das Attribut rein!

Das hat aber @Loredo richtig gut erklärt! :
Zitat von: Loredo am 27 November 2015, 00:38:20
Du erstellst erst das Device:



define Fahrzeit1 HTTPMOD  https://maps.googleapis.com/maps/api/distancematrix/json?origins=MUENCHEN,XXXX&destinations=GERSTHOFEN,XXXX&mode=driving&language=de-DE&departure_time=now&key=XXX 1800



Das ist das einzige, was du über das Kommando-Feld _oben_ eingibst.
Die restlichen Attribute gibst du auf der Detailseite des Devices "Fahrzeit1" ein. Du suchst jeweils in der Attributliste das Attribut aus, welches du eingeben willst und kopierst dann alles _nach_ dem Attributnamen dort in das Feld.
Du fängst natürlich mit dem userattr-Attribut an, sonst werden die User-Attribute nicht angezeigt, die du hier brauchst.


Fhem Grundlagenkurs :-)

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

spetial

Zitat von: P.A.Trick am 29 November 2015, 18:56:10
Danke aber Copy&Paste wäre einfacher gewesen :-)

hahaha habe ich mir auch gedacht :D geht leider nicht :/

Hat für mich jemand noch ein Tipp was ich damit machen kann?

2015.11.28 17:51:50 3: Arbeit: Defined with URL https://maps.googleapis.com/maps/api/distancematrix/json?origins=Sankt+Augustin,xxxxx+xx&destinations=xxxxxxx&mode=driving&language=de-DE&departure_time=now&key=Axxxxxxxxxxxxxxxxxxw and interval 900
Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 32, <$fh> line 120.
Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 32, <$fh> line 123.

masterpete23

Zitat von: spetial am 29 November 2015, 18:59:47
hahaha habe ich mir auch gedacht :D geht leider nicht :/

Hat für mich jemand noch ein Tipp was ich damit machen kann?

2015.11.28 17:51:50 3: Arbeit: Defined with URL https://maps.googleapis.com/maps/api/distancematrix/json?origins=Sankt+Augustin,xxxxx+xx&destinations=xxxxxxx&mode=driving&language=de-DE&departure_time=now&key=Axxxxxxxxxxxxxxxxxxw and interval 900
Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 32, <$fh> line 120.
Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 32, <$fh> line 123.


da müsstest du mal deine 99_myUtils.pm posten

masterpete23

#124
Nun wollte ich das auch mal einbauen.
Bei mir werden aber nicht alle Werte angezeigt
Woran kann das liegen?



EDIT: Habe es hinbekommen indem man wirklich nur den httpmod ins cfg einträgt und den rest per copynpaste auf der Seite einträge

CoolTux

Ich schaue mir das gerade für Busverbindungen an. Hierfür muß man lediglich die Directions API verwenden. Die JSON Ausgabe sieht gut aus, muß nur noch schauen wie ich das in Readings presse. Soll ja auch sinnvoll und lesbar sein.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net


masterpete23

Ach ich seh grad - hatte ich auch

habe dann ja die Lösung gewechselt und da braucht man das nicht mehr
so war meins - teste mal

sub GoogleExpr($)
{
   my ($traffic) = @_;

   #zunächst die Minuten ermitteln
   $traffic =~ /([\d]+) Minuten?/;
   my $Std_Min = $1;
   my $Std_Std = "0";

   #falls Stunden angegeben sind, diese nun ermitteln
   if($traffic =~ /([\d]+) Stunden?/) { $Std_Std = $1; }

   return sprintf("%02d:%02d",$Std_Std,$Std_Min);
}

xxsteffenxx



define Fahrzeit1 HTTPMOD  https://maps.googleapis.com/maps/api/distancematrix/json?origins=MUENCHEN,XXXX&destinations=GERSTHOFEN,XXXX&mode=driving&language=de-DE&departure_time=now&key=XXX 1800
attr Fahrzeit1 reading01Name duration
attr Fahrzeit1 reading01Regex "duration"\s*:\s*{\s*["\w\s:,]+"value"\s*:\s*(\d+)\s*}
attr Fahrzeit1 reading02Name duration_in_traffic
attr Fahrzeit1 reading02Regex "duration_in_traffic"\s*:\s*{\s*["\w\s:,]+"value"\s*:\s*(\d+)\s*}
attr Fahrzeit1 reading03Name distance
attr Fahrzeit1 reading03Regex "distance"\s*:\s*{\s*["\w\s:,]+"value"\s*:\s*(\d+)\s*}
attr Fahrzeit1 reading04Name destination_addresses
attr Fahrzeit1 reading04Regex "destination_addresses"\s*:\s*\[\s*"([\w\s.,-:üöäß]+)"\s*\],
attr Fahrzeit1 reading05Name origin_addresses
attr Fahrzeit1 reading05Regex "origin_addresses"\s*:\s*\[\s*"([\w\s.,-:üöäß]+)"\s*\],
attr Fahrzeit1 stateFormat duration_hr duration_diff_hr Min. (distance_hr km)
attr Fahrzeit1 userReadings duration_hr {strftime "%H:%M", gmtime( int( ReadingsVal("$name","duration",0) /60+0.5)*60 );}, duration_in_traffic_hr {strftime "%H:%M", gmtime( int( ReadingsVal("$name","duration_in_traffic",0) /60+0.5)*60 );}, distance_hr:distance {int( ReadingsVal("$name","distance",0) /1000+0.5);}, duration_diff {int((ReadingsVal("$name","duration_in_traffic",0)-ReadingsVal("$name","duration",0))/60+0.5);}, duration_diff_hr {my $diff=int((ReadingsVal("$name","duration_in_traffic",0)-ReadingsVal("$name","duration",0))/60+0.5); return "+".$diff if ($diff>0); return "+0";}
attr Fahrzeit1 userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex

[/quote]

So hab dies nun auch versucht; leider kommen bei mir nur die Readings destination_addresses, distance, duration und origin_addresses an.

Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

Loredo

Zitat von: xxsteffenxx am 02 Dezember 2015, 12:59:39
So hab dies nun auch versucht; leider kommen bei mir nur die Readings destination_addresses, distance, duration und origin_addresses an.


Wer event-on-* verwendet, muss diese so einstellen, dass richtig getriggert werden kann. Sonst werden die User-Readings nicht ausgeführt. Siehe FHEM Commandref zum Thema event-on-* Attribute
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

xxsteffenxx

Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

chr2k

Zitat von: betateilchen am 13 Februar 2014, 20:29:54
Mein fhem schaut morgens von 05:00 - 06:35 alle 5 Minuten auf die Bahnwebseite, ob mein Zug pünktlich (06:36) kommt

Magst du deinen Code mit mir teilen?

CoolTux

Zitat von: chr2k am 05 Dezember 2015, 19:50:51
Magst du deinen Code mit mir teilen?

Dafür gibt es hier ein Modul. Schau einfach mal ins Forum. Eventuell ist es sogar schon offiziell. Das weiß ich gerade nicht genau.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net


uniqueck

ja das Modul ist damit gemeint, das funktioniert auch sehr gut.