{"id":24221533,"url":"https://github.com/michdo93/openhab-vlc-control","last_synced_at":"2026-05-28T13:31:45.225Z","repository":{"id":135031859,"uuid":"529808502","full_name":"Michdo93/openHAB-VLC-Control","owner":"Michdo93","description":"Control a VLC media player with openHAB using the Exec Action and a python script.","archived":false,"fork":false,"pushed_at":"2023-07-12T13:33:44.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T00:45:24.492Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Michdo93.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-28T08:48:19.000Z","updated_at":"2022-08-28T10:02:07.000Z","dependencies_parsed_at":"2025-01-14T06:19:17.588Z","dependency_job_id":"141701bb-a4f4-4af9-a569-fa6d560644b3","html_url":"https://github.com/Michdo93/openHAB-VLC-Control","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Michdo93/openHAB-VLC-Control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michdo93%2FopenHAB-VLC-Control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michdo93%2FopenHAB-VLC-Control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michdo93%2FopenHAB-VLC-Control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michdo93%2FopenHAB-VLC-Control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Michdo93","download_url":"https://codeload.github.com/Michdo93/openHAB-VLC-Control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michdo93%2FopenHAB-VLC-Control/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33611248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-14T06:19:08.329Z","updated_at":"2026-05-28T13:31:45.206Z","avatar_url":"https://github.com/Michdo93.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# openHAB-VLC-Control\nControl a [VLC media player](https://www.videolan.org/vlc) with openHAB using the [Exec Action](https://www.openhab.org/docs/configuration/actions.html#exec-actions) and a python script.\n\n**Note: This does not include starting a stream, video or music. The VLC player must already be running before.** As example you are looking [TV with it](https://github.com/Michdo93/openHAB-web-tv).\n\n## Installation\n\nAt first you have to install `pyautogui`:\n\n```\npip install pyautogui\n```\n\nMaybe on Linux you have to run\n\n```\npython3 -m pip install pyautogui\n```\n\nOn Windows it is definitely\n\n```\npython -m pip install pyautogui\n```\n\nThen you have to download the `vlc_control.py` file and place it to a path where you can run it inside your VM. On a Linux VM as example:\n\n```\ncd /home/\u003cuser\u003e\nwget https://raw.githubusercontent.com/Michdo93/openHAB-VLC-Control/main/vlc_control.py\nsudo chmod +x vlc_control.py\n```\n\nOn Windows:\n\n```\ncd C:\\Users\\\u003cuser\u003e\nwget https://raw.githubusercontent.com/Michdo93/openHAB-VLC-Control/main/vlc_control.py\n```\n\nThe paths `/home/\u003cuser\u003e` or `C:\\Users\\\u003cuser\u003e` are the default paths which are open when you start a ssh session to this VM. Please make sure that you replace `\u003cuser\u003e` with your actual username.\n\n## Usage\n\nBy pressing one of the following keys VLC will do the following action. With this the `vlc_control.py` `pyautogui` will press this keys for you. So the [Exec Action](https://www.openhab.org/docs/configuration/actions.html#exec-actions) can be used that `pyautogui` will press the keys for you while VLC is running.\n\n| Key Combination | Function | Description |\n| :-------------: |:-------------:| :-----:|\n| \u003ckbd\u003eSpace\u003c/kbd\u003e | `playPause()` | Play/Pause |\n| \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003e→\u003c/kbd\u003e | `fiveMinutesForward()` | 5 minutes forward |\n| \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003e←\u003c/kbd\u003e | `fiveMinutesBackward()` | 5 minutes backward |\n| \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e→\u003c/kbd\u003e | `oneMinuteForward()` | 1 minute forward |\n| \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e←\u003c/kbd\u003e | `oneMinuteBackward()` | 1 minute backward |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003e→\u003c/kbd\u003e | `tenSecondsForward()` | 10 seconds forward |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003e←\u003c/kbd\u003e | `tenSecondsBackward()` | 10 seconds backward |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003e→\u003c/kbd\u003e | `threeSecondsForward()` | 3 seconds forward |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003e←\u003c/kbd\u003e | `threeSecondsBackward()` | 3 seconds backward |\n| \u003ckbd\u003eS\u003c/kbd\u003e | `stop()` | stop (not the same as pause. It means to stop the whole playback) |\n| \u003ckbd\u003e+\u003c/kbd\u003e | `faster()` | Faster |\n| \u003ckbd\u003e-\u003c/kbd\u003e | `slower()` | Slower |\n| \u003ckbd\u003e=\u003c/kbd\u003e | `normalSpeed()` | normal speed |\n| \u003ckbd\u003eN\u003c/kbd\u003e | `nextTrack()` | next track |\n| \u003ckbd\u003eP\u003c/kbd\u003e | `previousTrack()` | previous track |\n| \u003ckbd\u003eT\u003c/kbd\u003e | `showCurrentPostionTime()` | Fades in Postion/Time |\n| \u003ckbd\u003eL\u003c/kbd\u003e | `changeLoopOption()` | Change loop option: Loop, Loop one (once), Loop off |\n| \u003ckbd\u003eE\u003c/kbd\u003e | `nextFrame()` | Next Frame |\n| \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e↑\u003c/kbd\u003e | `fivePercentLouder()` | 5% louder |\n| \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e↓\u003c/kbd\u003e | `fivePercentQuieter()` | 5% quieter |\n| \u003ckbd\u003eM\u003c/kbd\u003e | `mute()` | Mute |\n| \u003ckbd\u003eF\u003c/kbd\u003e | `enableDisableFullscreen()` | Enable/disable full screen mode |\n| \u003ckbd\u003eESC\u003c/kbd\u003e | `deactivateFullscreenMode()` | Deactivate full screen mode |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eS\u003c/kbd\u003e | `createSnapshot()` | Create snapshot |\n| \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e | `startStopRecording()` | Start/stop recording |\n\nYou can call as example the `playPause()` function by running `python3 vlc_control.py playPause`. So at least by calling the functions you have to omit `()`.\n\n## Items\n\nYou have to create following items:\n\n```\nGroup VLC_Control \"VLC Control\" \u003cscreen\u003e\n\nSwitch VLC_Control_PlayPause \"Play/Pause\" (VLC_Control)\nSwitch VLC_Control_5MinutesForward \"5 Minutes Forward\" (VLC_Control)\nSwitch VLC_Control_5MinutesBackward \"5 Minutes Backward\" (VLC_Control)\nSwitch VLC_Control_1MinuteForward \"1 Minute Forward\" (VLC_Control)\nSwitch VLC_Control_1MinutesBackward \"1 Minutes Backward\" (VLC_Control)\nSwitch VLC_Control_10SecondsForward \"10 Seconds Forward\" (VLC_Control)\nSwitch VLC_Control_10SecondsBackward \"10 Seconds Backward\" (VLC_Control)\nSwitch VLC_Control_3SecondsForward \"3 Seconds Forward\" (VLC_Control)\nSwitch VLC_Control_3SecondsBackward \"3 Seconds Backward\" (VLC_Control)\nSwitch VLC_Control_Stop \"Stop\" (VLC_Control)\nSwitch VLC_Control_Faster \"Faster\" (VLC_Control)\nSwitch VLC_Control_Slower \"Slower\" (VLC_Control)\nSwitch VLC_Control_NormalSpeed \"Normal speed\" (VLC_Control)\nSwitch VLC_Control_NextTrack \"Next track\" (VLC_Control)\nSwitch VLC_Control_PreviousTrack \"Previous track\" (VLC_Control)\nSwitch VLC_Control_ShowCurrentPostionTime \"Fade in Postion/Time\" (VLC_Control)\nSwitch VLC_Control_ChangeLoopOption \"Change loop option\" (VLC_Control)\nSwitch VLC_Control_NextFrame \"Next frame\" (VLC_Control)\nSwitch VLC_Control_Louder \"Louder\" (VLC_Control)\nSwitch VLC_Control_Quieter \"Quieter\" (VLC_Control)\nSwitch VLC_Control_Mute \"Mute\" (VLC_Control)\nSwitch VLC_Control_ToggleFullscreen \"Toggle fullscreen\" (VLC_Control)\nSwitch VLC_Control_DeactivateFullscreen \"Deactivate fullscreen\" (VLC_Control)\nSwitch VLC_Control_CreateSnapshot \"Create snapshot\" (VLC_Control)\nSwitch VLC_Control_StartStopRecording \"Start/stop recording\" (VLC_Control)\n```\n\n## Rules\n\nIn the next step you have to add following rules. One important thing is that the `Switch` items will receive an post update to `OFF`. This is needed so that one of the buttons created later for the sitemap, can be clicked again and again. One would like to switch louder or fast forward several times in succession or increase the speed, etc. In addition, you toggle the play/pause or other input options back and forth.\n\n```\nrule \"VLC_Control_PlayPause changed to ON\"\nwhen\n    Item VLC_Control_PlayPause changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"playPause\")\n    }\n    VLC_Control_PlayPause.postUpdate(OFF)\nend\n\nrule \"VLC_Control_5MinutesForward changed to ON\"\nwhen\n    Item VLC_Control_5MinutesForward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"fiveMinutesForward\")\n    }\n    VLC_Control_5MinutesForward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_5MinutesBackward changed to ON\"\nwhen\n    Item VLC_Control_5MinutesBackward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"fiveMinutesBackward\")\n    }\n    VLC_Control_5MinutesBackward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_1MinuteForward changed to ON\"\nwhen\n    Item VLC_Control_1MinuteForward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"oneMinuteForward\")\n    }\n    VLC_Control_1MinuteForward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_1MinutesBackward changed to ON\"\nwhen\n    Item VLC_Control_1MinutesBackward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"oneMinuteBackward\")\n    }\n    VLC_Control_1MinutesBackward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_10SecondsForward changed to ON\"\nwhen\n    Item VLC_Control_10SecondsForward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"tenSecondsForward\")\n    }\n    VLC_Control_10SecondsForward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_10SecondsBackward changed to ON\"\nwhen\n    Item VLC_Control_10SecondsBackward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"tenSecondsBackward\")\n    }\n    VLC_Control_10SecondsBackward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_3SecondsForward changed to ON\"\nwhen\n    Item VLC_Control_3SecondsForward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"threeSecondsForward\")\n    }\n    VLC_Control_3SecondsForward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_3SecondsBackward changed to ON\"\nwhen\n    Item VLC_Control_3SecondsBackward changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"threeSecondsBackward\")\n    }\n    VLC_Control_3SecondsBackward.postUpdate(OFF)\nend\n\nrule \"VLC_Control_Stop changed to ON\"\nwhen\n    Item VLC_Control_Stop changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"stop\")\n    }\n    VLC_Control_Stop.postUpdate(OFF)\nend\n\nrule \"VLC_Control_Faster changed to ON\"\nwhen\n    Item VLC_Control_Faster changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"faster\")\n    }\n    VLC_Control_Faster.postUpdate(OFF)\nend\n\nrule \"VLC_Control_Slower changed to ON\"\nwhen\n    Item VLC_Control_Slower changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"slower\")\n    }\n    VLC_Control_Slower.postUpdate(OFF)\nend\n\nrule \"VLC_Control_NormalSpeed changed to ON\"\nwhen\n    Item VLC_Control_NormalSpeed changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"normalSpeed\")\n    }\n    VLC_Control_NormalSpeed.postUpdate(OFF)\nend\n\nrule \"VLC_Control_NextTrack changed to ON\"\nwhen\n    Item VLC_Control_NextTrack changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"nextTrack\")\n    }\n    VLC_Control_NextTrack.postUpdate(OFF)\nend\n\nrule \"VLC_Control_PreviousTrack changed to ON\"\nwhen\n    Item VLC_Control_PreviousTrack changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"previousTrack\")\n    }\n    VLC_Control_PreviousTrack.postUpdate(OFF)\nend\n\nrule \"VLC_Control_ShowCurrentPostionTime changed to ON\"\nwhen\n    Item VLC_Control_ShowCurrentPostionTime changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"showCurrentPositionTime\")\n    }\n    VLC_Control_ShowCurrentPostionTime.postUpdate(OFF)\nend\n\nrule \"VLC_Control_ChangeLoopOption changed to ON\"\nwhen\n    Item VLC_Control_ChangeLoopOption changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"changeLoopOption\")\n    }\n    VLC_Control_ChangeLoopOption.postUpdate(OFF)\nend\n\nrule \"VLC_Control_NextFrame changed to ON\"\nwhen\n    Item VLC_Control_NextFrame changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"nextFrame\")\n    }\n    VLC_Control_NextFrame.postUpdate(OFF)\nend\n\nrule \"VLC_Control_Louder changed to ON\"\nwhen\n    Item VLC_Control_Louder changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"fivePercentLouder\")\n    }\n    VLC_Control_Louder.postUpdate(OFF)\nend\n\nrule \"VLC_Control_Quieter changed to ON\"\nwhen\n    Item VLC_Control_Quieter changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"fivePercentQuieter\")\n    }\n    VLC_Control_Quieter.postUpdate(OFF)\nend\n\nrule \"VLC_Control_Mute changed to ON\"\nwhen\n    Item VLC_Control_Mute changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"mute\")\n    }\n    VLC_Control_Mute.postUpdate(OFF)\nend\n\nrule \"VLC_Control_ToggleFullscreen changed to ON\"\nwhen\n    Item VLC_Control_ToggleFullscreen changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"enableDisableFullscreen\")\n    }\n    VLC_Control_ToggleFullscreen.postUpdate(OFF)\nend\n\nrule \"VLC_Control_DeactivateFullscreen changed to ON\"\nwhen\n    Item VLC_Control_DeactivateFullscreen changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"deactivateFullscreenMode\")\n    }\n    VLC_Control_DeactivateFullscreen.postUpdate(OFF)\nend\n\nrule \"VLC_Control_CreateSnapshot changed to ON\"\nwhen\n    Item VLC_Control_CreateSnapshot changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"createSnapshot\")\n    }\n    VLC_Control_CreateSnapshot.postUpdate(OFF)\nend\n\nrule \"VLC_Control_StartStopRecording changed to ON\"\nwhen\n    Item VLC_Control_StartStopRecording changed to ON\nthen\n    response = executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/bin/ps\",\"aux\",\"|\",\"/bin/grep\",\"[v]lc\",\"|\",\"/usr/bin/wc\",\"-l\")\n\n    if (response \u003e 0) {\n        executeCommandLine(\"/usr/bin/sshpass\",\"-p\",\"\u003cpassword\u003e\",\"/usr/bin/ssh\",\"-t\",\"-o\",\"StrictHostKeyChecking=no\",\"\u003cuser\u003e@\u003cip\u003e\",\"/usr/bin/python3\",\"vlc_control.py\",\"startStopRecording\")\n    }\n    VLC_Control_StartStopRecording.postUpdate(OFF)\nend\n```\n\nAlso you have to add following to `/etc/openhab/misc/exec.whitelist`:\n\n```\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/bin/ps aux | /bin/grep [v]lc | /usr/bin/wc -l\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py %2$s\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py playPause\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py fiveMinutesForward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py fiveMinutesBackward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py oneMinuteForward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py oneMinuteBackward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py tenSecondsForward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py tenSecondsBackward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py threeSecondsForward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py threeSecondsBackward\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py stop\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py faster\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py slower\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py normalSpeed\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py nextTrack\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py previousTrack\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py showCurrentPositionTime\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py changeLoopOption\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py nextFrame\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py fivePercentLouder\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py fivePercentQuieter\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py mute\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py enableDisableFullscreen\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py deactivateFullscreenMode\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py createSnapshot\"\n/usr/bin/sshpass -p \u003cpassword\u003e /usr/bin/ssh -t -o StrictHostKeyChecking=no \u003cuser\u003e@\u003cip\u003e \"/usr/bin/python3 vlc_control.py startStopRecording\"\n```\n\nYou have to replace `\u003cuser\u003e` and `\u003cpassword\u003e` with the username and password of your remote computer. Also you have to replace `\u003cip\u003e` with the ip address of your remote computer.\n\n## Sitemaps\n\nAt least you have to add following to your sitemap:\n\n```\nText label=\"VLC Control\" icon=\"screen\" {\n    Switch item=VLC_Control_PlayPause label=\"Play/Pause\" icon=\"exec_restart\" mappings=[ON=\"Play/Pause\"]\n    Switch item=VLC_Control_5MinutesForward label=\"5 Minutes Forward\" icon=\"exec_restart\" mappings=[ON=\"\u003e\u003e 5 min\"]\n    Switch item=VLC_Control_5MinutesBackward label=\"5 Minutes Backward\" icon=\"exec_restart\" mappings=[ON=\"\u003c\u003c 5 min\"]\n    Switch item=VLC_Control_1MinuteForward label=\"1 Minute Forward\" icon=\"exec_restart\" mappings=[ON=\"\u003e\u003e 1 min\"]\n    Switch item=VLC_Control_1MinutesBackward label=\"1 Minutes Backward\" icon=\"exec_restart\" mappings=[ON=\"\u003c\u003c 1 min\"]\n    Switch item=VLC_Control_10SecondsForward label=\"10 Seconds Forward\" icon=\"exec_restart\" mappings=[ON=\"\u003e\u003e 10 sec\"]\n    Switch item=VLC_Control_10SecondsBackward label=\"10 Seconds Backward\" icon=\"exec_restart\" mappings=[ON=\"\u003c\u003c 10 sec\"]\n    Switch item=VLC_Control_3SecondsForward label=\"3 Seconds Forward\" icon=\"exec_restart\" mappings=[ON=\"\u003e\u003e 3 sec\"]\n    Switch item=VLC_Control_3SecondsBackward label=\"3 Seconds Backward\" icon=\"exec_restart\" mappings=[ON=\"\u003c\u003c 3 sec\"]\n    Switch item=VLC_Control_Stop label=\"Stop\" icon=\"exec_restart\" mappings=[ON=\"Stop\"]\n    Switch item=VLC_Control_Faster label=\"Faster\" icon=\"exec_restart\" mappings=[ON=\"faster\"]\n    Switch item=VLC_Control_Slower label=\"Slower\" icon=\"exec_restart\" mappings=[ON=\"slower\"]\n    Switch item=VLC_Control_NormalSpeed label=\"Normal speed\" icon=\"exec_restart\" mappings=[ON=\"normal speed\"]\n    Switch item=VLC_Control_NextTrack label=\"Next track\" icon=\"exec_restart\" mappings=[ON=\"\u003e\u003e|\"]\n    Switch item=VLC_Control_PreviousTrack label=\"Previous track\" icon=\"exec_restart\" mappings=[ON=\"|\u003c\u003c\"]\n    Switch item=VLC_Control_ShowCurrentPostionTime label=\"Fade in Postion/Time\" icon=\"exec_restart\" mappings=[ON=\"Fade in postion/time\"]\n    Switch item=VLC_Control_ChangeLoopOption label=\"Change loop option\" icon=\"exec_restart\" mappings=[ON=\"Change loop option\"]\n    Switch item=VLC_Control_NextFrame label=\"Next frame\" icon=\"exec_restart\" mappings=[ON=\"Next Frame\"]\n    Switch item=VLC_Control_Louder label=\"Louder\" icon=\"exec_restart\" mappings=[ON=\"Vol +\"]\n    Switch item=VLC_Control_Quieter label=\"Quieter\" icon=\"exec_restart\" mappings=[ON=\"Vol -\"]\n    Switch item=VLC_Control_Mute label=\"Mute\" icon=\"exec_restart\" mappings=[ON=\"Mute\"]\n    Switch item=VLC_Control_ToggleFullscreen label=\"Toggle fullscreen\" icon=\"exec_restart\" mappings=[ON=\"Toggle Fullscreen\"]\n    Switch item=VLC_Control_DeactivateFullscreen label=\"Deactivate fullscreen\" icon=\"exec_restart\" mappings=[ON=\"Escape Fullscreen\"]\n    Switch item=VLC_Control_CreateSnapshot label=\"Create snapshot\" icon=\"exec_restart\" mappings=[ON=\"Snapshot\"]\n    Switch item=VLC_Control_StartStopRecording label=\"Start/stop recording\" icon=\"exec_restart\" mappings=[ON=\"Start/stop recording\"]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichdo93%2Fopenhab-vlc-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichdo93%2Fopenhab-vlc-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichdo93%2Fopenhab-vlc-control/lists"}