HomePlus - Hybrid frontend mobile-app UI-Framework (Android, iOS, Web)

Begonnen von Real-TTX, 22 November 2016, 20:57:19

Vorheriges Thema - Nächstes Thema

visionsurfer

ok. Danke. Ich werde probieren und berichten :) Ich denke wenn man mal drin ist, dann ist es geil :)

Grüße,
Visionsurfer

Tedious

Hi,

klingt auf jeden Fall spannend und sollte einen hohen WAF haben. Eins verstehe ich nicht:

ZitatEgal ob Tablet, Handy oder am PC

Wenn ich mir die Doku anschaue sieht mir das aber so aus als würde die App denn nur die Werte aus FHEM abgreifen. Soweit verstanden. Mangels Android (WinPhones und -Tablets) würde ich mir die "PC"-Variante anschauen wollen - aber das ist ncoh nicht implementiert, korrekt?
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Real-TTX

Ist alles fertig. Ist ne Cross-Platform App. Am PC wird es als Web-App in die FHEM Installation /www integriert. Auch hier gibts ne Beta. Schreib mir ne PN. Wird installiert über update all http://... und define Homeplus HTTPSRV ....
Server: 3x Supermicro A1SAi-2750F, FHEM @ Debian-VM
Bandwidth: 800 Mbit / 100 Mbit, Failover LTE
Homematic: 2x HM-MOD-RPI-PCB (via Pi3 socat)
Z-Wave: Z-Wave.Me USB Stick (via Pi3 socat)
RFXTrx: RFXCom (via Pi3 socat)

visionsurfer

Hi,

@Real-TTX
So ich hab nun mal eine Lampe eingebunden. Funktioniert.

Ist es normal das es bei "off" ein bisschen dauert ? Wenn ich die Lampe einschaltet, reagiert die Lampe SOFORT und auch der Regler in der App springt sofort auf ON.
Wenn ich dann den Regler auf OFF setze, dann dauert es ein paar Sekunden bis die Lampe schaltet. Auch steht der Regler in der App erst mal weiterhin auf ON. Erst nach ein paar Sekunden springt er auf OFF.

Grüße,
Visionsurfer

Real-TTX

Nein ist nicht normal!

Sendet er solange? Du siehst in der Zeile rechts neben dem Devicename ein Pfeil der nach oben zeigt während er etwas an FHEM sendet. Ist der Pfeil länger zu sehen?

Was heisst du setzt den Regler auf OFF und er ist weiterhin auf ON? Dann ist er ja nicht auf OFF? Oder meinst du, wenn du danach direkt aktualisiert ist er "wieder" auf ON? Schalte mal das automatische aktualisieren ab und berichte ob das Problem in diesem Zusammenhang auftaucht.

Habe leider kein iOS-Device womit ich das ganze testen könnte. Nicht dass es Plattform spezifisch ist. Werde mir mal ein altes Eierphone besorgen  8)
Server: 3x Supermicro A1SAi-2750F, FHEM @ Debian-VM
Bandwidth: 800 Mbit / 100 Mbit, Failover LTE
Homematic: 2x HM-MOD-RPI-PCB (via Pi3 socat)
Z-Wave: Z-Wave.Me USB Stick (via Pi3 socat)
RFXTrx: RFXCom (via Pi3 socat)

dancatt

Moin,

gibt es eine Möglichkeit auch Räume auszublenden? Z.B. wenn mehrere Devices in mehreren Räumen enthalten sind, ich aber in der App nur einen Raum davon haben möchte.

Vielen Dank.

Gruß Daniel
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

Real-TTX

Logisch, das Attribut "uiDisplayRoom" überschreibt "room" für die App.

Viele Grüße
Server: 3x Supermicro A1SAi-2750F, FHEM @ Debian-VM
Bandwidth: 800 Mbit / 100 Mbit, Failover LTE
Homematic: 2x HM-MOD-RPI-PCB (via Pi3 socat)
Z-Wave: Z-Wave.Me USB Stick (via Pi3 socat)
RFXTrx: RFXCom (via Pi3 socat)

abc2006

Hi, habe gerade die App installiert. Muss zugeben, dass das deutlich eher das ist was ich suche, ich bin noch nie ein Freund der FHEM-Blacklists (a la andfhem, schmeisse alles rein was nicht irgendwie verboten ist) gewesen.
Zu erlauben bzw. festzulegen, was ich sehen will, ist imho manchmal echt zielführender.

Danke also vielmals für diesen tollen Ansatz, ich hoffe, ich kann mich entsprechend einbringen!

Gehts hier nur um die App, oder auch um alles drumrum?
Als erstes ist mir nämlich gerade aufgefallen, dass es cool wäre, z.B. für das uiDeviceType ein Dropdown zu haben. Weiss aber, dass es eine Änderung in FHEM wäre und nicht in der APP und ich weiss NICHT, wie aufwendig das ist bzw. ob das mit userattr überhaupt irgendwie geht.

Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

Zweitens bin ich gerade ein bisschen von den Namensgebungen verwirrt:

DeviceType ist klar
Der Sinn-Unterschied zwischen

uiDeviceTypeParameter: label AS TEXT
uiDisplayName

ist mir nicht ganz klar.
DeviceTypeParameter ist die Bezeichnung, die direkt vor dem Schalter steht.
DisplayName ist die Bezeichnung, die in der (für mich bisher nutzlosen) Zeile über dem Schalter steht

IMHO wäre es sinnvoller,
DeviceTypeParameter zu entfernen,
DisplayName direkt vor dem Schalter anzuzeigen (vorbelegt mit dem Device-Namen von FHEM)
DisplayGroup einzuführen und die Devices im Raum danach zu gruppieren.
(siehe screenshots unten)

drittens:

Könnte man anstatt
set FS20_Weihnacht_Wozi [[IF:"%VALUE%"="1",on,off]]
nicht vielleicht sowas machen
set $NAME [[IF:"%VALUE%"="1",on,off]]

würde das kopieren der attribute in die einzelnen Devices massiv vereinfachen

Aber ich bleib dabei: je mehr ich mich damit beschäftige, umso mehr fasziniert mich das Prinzip!
Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

carlos

Hi,
Deinen Ansatz finde ich auch gut.
Bin schon am ausprobieren, kriege es aber nicht hin.
Ein Thermostat als LABEL-VALUE eingebunden funktioniert schon mal.
Wobei hier nur readings z.B.: [[DEVICE:NC_WS_83:state]]) als value funktionieren, internals z.B.: [[DEVICE:NC_WS_83:STATE]] nicht.

2 Schalter als SWITCH mit den gleichen ui definitionen sehen in der app leider nicht gleich aus.

Und mein update counter als LABEL-VALUE-LIST zeigt auch nichts an.

Habe ich was falsch konfiguriert?

Gruß
Carlos


FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Real-TTX

Hi Stephan,

zuerst: Vielen vielen Dank für Lob und Kritik  ;) !!

Dein 1. Punkt:

1). Für später ist ein eigenes FHEM Modul geplant. Bzw. muss noch schauen, wie ich das realisieren kann. Muss mir erstmal die Doku zum erstellen eines Moduls durchlesen. Aber ja, das Anlegen der Attribute soll stark vereinfacht werden!


Dein 2. Punkt:

1.) uiDeviceTypeParameter sind Paramter für das aktuelle Device. Im Fall von einem "SWITCH" ist hier ein Label vor dem Schalter (In den meisten Fällen kann hier "Eingeschaltet" stehen.) Aber in vielen anderen Fällen sind die Parameter etwas ganz anderes. Ein "RANGE" Control erwartet hier: "minValue", "maxValue", "step" z.B. "0;100;1".

2.) uiDisplayName ist in der Kopfzeile eines Gerätes zu finden. Die Kopfzeile eines Gerätes ist nicht unnütz: a) Du kannst mit einem Click/Tap auf den Geräte-Name das Gerät öffnen. Hier kannst du das Gerät in deine "Home-Liste", "Favoriten-Liste" (aktuell ohne Funktion  8)) stecken. Dir die Readings und Attribute anzeigen unter dem Schalter "RAW".  Oder einfach wieder das Gerät bedienen oder zurück in den Raum gehen.

3.) DisplayGroup wäre eine nette Idee. Sehe aber aktuell noch kein Nutzen. (s. weiter unten).

4.) Dein Problem ist folgendes. a) Du hast ein Raum, der kein Raum ist - "Licht".  b) Du möchtest ein Control verwenden, welches für einen einen anderen Einsatz gedacht ist - was du suchst ist eine "SWITCH-LIST", die werde ich einbauen!
- Du könntest das ganze sogar aktuell anstellen: Schau dir uiDeviceOption an und uiDisplayOrder. Es gibt eine Option, mit der du die Kopfzeile verstecken kannst: "optionHeaderHide".


Dein 3. Punkt:

1.) Werde ich für die nächste Version das wohl einbauen: %DEVICE_NAME% oder %NAME%.

2.) Es gibt schon einige Verkürzungen: Bsp. Kann in uiGet auch das * anstelle des Geräte-Namens verwendet werden. Bsp: "*:state". Desweiteren kann in einem Home-Expression bei einem IF z.B. der erste Wert weggelassen werden. Bsp. [[DEVICE:myDevice:state|IF:="yes",Ja,Nein]] ist die Kurzform von [[DEVICE:myDevice:state|IF:"%1%"="yes",Ja,Nein]]. Falls der Ausdruck im gleichen Gerät ist, kann auch [[DEVICE:*:state|IF:"%1%"="yes",Ja,Nein]] verwendet werden.


Neue Doku und Website folgen die Tage. Dann werden alle uiDeviceTypes etc. richtig erklärt!

Des Weiteren folgt die nächsten Tage, die Freigabe der Web-App für alle.

Nur iOS wird noch bisschen dauern, hier fehlt es mir am iOS-Device.
Server: 3x Supermicro A1SAi-2750F, FHEM @ Debian-VM
Bandwidth: 800 Mbit / 100 Mbit, Failover LTE
Homematic: 2x HM-MOD-RPI-PCB (via Pi3 socat)
Z-Wave: Z-Wave.Me USB Stick (via Pi3 socat)
RFXTrx: RFXCom (via Pi3 socat)

Real-TTX

Hi carlos,

zeig mir die kompletten Geräte (inkl. Readings und Internals). Dann zeig ich dir den Fehler  8)

Viele Grüße
Server: 3x Supermicro A1SAi-2750F, FHEM @ Debian-VM
Bandwidth: 800 Mbit / 100 Mbit, Failover LTE
Homematic: 2x HM-MOD-RPI-PCB (via Pi3 socat)
Z-Wave: Z-Wave.Me USB Stick (via Pi3 socat)
RFXTrx: RFXCom (via Pi3 socat)

Real-TTX

Ach.. und schmeiß uiDeviceIcon und uiDeviceColor attr raus. Ist nur ein Beispiel um den Schalter rot zu bekommen und ein Icon davor zu setzen.

Viele Grüße
Server: 3x Supermicro A1SAi-2750F, FHEM @ Debian-VM
Bandwidth: 800 Mbit / 100 Mbit, Failover LTE
Homematic: 2x HM-MOD-RPI-PCB (via Pi3 socat)
Z-Wave: Z-Wave.Me USB Stick (via Pi3 socat)
RFXTrx: RFXCom (via Pi3 socat)

carlos

Hi,

Hier ist ein list der 3 devices:


Internals:
   DEF        192.168.178.33
   HOST       192.168.178.33
   INTERVAL   300
   NAME       myHS110
   NR         1107
   STATE      off
   TIMEOUT    1
   TYPE       TPLinkHS110
   Readings:
     2016-12-02 19:46:59   active_mode     schedule
     2016-12-02 19:46:59   alias           myHS110
     2016-12-02 19:46:59   current         0.014181
     2016-12-02 19:46:59   daily_average   0.001
     2016-12-02 19:46:59   dev_name        Wi-Fi Smart Plug With Energy Monitoring
     2016-12-02 19:46:59   deviceId        80061DD59001716F10869A10E7287117170F2EAA
     2016-12-02 19:46:59   err_code        0
     2016-12-02 19:46:59   feature         TIM:ENE
     2016-12-02 19:46:59   fwId            3A1C9C60B93A090DF074A74960BA60C0
     2016-12-02 19:46:59   hwId            45E29DA8382494D2E82688B52A0B2EB5
     2016-12-02 19:46:59   hw_ver          1.0
     2016-12-02 19:46:59   icon_hash
     2016-12-02 19:46:59   latitude        49.25279
     2016-12-02 19:46:59   led_off         0
     2016-12-02 19:46:59   longitude       9.12775
     2016-12-02 19:46:59   mac             50:C7:BF:00:AF:20
     2016-12-02 19:46:59   model           HS110(EU)
     2016-12-02 19:46:59   monthly_total   0.001
     2016-12-02 19:46:59   oemId           3D341ECE302C0642C99E31CE2430544B
     2016-12-02 19:46:59   on_time         0
     2016-12-02 19:46:59   power           0
     2016-12-02 19:46:59   relay_state     0
     2016-12-02 19:46:59   rssi            -54
     2016-12-02 19:46:59   state           off
     2016-12-02 19:46:59   sw_ver          1.0.8 Build 151101 Rel.24452
     2016-12-02 19:46:59   total           0.001
     2016-12-02 19:46:59   type            smartplug
     2016-12-02 19:46:59   updating        0
     2016-12-02 19:46:59   voltage         237.035519
Attributes:
   disable    0
   room       IT
   uiDeviceType SWITCH
   uiDeviceTypeParameter Eingeschaltet
   uiDisplayName myHS110
   uiGet      [[DEVICE:myHS110:state|IF:"%1%"="on",1,0]]
   uiSet      set myHS110 [[IF:"%VALUE%"="1",on,off]]
   uiShow     1



Internals:
   00         f0
   CUL433LCG2_MSGCNT 1
   CUL433LCG2_RAWMSG i000554
   CUL433LCG2_RSSI -74
   CUL433LCG2_TIME 2016-12-07 00:38:27
   DEF        000000FFFF 0F F0
   IODev      miniWCUL
   LASTInputDev CUL433LCG2
   MSGCNT     2
   NAME       IT_000000FFFF
   NR         964
   STATE      off
   Signalduino_DMSG i000554
   Signalduino_MSGCNT 1
   Signalduino_RAWMSG MS;P0=272;P3=-974;P4=903;P5=-359;P6=-9763;D=06030303030303030303030303034503450345034503450303;CP=0;SP=6;O;
   Signalduino_TIME 2016-12-07 00:38:26
   TYPE       IT
   XMIT       000000ffff
   XMITdimdown 00
   XMITdimup  00
   XMITon     0f
   Code:
     1          000000ffff
   Readings:
     2016-11-18 23:21:02   protocol        V1
     2016-12-07 00:38:27   state           off
Attributes:
   IODev      miniWCUL
   ITrepetition 12
   icon       light_floor_lamp
   room       IT
   uiDeviceColor assertive
   uiDeviceIcon ion-ios-lightbulb-outline
   uiDeviceType SWITCH
   uiDeviceTypeParameter Eingeschaltet
   uiDisplayName DoseA
   uiGet      [[DEVICE:IT_000000FFFF:state|IF:"%1%"="on",1,0]]
   uiSet      set IT_000000FFFF [[IF:"%VALUE%"="1",on,off]]
   uiShow     1
   userattr   room_map structexclude



Internals:
   NAME       Update.Counter
   NR         1105
   STATE      ALL
   TYPE       CustomReadings
   Readings:
     2016-12-07 12:21:12    ABFALL         0
     2016-12-07 12:21:12    ALL            7
     2016-12-07 12:21:12    ESPEASY        0
     2016-12-07 12:21:12    FTUI           0
     2016-12-07 12:21:12    SDUINO         0
     2016-12-07 12:21:12   FHEM            7
     2016-12-07 12:21:12   state           OK
Attributes:
   event-on-update-reading FHEM,FTUI,ABFALL,ESPEASY,SDUINO,ALL
   interval   3600
   readingDefinitions FHEM:qx(wget -qO - http://fhem.de/fhemupdate/controls_fhem.txt| diff - /opt/fhem/FHEM/controls_fhem.txt |grep ">"|grep "UPD"|wc -l), FTUI:qx(wget -qO - https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt| diff - /opt/fhem/FHEM/controls_fhemtabletui.txt |grep ">" |grep "UPD"|wc -l), ABFALL:qx(wget -qO - https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt| diff - /opt/fhem/FHEM/controls_fhemabfall.txt |grep ">" |grep "UPD"|wc -l), ESPEASY:qx(wget -qO - https://raw.githubusercontent.com/ddtlabs/ESPEasy/master/controls_ESPEasy.txt| diff - /opt/fhem/FHEM/controls_ESPEasy.txt |grep ">" |grep "UPD"|wc -l), SDUINO:qx(wget -qO - https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-r33/controls_signalduino.txt| diff - /opt/fhem/FHEM/controls_signalduino.txt |grep ">" |grep "UPD"|wc -l), ALL:{ReadingsNum($name, "FHEM", 0) + ReadingsNum($name, "FTUI", 0) + ReadingsNum($name, "ABFALL", 0) + ReadingsNum($name, "ESPEASY", 0) + ReadingsNum($name, "SDUINO", 0) }
   room       00_Zentrale
   stateFormat ALL
   uiDeviceType LABEL-VALUE-LIST
   uiDeviceTypeParameter FHEM;FTUI;ABFALL;ESPEASY;SDUINO;ALL
   uiDisplayName Update
   uiGet      [[DEVICE:UPDATE:FHEM]];[[DEVICE:UPDATE:FTUI]];[[DEVICE:UPDATE:ABFALL]];[[DEVICE:UPDATE:ESPEASY]];[[DEVICE:UPDATE:SDUINO]];[[DEVICE:UPDATE:ALL]]
   uiShow     1
   verbose    5


Aber das mit dem Icon und der Farbe sieht doch richtig gut aus.

Viele Grüße

FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

abc2006

Zitat von: Real-TTX am 07 Dezember 2016, 10:49:15
1.) uiDeviceTypeParameter sind Paramter für das aktuelle Device. Im Fall von einem "SWITCH" ist hier ein Label vor dem Schalter (In den meisten Fällen kann hier "Eingeschaltet" stehen.) Aber in vielen anderen Fällen sind die Parameter etwas ganz anderes. Ein "RANGE" Control erwartet hier: "minValue", "maxValue", "step" z.B. "0;100;1".

Was genau ist der Sinn von "Eingeschaltet" ? Für mich klingt das auch auf den zweiten Blick wie ein Status, und weder wie ein Parameter noch wie ein Label... Kannst du mal einen Screenshot posten, wo "eingeschaltet" Sinn macht? Vielleicht versteh ichs dann..

Zitat
2.) uiDisplayName ist in der Kopfzeile eines Gerätes zu finden. Die Kopfzeile eines Gerätes ist nicht unnütz: a) Du kannst mit einem Click/Tap auf den Geräte-Name das Gerät öffnen. Hier kannst du das Gerät in deine "Home-Liste", "Favoriten-Liste" (aktuell ohne Funktion  8)) stecken. Dir die Readings und Attribute anzeigen unter dem Schalter "RAW".  Oder einfach wieder das Gerät bedienen oder zurück in den Raum gehen.

Alles klar ^^


Zitat4.) Dein Problem ist folgendes. a) Du hast ein Raum, der kein Raum ist - "Licht".  b) Du möchtest ein Control verwenden, welches für einen einen anderen Einsatz gedacht ist - was du suchst ist eine "SWITCH-LIST", die werde ich einbauen!
- Du könntest das ganze sogar aktuell anstellen: Schau dir uiDeviceOption an und uiDisplayOrder. Es gibt eine Option, mit der du die Kopfzeile verstecken kannst: "optionHeaderHide".

Das hab ich noch nicht verstanden, werde mich aber die Tage nochmal damit auseinandersetzen. Vor allem deinen Satz b) kann ich noch nicht nachvollziehen. Zur Zeit denke ich noch darüber nach, was du mit "SWITCH-LIST" meinst. Offenbar sind mir einige Bezeichnungen noch nicht gängig.
Manchmal ist das textuelle austauschen von Ideen eben doch nicht so leicht. 8)


ZitatNeue Doku und Website folgen die Tage. Dann werden alle uiDeviceTypes etc. richtig erklärt!

prima. Werd ich mir ansehen und mich dann nochmal melden;)


Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX