{"id":6788,"date":"2016-03-13T10:35:48","date_gmt":"2016-03-13T09:35:48","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=6788"},"modified":"2021-11-22T17:14:16","modified_gmt":"2021-11-22T16:14:16","slug":"karotz-openhab-openkaroz","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=6788","title":{"rendered":"Wie wird der Karotz von einem Raspberry Pi \u00fcber OpenHAB angesteuert?"},"content":{"rendered":"<p>Wie kann der Karotz <a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/karotz.png\" rel=\"attachment wp-att-6791\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/karotz.png\" alt=\"karotz\" width=\"32\" height=\"32\" class=\"aligncenter size-full wp-image-6791\" \/><\/a>in der Hausautomatisation eingesetzt werden?<\/p>\n<p>Der Karotz kann die Uhrzeit ansagen, Radio und MP3 Dateien abspielen, RFID Tags lesen, ein Signal LED schalten, Fotos machen, Videos aufnehmen und vieles mehr. Hier mal die Steuerungsseite die ich mit openHAB f\u00fcr den Karotz erstellt habe:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/Bildschirmfoto-2016-03-13-um-09.05.48.png\" rel=\"attachment wp-att-6789\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/Bildschirmfoto-2016-03-13-um-09.05.48-435x1024.png\" alt=\"Karotz openHAB ansteuerung\" width=\"435\" height=\"1024\" class=\"aligncenter size-large wp-image-6789\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/Bildschirmfoto-2016-03-13-um-09.05.48-435x1024.png 435w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/Bildschirmfoto-2016-03-13-um-09.05.48-128x300.png 128w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/Bildschirmfoto-2016-03-13-um-09.05.48.png 459w\" sizes=\"auto, (max-width: 435px) 100vw, 435px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/karotz-art.png\" rel=\"attachment wp-att-6798\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/karotz-art.png\" alt=\"karotz-art\" width=\"640\" height=\"452\" class=\"aligncenter size-full wp-image-6798\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/karotz-art.png 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/03\/karotz-art-300x212.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Wie wird der Karotz nun von einem Raspberry Pi \u00fcber openHAB angesteuert?<!--more--><\/p>\n<p>Folgende Aktionen und Regel werden hier aufgelistet:<\/p>\n<ul>\n<li>Karotz Radio Hannover anschalten<\/li>\n<li>Karotz Radio Sender auswaehlen<\/li>\n<li>Karotz Signale auswaehle<\/li>\n<li>Karotz Ohren zuf\u00e4llig bewegen<\/li>\n<li>Karotz rechtes Ohr bewegen<\/li>\n<li>Karotz linkes Ohr bewegen<\/li>\n<li>Karotz macht ein Foto<\/li>\n<li>Karotz LED ausschalten<\/li>\n<li>Karotz LED Gruen Steuerung<\/li>\n<li>Karotz LED Rot Steuerung<\/li>\n<li>Karotz LED Gelb Steuerung<\/li>\n<li>Karotz LED Blau Steuerung<\/li>\n<li>Setzen der LED Farbe per Colorpicker<\/li>\n<li>Ansage jeden Tag um 12 Uhr<\/li>\n<li>Ansage jeden Tag um 18 Uhr<\/li>\n<li>Ansage jeden Tag um 19 Uhr<\/li>\n<li>Ansage jeden Tag um 20 Uhr<\/li>\n<li>Ansage jeden Tag um 22 Uhr<\/li>\n<li>Bei eingehenden Telefonanruf Telefonnummer ansagen<\/li>\n<li>Pushover Nachricht wenn Karotz Status sich \u00e4ndert<\/li>\n<\/ul>\n<p><strong>Voraussetzungen<\/strong><\/p>\n<ul>\n<li>F\u00fcr den Karotz gibt es seit einiger Zeit die OpenKarotz Software, die muss auf dem Karotz installiert sein.<\/li>\n<li>OpenHab muss auch installiert sein und laufen.<\/li>\n<li>Das <a href=\"https:\/\/github.com\/openhab\/openhab1-addons\/wiki\/Http-Binding\" target=\"_blank\" rel=\"noopener noreferrer\">HTTP Binding<\/a> muss installiert sein und wer pushover Nachrichten versende will, muss das Pushover Addon installier haben (sudo apt-get install openhab-addon-action-pushover) und in der openhab.cfg  die Keys eintragen (pushover:defaultToken=deinAPIKey, pushover:defaultUser=deinUserKey).<\/li>\n<\/ul>\n<p><strong>Installation<\/strong><\/p>\n<p>Eine <strong>karotz.items<\/strong> Datei erstellen und in das <strong>items<\/strong> Verzeichnis kopieren:<\/p>\n<pre class=\"lang:default decode:true \" >\/\/\r\n\/\/ Steuerung des OpenKarotz via OpenHAB\r\n\/\/\r\n\/\/ (c) 2016 Thomas Wenzlaff http:\/\/www.wenzlaff.info \r\n\/\/\r\nGroup gKarotz\r\n\r\nSwitch karotzLedAus \"LED ausschalten\"\r\nSwitch karotzLedGruen \"LED Gr\u00fcn schalten\"\r\nSwitch karotzLedRot \"LED Rot schalten\"\r\nSwitch karotzLedGelb \"LED Gelb schalten\"\r\nSwitch karotzLedBlau \"LED Blau schalten\"\r\nColor  karotzFarbe \"LED Farbe ausw\u00e4hlen\"\r\n\r\nSwitch karotzOhr \"Ohren zuf\u00e4llig bewegen\"\r\nNumber karotzLinkesOhr\r\nNumber karotzRechtesOhr\r\nSwitch karotzResetOhren \"Ohren reset\"\r\n\r\nSwitch karotzFoto \"Foto erstellen\"\r\nSwitch karotzRadio \"Radio Hannover schalten\"\r\nNumber karotzSender\r\nNumber karotzSignal\r\n\r\n\r\n\/\/ Status Abfragen IP des Karotz 9.9.9.9 ersetzen\r\nString karotzFreierSpeicher \"Freien Arbeitsspeicher [%s]\"                   { http=\"&lt;[http:\/\/9.9.9.9\/cgi-bin\/status:3600000:JS(getKarotzFreienSpeicherWert.js)]\" }\r\nString karotzFreierSpeicherProzent \"Freien Arbeitsspeicher in Prozent [%s]\" { http=\"&lt;[http:\/\/9.9.9.9\/cgi-bin\/status:3600000:JS(getKarotzFreienSpeicherProzentWert.js)]\" }<\/pre>\n<p>In der <strong>default.sitemap<\/strong> folgenden Eintrag erstellen und in das <strong>sitemap<\/strong> Verzeichnis kopieren bzw. eine vorhandene um diesen Eintrag erweitern:<\/p>\n<pre class=\"lang:default decode:true \" >Frame {\r\n        Group item=gKarotz label=\"Karotz\" icon=\"karotz\" {\r\n        \t \r\n         Frame label=\"System Info\" {\r\n         \tText \t\titem=karotzFreierSpeicherProzent \ticon=\"selfMemory\"\r\n\t\t\tText \t\titem=karotzFreierSpeicher \t\t\ticon=\"selfMemory\"\r\n\t\t } \r\n\t\t Frame label=\"LED\"{\r\n\t\t \tSwitch\t\titem=karotzLedAus\t\ticon=\"karotz\"\r\n\t\t\tSwitch \t\titem=karotzLedRot \t\ticon=\"karotzRot\"\r\n\t\t\tSwitch \t\titem=karotzLedGelb \t\ticon=\"karotzGelb\"\r\n\t\t\tSwitch \t\titem=karotzLedGruen \ticon=\"karotzGruen\"\r\n\t\t\tSwitch \t\titem=karotzLedBlau \t\ticon=\"karotzBlau\"\r\n\t\t\tColorpicker item=karotzFarbe \t\ticon=\"slider\"\r\n\t        }\r\n\t     Frame label=\"Ohren\" {\r\n\t     \tSwitch \t\titem=karotzResetOhren \ticon=\"karotz\"\r\n\t     \tSwitch \t\titem=karotzOhr \t\t\ticon=\"karotz\"\r\n\t     \tSelection \titem=karotzLinkesOhr    label=\"Linkes Ohr bewegen\"  icon=\"karotz\"  mappings=[0=\"0\", 1=\"1\", 2=\"2\", 3=\"3\", 4=\"4\", 5=\"5\", 6=\"6\", 7=\"7\", 8=\"8\", 9=\"9\", 10=\"10\", 11=\"11\", 12=\"12\", 13=\"13\", 14=\"14\", 15=\"15\", 16=\"16\"]\r\n\t     \tSelection \titem=karotzRechtesOhr   label=\"Rechtes Ohr bewegen\" icon=\"karotz\"  mappings=[0=\"0\", 1=\"1\", 2=\"2\", 3=\"3\", 4=\"4\", 5=\"5\", 6=\"6\", 7=\"7\", 8=\"8\", 9=\"9\", 10=\"10\", 11=\"11\", 12=\"12\", 13=\"13\", 14=\"14\", 15=\"15\", 16=\"16\"]\r\n\t     }\r\n\t     Frame label=\"Kamera\" {\r\n\t     \tSwitch \t\titem=karotzFoto \t\ticon=\"selfCamera\"\r\n\t     }\r\n\t     Frame label=\"Radio\" {\r\n\t     \tSwitch item=karotzRadio\r\n\t\t\tSelection item=karotzSender label=\"Radio Senderauswahl\" icon=\"karotz\" mappings=[0=\"Aus\", 1=\"RTL\", 2=\"RTL 2\", 3=\"FFN\", 4=\"Radio Hannover\"]\r\n\t     }\r\n\t     Frame label=\"Ton\" {\r\n\t     \tSelection item=karotzSignal label=\"Signal Ton schalten\" icon=\"siren\" mappings=[0=\"ready\", 1=\"rfid_ok\", 2=\"flush\", 3=\"start\", 4=\"bip1\"]\r\n\t     }\r\n\t  }\r\n}<\/pre>\n<p>Eine <strong>getKarotzFreienSpeicherProzentWert.js<\/strong> Datei erstellen und in das <strong>transform<\/strong> Verzeichnis kopieren:<\/p>\n<pre class=\"lang:default decode:true \" >JSON.parse(input).karotz_percent_used_space;<\/pre>\n<p>Eine <strong>getKarotzFreienSpeicherWert.js<\/strong> Datei erstellen und in das <strong>transform<\/strong> Verzeichnis kopieren:<\/p>\n<pre class=\"lang:default decode:true \" >JSON.parse(input).karotz_free_space;<\/pre>\n<p>Eine <strong>Karotz.rules<\/strong> Datei erstellen und in das <strong>rules<\/strong> Verzeichnis kopieren. <\/p>\n<pre class=\"lang:default decode:true \" >\r\n\/\/\r\n\/\/ Steuerung des OpenKarotz via OpenHAB\r\n\/\/\r\n\/\/ (c) 2016 Thomas Wenzlaff http:\/\/www.wenzlaff.info \r\n\/\/\r\nimport org.openhab.core.library.types.*\r\nimport org.openhab.model.script.actions.*\r\nimport org.openhab.ui.webapp.internal.servlet.*\r\nimport org.openhab.library.tel.types.CallType\r\nimport org.openhab.core.types.*\r\n\r\n\/\/------------------------------------------------------------------------\r\n\/\/    Globale Variablen\r\n\/\/------------------------------------------------------------------------\r\n\r\n\/\/ Die URL zu dem KAROTZ CGI-BIN Verzeichnis, die IP 9.9.9.9 durch die Karotz ID ersetzen\r\nvar String KAROTZ_CGI=\"http:\/\/9.9.9.9\/cgi-bin\/\"\r\n\r\n\/\/ Die URL zu den MP3 Datein f\u00fcr die Ansage anpassen\r\nvar String MP3_URL = \"http:\/\/wenzlaff.info\/\"\r\n\r\n\/\/ f\u00fcr den Colorpicker zur Steuerung der LED\r\nvar HSBType hsbValue   \r\nvar String  redValue\r\nvar String  greenValue\r\nvar String  blueValue\r\n\r\n\/\/------------------------------------------------------------------------\r\n\/\/    Radio\r\n\/\/------------------------------------------------------------------------\r\nrule \"Karotz Radio Hannover anschalten\"\r\n when\r\n\tItem karotzRadio changed\r\n then\r\n\tif (karotzRadio.state == ON) {\r\n\t\tsendHttpGetRequest(KAROTZ_CGI + \"sound?url=http:\/\/xapp2154659840c40000.f.l.i.lb.core-cdn.net\/40000mb\/live\/app2154659840\/w2153906178\/live_de_192.mp3\")\r\n\t}else {\r\n\t\tsendHttpGetRequest(KAROTZ_CGI + \"sound_control?cmd=quit\")\r\n\t}\r\nend\r\n\r\nrule \"Karotz Radio Sender auswaehlen\"\r\n when\r\n        Item karotzSender received command\r\n then\r\n\tlogInfo(\"Karotz Radio:\", \"Neuen Sender ausgew\u00e4hlt: \" + karotzSender)\r\n\tswitch(receivedCommand) {\r\n       \r\n\t\t\t\/\/ Ausschalten\r\n\t\tcase 0 : sendHttpGetRequest(KAROTZ_CGI + \"sound_control?cmd=quit\")\r\n         \t\/\/ RTL       \r\n\t\tcase 1 : sendHttpGetRequest(KAROTZ_CGI + \"sound?url=http:\/\/streaming.radio.rtl.fr\/rtl-1-44-96\")\r\n         \t\/\/ RTL 2\r\n\t\tcase 2 : sendHttpGetRequest(KAROTZ_CGI + \"sound?url=http:\/\/streaming.radio.rtl2.fr\/rtl2-1-44-96\")\r\n\t\t\t\/\/ FFN\r\n\t\tcase 3 : sendHttpGetRequest(KAROTZ_CGI + \"sound?url=http:\/\/player.ffn.de\/ffnstream.mp3\")\r\n\t\t\t\/\/ Radio Hannover\r\n\t\tcase 4 : sendHttpGetRequest(KAROTZ_CGI + \"sound?url=http:\/\/xapp2154659840c40000.f.l.i.lb.core-cdn.net\/40000mb\/live\/app2154659840\/w2153906178\/live_de_192.mp3\")\r\n\t}\r\nend\r\n\r\n\/\/------------------------------------------------------------------------\r\n\/\/   Signale\r\n\/\/------------------------------------------------------------------------\r\nrule \"Karotz Signale auswaehlen\"\r\n when\r\n        Item karotzSignal received command\r\n then\r\n\t\tlogInfo(\"Karotz Signal ausgew\u00e4hlt :\", \"Neues Signal ausgew\u00e4hlt: \" + karotzSignal)\r\n\t\t\r\n\tswitch(receivedCommand) {     \t\t\r\n\t\t\t\/\/ Start\r\n\t\tcase 0 : sendHttpGetRequest(KAROTZ_CGI + \"sound?id=ready\")\r\n         \t\/\/ Rfid Ok    \r\n\t\tcase 1 : sendHttpGetRequest(KAROTZ_CGI + \"sound?id=rfid_ok\")\r\n         \t\/\/ Flush\r\n\t\tcase 2 : sendHttpGetRequest(KAROTZ_CGI + \"sound?id=flush\")\r\n\t\t\t\/\/ Start\r\n\t\tcase 3 : sendHttpGetRequest(KAROTZ_CGI + \"sound?id=start\")\r\n\t\t\t\/\/ Bip1\r\n\t\tcase 4 : sendHttpGetRequest(KAROTZ_CGI + \"sound?id=bip1\")\r\n\t}\r\nend\r\n\/\/------------------------------------------------------------------------\r\n\/\/   Ohren\r\n\/\/------------------------------------------------------------------------\r\nrule \"Karotz Ohren zuf\u00e4llig bewegen\"\r\n when\r\n\tItem karotzOhr changed\r\n then\r\n\tif (karotzOhr.state == ON) { \r\n\t\tlogInfo(\"Karotz\", \"Ohren zuf\u00e4llig bewegen\")\r\n\t\tsendHttpGetRequest(KAROTZ_CGI + \"ears_random\")\r\n\t}\r\nend\r\n\r\nrule \"Karotz linkes Ohr bewegen\"\r\n when\r\n\tItem karotzLinkesOhr received command\r\n then\r\n\t\tlogInfo(\"Karotz\", \"Linkes Ohr bewegen um \" + receivedCommand)\t\r\n\t\tsendHttpGetRequest(KAROTZ_CGI + \"ears?left=\" + receivedCommand +  \"&amp;right=0&amp;noreset=1\")\r\nend\r\n\r\nrule \"Karotz rechtes Ohr bewegen\"\r\n when\r\n\tItem karotzRechtesOhr received command\r\n then\r\n\t\tlogInfo(\"Karotz\", \"Rechtes Ohr bewegen um \" + receivedCommand)\t\r\n\t\tsendHttpGetRequest(KAROTZ_CGI + \"ears?left=0&amp;right=\" + receivedCommand +  \"&amp;noreset=1\")\r\nend\r\n\r\nrule \"Karotz reset der Ohren\"\r\n when\r\n\tItem karotzResetOhren received command\r\n then\r\n\t\tlogInfo(\"Karotz\", \"Ohren Reset\")\t\r\n\t\tkarotzLinkesOhr.postUpdate(0)\r\n\t\tkarotzRechtesOhr.postUpdate(0)\r\n\t\tsendHttpGetRequest(KAROTZ_CGI + \"ears_reset\")\r\nend\r\n\r\n\/\/------------------------------------------------------------------------\r\n\/\/   Foto\r\n\/\/------------------------------------------------------------------------\r\nrule \"Karotz macht ein Foto\"\r\n when\r\n        Item karotzFoto changed\r\n then\r\n\tif (karotzFoto.state == ON) {\r\n\t\tlogInfo(\"Karotz\", \"Foto erstellen\")\r\n        sendHttpGetRequest(KAROTZ_CGI + \"snapshot?silent=1\")\r\n\t}\r\nend\r\n\r\n\/\/------------------------------------------------------------------------\r\n\/\/   LED Steuerung\r\n\/\/------------------------------------------------------------------------\r\nrule \"Karotz LED ausschalten\"\r\n when\r\n     \tItem karotzLedAus changed\r\n then\r\n     \tlogInfo(\"Karotz\", \"schalte die LED des Karotz aus ...\")\r\n     \r\n\t\tif (karotzLedGruen.state == OFF) {\r\n\t\t\tlogInfo(\"Karotz\", \"schalte die LED des Karotz: AUS\")\t\t\t\r\n\t\t\tsendHttpGetRequest(KAROTZ_CGI + \"leds?color=000000\")\t\t\t\t\t\r\n    \t}\r\nend\r\n\r\nrule \"Karotz LED Gruen Steuerung\"\r\n when\r\n     \tItem karotzLedGruen changed\r\n then\r\n     \tlogInfo(\"Karotz\", \"schalte die LED des Karotz ...\")\r\n     \r\n\t\tif (karotzLedGruen.state == ON) {\r\n\t\t\tsendHttpGetRequest(KAROTZ_CGI + \"leds?color=00FF00\")\r\n\t\t\tlogInfo(\"Karotz\", \"schalte die LED des Karotz: auf Gr\u00fcn an\")\r\n\t\t}\r\n    \telse {\r\n\t\t\tsendHttpGetRequest(KAROTZ_CGI + \"leds?color=000000\")\r\n\t\t\tlogInfo(\"Karotz\", \"schalte die LED des Karotz: AUS\")\r\n    \t}\r\nend\r\n\r\nrule \"Karotz LED Rot Steuerung\"\r\n when\r\n        Item karotzLedRot changed\r\n then\r\n        logInfo(\"Karotz\", \"schalte die LED des Karotz ...\")\r\n\r\n        if (karotzLedRot.state == ON) {\r\n             sendHttpGetRequest(KAROTZ_CGI + \"leds?color=EE3B3B\")\r\n             logInfo(\"Karotz\", \"schalte die LED des Karotz: auf Rot an\")\r\n        }\r\n        else {\r\n             sendHttpGetRequest(KAROTZ_CGI + \"leds?color=000000\")\r\n             logInfo(\"Karotz\", \"schalte die LED des Karotz: AUS\")\r\n        }\r\nend\r\n\r\nrule \"Karotz LED Gelb Steuerung\"\r\n when\r\n        Item karotzLedGelb changed\r\n then\r\n        logInfo(\"Karotz\", \"schalte die LED des Karotz ...\")\r\n\r\n        if (karotzLedGelb.state == ON) {\r\n                sendHttpGetRequest(KAROTZ_CGI + \"leds?color=FFD700\")\r\n                logInfo(\"Karotz\", \"schalte die LED des Karotz: auf Gelb an\")\r\n        }\r\n        else {\r\n                sendHttpGetRequest(KAROTZ_CGI + \"leds?color=000000\")\r\n                logInfo(\"Karotz\", \"schalte die LED des Karotz: AUS\")\r\n        }\r\nend\r\n\r\nrule \"Karotz LED Blau Steuerung\"\r\n when\r\n        Item karotzLedBlau changed\r\n then\r\n        logInfo(\"Karotz\", \"schalte die LED des Karotz ...\")\r\n\r\n        if (karotzLedBlau.state == ON) {\r\n                sendHttpGetRequest(KAROTZ_CGI + \"leds?color=104E8B\")\r\n                logInfo(\"Karotz\", \"schalte die LED des Karotz: auf Blau an\")\r\n        }\r\n        else {\r\n                sendHttpGetRequest(KAROTZ_CGI + \"leds?color=000000\")\r\n                logInfo(\"Karotz\", \"schalte die LED des Karotz: AUS\")\r\n        }\r\nend\r\n\r\nrule \"Setzen der LED Farbe per Colorpicker\"\r\n    when\r\n        Item karotzFarbe changed\r\n    then   \t\r\n        hsbValue = karotzFarbe.state as HSBType\r\n        \/\/ jeder int Wert ist 0 bis 100 (%)\r\n        var int redInt = hsbValue.red.intValue\r\n        var int greenInt = hsbValue.green.intValue\r\n        var int blueInt = hsbValue.blue.intValue\r\n        \r\n        \/\/ transform 0..100 nach 0x0..0xffff\r\n        redInt = (redInt*0xffff)\/100\r\n        greenInt = (greenInt*0xffff)\/100\r\n        blueInt = (blueInt*0xffff)\/100\r\n\r\n        redValue   = (redInt).toString\r\n        greenValue   = (greenInt).toString\r\n        blueValue   = (blueInt).toString\r\n        \r\n        logInfo(\"Karotz\", \"schalte die LED des Karotz via Colorpicker auf: Rot: \" + redValue + \" Gr\u00fcn: \" + greenValue + \" Blau: \" + blueValue)\r\n        \r\n        sendHttpGetRequest(KAROTZ_CGI + \"leds?color=\" + redValue + greenValue + blueValue) \t\t           \t              \r\nend\r\n\r\n\/\/------------------------------------------------------------------------\r\n\/\/   Sprach Ausgabe\r\n\/\/------------------------------------------------------------------------\r\nrule \"Ansage jeden Tag um 12 Uhr\"\r\n when\r\n        Time cron \"0 0 12 * * ?\"  \r\n then\r\n        logInfo(\"Karotz\", \"Karotz 12 Uhr Ansage\")    \r\n        sendHttpGetRequest(KAROTZ_CGI + \"sound?url=\" + MP3_URL + \"12.mp3\")\r\nend\r\n\r\nrule \"Ansage jeden Tag um 18 Uhr\"\r\n when \r\n        Time cron \"0 0 18 * * ?\"   \r\n then\r\n\t\tsendHttpGetRequest(KAROTZ_CGI + \"sound?url=\" + MP3_URL + \"18.mp3\")\r\n    \tlogInfo(\"Karotz\", \"Karotz 18 Uhr Ansage\")\r\nend\r\n\r\nrule \"Ansage jeden Tag um 19 Uhr\"\r\n when\r\n        Time cron \"0 0 19 * * ?\"  \r\n then\r\n        logInfo(\"Karotz\", \"Karotz 19 Uhr Ansage\")    \r\n        sendHttpGetRequest(KAROTZ_CGI + \"sound?url=\" + MP3_URL + \"19.mp3\")\r\nend\r\n\r\nrule \"Ansage jeden Tag um 20 Uhr\"\r\n when\r\n        Time cron \"0 0 20 * * ?\"  \r\n then\r\n        logInfo(\"Karotz\", \"Karotz 20 Uhr Ansage\")    \r\n        sendHttpGetRequest(KAROTZ_CGI + \"sound?url=\" + MP3_URL + \"20.mp3\")\r\nend\r\n\r\nrule \"Ansage jeden Tag um 22 Uhr\"\r\n when\r\n        Time cron \"0 0 22 * * ?\"  \r\n then\r\n        logInfo(\"Karotz\", \"Karotz 22 Uhr Ansage\")    \r\n        sendHttpGetRequest(KAROTZ_CGI + \"sound?url=\" + MP3_URL + \"10.mp3\")\r\nend\r\n\r\nrule \"Bei eingehenden Telefonanruf Telefonnummer ansagen\"\r\n when\r\n\tItem fboxRinging changed from OFF to ON \r\n then\r\n        val CallType incCall = fboxIncomingCall.state as CallType\r\n        var callerName = incCall.destNum \r\n\t\tlogInfo(\"Ansage eines Telefon Anruf von \", \" Nr.:\" + callerName)            \r\n        sendHttpGetRequest(KAROTZ_CGI + \"tts?voice=julia&amp;text=Hallo%20da%20ruft%20ja%20jemand%20an%20Da%20ruft%20jemand%20mit%20folgender%20Telefon%20Nummer%20an%20\" + callerName +\"&amp;nocache=0\")\r\nend\r\n\r\n\/\/------------------------------------------------------------------------\r\n\/\/   Systemmeldungen\r\n\/\/------------------------------------------------------------------------\r\nrule \"Pushover Nachricht wenn Karotz Status sich \u00e4ndert\"\r\n when\r\n\tItem cFboxMacOnlineKarotz changed\r\n then\r\n\t\tlogInfo(\"Karotz\", \"Karotz wurde an bzw. aus geschaltet: \" + cFboxMacOnlineKarotz.state)\r\n\t\tpushover(\"Karotz wurde geschaltet: \" + cFboxMacOnlineKarotz.state)\r\nend\t\r\n<\/pre>\n<p>Und die n\u00f6tigen Icons von <a href=\"https:\/\/github.com\/IT-Berater\/openhab\/tree\/master\/karotz-openhab-icon\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a> laden und in das <strong>\/webapps\/images<\/strong> Verzeichnis kopieren.<\/p>\n<p>Alle Scripe k\u00f6nnen auch von <a href=\"https:\/\/github.com\/IT-Berater\/openhab\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/IT-Berater<\/a> geladen werden.<\/p>\n<p>Hast Du noch eine gute Karotz Regel erstellt oder eine Idee f\u00fcr die Anwendung? Dann bitte hier als Kommentar posten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie kann der Karotz in der Hausautomatisation eingesetzt werden? Der Karotz kann die Uhrzeit ansagen, Radio und MP3 Dateien abspielen, RFID Tags lesen, ein Signal LED schalten, Fotos machen, Videos aufnehmen und vieles mehr. Hier mal die Steuerungsseite die ich mit openHAB f\u00fcr den Karotz erstellt habe: Wie wird der Karotz nun von einem Raspberry &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=6788\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWie wird der Karotz von einem Raspberry Pi \u00fcber OpenHAB angesteuert?\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,852,290,2426,1023],"tags":[2185,2448,1687,1897,2190],"class_list":["post-6788","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-heimautomatisierung","category-karotz","category-openhab","category-raspberry-pi","tag-karotz","tag-karotz-ansteuern","tag-openhab","tag-openkarotz","tag-raspberry-pi"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/6788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6788"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/6788\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6788"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}