{"id":471,"date":"2019-05-20T07:02:03","date_gmt":"2019-05-20T05:02:03","guid":{"rendered":"https:\/\/benedict-witzenberger.de\/wordpress\/?p=471"},"modified":"2019-05-19T18:53:13","modified_gmt":"2019-05-19T16:53:13","slug":"uberstunden-tracking-mit-r-und-ifttt","status":"publish","type":"post","link":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/","title":{"rendered":"\u00dcberstunden-Tracking mit R und IFTTT"},"content":{"rendered":"\n<p><strong>Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst.<\/strong><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Ein Urteil aus Luxemburg hat die Arbeitgeber ziemlich durchgesch\u00fcttelt. Der Europ\u00e4ische Gerichtshof hat entschieden, <a href=\"https:\/\/www.sueddeutsche.de\/politik\/arbeitszeit-ueberstunden-urteil-1.4445912\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"dass Arbeitgeber die Arbeitszeiten von ihren Angestellten systematisch erfassen m\u00fcssen (\u00f6ffnet in neuem Tab)\">dass Arbeitgeber die Arbeitszeiten von ihren Angestellten systematisch erfassen m\u00fcssen<\/a>. F\u00fcr die Arbeitgeber das Ende der flexiblen Arbeitszeiten und der Vertrauensarbeitszeit. F\u00fcr die Angestellten aber wohl die Chance auf mehr Gesundheit. Denn \u00dcberstunden machen krank, hat zumindest <a rel=\"noreferrer noopener\" aria-label=\"eine Studie der Unis Halle-Wittenberg und Erlangen-N\u00fcrnberg (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.sciencedirect.com\/science\/article\/abs\/pii\/S0927537118300502?via%3Dihub\" target=\"_blank\">eine Studie der Unis Halle-Wittenberg und Erlangen-N\u00fcrnberg<\/a> f\u00fcr Angestellte im \u00f6ffentlichen Dienst herausgefunden.<\/p>\n\n\n\n<p>Nicht nur deshalb, sondern vor allem, weil ich einen \u00dcberblick \u00fcber meine Arbeitszeiten haben wollte, habe ich im Januar begonnen, zu tracken, wann ich meine Arbeit betrete, und wann ich sie verlasse. Das klappt gut, wenn man einen festen Ort hat, den man morgens betritt.<\/p>\n\n\n\n<h2>Mein Handy erkennt, wann ich die Arbeit betrete und verlasse<\/h2>\n\n\n\n<p>Ich nutze f\u00fcr mein Tracking <a rel=\"noreferrer noopener\" aria-label=\"IFTTT (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/ifttt.com\" target=\"_blank\">IFTTT<\/a>. Das steht f\u00fcr &#8222;If This Then That&#8220; &#8211; eine Webseite, auf der die Nutzer verschiedene Webanwendungen zusammenbinden k\u00f6nnen. In meinem Fall benutze ich deren App auf meinem Handy mit einem sogenannten &#8222;Geo-Fencing&#8220;. Wie der Name andeutet, lege ich einen &#8222;umz\u00e4unten&#8220; Bereich fest, durch den eine Aktion ausgel\u00f6st wird, wenn ich ihn betrete oder verlasse. In meinem Fall schreibt die App dann die Uhrzeit und <code>entered<\/code> oder <code>exited<\/code> in ein Google Spreadsheet.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"215\" src=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.25.59-1024x215.png\" alt=\"\" class=\"wp-image-477\" srcset=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.25.59-1024x215.png 1024w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.25.59-300x63.png 300w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.25.59-768x162.png 768w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.25.59.png 1388w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>So sieht das Google Spreadsheet mit den Rohdaten aus.<\/figcaption><\/figure>\n\n\n\n<p>Diese Apps k\u00f6nnte man selbst entwickeln. Bei IFTTT ist die Infrastruktur aber schon vorhanden. Und andere Entwickler haben <a rel=\"noreferrer noopener\" aria-label=\"diese Schnittstellen (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/ifttt.com\/applets\/93403441d-automated-timesheet-log-your-work-hours-automatically\" target=\"_blank\">diese Schnittstellen<\/a> schon gebaut. Ich konnte sie also ganz einfach wiederverwenden.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"562\" src=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.27.59-1024x562.png\" alt=\"\" class=\"wp-image-478\" srcset=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.27.59-1024x562.png 1024w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.27.59-300x165.png 300w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.27.59-768x422.png 768w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-15-um-11.27.59.png 1490w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>So sieht das Applet in IFTTT aus.<\/figcaption><\/figure>\n\n\n\n<h2>Von den Daten zur Auswertung<\/h2>\n\n\n\n<p>Die Daten laufen also seit Januar in das Spreadsheet ein. Doch ich wollte ja auch irgendwie davon profitieren, dass ich diese Daten erhebe. Meine Idee: Jeden Freitag bekomme ich eine \u00dcbersicht meiner \u00dcberstunden f\u00fcr die vergangene Woche per Mail geschickt.<\/p>\n\n\n\n<p>Zun\u00e4chst habe ich ein Auswertungsskript geschrieben. Daf\u00fcr nutze ich diese Bibliotheken in R:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>library(\"stringr\")\nlibrary(\"lubridate\")\nlibrary(\"dplyr\")\nlibrary(\"ggplot2\")\nlibrary(\"mailR\")<\/code><\/pre>\n\n\n\n<p>In meinem Workflow downloade ich die Daten aus dem Spreadsheet und arbeite dann mit ihnen weiter. Das geht ganz einfach mit einem Spreadsheet, das \u00f6ffentlich gestellt wurde. Das kann man als CSV herunterladen: <code>https:\/\/docs.google.com\/spreadsheets\/d\/[ID zum Spreadsheet]\/export?format=csv<\/code><\/p>\n\n\n\n<p>In R wandle ich die computer-ungeeignete Datumsangabe in ein Format um, mit dem ich weiterrechnen kann. Au\u00dferdem berechne ich Wochentag und Kalenderwoche:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>d %>% \n  mutate(date = as.POSIXct(date, format = \"%B %d, %Y at %I:%M%p\"),\n         week_number = isoweek(date),\n        weekday_number = factor(weekdays(date, FALSE), levels = c(\"Monday\", \"Tuesday\", \n\"Wednesday\", \"Thursday\",                                                                   \"Friday\", \"Saturday\", \"Sunday\"))) -> d<\/code><\/pre>\n\n\n\n<p>Und dann gibt&#8217;s&#8217;s auch schon erste Ergebnisse. Ich berechne f\u00fcr jeden Arbeitstag die Differenz zwischen den Soll- und Ist-Stunden. Weil ich 36,5 Stunden in der Woche arbeiten muss, komme ich auf 7,3 Stunden pro Tag (ohne Pausen). Das fasse ich dann nach KWs zusammen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>d_distinct %>% \n  arrange(date) %>% \n  group_by(date(date)) %>% \n  tidyr::spread(status, date) %>% \n  mutate(working_hours = as.duration(interval(entered, exited))) %>% \n  ungroup() %>% \n  group_by(week_number) %>% \n  summarize(no_workingdays = n(),\n            sum_workinghours = sum(as.numeric(working_hours), na.rm = TRUE) \/ 3600,\n            workingtime_todo = no_workingdays * 7.3,\n            overtime = round(sum_workinghours - workingtime_todo, 2)) %>% \n  arrange(week_number)<\/code><\/pre>\n\n\n\n<p>Das Ergebnis sieht in R so aus:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"922\" height=\"230\" src=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-17-um-15.31.19.png\" alt=\"\" class=\"wp-image-482\" srcset=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-17-um-15.31.19.png 922w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-17-um-15.31.19-300x75.png 300w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-17-um-15.31.19-768x192.png 768w\" sizes=\"(max-width: 922px) 100vw, 922px\" \/><figcaption>Die Wochenarbeitszeiten in R<\/figcaption><\/figure>\n\n\n\n<p>Mit zwei Filterbefehlen kann ich aus diesen Daten schon ein bisschen Text f\u00fcr meine Mail generieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>filter(week_number == max(d_results$week_number)) %>% \n   select(overtime) %>% \n   .[[1]] -> this_week_overtime<\/code><\/pre>\n\n\n\n<p>berechnet mir, wie viele \u00dcberstunden ich in der vergangenen Woche gemacht habe. Mit einem if_else bekomme ich dann eine Aussage, welches Vorzeichen dieser Wert hat &#8211; und kann daraus Worte generieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>over_under_time = if_else(this_week_overtime >= 0, \"zu viel\", \"zu wenig\")<\/code><\/pre>\n\n\n\n<p>Das Ergebnis wird dann zu text_result zusammengebunden und ergibt den ver\u00e4nderbaren Text f\u00fcr meine Mail:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>text_result = paste0(\"Du hast in der vergangenen Arbeitswoche  insgesamt \", round(abs(this_week_overtime), 2), \" Stunden \", over_under_time, \" gearbeitet.\")<\/code><\/pre>\n\n\n\n<p>Damit das ganze anschaulicher wird, gebe ich au\u00dferdem noch zwei Grafiken aus.<\/p>\n\n\n\n<p>Der E-Mailtext <code>body_text<\/code> selber ist eigentlich nur ein Zusammenf\u00fcgen von Bruchst\u00fccken in HTML:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>body_text = paste0('&lt;html>','&lt;p>Hallo Benedict, &lt;br>hier kommt dein freit\u00e4gliches Arbeitszeitupdate.&lt;\/p>', \n                    '&lt;p>', text_result, '&lt;\/p>', '&lt;h3>So verteilen sich die Arbeitsstunden in dieser Woche:&lt;\/h3>&lt;br>',\n                    '&lt;img src=\"', here::here(), '\/this_week.png\", style = \"width: 100%; height: auto\">&lt;br>', \n                    '&lt;h3>So viele \u00dcberstunden gab es in den vergangenen Wochen&lt;\/h3>&lt;br>',\n                    '&lt;img src=\"', here::here(), '\/last_weeks.png\", style = \"width: 100%; height: auto\">&lt;br>',\n                    '&lt;\/html>')<\/code><\/pre>\n\n\n\n<p>Mit der Bibliothek <em>MailR<\/em> verbinde ich mich dann mit meinem Mailaccount und schicke die Mail ab:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>send.mail(from = XXX,\n          to = XXX,\n          subject = \"Arbeitszeiten\",\n          body = body_text,\n          html = TRUE,\n          inline = TRUE,\n          smtp = list(host.name = \"X\",\n                      port = X,\n                      user.name = \"X\",\n                      passwd = \"X\",\n                      ssl = TRUE),\n          authenticate = TRUE,\n          send = TRUE)<\/code><\/pre>\n\n\n\n<p>Das Ergebnis sieht dann auf dem Handy so aus:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"576\" height=\"1024\" src=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Screenshot_20190517-161858_Gmail-576x1024.jpg\" alt=\"\" class=\"wp-image-487\" srcset=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Screenshot_20190517-161858_Gmail-576x1024.jpg 576w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Screenshot_20190517-161858_Gmail-169x300.jpg 169w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Screenshot_20190517-161858_Gmail-768x1365.jpg 768w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Screenshot_20190517-161858_Gmail.jpg 1080w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><figcaption>Screenshot aus der Arbeitszeiten-Mail auf dem Handy<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst. <a href=\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\"><\/p>\n<div class=\"read-more\">\n<p>Read more &#8250;<\/p>\n<\/div>\n<p><!-- end of .read-more --><\/a><\/p>\n","protected":false},"author":1,"featured_media":492,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,8],"tags":[42,15,44,43],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u00dcberstunden-Tracking mit R und IFTTT &bull; Benedict Witzenberger<\/title>\n<meta name=\"description\" content=\"Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00dcberstunden-Tracking mit R und IFTTT &bull; Benedict Witzenberger\" \/>\n<meta property=\"og:description\" content=\"Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\" \/>\n<meta property=\"og:site_name\" content=\"Benedict Witzenberger\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-20T05:02:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-19T16:53:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-17-um-16.40.18.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1240\" \/>\n\t<meta property=\"og:image:height\" content=\"672\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Benedict Witzenberger\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@munichrocker\" \/>\n<meta name=\"twitter:site\" content=\"@munichrocker\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benedict Witzenberger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#website\",\"url\":\"https:\/\/benedict-witzenberger.de\/wordpress\/\",\"name\":\"Benedict Witzenberger\",\"description\":\"#ddj-Blog and personal portfolio page\",\"publisher\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/benedict-witzenberger.de\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\",\"url\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\",\"name\":\"\u00dcberstunden-Tracking mit R und IFTTT &bull; Benedict Witzenberger\",\"isPartOf\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#website\"},\"datePublished\":\"2019-05-20T05:02:03+00:00\",\"dateModified\":\"2019-05-19T16:53:13+00:00\",\"description\":\"Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst.\",\"breadcrumb\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/benedict-witzenberger.de\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00dcberstunden-Tracking mit R und IFTTT\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\"},\"author\":{\"name\":\"Benedict Witzenberger\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\"},\"headline\":\"\u00dcberstunden-Tracking mit R und IFTTT\",\"datePublished\":\"2019-05-20T05:02:03+00:00\",\"dateModified\":\"2019-05-19T16:53:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/\"},\"wordCount\":575,\"publisher\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\"},\"keywords\":[\"IFTTT\",\"R\",\"Spreadsheet\",\"\u00dcberstunden\"],\"articleSection\":[\"Tools\",\"Werkstatt\"],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\",\"name\":\"Benedict Witzenberger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g\",\"caption\":\"Benedict Witzenberger\"},\"logo\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/benedict-witzenberger.de\/wordpress\/author\/benedict\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u00dcberstunden-Tracking mit R und IFTTT &bull; Benedict Witzenberger","description":"Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/","og_locale":"de_DE","og_type":"article","og_title":"\u00dcberstunden-Tracking mit R und IFTTT &bull; Benedict Witzenberger","og_description":"Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst.","og_url":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/","og_site_name":"Benedict Witzenberger","article_published_time":"2019-05-20T05:02:03+00:00","article_modified_time":"2019-05-19T16:53:13+00:00","og_image":[{"width":1240,"height":672,"url":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2019\/05\/Bildschirmfoto-2019-05-17-um-16.40.18.png","type":"image\/png"}],"author":"Benedict Witzenberger","twitter_card":"summary","twitter_creator":"@munichrocker","twitter_site":"@munichrocker","twitter_misc":{"Verfasst von":"Benedict Witzenberger","Gesch\u00e4tzte Lesezeit":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#website","url":"https:\/\/benedict-witzenberger.de\/wordpress\/","name":"Benedict Witzenberger","description":"#ddj-Blog and personal portfolio page","publisher":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/benedict-witzenberger.de\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/","url":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/","name":"\u00dcberstunden-Tracking mit R und IFTTT &bull; Benedict Witzenberger","isPartOf":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#website"},"datePublished":"2019-05-20T05:02:03+00:00","dateModified":"2019-05-19T16:53:13+00:00","description":"Der Europ\u00e4ische Gerichtshof will, dass Arbeitgeber die Arbeitszeit ihrer Mitarbeiter erfassen. Bis das eingef\u00fchrt wird, behelfe ich mir selbst.","breadcrumb":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/benedict-witzenberger.de\/wordpress\/"},{"@type":"ListItem","position":2,"name":"\u00dcberstunden-Tracking mit R und IFTTT"}]},{"@type":"Article","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/#article","isPartOf":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/"},"author":{"name":"Benedict Witzenberger","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae"},"headline":"\u00dcberstunden-Tracking mit R und IFTTT","datePublished":"2019-05-20T05:02:03+00:00","dateModified":"2019-05-19T16:53:13+00:00","mainEntityOfPage":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/05\/20\/uberstunden-tracking-mit-r-und-ifttt\/"},"wordCount":575,"publisher":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae"},"keywords":["IFTTT","R","Spreadsheet","\u00dcberstunden"],"articleSection":["Tools","Werkstatt"],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae","name":"Benedict Witzenberger","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g","caption":"Benedict Witzenberger"},"logo":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/"},"url":"https:\/\/benedict-witzenberger.de\/wordpress\/author\/benedict\/"}]}},"_links":{"self":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts\/471"}],"collection":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/comments?post=471"}],"version-history":[{"count":11,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts\/471\/revisions"}],"predecessor-version":[{"id":636,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts\/471\/revisions\/636"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/media\/492"}],"wp:attachment":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/media?parent=471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/categories?post=471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/tags?post=471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}