This app is a native client for openHAB which allows easy access to your sitemaps

Overview

Bountysource
Logo
openHAB client for iOS

Introduction

This app is a native client for openHAB which allows easy access to your sitemaps.

Download on the App Store

Beta releases are available on TestFlight.

Features

  • Control your openHAB server and openHAB Cloud instance
  • Receive notifications from openHAB Cloud
  • Supports wall mounted tablets

Setting up development environment

If you want to contribute to the iOS application we are here to help you to set up development environment. openHAB iOS app is developed using Xcode and the standard iOS SDK from Apple. The iOS application is based on the iOS 7 SDK and has several CocoaPods dependencies.

To start developing you need an Apple Developer account.

  • Download and install Xcode
  • Check out the latest iOS application code from GitHub
  • Install CocoaPods
  • Install CocoaPods dependencies: pod install (openHAB app now uses CocoaPods 1.0!)
  • Open the project workspace, generated by CocoaPods in Xcode - openHAB.xcworkspace

You are ready to contribute!

Before producing any amount of code please have a look at the contribution guidelines.

Trademark Disclaimer

Product names, logos, brands and other trademarks referred to within the openHAB website are the property of their respective trademark holders. These trademark holders are not affiliated with openHAB or our website. They do not sponsor or endorse our materials.

Apple, the Apple logo, iPhone, and iPad are trademarks of Apple Inc., registered in the U.S. and other countries and regions. App Store is a service mark of Apple Inc.

Comments
  • Returned empty sitemap list - openhab iOS 2.1

    Returned empty sitemap list - openhab iOS 2.1

    Hi everybody,

    I'm a new member and I hope I create the issue in the right way, if not please let me know.

    So what's my problem: Since I updated my iOS App to the 2.1.0 version, I always receive the error message: "Returned empty sitemap list". Before the update everything works fine and on my ipad the old version of the app is still running. I also tried to reinstall the app, but the error message is still there.

    Local URL is: http://openhabianpi:8080, demo mode is off. Running openhab 2.1 on an raspberry pi.

    Does anybody has a solution for this problem?

    Thanks in advance.

    Tobi

    opened by Tobi-1234 89
  • New Root View to handle Sitemaps and Webview separately

    New Root View to handle Sitemaps and Webview separately

    Hi @timbms , @weakfl !

    Hi, I think i mentioned something about this well over a year ago, but you all well know, the original version of this app from long, long ago was built around a single view that did everything, navigation control, root UI view control, as well as being responsible for the massive complexity of rendering a sitemap. This class (OpenHABViewController) was always a pain in the ass to work with b/c it grew so large and complex over the years. Now that we have a new primary UI for openHAB (Web UI) , this problem is worse in my mind and i was trying how to think about a path out.

    At first I started by trying to really refactor our Sitemap class into different parts that could be reused. This did not end well, and i started worrying that i would make the sitemap logic less stable, which would be taking a big step back for users.

    It also does not help that besides my WebView class addition a year or two back, this is the first thing i have done in Swift, so my footing was a little shaky to say the least (lets face it, i really suck at writing swift)

    So i took another approach, which was to leave the Sitemap class alone as much as possible, and add a new Root Controller to the project which has a couple responsibilities:

    1. Creates the side menu and handles delegate logic
    2. Handles APS registrations
    3. Registers Crashlytics
    4. Switches the ~~primary root controller~~ main view dynamically, either the WebView or SitemapView, depending on the last one used (which is stored as a preference)

    The SiteMap view ( which is now called OpenHABSitemapViewController.swift) has minimal changes to remove the responsibilities listed above

    The Web View now has its own openHABTracker instance to track connection state, and can act as a primary root controller

    The two main views know nothing about each other and act independently (both inherit a new base class for shared code) .

    The effect is that the webview now feels like a first class citizen (b/c it is) , and can be loaded when the app loads instead of the sitemap view (if the user chooses so) .

    Couple other small notes:

    • I made improvements to the webview regarding activity indication, error handing, etc....
    • I removed the "select sitemap" preference menu and logic to load the side menu with limited entries; anytime a sitemap is selected in the menu its also set in the preferences as default anyways, so this seemed way simpler, better, and removed a ton of complexity

    Since this is a lot of changes, it's going to be hard to keep my branch up with changes in develop, so we should review this approach quickly. I just synced with develop which was a pain.

    Simulator Screen Recording - iPhone 11 Pro - 2022-06-19 at 11 58 48

    opened by digitaldan 64
  • Added watch complications and fixed the loading of the Sitemap

    Added watch complications and fixed the loading of the Sitemap

    This is the promised Pull-Request. Most complications are now supported by the Apple Watch. I noticed a small problem loading the sitemap. It should be fixed with this PR, too.

    watchos 
    opened by dhermanns 56
  • 204: Feature Request - Support for mTLS (client certificates)

    204: Feature Request - Support for mTLS (client certificates)

    • Import PKCS#12 certificate by passing a .ohp12 file to the app
    • Certificates stored in the keychain
    • View installed certificates from the Settings screen
    • Ability to delete installed certs from the Settings screen
    • Refactored usage of AFHTTPRequestOperation into OpenHABHTTPRequestOperation to capture all certificate handling capabilities into one spot (both client and server certs) and reduce code duplication at point of use.
    enhancement 
    opened by ufodone 48
  • Swift App: Image in Sitemap

    Swift App: Image in Sitemap

    In the latest swift app beta build (2.0.4 36) the image of my IP-cam is extremely small. Previously the image was displayed over the whole phone screen.

    screenshot

    sitemap configuration:

    Text item=IP_Cam {
      Image url="http://user:password@ipcam/snapshot.cgi" refresh=30000
    }
    
    bug 
    opened by Mr-iX 43
  • Shortcuts no more working after latest app update

    Shortcuts no more working after latest app update

    New regression checklist

    Describe the bug

    I was using shortcuts with IOS app to trigger actions on OpenHAB using NFC tags or using automation. Since yesterday (28 feb 2022), after openhab app ios update, the already defined shortcuts aren't working anymore. It is impossible to define new one because when you tap on "item" on any openhab action the list of available items is not available.

    To Reproduce Steps to reproduce the behavior:

    1. Go to shortcuts app
    2. Click on '+"
    3. Search "openhab"
    4. Select any action
    5. Tap on "item"
    6. Nothing happens, before latest update an item list were provided

    Expected behavior

    At step 6 an item list should be provided

    App (please complete the following information):

    • Breaking version: 2.4.42
    • Last working version: 2.4.41

    Smartphone (please complete the following information):

    • Device: iPhone XR IOS 15.3.1

    openHAB (please complete the following information):

    • Version 2.5.12-1

    Additional context Add any other context about the problem here.

    opened by nethiker 42
  • UI Update Issues with 2.1.4 (24) with 1.8.3 OH - Slider Icons, Setpoints, Mapped Switch Buttons and Items with Sitemap Visibility

    UI Update Issues with 2.1.4 (24) with 1.8.3 OH - Slider Icons, Setpoints, Mapped Switch Buttons and Items with Sitemap Visibility

    Describe the bug With 2.1.4 (24) and running OH 1.8.3 I have problems with the UI updating correctly, almost always requiring to reload the view manually.

    • In particular this affects Slider Icons - in my case a dimmer icon (dimmer-0.png - dimmer-100.png) which sometimes gets 'stuck' on the first slider move, somtimes after 3-4 slider actions. • Setpoints also get 'stuck' after the first up or down, or after the 3-4 action, making it impossible to increase the values by much, withoutn a relaod. • Mapped Switch Buttons get 'stuck' or don't display a selected button at all • Items with Sitemap Visibility don't get shown or hidden without a reload a lot of times.

    I suppose all these issues are manifestations of the same underlying relfresh issue.

    While this also happened occasionally in the previous 2.0.3 version of the iOS app, now it seems to be the norm.

    To Reproduce Steps to reproduce the behavior: 2.1.4 (24) and running OH 1.8.3 Have the above mentioned sitemap items for usage.

    bug critical 
    opened by DigiH 37
  • Sitemap: images are not displayed

    Sitemap: images are not displayed

    Frame elements without labels are not displayed in the iOS app.

    For example:

    Frame {
            [additional sitemap elements]
    }
    

    This pattern can be used to group elements in a sitemap, the label attribute is optional. The basic UI handles this correctly but the iOS app ignores the frame and only displays the inner elements.

    opened by mhaack 34
  • No video

    No video

    I have tried everything but I can't make a video work in the app, not a mjpeg, not a HLS. all works in the web panel but never works in the app.

    My goal is to show the webcam streaming, I tried to Ffmpeg the mjpeg to jpg but I can't see any refresh in the image and sometimes it never appear too.

    In the new upgrade about video enhancements there is no explanation about the fixes.

    Now the question is.. is there any specific and detailed instructions to how to implement the videos in the swift app?

    thank you

    bug 
    opened by smallbitt 31
  • iOS app 2.4.54 gives

    iOS app 2.4.54 gives "empty site map list" error on OH 2.3

    There have previously been several instances where an update to the iOS app breaks compatibility with OH 2.3. The latest update, 2.4.54, has brought back the old "empty site map list" error.

    opened by jmActifio 28
  • Added a basic apple watch support.

    Added a basic apple watch support.

    IMG_9603 IMG_9604

    Hi!

    Thanks to the transformation to swift, the merging of my openhabwatch project was an easy one. There is still a lot of room for improvement:

    sitemapname is hardcoded to 'watch' only the remoteUrl is currently used only buttons are supported But I think it's good enough to have a first look. I will make the sitemapname configurable and use the localUrl if no remoteUrl is configured, next.

    opened by dhermanns 27
  • Implement forceAsItem-option

    Implement forceAsItem-option

    Discussed in https://github.com/openhab/openhab-ios/discussions/667

    Originally posted by Flole998 April 19, 2022 This is part of https://github.com/openhab/openhab-core/issues/2185.

    In https://github.com/openhab/openhab-core/pull/2657 an option to force charts for groups to be rendered as value of the group instead of rendering all members of the group in a chart was implemented. So what is left here now is changing how the chartUrl is built if that option is passed and is true so that it is rendered in the app the same way as in the web-ui. That option probably needs to be added to Endpoint.swift. I thinkthis search for the legend-parameter shows pretty much all changes necessary for the new parameter. Unfortunately I can't test this, so I would be working blind and I would appreciate if someone with more experience (meaning: any experience) and the ability to test this could do this.

    In the web-ui this was implemented with https://github.com/openhab/openhab-webui/pull/1256, the same logic needs to be added to the app.

    opened by timbms 0
  • Black main UI screen (or empty graph pages) after App has been minimized and put to sleep by iOS

    Black main UI screen (or empty graph pages) after App has been minimized and put to sleep by iOS

    Describe the bug After the App has been minimized (and put to sleep by iOS), after re-opening the app, the main UI app either remains black or graphs remain empty.

    To Reproduce Steps to reproduce the behavior:

    1. Install the OpenHAB App
    2. Configure it to connect to OpenHAB (in my case: 3.3, independent from local or remote access via myopenhab.org)
    3. Open the main UI page.
    4. Minimize the app.
    5. Wait for iOS to put the app to sleep (not sure on the duration, but probably > 10 minutes)6.
    6. Re-open the app.
    7. Sometimes (indepent from using the app outside of my network or inside of my network, and indepenent from when switching between internal/external networks while its in the background) the following can be observed: 7.1 The main UI page remains empty (completely black) 7E20ED51-3E44-4E0D-9A8B-D3205D29FD4B 7.2 A graph which is opened from a still-open main UI page remains empty 1E487CC9-7266-4C7B-88AC-B1871D0BFA6E 7.3 The scaling of graphs does not work (even turning the phone, which typically solves similar problems in other apps, does not resolve this). To be fair, this might be a different Bug, so still to be investigated further. FF230AB2-D0FE-4882-9414-915EA0B8371D
    8. What always helps: Force close the app in iOS (“swipe up”) and restart the app. Swiping from the right and e.g. switch to the Sitemap-Page (which always works) and switch back to the Main UI-page doesn't change the problem.

    Expected behavior The app continues to work as normal even after being minimized for some time.

    Screenshots See above.

    App (please complete the following information):

    • Version 2.4.52

    Smartphone (please complete the following information):

    • Device: iPhone XR (on iOS 15.6.1)

    openHAB (please complete the following information):

    • Version 3.3

    Additional context Add any other context about the problem here.

    bug 
    opened by Boldfor 4
  • Add

    Add "Wrtite to NFC tag" feature

    Problem: I was wondering why there is no NFC feature for the iOS App. I am able to read and write nfc tags with my iPhone and an app called "NFC Tools". So the hardware is capable doing this.

    Request: Add the "Wrtite to NFC tag" feature like it is available for the Android App.

    Screenshot Android: nfc

    opened by diRk262 0
  • Many errors in openhab.log file

    Many errors in openhab.log file

    New bug checklist I am using the newest test flight version of the iOS app. The problem has been there for several months.

    Describe the bug The log file openhab.log shows many various error messages when using the iOS app. Some are Java crash, some mentions 'Broken pipe' and others are related to REST API.

    To Reproduce I am sorry to say I cannot reproduce it consistently. I have tried to find a pattern, but have not been able to. The very same usage of the app works fine one day, but seem to cause log errors the next day. The sitemap itself works fine in Chrome where it never causes any errors in the log file.

    Expected behavior No log file entries as a result of using iOS app.

    Screenshots n/a

    App (please complete the following information):

    • Version 2.4.49

    Smartphone (please complete the following information): iPhone 12

    openHAB (please complete the following information):

    • Version 3.2

    Additional context Sorry for not being able to provide more info, but I only have these symptoms.

    opened by EjvindHald 1
Releases(2.4.57)
Owner
openHAB
openHAB
A weather app developed in React Native. It is the React Native version of SwiftWeather.

ReactNativeWeather A weather app developed in React Native. It is the React Native version of SwiftWeather How to run the app Install react-native If

Jake Lin 22 Jun 7, 2022
This is a repository with an app that shows a list of posts and where you can access the detail of each of them

PostsApp This is a repository with an app that shows a list of posts and where you can access the detail of each of them Dependencies You need to inst

Patricia Zambrano 1 Jun 21, 2022
null 1 Jan 27, 2022
Native Jellyfin Client for iOS and tvOS

Swiftfin Swiftfin is a modern client for the Jellyfin media server. Redesigned in Swift to maximize direct play with the power of VLC and look native

Jellyfin 1.1k Jan 6, 2023
Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

null 1 Jan 17, 2022
A completely native Discord client for macOS built 100% in Swift and SwiftUI

Swiftcord A completely native Discord client for macOS built 100% in Swift and SwiftUI This project aims to create a fully functional native Discord c

CryptoAlgo-Dev 1.1k Jan 9, 2023
Swift iPhone and iPad Client for Polls API, using Hyperdrive API client

Polls Client This is a Swift iPhone and iPad client for the Polls API - a simple application allowing users to view polls and vote in them. Polls is a

Apiary 34 Jul 15, 2022
iOS Trakt Client - Keep track of your favorite TV shows and movies on your iPhone. (Under development)

CouchTracker Keep track of your favorite movies and tv shows on your iPhone Setup for development You will need Xcode 11.2.1 Swift 5.1.2 Run the follo

Pietro Caselani 42 Apr 19, 2022
ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

Since Facebook introduced reactions in 2016, it became a standard in several applications as a way for users to interact with content. ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

Jorge Ovalle 305 Oct 11, 2022
CZWeatherKit is a simple, extensible weather library for iOS, tvOS, and OS X that allows for easy fetching of weather data from various weather services.

CZWeatherKit is a simple, extensible weather library for iOS, tvOS, and OS X that allows for easy fetching of weather data from various weather services.

Comyar 455 Nov 20, 2022
An iOS app that allows you to create resumes on your phone and export them to pdf

Resume Builder iOS An iOS app that allows you to create resumes on your phone and export them to pdf To create a new resume, choose + from the main vi

Sonia Grzywocz 1 Oct 25, 2021
iOS app that allows you to search for any comic character and save your favorites in a list.

iOS App: My Comics Swift exercise ¡Hola mundo! In my Swift learning journey my mentor and I decided to do an app using the Comic Vine API. This API gi

Silvia España Gil 5 Dec 13, 2022
Red Torch is a very very (very) simple iOS app that allows you to have a red torch using your screen.

RED Torch Red Torch is a very very (very) simple iOS app that allows you to have a red torch using your screen. The App is based on storyboard, so the

Jakub 0 Jan 1, 2022
A open source Swift app for iOS 13 that allows you to check your NFC transit card information. Written with SwiftUI.

ABANDONED Metrodroid, which TransitPal was heavily inspired by, now has its own fully functional iOS app! It should be in the App Store "soon". I stro

Robbie Trencheny 132 Jun 30, 2022
Cookbook app that allows you to read, add and modify your recipes.

What-s-For-Dinner-iOS-App Cookbook app that allows you to read, add and modify your recipes. Features ?? ?? View You can see recipes divided into cate

Katie Saramutina 2 May 18, 2022
Pegase is a beautifully easy tool to keep track of your financial life on all your macOS

Pegase ?? Features ?? Documentation Personal account software Pegase is a beautifully easy tool to keep track of your financial life on all your macOS

null 2 Oct 12, 2021
Stocks-App - App that allows the user to track stocks of their choice

Stocks-App App that allows the user to track stocks of their choice (Coming soon

Eli Hartnett 0 Jul 9, 2022
Provenance is a native macOS application that interacts with the Up Banking Developer API to display information about your bank accounts, transactions, categories, tags and more.

Provenance Provenance is a native macOS application that interacts with the Up Banking Developer API to display information about your bank accounts,

Paul Tavitian 8 Dec 8, 2022