Integration von MySensors in FHEM geplant?

Begonnen von fh555, 06 September 2014, 00:40:58

Vorheriges Thema - Nächstes Thema

fh555

#195
jupps, danke  8)

habe es jetzt hinbekommen, ich habe es jetzt nach "Stefan's" Vorschlag gemacht.
Aber mal eine ganz dumme Frage  ::) wie kann man die per "autocreate" angelegten Devices in seine cfg übernehmen?


ntruchsess

Zitat von: fh555 am 31 Oktober 2014, 20:07:38wie kann man die per "autocreate" angelegten Devices in seine cfg übernehmen?

im Webfrontend links oben auf 'Save config' klicken.
while (!asleep()) {sheep++};

hexenmeister

Zitat von: fh555 am 31 Oktober 2014, 20:07:38
wie kann man die per "autocreate" angelegten Devices in seine cfg übernehmen?
Speichern?  ;)


fh555

@ntruchsess
Danke, hatte ich noch NIE genutzt.

@hexenmeister
Das war ja die Frage.

Ich hatte entweder immer Änderungen per ssh auf der Linux-Console direkt oder beim Webfrontend das
"save fhem.cfg" bzw. "save as" genutzt und da werden die Sachen von "autocreate" NICHT abgespeichert!

Gruß Jens

hexenmeister

warum nicht einfach "save"? hat bei mir immer tadellos funktioniert.

fh555

und noch eine kleine Frage  ???

Ich habe noch ein Problem mit der Zuordnung des invertierten Wertes.
Wie ihr ja auch schon probiert hattet, habe ich das Problem mit einen Schalter, welcher im Aus eine 1 und im Ein eine 0 liefert (Binary Switch).

Jetzt hatte ich lt. Forum und auch lt. Hilfe "Device specific help" folgendes Beispiel versucht.


attr <name> mapReadingType_<reading> <new reading name> [<value>:<mappedvalue>]*
configures reading type names that should be used instead of technical names
E.g.: attr xxx mapReadingType_LIGHT switch 0:on 1:off to be used for mysensor Variabletypes that have no predefined defaults (yet)



define MYSENSOR_10 MYSENSORS_DEVICE 10
attr MYSENSOR_10 IODev MYS_GW
attr MYSENSOR_10 devStateIcon .*:on .*:off
attr MYSENSOR_10 mapReadingType_tripped3 switch 0:on 1:off
attr MYSENSOR_10 mapReading_tripped3 3 tripped
attr MYSENSOR_10 mode node
attr MYSENSOR_10 room MySensors
attr MYSENSOR_10 stateFormat switch
attr MYSENSOR_10 version 1.4


im State steht aber nur "switch" und nicht der Wert "on" oder "off"

Was mache ich schon wieder falsch?   :'(



Porky666

Hallo,

Im Sketch kannst du angeben wann er eine 0 oder eine 1  annehmen soll.

Gruß
Stefan

ODROID U3 1GB Ubuntu immer aktuell
FHEM immer das aktuellste Development
Defined modules:

COC; CULv3; HMLAN :HM-CC-SCD,HM-CC-TC,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-SCI-3-FM,HM-SEC-SC,HM-SEC-WIN,HM-WDS10-TH-O; ESA2000; FS20; HUEBridge; Huedevices; IT; JeeLink :PCA301 :panstamp:

Porky666

ODROID U3 1GB Ubuntu immer aktuell
FHEM immer das aktuellste Development
Defined modules:

COC; CULv3; HMLAN :HM-CC-SCD,HM-CC-TC,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-SCI-3-FM,HM-SEC-SC,HM-SEC-WIN,HM-WDS10-TH-O; ESA2000; FS20; HUEBridge; Huedevices; IT; JeeLink :PCA301 :panstamp:

fh555

#203
Hi Stefan,

du meinst bestimmt ein Relay-Sketch (der kommt bei mir erst als nächstes), ich meinte aber den "normalen" "Funkschalter".
Wenn man halt in der Weboberfläche oder dann bei der Ausführung von Aktionen eine 1 (für Aus) sieht, denkt man im Normalfall, dass das Gerät (in meinen Fall der Schalter) betätigt ist, also EIN, was aber nicht stimmt. Deshalb würde ich es halt vorziehen auch bei einen normalen Schalter den Zustand "on" bzw. "off" zu sehen und mit diesen Variablen arbeiten, natürlich richtig zugeordnet 0:on und 1:off.

Gruß Jens



fh555

keiner eine Idee, oder geht es momentan nicht, weil es im MySensors-Modul nicht vorgesehen ist?

Gruß jens

ntruchsess

#205
attr MYSENSOR_10 mapReadingType_LIGHT switch 0:on 1:off

'LIGHT' bezieht sich auf die MySensors-konstante 'V_LIGHT' (siehe lib/Device/MySensors/Constants.pm) ohne das Präfix 'V_'.

Damit kann man die Default-mappings (wie sie in der 10_MYSENSORS_DEVICE.pm vordefiniert sind) überschreiben.

Das Attribut ist zugegebenerweise nicht wirklich Endusertauglich, weil man sowohl die Konstantennamen als auch die möglichen Werte nur aus dem Sourcecode entnehmen kann. Dafür kann man allerdings auch in seinen Sketch schauen, die Konstantennamen sind da ja die gleichen.

Vieileicht ergänge ich ja an das mapReading_XXX-attribut noch um optionale Parameter um das Mapping direkt am Attribut vorzunehmen. Wäre vermutlich besser verständlich.

Gruß,

Norbert

while (!asleep()) {sheep++};

fh555

#206
Hallo ntruchsess,

wie kann ich es aber mit tripped machen? Geht es überhaupt?

In der https://github.com/ntruchsess/fhem-mirror/blob/master/fhem/FHEM/10_MYSENSORS_DEVICE.pm#L111
Zeile 115
gibt es ja die variable V_LIGHT => { type => "switch", val => { 0 => 'off', 1 => 'on' }}
aber bei Zeile 134 nur V_TRIPPED => { type => "tripped" }?

Gruß Jens

ntruchsess

für 'tripped' ist mir kein sinnvolles mapping eingefallen. Was soll da hin? 'active','shutdown','armed','blown','enabled'... ?

den Default kannst du jedenfalls einfach überschreiben:

attr MYSENSOR_10 mapReadingType_TRIPPED tripped 0:hugo 1:helga
while (!asleep()) {sheep++};

eni

Hallo Norbert,
das Modul funktioniert bei mir jetzt relativ stabil. Vielen Dank fuer diese super Implementierung!!

Drei Dinge sind mir noch aufgefallen:
1) wenn ein MYSENSORS nicht connected ist, kann man es mit "delete gateway" nicht loeschen.
das braucht ich manchmal, wenn ich das gateway ein-/ausschalte, dann bekommt es ein anderes Device /dev/ttyUSB1 anstatt /dev/ttyUSB0.
dann bekomme ich das "alte" das mit /dev/ttyUSB0 arbeitet nicht geloescht. Anlegen des neuen mit /dev/ttyUSB1 funktioniert.
2) ich bekomme folgende Fehler: (Version fhem-code-6810-trunk)

Undefined subroutine &MYSENSORS::DEVICE::ReadingsVal called at ./FHEM/10_MYSENSORS_DEVICE.pm line 414.

3) Zum Thema Acknoledge - das funktioniert auch - ist der Node weg geht die Anzahl der outstandingAck hoch, sobald der Node wieder erreichbar ist, werden diese wieder abgarbeitet und gehen auf 1. Der einzige der stehenbleibt ist die Antwort vom I_CONFIG - Request.

014.10.25 20:28:09 5: MYSENSORS Read: Rx: fr=001 ci=255 c=003(C_INTERNAL    ) st=006(I_CONFIG        ) ack=1 'M'
2014.10.25 20:28:09 5: MYSENSORS send: Rx: fr=001 ci=255 c=003(C_INTERNAL    ) st=006(I_CONFIG        ) ack=1 'M'

siehe http://forum.fhem.de/index.php?action=post;quote=211622;topic=26807.165;last_msg=214847

... hoffentlich kommt das nicht zu meckerig rueber.
die Mysensors-fhem-module sind wirklich klasse,  und machen sehr viel freude, da funktionier und gut zu bedienen :-)

viele gruesse
enrico

fh555

#209
Hallo ntruchsess,

Zitat von: ntruchsess am 04 November 2014, 09:41:23
für 'tripped' ist mir kein sinnvolles mapping eingefallen. Was soll da hin? 'active','shutdown','armed','blown','enabled'... ?

den Default kannst du jedenfalls einfach überschreiben:

attr MYSENSOR_10 mapReadingType_TRIPPED tripped 0:hugo 1:helga

Warum  nicht einfach "on" "off", wie du ja schon sagst, Überschreiben kann man es doch dann wie man will, wenn die Variable definiert ist.

Ich habe mal bei mir die MySensors_DEVICE.pm angepasst.

V_TRIPPED => { type => "tripped" , val => { 0 => 'on', 1 => 'off' }}

Jetzt geht es wie gewünscht :-)
Readings tripped3 off 2014-11-04 21:39:09

wird aber beim nächsten Update überschrieben :-(

Gruß Jens