event-on-change-reading .* nach FHEM neustart event-on-change-reading state

Begonnen von CoolTux, 11 November 2015, 08:18:15

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo,

Mir ist schon die letzten Tage aufgefallen das ein
attr DEVICE event-on-change-reading .*
nach einem neustart von FHEM zu
attr DEVICE event-on-change-reading state
wird.

Dies geschieht interessanter Weise nur bei Geräten vom AMAD Modul. Was habe ich bei meinem Modul anders oder falsch gemacht? Es hat bis vor kurzem noch gut funktioniert. Ich denke dies kam wohl mit einem Update rein.
Muss ich in meinem Modul irgendwas ändern??



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Es hat sich diesbezueglich nichts geaendert, und ich kann dein Problem auch nicht nachstellen mit:
Zitatfhem> define a AMAD localhost
fhem> attr a event-on-change-reading .*
fhem> save
Wrote configuration to cfg/fhem.cfg.test
fhem> shutdown restart
...
fhem> list a
...
Attributes:
   event-on-change-reading .*
   room       AMAD

CoolTux

Hallo Rudi

Vielen Dank fürs Testen. Wäre es möglich das Du es mit einem /etc/init.d/fhem stop und dann start probierst? Sollte kein Unterschied sein, aber ich will nur sicher gehen. Ist komischer Weiße auch erst seit kurzem. So 2 Wochen vielleicht.


Danke noch mal
Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Nein: die Entwicklung laeuft bei mir nicht ueber /etc/init.d/fhem... und die Produktion auch nicht :)
Und ich glaube nicht daran, dass /etc/init.d/fhem sowas bewirken koennte.
Kopier mal fhem.cfg zur Seite  vor dem save/nach dem save/vor dem start/nach dem start, und vergleiche die Dateien.

CoolTux

Das ist eine gute Idee. Werde ich machen und dann morgen berichten. Danke für den Tip.


Grüße und nen ruhigen Abend gewünscht
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Bin nun mal dazu gekommen da was zu machen.

Ich habe alles korrekt eingestellt und dann die cfg gesichert. Danach ein shutdown restart

in der cfg stand und steht immer noch

define Nexus10Wohnzimmer AMAD 10.6.9.18
attr Nexus10Wohnzimmer userattr alleAndroidGeraete alleAndroidGeraete_map lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 structexclude
attr Nexus10Wohnzimmer alias Tablet Wohnzimmer
attr Nexus10Wohnzimmer alleAndroidGeraete structureAndroidDevices
attr Nexus10Wohnzimmer event-on-change-reading .*
attr Nexus10Wohnzimmer group Multimedia Wohnzimmer
attr Nexus10Wohnzimmer icon it_smartphone
attr Nexus10Wohnzimmer lightSceneRestoreOnlyIfChanged 1
attr Nexus10Wohnzimmer room Wohnzimmer
attr Nexus10Wohnzimmer setBluetoothDevice Logitech_Bt_Adapter|FC:58:FA:23:0A:02,Anker_A7908|FC:58:FA:84:6A:2A
attr Nexus10Wohnzimmer setOpenApp gplay,tuneinradio
attr Nexus10Wohnzimmer setScreenBrightness 1
attr Nexus10Wohnzimmer stateFormat Batterie powerLevel%, Bildschirm screenBrightness, Status state


Ein list auf das Device ergibt aber


Internals:
   DEF        10.6.9.18
   HOST       10.6.9.18
   INTERVAL   180
   NAME       Nexus10Wohnzimmer
   NR         348
   PORT       8090
   STATE      Batterie 24.0%, Bildschirm 60, Status active
   TYPE       AMAD
   VERSION    0.9.4
   Readings:
     2015-11-24 09:21:12   androidVersion  5.1 Lollipop
     2015-11-24 09:21:12   automagicState  Automagic Premium

Automagic Service läuft


     2015-11-24 09:21:12   bluetooth       off
     2015-11-24 09:21:12   checkActiveTask
     2015-11-24 09:21:12   connectedBTdevices
     2015-11-24 09:21:12   connectedBTdevicesMAC
     2015-11-24 09:21:12   currentMusicAlbum no soundplayer activ
     2015-11-24 09:21:12   currentMusicArtist no soundplayer activ
     2015-11-24 09:21:12   currentMusicTrack no soundplayer activ
     2015-11-24 09:18:07   deviceState     online
     2015-11-24 09:21:12   flow_SetCommands aktiv
     2015-11-24 09:21:12   flow_informations aktiv
     2015-11-23 21:00:09   lastSetCommandError no route to target. bad network configuration or network is down
     2015-11-24 08:06:05   lastSetCommandState cmd_done
     2015-11-23 21:05:30   lastStatusRequestError no route to target. bad network configuration or network is down
     2015-11-24 09:21:12   lastStatusRequestState statusRequest_done
     2015-11-24 09:21:12   nextAlarmDay
     2015-11-24 09:21:12   nextAlarmTime
     2015-11-24 09:21:12   powerLevel      24.0
     2015-11-24 09:21:12   powerPlugged    0
     2015-11-24 09:21:12   screen          off
     2015-11-24 09:21:12   screenBrightness 60
     2015-11-24 09:21:12   screenOrientation auto
     2015-11-24 09:21:12   state           active
     2015-11-24 07:12:21   volume          0
     2015-11-24 09:21:12   volumeMusikBluetooth 0
     2015-11-24 09:21:12   volumeMusikSpeaker 7
   Helper:
     infoErrorCounter 0
     setCmdErrorCounter 0
Attributes:
   alias      Tablet Wohnzimmer
   alleAndroidGeraete structureAndroidDevices
   event-on-change-reading state
   group      Multimedia Wohnzimmer
   icon       it_smartphone
   lightSceneRestoreOnlyIfChanged 1
   room       Wohnzimmer
   setBluetoothDevice Logitech_Bt_Adapter|FC:58:FA:23:0A:02,Anker_A7908|FC:58:FA:84:6A:2A
   setOpenApp gplay,tuneinradio
   setScreenBrightness 1
   stateFormat Batterie powerLevel%, Bildschirm screenBrightness, Status state
   userattr   alleAndroidGeraete alleAndroidGeraete_map lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 structexclude


Rudi kannst Du hier was sehen was ich übersehe. Das war kurz nach einem restart.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Ich habe dein Konfig zu eine sonst leere fhem.cfg hinzugefuegt, und fhem damit gestartet: list zeigt weiterhin "event-on-change-reading .*" an. Allerdings habe ich kein Android mit Automagic rumliegen, und die IP habe ich auch nicht geaendert.
In deinem FHEM passieren noch andere merkwuerdige Sachen.
Ich wuerde in fhem.pl/AnalyzeCommand eine Zeile einbauen, mit
Log 1, "N10W:".$attr{Nexus10Wohnzimmer}{"event-on-change-reading"};
und danach mit "attr global verbose 5" FHEM neu starten, und beobachten, wann die wunderhafte Umwandlung stattfindet.

CoolTux

Ich kann beim besten Willen nichts finden. Interessanter Weise sind es nur Geräte meines AMAD Modules welche umgestellt werden.
Interessanter Weise trifft es mein Bridge Device nicht. Also irgendwas ist da faul an meinem Modul. Anbei mal ein Log, erstellt mit den Umstellungen welche Du vorgeschlagen hast.


Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux


sub AMAD_Initialize($) {

    my ($hash) = @_;

    $hash->{SetFn} = "AMAD_Set";
    $hash->{DefFn} = "AMAD_Define";
    $hash->{UndefFn} = "AMAD_Undef";
    $hash->{AttrFn} = "AMAD_Attr";
    $hash->{ReadFn} = "AMAD_CommBridge_Read";
   
    $hash->{AttrList} = "setOpenApp ".
  "checkActiveTask ".
  "setFullscreen:0,1 ".
  "setScreenOrientation:0,1 ".
  "setScreenBrightness:0,1 ".
  "setBluetoothDevice ".
  "root:0,1 ".
  "interval ".
  "port ".
  "disable:1 ".
  $readingFnAttributes;
   
    foreach my $d(sort keys %{$modules{AMAD}{defptr}}) {
my $hash = $modules{AMAD}{defptr}{$d};
$hash->{VERSION} = $version;
    }
}

sub AMAD_Define($$) {

    my ( $hash, $def ) = @_;
   
    my @a = split( "[ \t][ \t]*", $def );

    return "too few parameters: define <name> AMAD <HOST>" if( @a < 2 && @a > 3 );

    my $name    = $a[0];
    my $host    = $a[2];
    my $port = 8090;
    my $interval  = 180;

    $hash->{HOST} = $host if( $host );
    $hash->{PORT} = $port;
    $hash->{INTERVAL} = $interval if( $hash->{HOST} );
    $hash->{VERSION} = $version;
    $hash->{helper}{infoErrorCounter} = 0 if( $hash->{HOST} );
    $hash->{helper}{setCmdErrorCounter} = 0 if( $hash->{HOST} );
   
    if( ! $hash->{HOST} ) {
return "there is already a AMAD Bridge, did you want to define a AMAD host use: define <name> AMAD <HOST>" if( $modules{AMAD}{defptr}{BRIDGE} );

$hash->{BRIDGE} = 1;
$modules{AMAD}{defptr}{BRIDGE} = $hash;
$attr{$name}{room} = "AMAD" if( !defined( $attr{$name}{room} ) );
Log3 $name, 3, "AMAD ($name) - defined Bridge with Socketport $hash->{PORT}";
AMAD_CommBridge_Open( $hash );

    } else {
if( ! $modules{AMAD}{defptr}{BRIDGE} && $init_done ) {
    CommandDefine( undef, "AMADCommBridge AMAD" );   
}   

Log3 $name, 3, "AMAD ($name) - defined with host $hash->{HOST} on port $hash->{PORT} and interval $hash->{INTERVAL} (sec)";

$attr{$name}{room} = "AMAD" if( !defined( $attr{$name}{room} ) );
readingsSingleUpdate ( $hash, "state", "initialized", 1 ) if( $hash->{HOST} );
readingsSingleUpdate ( $hash, "deviceState", "online", 1 ) if( $hash->{HOST} );
       
InternalTimer( gettimeofday()+$hash->{INTERVAL}, "AMAD_GetUpdateTimer", $hash, 0 ) if( $hash->{HOST} );

$modules{AMAD}{defptr}{$hash->{HOST}} = $hash;

return undef;
    }
}

sub AMAD_Undef($$) {

    my ( $hash, $arg ) = @_;
   
    if( $hash->{BRIDGE} ) {
delete $modules{AMAD}{defptr}{BRIDGE};
my $ret = TcpServer_Close( $hash );

    } else {
        delete $modules{AMAD}{defptr}{$hash->{HOST}};
RemoveInternalTimer( $hash );
   
foreach my $d(sort keys %{$modules{AMAD}{defptr}}) {
    my $hash = $modules{AMAD}{defptr}{$d};
    my $host = $hash->{HOST};

    if( $host ) {
                my $name = $hash->{NAME};
                CommandDelete( undef, $name ) if( $hash->{BRIDGE} );
            }
}
    }
}


Rudi könnte das Problem in einer dieser Zeilen stecken? Würdest Du bitte mal Dein professionelles Auge drauf werfen?
Danke Dir schon mal für Deine Zeit.




Grüße
Marko
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

ZitatWürdest Du bitte mal Dein professionelles Auge drauf werfen?
Mein "professionelles" Auge sieht nix. Heisst nicht viel.

Log: Ich finde kein N10W drin.

CoolTux

Heißt entweder ich habe Bockmisst gebaut, oder aber das es kein


$attr{Nexus10Wohnzimmer}{"event-on-change-reading"}


gab.

Ich schau noch mal. Danke Dir erstmal fürs durch schauen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

So ich denke ich habe den Mistkerl gefunden. Ich war schon mal auf der richtigen Spur. Genaueres gibt es gleich.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux


define structureAndroidDevices structure alleAndroidGeraete Nexus10Wohnzimmer Nexus7Isabel Nexus7Schlafzimmer Nexus5Marko MotoGNadin LgG2Isabel
attr structureAndroidDevices alias alle Android Geräte
attr structureAndroidDevices event-on-change-reading state
attr structureAndroidDevices group IT
attr structureAndroidDevices icon it_smartphone
attr structureAndroidDevices room EDV


Bitte schön, das war er. Habe die structure gelöscht und nun geht alles wieder so wie es soll. Warum wieso kann ich aber nicht sagen.

Rudi ich danke Dir ganz herzlich für Deine große Hilfe.



Grüße
Marko
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Kleiner Nachtrag


2015.11.24 14:08:04 1: N10W:.*
2015.11.24 14:08:04 5: Cmd: >attr NetzschalterWohnzimmerHintenLinks icon black_Steckdose.off<
2015.11.24 14:08:04 1: N10W:.*
2015.11.24 14:08:04 5: Cmd: >attr NetzschalterWohnzimmerHintenLinks room Wohnzimmer<
2015.11.24 14:08:04 1: N10W:.*
2015.11.24 14:08:04 5: Cmd: >attr NetzschalterWohnzimmerHintenLinks webCmd :<
2015.11.24 14:08:04 1: N10W:.*
2015.11.24 14:08:04 5: Cmd: >define structureAndroidDevices structure alleAndroidGeraete Nexus10Wohnzimmer Nexus7Isabel Nexus7Schlafzimmer Nexus5Marko MotoGNadin LgG2Isabel<
2015.11.24 14:08:04 1: N10W:.*
2015.11.24 14:08:04 5: Cmd: >attr structureAndroidDevices alias alle Android Geräte<
2015.11.24 14:08:04 1: N10W:.*
2015.11.24 14:08:04 5: Cmd: >attr structureAndroidDevices event-on-change-reading state<
2015.11.24 14:08:04 1: N10W:.*
2015.11.24 14:08:04 5: Cmd: >attr structureAndroidDevices group IT<
2015.11.24 14:08:04 1: N10W:state
2015.11.24 14:08:04 5: Cmd: >attr structureAndroidDevices icon it_smartphone<
2015.11.24 14:08:04 1: N10W:state
2015.11.24 14:08:04 5: Cmd: >attr structureAndroidDevices room EDV<
2015.11.24 14:08:04 1: N10W:state
2015.11.24 14:08:04 5: Cmd: >define TRX_AC_00606c2201 TRX_LIGHT AC 00606c2201 light<
2015.11.24 14:08:04 1: N10W:state
2015.11.24 14:08:04 5: Cmd: >attr TRX_AC_00606c2201 IODev TRX1<
2015.11.24 14:08:04 1: N10W:state
2015.11.24 14:08:04 5: Cmd: >attr TRX_AC_00606c2201 group UNBENUTZT<
2015.11.24 14:08:04 1: N10W:state
2015.11.24 14:08:04 5: Cmd: >attr TRX_AC_00606c2201 room Betriebsraum<
2015.11.24 14:08:04 1: N10W:state
2015.11.24 14:08:04 5: Cmd: >define autoBeleuchtungDummy dummy<


Man kann hier sehr gut sehen ab wann er den Status geändert hat.


attr structureAndroidDevices event-on-change-reading state


Diese Attributzuweisung war wohl keine so gute Idee von  mir   ;D


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

structure gibt (bis auf eine hartkodierte Blacklist) alle Attribute weiter an die Mitglieder. Bin inzwischen nicht sicher, dass das eine gute Idee war.