HomeStatus TableUI implementieren

Begonnen von Nikonimus, 11 Oktober 2016, 11:28:04

Vorheriges Thema - Nächstes Thema

Nikonimus

Hallo,
ich habe ein TableUI gebaut, in dem auch ein HomeStatus verwendet wird:

aus index.html
<script type="text/javascript" src="js/widget_homestatus.js" defer></script>
...
<li data-row="4" data-col="2" data-sizex="2" data-sizey="2">
        <header>HOMESTATUS</header>
        <div data-type="homestatus" data-device='HomeStatus' data-version='' class="" ></div>
</li>

Im FHEM habe ich ein dummy angelegt, mit gleichem Namen:
aus

define HomeStatus dummy
attr HomeStatus room Haus
define Zuhause notify whg_HomeStat1 set HomeStatus 1;;toggle HM_Schaltaktor on
define Nacht notify whg_HomeStat2 set HomeStatus 2;;toggle HM_Schaltaktor off
define Abwesend notify whg_HomeStat3 set HomeStatus 3;;toggle HM_Schaltaktor off
define Urlaub notify whg_HomeStat4 set HomeStatus 1;;toggle HM_Schaltaktor off

Das dummy nimmt die Schaltzustände an  , die ich im TabletUI einstelle, also 1-4.
Ich habe die Syntax aus dem WIKI, jedoch weiss ich nicht recht, was whg_HomeStat1  bedeuten soll.
Leider wird das notify entweder nicht ausgelöst oder meine Syntax stimmt nicht, jedenfalls passiert nichts mit dem Schaltaktor.

Im Logfile für das dummy steht nur, dass der Homestatus entsprechend gesetzt wird.

Was ist denn da falsch ?



no_Legend

Hallo,

das mit dem Homestatus Dummy ist shcon richtig.
Du brauchst aber nur eine Homestatus Dummy.
Dieser muss dann die folgenden state annehmen können:
home,asleep,absent,gone,gotosleep

dann kommt es auch im tablet ui richtig an.

Gruß Robert
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

Nikonimus

Ich bin mir gerade nicht sicher ob ich den Sinn des HomeStatusUI richtig vertsanden habe.

Bei mir hängt ein Tablet an der Wand, ich möchte bei Druck auf das HomestatusUI im TabletUI  meine Heizkörperthermostate steuern.
Also ich drücke im TableUI Abwesend (absent) und in FHEM werden alle Thermostate auf 17 Grad gestellt.

Ist das so gedacht oder dient das HomeStatus Widget nur der anzeige ?

Nikonimus

Zitat von: no_Legend am 11 Oktober 2016, 11:49:19
Hallo,

das mit dem Homestatus Dummy ist shcon richtig.
Du brauchst aber nur eine Homestatus Dummy.
Dieser muss dann die folgenden state annehmen können:
home,asleep,absent,gone,gotosleep

dann kommt es auch im tablet ui richtig an.

Gruß Robert

Ich bin mir gerade nicht sicher ob ich den Sinn des HomeStatusUI richtig vertsanden habe.

Bei mir hängt ein Tablet an der Wand, ich möchte bei Druck auf das HomestatusUI im TabletUI  meine Heizkörperthermostate steuern.
Also ich drücke im TableUI Abwesend (absent) und in FHEM werden alle Thermostate auf 17 Grad gestellt.

Ist das so gedacht oder dient das HomeStatus Widget nur der Anzeige ? Ich wollte es als Softwareschalter verwenden

no_Legend

#4
Ich hab das homestatus nicht selbst im einsatz.
Ich glaube ich hattes es so wie du willst auch schon in benutztung.
wenn ich es aber richtig intepretiere, kannst du es auch als schalter nehmen.

Im Wiki steht hier zu, was für dich denke interessant ist, "data set" zeile.
Du kannst ja dann auch die gesetzten state des homestatus nehmen und aktionen ausführen lassen.
Du musst halt nur in den notifies oder doif /ifs nach dem richtigen auswerten.

HOMESTATUS
HTML Attribut Beschreibung Default Wert
data-get name of the reading to get from Fhem 'STATE'
data-set command to send to Fhem (set <device> <command> <value>)
data-get-on array of states using for get ['1','2','3','4']
data-set-on array of states using for set. value of data-get-on
data-alias array of fix names to show only in the UI as an alias to the real states
data-icons array of icons related to the data-get-on array
data-version name of the status model e.g. 'residents','roommate','guest' (default NULL)

The default version has 4 states: '1','2','3','4' The default aliases are 'Home','Night','Away','Holiday'; data-version='residents' or 'roommate' or 'guest' has 5 states ('home','asleep','absent','gone','gotosleep') They have these aliases 'Home','Night','Away','Holiday','Retire'



Edit:
Gerade noch mal getestet. Beim Firefox kann ich auch in der TabletUI den homestatus schalten.
Habe diesen BeispielCode aus dem wiki genommen.
Der Dummie in FHEM stetzt dann den state auf 1-4.
Damit solltest du doch arbeiten können.
<div data-type="homestatus" data-device='dummy1'
        data-get-on='["home","asleep","absent","gone","gotosleep"]'
        data-alias='["Home","Night","Away","Holiday","Retire"]'
        data-icons='["fa-fire","fa-film","fa-plus","fa-car","fa-tint"]'
        data-version='residents'>
</div>
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

Nikonimus

Gelöst:

Danke für die Anregungen.So hab ich es jetzt gelöst:

dummy HomeStatus anlegen
attr setList HomeStatus 1 2 3 4

Logfile für das dummy anlegen, damit man was sieht

Notify draufsetzen:

define notifyZuhause notify HomeStatus set blabla. Damit legt man ein notify an, dass man hinterher bearbeiten kann.

Danach das DEF des notify editieren und folgendermaßen abändern:

HomeStatus {  if ( ReadingsVal("HomeStatus", "state", "") == 1 )   { fhem "set HM_Schalt_Aktor1 on" ;} }

Man kann entweder für jeden Zustand (Zuhause = 1, Abwesend = 2, Urlaub = 3, ...) ein notify anlegen oder in einem allgemeinen alle Bedingungen abfragen.
Achtung Klammersetzung {} <- Perl Klammern sind wichtig, sonst passiert nichts, aber man sieht auch nichts im Logfile.