Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

My Minecraft-Smart-Home: Prototyping the Internet of Uncanny Things

566 views

Published on

Software and everyday objects are becoming increasingly “smarter”, take over more “responsibility” and know more and more about us. But what does that mean for developers and what impact does this have on the user? How do we convey the understanding and competence? Sascha covers IoT challenges and inspires with creepy examples. He also introduces a prototypic approach for hardware and software ideation based on visual programming and games like Minecraft. Of course, it is shown that this pragmatic approach is also suitable for professional projects using IoT platforms and smart home solutions.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

My Minecraft-Smart-Home: Prototyping the Internet of Uncanny Things

  1. 1. My Minecraft Smart Home Prototyping the Internet of Uncanny Things Lecture Sascha Wolter @saschawolter March 2017
  2. 2. Source: Mattel's Barbie Hello Dreamhouse
  3. 3. Speed kills! In 1830 people thought, your brain stops working travelling more than 20 mph. And anyone going at more than 30 mph would have all air sucked out of them and would suffocate to death. Source:Tony Robinson's Weird World of Wonders! British
  4. 4. Internet of (Important) Things Image: https://en.wikipedia.org/wiki/File:RegVarneyATM.jpg, https://www.ucc.asn.au/services/drink.ucc 1967 1982
  5. 5. 100 billion connections will be generated and 2 million new sensors will be deployed every hour by 2025 (Huawei)
  6. 6. Regular Users don’t Rule the Tech! Today's Smart Home solutions are not good enough for a mainstream market. These solutions are well suited to early adopters, but have so far failed to attract mainstream buyers. (see VisionMobile “The Smart Home Landscape 2015”) Progressive Thinkers Worriers Antagonists
  7. 7. Image: Electrolux presents Screenfridge 1999, http://www.electroluxgroup.com/en/history-1990-1999-764/ Value Proposition!
  8. 8. Image: New York, ca. 1900 (http://ethw.org/Archives:Edison_Electric_Light_Sign/Ad)
  9. 9. Image: Sascha Wolter
  10. 10. Gulf between Human and Machine User and GoalsPhysical System (World) Source: Norman, D. (1986). "User Centered System Design: New Perspectives on Human-computer Interaction". CRC. ISBN 978-0-89859-872-8
  11. 11. Learned or Innate Source: Star Trek IV (20th Century Fox), 1986
  12. 12. Conversational User Experience Amazon Echo: Alexa… Google Home: Okay Google… LingLong DingDong : DingDong DingDong …8 Million sold by the end of 2016 https://www.digitalcommerce360.com/2017/01/23/amazons-us-echo-sales-top-8-million/
  13. 13. Source: MGM Child's Play (The Lakeshore Strangler), Vivid My friend Cayla Uncanny Valley of Anticipation Internet of Uncanny Things German Federal Network Agency says, any toy capable of transmitting signals and recording images or sound without detection is banned. (https://t.co/R7UCmI9aj9)
  14. 14. Conversational UX turns real Source: https://youtu.be/jSVRrJJ2nl4, SNL Julie the Operator 2006
  15. 15. Source: Boris Adryan, 2015-10-20, http://iot.ghost.io/is-it-all-machine-learning/
  16. 16. Commonsense Knowledge and Intuition Image: Sascha Wolter,
  17. 17. Source: The Simpsons, 2001 Anticipation and Empathy
  18. 18. Source: http://www.jre-water.com/Suica/index.html Voice and Facial Recognition Gender, Age and Mood
  19. 19. Event Bus Resistance Is Futile Messages Cloud Service Device Messages Gateway Bridge Device Device Messages Device System of Systems Image: Star Trek, CBS Studios Inc.
  20. 20. Start doing a smattering of REST with SSE See also http://appinventor.mit.edu/
  21. 21. Minecraft 101 Good to know • See http://minecraft.gamepedia.com/ • Several Versions • Pocket Edition (PE, e.g. Android, HoloLens), Pi Edition, Console Edition (e.g. Xbox, PlayStation), Education, etc. • Samples and code in this presentation is based on Minecraft 1.8.9 • Gamemodes • Survival • Creative (to ignore recipes) • Inventory and Recipes • Redstones • … Cheats via t-Key • /help • /weather clear • /weather rain • /time set day • /time set night • /gamemode creative • /gamerule doDaylightCycle false • /tp Player x y z Inventory via e-Key 1st-Person via Mouse and AWSD-Keys
  22. 22. see also Project Malmo (http://research.microsoft.com/en-US/groups/mip-ai/default.aspx) Start doing a smattering of REST with SSE
  23. 23. Minecraft Forge: Simple Modding Bare minimum Get the Minecraft Forge Mod Development Kit (MDK) from http://files.minecraftforge.net/
  24. 24. Java and Minecraft Forge: Setup and Lifecycle @Mod(modid = SmartHomeMod.MODID, version = SmartHomeMod.VERSION) public class SmartHomeMod { public static final String MODID = "smarthomemod"; public static final String VERSION = "0.1"; // Happens as #1 right before Minecraft loads. Used for most registration. @EventHandler public void preInit(FMLPreInitializationEvent event) {} // Happens as #2 when Minecraft loads. @EventHandler public void init(FMLInitializationEvent event) {} // Happens #3 when World generators and alike are loaded. @EventHandler public void postInit(FMLPostInitializationEvent event) {} // Happens #4 right before starting the server. @EventHandler public void registerCommands(FMLServerStartingEvent event) {} } Event-Subscriber, Items, and Blocks Resources Commands main Lifecycle
  25. 25. Use SmartHome Plug-In via SSE and REST API • List of Things via HTTP Get http://localhost:9998/rest/things • Server Sent Events (SSE) http://localhost:9998/rest/events • Helps to check what’s possible and what’s going on • Player • Switches • Doors • Sensor • … • Unique ID is always location • Relevant data is separated into components (channels)
  26. 26. Minecraft Spigot: Simple Plug-in Bare minimum Get the Minecraft Spigot Server, API, and Build Tools from https://www.spigotmc.org/wiki/buildtools
  27. 27. Minecraft Spigot: SmartHome.java public class SmartHome extends JavaPlugin { // Fired when plugin is first enabled @Override public void onEnable() { // Register event listener // Could handle PlayerJoinEvent, BlockRedstoneEvent, PlayerInteractEvent, BlockPlaceEvent... // ...using @EventHandler annotation Bukkit.getPluginManager().registerEvents(new BlockChangedListener(), this); // Register command (set an instance of command class as executor) this.getCommand("sendCommand").setExecutor(new SendCommand()); } // Fired when plugin is disabled @Override public void onDisable() { } } main Lifecycle Commands Events
  28. 28. ESH Core Device Bindings Device Bindings Device Bindings Internet of Things Platform ESH Core Device Bindings Device Bindings Device Bindings Internet of Things Platform ESH Core Device Bindings Device Bindings Device Bindings Developer Community Device Vendor XY Company Internet of Things Platform ESH Core Device Bindings Device Bindings Device Bindings Eclipse SmartHome as open technology for Prosumers
  29. 29. https://github.com/wolter
  30. 30. Minecraft Binding for Eclipse SmartHome • Integrating Devices into Eclipse SmartHome 1. Create OSGi skeleton 2. Edit identifiers and parameters 3. Add binding logic 4. Export and deploy 5. Test create_binding_skeleton
  31. 31. Minecraft Binding for Eclipse SmartHome @Override public void handleCommand(ChannelUID channelUID, Command command) { switch (channelUID.getId()) { case CHANNEL_POWERED: if (command instanceof OnOffType) { MinecraftThingCommand minecraftCommand = new MinecraftThingCommand(); minecraftCommand.id = id; minecraftCommand.component = new MinecraftThingComponent(); minecraftCommand.component.type = MinecraftThingComponentType.POWERED; minecraftCommand.component.state = command.equals(OnOffType.ON) ? true : false; postState(minecraftCommand); } break; case CHANNEL_OPEN: ... } } RESTful POST Handle Command Or delegate to a Bridge.
  32. 32. Source: https://mojang.com/2016/06/weve-sold-minecraft-many-many-times-look/ Why?
  33. 33. Dev Relations at Eclipse Con Europe ‘17
  34. 34. ▪ Software Developer (m/w) Connected Home Runtime ▪ Senior Software Developer (m/w) Connected Home Frontend ▪ Senior Software Developer (m/w) Connected Home Community ▪ Senior Developer Evangelist Connected Home ▪ Senior UX Designer 03.04.2017 40 WEAREHIRING Jobs https://telekom.jobs/global-careers (Keyword Connected Home)
  35. 35. Businesses are coming to realize that attracting developers is the fastest route to innovation. Moreover, attracting developers means attracting external investment, which finances innovation and expansion. Source: Benno Luthiger, Open-Source-Jahrbuch 2004 MYTHSOFTYPICAL DEVELOPER /BORNTOCODE Innovation Prosumer: Consumer and Producer Millions and millions of dollars are being spent to attract developers: The millions of dollars in developer marketing efforts serve one purpose: to persuade developers to use a specific platform, network, tool or API set to generate innovations and to reach more consumers. In short: Developers consume an Platform, API, etc. and produce something based on it. Source: Developer Economics 2012, www.developereconomics.com Some Consumers turn into Developers to solve their needs. Video: youtube/Microsoft
  36. 36. Design and Hybrid Thinking
  37. 37. Construction Kit APIs, Services Software-Architecture (e.g. MVVM)
  38. 38. Value Innovation Practiceand Exchange to find new opportunities. Source: Siematic, Discovery Channel, BSH, Microsoft, ZDF
  39. 39. Responsibility and Dogfooding Hippocratic Oath and Eating your own Dogfood. Teaching Responsibility and Enlightenment versus Believe in Wonders (i.e. Politics and Regulation) Image: Sascha Wolter, Hour of Code 2015, see also https://code.org/learn
  40. 40. Video: https://youtu.be/xgakdcEzVwgl My Minecraft Smart Home Prototyping the Internet of Uncanny Things Lecture Sascha Wolter @saschawolter March 2017 more at http://wolter.biz

×