FhemNative is an open-source mobile App to communicate with FHEM (Home Automation Server) without any programming.
FhemNative is based on Angular Components inside the Ionic Framework.
- FhemNative is build as a "Room-Structured" environment
- Rooms can be created manually/automatic, changed, reordered or deleted
- Rooms can be filled with different components
- Global settings define the styling and behaviour of the App
- Created rooms will be stored locally on the device
- All created rooms including their components can be exported/imported to handle different devices
- You can choise from different types of connections to FHEM
- communicate directly with FHEM
- act on the behaviour of defined devices in FHEM
- can manipulate devices in FHEM
- used to manage room components in a structured way
- some of them can display/response to FHEM values
- cannot manipulate devices in FHEM
Feature | Description | Docs | Type |
---|---|---|---|
Box | A simple box with a header to structure components in rooms. | Docs | Style |
Button | A simple button to switch between two states in FHEM. | Docs | Fhem |
Chart | A chart to taxe max. 2 instances from a log and visualize them in different ways. | Docs | Fhem |
Circle Menu | A butten-menu, to combine multiple commands in one interface. | Docs | Fhem |
Circle Slider | A circular slider with min and max values. | Docs | Fhem |
Color Picker | A color-menu with favourites and brightness slider. | Docs | Fhem |
IFrame | A frame to display other web content. | Docs | Fhem |
Icon | An icon to disply or to change on different FHEM states. | Docs | Style |
Image | An image to select from an url or the own device. | Docs | Style |
Kodi Remote | Work in Progress | Docs | Fhem |
Label | A label to display text. | Docs | Style |
Line | A line to draw horizontal or vertical, to seperate content. | Docs | Style |
Pinpad | A pinpad to toggle an alarm system. | Docs | Fhem |
Popup | A box to include other components and/or response to FHEM values. | Docs | Fhem |
Select | A menu to select from FHEM values or an own list. | Docs | Fhem |
Slider | A horizontal or vertical range slider. | Docs | Fhem |
Sprinkler | Sprinkler module (description follows in other repo) | Docs | Fhem |
Switch | A switch to toggle two different states in FHEM. | Docs | Fhem |
Thermostat | A temperature display with coloured animations. | Docs | Fhem |
Time Picker | A time setter in format: 00:00. | Docs | Fhem |
- sudo cpan App::cpanminus
- sudo cpanm Protocol::WebSocket
- sudo cpanm JSON
- copy content from websocket folder to opt/fhem/FHEM
- define wsPort websocket 8080 global
- define wsPort_json websocket_json
- set attr longpull to websocket in FHEM Device WEB (from App Version >= 0.9.5)
Create Room | Edit Room |
---|---|
![]() |
![]() |
Reorder Rooms | Copy/Paste Components |
![]() |
![]() |
A simple Box, to structure components in rooms.
A button to toggle 2 different states in FHEM.
Can also be used to send a single command dirrectly to FHEM.
Chart component, to read values from a log and display them in graphs.
Bar, Line und Area Charts can be combined into one chart.
Gauge und LiquidGauge Charts are special visualisations, that don´t draw axis, and can´t be combined.
Setting | Description | Default-Value | Type |
---|---|---|---|
device | Name of the FHEM Log device | '' | data |
logFile | Name of a specific log file to choose (if needed) | '' | data |
reading | Name of the log reading | '' | data |
reading2 | Name of the second log reading (if needed) | '' | data |
maxY | max. Y-Axis value, to fix the axis (default: max value of the given data will be used) | '' | data |
labelExtension | Ending for the Y-Axis label (Exp. %) | '' | data |
getCurrent | Read the current Log file from the device (otherwise a log file has to be defined) | true | data |
zoomBothAxis | Enable/Disable zooming in both axis of the chart | false | data |
chartType | Style of the chart for the first reading | bar | select(bar, line, area, gauge, liquidGauge) |
chartType2 | Style of the chart for the second reading | bar | select(bar, line, area) |
timeFormat | Time format of the X-Axis | %Y-%m-%d | select(%Y-%m-%d, %d-%b-%y, %Y-%m) |
colorSet | Color sheme of the charts | 1 | select(1, 2, 3) |
A multi menu, to choose from different commands, that can be send to FHEM (max 6 values possible).
Setting | Description | Default-Value | Type |
---|---|---|---|
device | Name of the FHEM device, that should be triggered | '' | data |
reading | Name of the reading, that should be evaluated | state | data |
setReading | Name of the set command, that should be used (if needed) | '' | data |
value1 | 1. value ofg the multi menu | '' | data |
value2 | 2. value ofg the multi menu (optional) | '' | data |
value3 | 3. value ofg the multi menu (optional) | '' | data |
value4 | 4. value ofg the multi menu (optional) | '' | data |
value5 | 5. value ofg the multi menu (optional) | '' | data |
value6 | 6. value ofg the multi menu (optional) | '' | data |
expandStyle | Direction where the menu should unfold | top | select(top, left, bottom, right, circle) |
icon | Desired icon of the menu | add-circle | icon |
Ein circular slider, to send nummeric values to FHEM.
A color menu, that opens as a popup.
Favourite colors can be saved and selected.
Setting | Description | Default-Value | Type |
---|---|---|---|
device | Name of the FHEM device, that should be triggered | '' | data |
reading | Name of the reading, that should be evaluated | state | data |
setReading | Name of the set command, that should be used (if needed) | '' | data |
sliderReading | Name of the slider reading in the same device (if needed) | '' | data |
setSliderReading | name des Set Befehls vom sliderReading (if needed) | '' | data |
headline | Headline of the popup | Name of the FHEM device | data |
threshold | Event reduction. Only send every n command to FHEM (in combination with updateOnMove) | 10 | data |
showSlider | Show/Hide slider (sliderReading needed) | false | data |
updateOnMove | Activate/Deactivate sending of values continiously on move | false | data |
colorInput | Definition of the color input | hex | select(hex, #hex, rgb) |
colorOutput | Definition of the color output | hex | select(hex, #hex, rgb) |
Display other web content.
! Be aware of CORS.
Setting | Description | Default-Value | Type |
---|---|---|---|
device | Name of the FHEM device, that should be triggered | '' | data |
reading | Name of the reading, that should be evaluated (URL) | state | data |
url | External URL (otherwise IFrame tries to find the URL in the reading) | '' | data |
Display of a simple icon.
Display icons based on FHEM values.
Display of images.
Sources: Reading of a FHEM device / an image from the device storage / external URL.
Setting | Description | Default-Value | Type |
---|---|---|---|
device | Name of the FHEM device, that should be triggered | '' | data |
reading | Name of the reading, that should be evaluated (URL) | state | data |
url | External URL (otherwise IFrame tries to find the URL in the reading) (if no url and reading is selected, button for device image selection will be created) | '' | data |
Websocket connection to a kodi device.
!Diabled right now.
Darstellung eines Labels, um Komponenten beschriften zu können und eine übersichtliche Struktur zu kreieren.
Darstellung einer Linie, um Komponenten visuell optisch trennen zu können.
Darstellung eines Pinpads, um einen Pin von FHEM zu lesen.
Das Pinpad kann nach korrekter Eingabe einen Befehl ausführen
Einstellung | Beschreibung | Default-Wert | Type |
---|---|---|---|
device | Name des FHEM Geräts, dass gestuert werden soll | '' | data |
reading | Name des Readings, dass gelesen werden soll | state | data |
setReading | Name des set Befehls, der ausgelöst werden soll (falls notwendig) | '' | data |
pin | Name des Readings, dass den Pin enthält | pin | data |
getOn | ON Wert, der ausgelesen werden soll | on | data |
getOff | OFF Wert, der ausgelesen werden soll | off | data |
setOn | ON Wert, der gesendet werden soll (Befehl beim Einschalten) | on | data |
setOff | OFF Wert, der gesendet werden soll (Befehl beim Ausschalten) | off | data |
labelOnText | Alarm Text im ON Status | Alarm ist aktiv | data |
labelOffText | Alarm Text im ON Status | Alarm ist inaktiv | data |
tries | Anzahl der Fehlversuche die möglich sind, bis das Pinpad die Eingabe verweigert | 5 | data |
Ein Popup, dass Komponenten enthalten kann.
Das Popup kann auf Statusänderungen von FHEM Reagieren und/oder nur als Kontainer fungieren.
Ein Auswahlmenü um Werte aus FHEM als Selektionsmenü darzustellen.
Eigene Werte sowie Alias-Werte können ebenfalls definiert werden.
Einstellung | Beschreibung | Default-Wert | Type |
---|---|---|---|
device | Name des FHEM Geräts, dass gestuert werden soll | '' | data |
reading | Name des Readings, dass gelesen werden soll | state | data |
setReading | Name des set Befehls, der ausgelöst werden soll (falls notwendig) | '' | data |
currentState | Name des Readings, dass den aktuellen Status enthält (falls vorhanden) | '' | data |
seperator | Trennzeichen der Liste, die übergeben wird | , | data |
items | Manuelle Liste von Werten die angezeigt werden soll | '' | data |
alias | Alias Liste von Werten die angezeigt werden soll | '' | data |
placeholder | Platzhalter der angezeigt werden soll, falls kein aktueller Wert vorhanden ist | '' | data |
Ein Slider um numerische Werte zu übertragen.
Der Slider kann ebenfalls verwendet werden um Zeiten einzustellen (minimal und maximal Werte notwendig - Zahlenformat: 00:00)
Sprinkler Modul zur Steuerung von Bewässerungsanlagen
Das Modul hat ein extra GitHub Repo: https://github.com/Syrex-o/lib_nrf24, sowie einen eigenen FHEM Eintrag: folgt noch
Einstellung | Beschreibung | Default-Wert | Type |
---|---|---|---|
device | Liste der FHEM Geräte, die zum Sprinkler Modul gehören | Sprinkler1, Sprinkler2, Sprinkler3, Sprinkler4, Sprinkler5, Sprinkler6 | data |
weather | Name des Wetter Devices, dass die notwendigen Informationen enthält | WetterInfo | data |
smartSprinkler | Name des Smart-Sprinkler Devices, dass die notwendigen Informationen enthält | SmartSprinkler | data |
settingsStyle | Style der Einstellungen (list sollte nur notwendig sein, falls sich der slider nicht bewegen lässt - alte Geräte) | slider | select(slider, list) |
Schalten von zwei Zuständen in Form eines Switches
Darstellung eines Thermostats mit Animationen
Komponente zum einstellen von Tageszeiten im Format: 00:00
Einstellung | Beschreibung | Default-Wert | Type |
---|---|---|---|
device | Name des FHEM Geräts, dass gestuert werden soll | '' | data |
reading | Name des Readings, dass gelesen werden soll | state | data |
setReading | Name des set Befehls, der ausgelöst werden soll (falls notwendig) | '' | data |
label | Anzeigelabel des Timepickers | Fhem Device Name | data |
confirmBtn | Bestätigungs-Taste des Timepickers | Bestätigen | data |
cancelmBtn | Cancel-Taste des Timepickers | Abbrechen | data |
maxHours | Maximalwert der Stunden Anzeige | 24 | data |
maxMinutes | Maximalwert der Minuten Anzeige | 60 | data |
showBorder | Abtrennungslinie anzeigen/nicht anzeigen | true | data |
format | Anzeige-Format des Timepickers (bei HH u. mm werden nur die jeweiligen Werte an FHEM übergeben) | HH:mmm | select(HH:mmm HH, mm) |