homebridge/homekit

Begonnen von justme1968, 01 Februar 2016, 16:16:37

Vorheriges Thema - Nächstes Thema

MaxAut

Kann hier jemand helfen? Ich habe, wie vor zwei Postings beschrieben, das Problem mit meinen Velux Fenstern. Als HomeBridgeMapping habe ich derzeit "TargetPosition=dim::state". Damit kann ich das Fenster mal grundsätzlich bedienen, das Problem ist allerdings, das die Prozentwerte genau verkehrt sind. Und zum Zweiten habe ich das Problem, dass der zurückgelieferte Wert, also state, keine Zahl ist, sondern z.b. dim90 (für 90%).

Meine zwei Fragen zu den notwendigen Änderungen beim HomeBridgeMapping (durch das ich irgendwie nicht ganz durchsteige):

1. Wie kann ich die Prozentwerte umkehren - also statt 1 99, statt 40 60, statt 70 30, usw.
2. Wie kann ich beim Reading das "dim" rausfiltern und nur die Zahl zurückliefern?

justme1968

#1171
@Blackcat: ich schaffe es nicht das problem nachzustellen. ich muss noch etwas probieren.

@aski71: jsonlist2 ist ein fhem kommando

@Markus M.: die uuids müssen eindeutig sein. aber eigentlich wird der name mit verwendet und wenn sie nicht eindeutig sind meckert homebridge.

@TWART016: du musst zum beispiel angeben was die kommandos sind die beim ein- und ausschalten verwndet werden sollen. damit der schalter wie ein taster funktioniert gibt es timeout im homebridgeMapping.

@MaxAut: für das dimX problem würde ich ein userReading anlegen das nur die zahl enthält. ReadingsNum sollte helfen. das split im mapping funktioniert nur ein es ein leerzeichen zwischen buchstaben und zahlen gibt.

zum umdrehen der richtung gibt es invert.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Christian S.

Der Status meiner Max Thermostate und Fensterkontakte wird in der Eve App nicht aktualisiert. Zum Beispiel: Wenn ich das Fenster öffne bleibt der Status auf geschlossen. Der Staus meiner Max Geräte wird erst beim Neustart der Homebridge aktualisiert. Hat jemand eine Idee warum?
Gruß Christian
FHEM auf NUC, CUL V3 868 MHz
DECT200 Steckdosen
MAX Heizungsthermostate, Wandthermostate, Fensterkontakte
Homematic
Netatmo

Falkenstein

ZitatDer Status meiner Max Thermostate und Fensterkontakte wird in der Eve App nicht aktualisiert. Zum Beispiel: Wenn ich das Fenster öffne bleibt der Status auf geschlossen. Der Staus meiner Max Geräte wird erst beim Neustart der Homebridge aktualisiert. Hat jemand eine Idee warum?

Ja,dem schließe ich mich an...die Max Geräte scheint wohl niemand mit Homebridge zu benutzen??

Das homebridgeMapping und userReanding von HM-CC-RT-DN kann man in jeden Fall nicht auf die Max Thermostate übertragen.

Gruss
Falkes

CarstenF

Hm, gerade ausprobiert. Ich nutze Max Fensterkontakte und Thermostate. Bei den Kontakten aktualisiert sich die Bridge und bei den Thermostaten auch. Habe kein Mapping angelegt. (Da steige ich eh nicht durch) Einfach die Thermostate und Kontakte im Homekit-Raum untergebracht.


Gesendet von iPad mit Tapatalk
Raspberry Pi4
CUL 868, CUL 433, LaCrosse Gateway, Zigbeetomqtt2, HUE, Homematic
Max-Cube umgeflasht
MAX!, FhemtoFhem, Homebridge, FhemConnector, IR_Gateway und sonst auch noch allerlei Spielzeug....

justme1968

es gab ein kleines problem in der letzten version das ich vorhin behoben habe. mit der aktuellen 0.2.45 von heute sollten die thermostate wieder automatisch erkannt werden und wie vorher funktionieren.

wenn nicht bitte ein jsonlist2 vom device zeigen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

aski71

Andre,

das ist jsonlist2, wenn Harmony weg vom Strom ist:

{
  "Arg":"harmony",
  "Results": [
  {
    "Name":"harmony",
    "PossibleSets":" activity:TV.gucken,Netflixen,Blau.gucken,T.gucken,Apple.TV.gucken,Radio.hören,Wii.Spielen,CD.hören,PowerOff hidDevice:,Zony,Apple.TV command getConfig:noArg getCurrentActivity:noArg off:noArg reconnect:noArg sleeptimer sync:noArg text cursor:up,down,left,right,pageUp,pageDown,home,end special:previousTrack,nextTrack,stop,playPause,volumeUp,volumeDown,mute update:noArg",
    "PossibleAttrs":"verbose:0,1,2,3,4,5 room group comment:textField-long alias eventMap userReadings:textField-long disable:1 nossl:1 event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon devStateStyle fp_Home3D genericDeviceType:ignore,switch,outlet,light,blind,contact,thermometer,thermostat,garage,window,lock homebridgeMapping:textField-long icon lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 sortby webCmd widgetOverride userattr",
    "Internals": {
      "CONNECTS": "9",
      "ConnectionState": "Disconnected",
      "DEF": "crypt:5947595b4d5a1153265755481d565c crypt:7966757e42164511 192.168.2.35",
      "LAST_CONNECT": "2016-09-29 06:45:34",
      "LAST_DISCONNECT": "2016-09-29 08:47:26",
      "NAME": "harmony",
      "NOTIFYDEV": "global",
      "NR": "150",
      "NTFY_ORDER": "50-harmony",
      "STATE": "Disconnected",
      "TYPE": "harmony",
      "activityStatus": "0",
      "currentActivityID": "-1",
      "hubSwVersion": "4.9.40",
      "hubUpdate": "1",
      "identity": "29ea70c9-ec64-4450-ab06-ecd6fc29a50e",
      "ip": "192.168.2.35",
      "previousActivityID": "16072158",
      "syncStatus": "0"
    },
    "Readings": {
      "activity": { "Value":"PowerOff", "Time":"2016-09-29 07:30:08" },
      "currentActivity": { "Value":"PowerOff", "Time":"2016-09-29 07:30:08" },
      "previousActivity": { "Value":"Radio hören", "Time":"2016-09-29 07:30:08" },
      "state": { "Value":"Disconnected", "Time":"2016-09-29 08:47:26" }
    },
    "Attributes": {
      "genericDeviceType": "switch",
      "room": "HomekitMedia,Zentral"
    }
  }  ],
  "totalResultsReturned":1
}



Und das ist jsonlist2, wenn Harmony am Strom ist:

{
  "Arg":"harmony",
  "Results": [
  {
    "Name":"harmony",
    "PossibleSets":" activity:TV.gucken,Netflixen,Blau.gucken,T.gucken,Apple.TV.gucken,Radio.hören,Wii.Spielen,CD.hören,PowerOff hidDevice:,Zony,Apple.TV command getConfig:noArg getCurrentActivity:noArg off:noArg reconnect:noArg sleeptimer sync:noArg text cursor:up,down,left,right,pageUp,pageDown,home,end special:previousTrack,nextTrack,stop,playPause,volumeUp,volumeDown,mute update:noArg",
    "PossibleAttrs":"verbose:0,1,2,3,4,5 room group comment:textField-long alias eventMap userReadings:textField-long disable:1 nossl:1 event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon devStateStyle fp_Home3D genericDeviceType:ignore,switch,outlet,light,blind,contact,thermometer,thermostat,garage,window,lock homebridgeMapping:textField-long icon lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 sortby webCmd widgetOverride userattr",
    "Internals": {
      "CONNECTS": "10",
      "ConnectionState": "LoggedIn",
      "DEF": "crypt:5947595b4d5a1153265755481d565c crypt:7966757e42164511 192.168.2.35",
      "FD": "18",
      "LAST_CONNECT": "2016-09-29 22:11:15",
      "LAST_DISCONNECT": "2016-09-29 08:47:26",
      "NAME": "harmony",
      "NOTIFYDEV": "global",
      "NR": "150",
      "NTFY_ORDER": "50-harmony",
      "STATE": "Connected",
      "TYPE": "harmony",
      "activityStatus": "0",
      "currentActivityID": "-1",
      "hubSwVersion": "4.9.40",
      "hubUpdate": "1",
      "identity": "29ea70c9-ec64-4450-ab06-ecd6fc29a50e",
      "ip": "192.168.2.35",
      "previousActivityID": "16072158",
      "syncStatus": "0"
    },
    "Readings": {
      "activity": { "Value":"PowerOff", "Time":"2016-09-29 07:30:08" },
      "currentActivity": { "Value":"PowerOff", "Time":"2016-09-29 22:11:20" },
      "previousActivity": { "Value":"Radio hören", "Time":"2016-09-29 07:30:08" },
      "state": { "Value":"Connected", "Time":"2016-09-29 22:11:15" }
    },
    "Attributes": {
      "genericDeviceType": "switch",
      "room": "HomekitMedia,Zentral"
    }
  }  ],
  "totalResultsReturned":1
}

justme1968

hast du zu dem zeitpunkt als die harmony weg vom strom war auch homebrige neu gestartet und geschaut ob das problem da ist?

die beiden jsonlist unterscheiden sich nicht signifikant und ich kann beim import das problem auch nicht nachstellen.

ich habe gerade keine idee...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

tante ju

Habe mal nachgeschaut, und Markus M. hatte den richtigen Riecher. Für die Homematic-Thermostate muß das so aussehen:

  if( reading == 'temperature'
             || reading == 'measured'
             || reading == 'measured-temp'
             || reading == 'desired-temp'
             || reading == 'desired'
             || reading == 'desiredTemperature' ) {
      if( value == 'on' )
        value = 31.0;
      else if( value == 'off' )
        value = 4.0;
    value = parseFloat( value );
//    if( isNaN(value) ) {
//      if( value == 'on' )
//        value = 31.0;
//      else if( value == 'off' )
//        value = 4.0;
//    }


Du machst ja parseFloat auf value und weißt das value zu. Danach kannst Du nicht mehr nachschauen, was VORHER in value war, weil Du hinterher ja NaN drinstehen hast. Deswegen muß die Abfrage auf on oder off VOR dem parseFloat kommen.

Dann geht es auch mit dem HM-CC-RT-DN.

TWART016

Zitat von: justme1968 am 29 September 2016, 20:02:05
@TWART016: du musst zum beispiel angeben was die kommandos sind die beim ein- und ausschalten verwndet werden sollen. damit der schalter wie ein taster funktioniert gibt es timeout im homebridgeMapping.

Und mit welchen commands soll das angegeben werden?

justme1968

@tante ju: arg... peinlich. oder einfach zu spät. ja natürlich. so rum wird ein schuh draus. es hat nichts mit dem isNaN test zu tun. ist repariert und eingecheckt.

@TWART016: mit dem im readme und am hier im ersten post beschriebenen homebridgeMapping.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

TWART016

Wie bereits angekündigt steige ich mit dem homebridgeMapping noch nicht ganz durch :(

Das Wohnzimmer_Modi hat das State-Reading, welches ich gerne auf schlafen setzen möchte. Wie muss ich das machen?

aski71

Zitat von: justme1968 am 29 September 2016, 23:36:50
hast du zu dem zeitpunkt als die harmony weg vom strom war auch homebrige neu gestartet und geschaut ob das problem da ist?

die beiden jsonlist unterscheiden sich nicht signifikant und ich kann beim import das problem auch nicht nachstellen.

ich habe gerade keine idee...

Hi Andre,

also, nachdem ich heute mal wieder alles vom Strom nehmen/rebooten musste, waren die Harmony Szenen wieder weg und nur noch ein Schalter "harmony" da.

Jetzt sieht die jsonlist2 so aus:

{
  "Arg":"harmony",
  "Results": [
  {
    "Name":"harmony",
    "PossibleSets":" command getConfig:noArg getCurrentActivity:noArg off:noArg reconnect:noArg sleeptimer sync:noArg text cursor:up,down,left,right,pageUp,pageDown,home,end special:previousTrack,nextTrack,stop,playPause,volumeUp,volumeDown,mute",
}


Wie man sieht, sind die ganzen Activities weg.
Dann Strom eingeschaltet:

{
  "Arg":"harmony",
  "Results": [
  {
    "Name":"harmony",
    "PossibleSets":" activity:TV.gucken,Netflixen,Blau.gucken,T.gucken,Apple.TV.gucken,Radio.hören,Wii.Spielen,CD.hören,PowerOff hidDevice:,Zony,Apple.TV command getConfig:noArg getCurrentActivity:noArg off:noArg reconnect:noArg sleeptimer sync:noArg text cursor:up,down,left,right,pageUp,pageDown,home,end special:previousTrack,nextTrack,stop,playPause,volumeUp,volumeDown,mute update:noArg",


Activities wieder da.
Homebridge neu gestartet: Alle Activities auch hier wieder anwesend.

On the bright side:
Immerhin musste ich diesmal nach dem Neustart aller Systeme nicht wieder das komplette Setup in Home neu machen.
Mein Setup, fhem und homebridge über systemd in Abhängigkeit voneinander zu starten schien hier zu helfen.

Für wen das interessant ist: Hier meine fhem.service und homebridge.service Datei.

[Unit]
Description=FHEM service
After=network.target syslog.target owserver.service
Before=homebridge.service

[Service]
Type=forking
User=fhem
Group=dialout
WorkingDirectory=/opt/fhem
ExecStart=/usr/bin/perl fhem.pl fhem.cfg
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


[Unit]
Description=Node.js HomeKit Server
Requires=fhem.service
After=syslog.target fhem.service

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

MaxAut

Hallo Andre!

Ich check das mit dem HomeBridgeMapping nicht ... ich habe jetzt drinnen:

Brightness=dim::dim,minValue=30,maxValue=90,minStep=5 PowerState=state::state,valueOff=off

Und mein UserReading ist so definiert:

dim {return "off" if (ReadingsNum("Artemide1","state",85) eq "" || ReadingsNum("Artemide1","state",85) eq 0); return (ReadingsNum("Artemide1","state",85)) }

In Homebridge sehe ich folgende Fehler - ich bin nicht sicher ob ich das ignorieren kann:

  2016-09-30 10:26:39 caching: Artemide1-dim: 0
[9/30/2016, 10:26:39 AM] [FHEM]     caching: Brightness: 30 (as number; from '0')
  2016-09-30 10:26:39 caching: Artemide1-dim: off
[9/30/2016, 10:26:39 AM] [FHEM] Artemide1-dim not a number: off
  2016-09-30 10:26:39 caching: Artemide1-state: off


Und dann habe ich noch ein zweites Problem: Wenn ich in IOS einfach nur einschalte, also keinen DIM Wert setze, dann kommt bei FHEM ein "set Artemide1 on" an. Stattdessen sollte aber "set Artemide1 dim <prozentwert>" ankommen. Welcher Wert das ist, ist mir erst mal egal ...

Hast Du dazu noch Ideen?

Liebe Grüße,
Max

MaxAut

Update: Das mit dem PowerState habe ich jetzt hinbekommen; wird jetzt richtig angezeigt. Mein Mapping ist jetzt:

Brightness=dim::dim,minValue=30,maxValue=90,minStep=5 On=state,valueOff=0

Und das UserReading ist:

dim {return "0" if (ReadingsNum("Artemide","state",85) eq "" || ReadingsNum("Artemide","state",85) eq 0); return (ReadingsNum("Artemide","state",85)) }

Mein Problem bleibt aber immer noch das Einschalten durch simplen Klick. Da wird nur set ... on gemacht und das ist falsch. Ich brauche das "set dim <irgendwas>". Wenn ich über den Prozentwert einschalte, dann passt alles.