Anzeige der letzten Schaltevents in FHEMWEB

Begonnen von bads, 02 Mai 2014, 15:37:42

Vorheriges Thema - Nächstes Thema

fhainz


fhainz

Kann es sein das zB

if( $value =~ m/.*addLog/){
    undef;
}


als letztes in der sub stehen muss? Wenn ich nach dieser if noch eine if stehen hab klappt das nicht.

Grüße

justme1968

wenn es keine syntax fehler gibt ich die reihenfolge nicht wichtig. jedenfalls wenn es kein logisches problem gibt.

was steht denn im log?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

fhainz

#93
Im Log steht nix.

Das klappt nicht

sub allgEventHistoryValueFormat($$$){
  my $device = shift;
  my $reading = shift;
  my $value = shift;

  .
  .
  .

  if( $value =~ m/.*addLog/){
    undef;
  }

  if( $device eq "geofancy" && $value eq "home" ){
    "ist zu Hause angekommen";
  }
  elsif( $device eq "geofancy" && $value eq "work" ){
    "ist in der Arbeit angekommen";
  }
  elsif( $device eq "geofancy" && $value eq "underway" ){
    "ist unterwegs";
  }
}


Wenn ich die 2 if blöcke wieder umdrehe hab ich die addLog events wieder in der history.

fhainz

Ich hab noch ein komisches Problem:

Definiert sind 2 history devices

Internals:
   CFGFN
   DEF        wzDeckenfluter:state
   HAS_DataDumper 1
   NAME       allgEventHistory
   NR         320
   NTFY_ORDER 50-allgEventHistory
   STATE      Initialized
   TYPE       readingsHistory
   mayBeVisible 1
   Content:
     wzDeckenfluter 1
   DEVICES:
     ARRAY(0x7fcd131006c8)
   Readings:
   Fhem:
     last_update 1399819410.55462
     lines:
       16:44:14&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> toggle
       16:44:11&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> toggle
       16:44:10&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> toggle
       16:44:09&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> toggle
       16:44:08&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> toggle
Attributes:
   room       9.8 Event Log


Internals:
   CFGFN
   DEF        wzDeckenfluter:state
   HAS_DataDumper 1
   NAME       testHistory
   NR         322
   NTFY_ORDER 50-testHistory
   STATE      Initialized
   TYPE       readingsHistory
   mayBeVisible 1
   Content:
     wzDeckenfluter 1
   DEVICES:
     ARRAY(0x7fcd11c336e8)
   Fhem:
     last_update 1399819586.31474
     lines:
       16:44:14&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> off
       16:44:14&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> toggle
       16:44:11&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> on
       16:44:11&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> toggle
       16:44:10&nbsp;&nbsp;<a href="/fhem?detail=wzDeckenfluter">Deckenfluter</a> off
Attributes:
   room       9.8 Event Log


Eigenartigerweise haben beide Unterschiedliche ausgaben.  :o

Den toggle output wollte ich in der history ausblenden und nur bei on/off reagieren, dann hab ich in der andern history, die zu dem Zeitpunkt noch ein einem anderen raum war, den output gesehen.
Ich hab dann alle attr's (mapping,valueFormat,timestampFormat) aus der allgEventHistory entfernt aber keine Änderung. Anschließend FHEM neugestartet, Server neugestartet, allgEventHistory gelöscht und wieder neudefiniert, kein Unterschied.

Hintergrund ist folgender: Ich schalte mit einer FS20 TC8 Fernbedienung eine FS20-ST. Nachdem in FHEM nur toggle ankommt und die und die FHEM-untoggle Funktionen für mich nicht funktionieren hab ich mir selbst eine gschrieben die z.Z. funktioniert.
wzDeckenfluter.toggle {   
  if( OldValue("wzDeckenfluter") eq "on" ){     
    fhem("set wzDeckenfluter off");
  }
  else{
    fhem("set wzDeckenfluter on");
  }
}


Hast du eine Idee?

justme1968

wenn du in einem notify noch mal ein set aufrufst hängt es von der reihenfolge in der die notifys aufgerufen werden ab wer welche events sieht.

bau mal bitte im history modul in die readingsHistory_Initialize sub ein
$hash->{NotifyOrderPrefix} = "51-";ein und schau ob es dann passt.

das andere problem muss ich noch in ruhe nachstellen.

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

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

fhainz

Danke, das wars! Nun funktionierts in jeder history :)

Klar, keinen Stress! Bei dem Problem bin ich auch gerade dran. Nachdem ich alle if bis auf das erste mit elsif ersetzt hab, scheint es zu funktionieren. Obwohl das ja eigentlich keinen unterschied machen sollte, oder?

Grüße

justme1968

du musst 'return undef;' verwenden. sonst geht es einfach mit dem nächsten if weiter :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

fhainz

Super, nun funktioniert das auch :D
Danke!!

Grüße

justme1968

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

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

fhainz

Hallo!

Ich bekomme auf der Konsole diese Fehlermeldungen.

ZitatServer:fhem Fabian$ Prototype mismatch: sub main::readingsHistory_Notify ($$$) vs ($$) at ./FHEM/33_readingsHistory.pm line 482.
Subroutine readingsHistory_Notify redefined at ./FHEM/33_readingsHistory.pm line 329.

Kannst du etwas damit anfangen?

Grüße

justme1968

das ist inzwischen schon behoben. kommt morgen im update.

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

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

fhainz


betateilchen

Wenn ich das DEF in einem readingsHistory ändere, sollten eigentlich alle Einträge, die nicht mehr zu dem DEF passen, aus der Liste verschwinden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Gibts die Ausgabe von "get history" auch in einem vernünftigen Format?

(http://up.picr.de/18347674ee.jpg)


1400612419.2916 Melder_TEingang closed 21:00:19&nbsp;&nbsp;<a href="/fhem?detail=Melder_TEingang">Melder_TEingang</a>
1400612415.34162 Melder_TEingang open 21:00:15&nbsp;&nbsp;<a href="/fhem?detail=Melder_TEingang">Melder_TEingang</a>

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!