Autor Thema: Neues Modul: 98_STOCKQUOTES  (Gelesen 11730 mal)

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1437
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #30 am: 19 Februar 2015, 09:54:19 »
Ok, danke für die Meldung. Ich muss das mal in Ruhe nachstellen. So aus dem Stehgreif finde ich es seltsam.

mittelst du diesen dann zwischen beiden Werten?
Ja genau. Das Modul merkt sich im Attribut nur Gesamtmenge und Gesamtpreis (Summe aus allen Buys). Dementsprechend kennt es dann für den Kaufkurs auch nur das Mittel über alle Transaktionen.


Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1437
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #31 am: 19 Februar 2015, 22:15:06 »
Bitte noch einmal hiermit testen (komisch jetzt bekomme ich bei deinem Symbol auf von europe ein "last")

Offline klausw

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1495
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #32 am: 20 Februar 2015, 08:53:55 »
Bitte noch einmal hiermit testen (komisch jetzt bekomme ich bei deinem Symbol auf von europe ein "last")
define Depot STOCKQUOTES
attr Depot defaultSource europe
attr Depot pollInterval 150
attr Depot queryTimeout 120
attr Depot stocks 975013:2:80
attr Depot verbose 5
->
2015.02.20 07:41:39 4: STOCKQUOTES: Start blocking query
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking: Query stockname: 975013 from source europe
2015.02.20 07:41:39 4: STOCKQUOTES_QueryQuotesBlocking: Fetching from source: europe
2015.02.20 07:41:51 4: STOCKQUOTES_QueryQuotesBlocking Return value: Depot|975013&exchange&Ber/Bre|975013&previous&49.560|975013&symbol&HTML|975013&method&bourso|975013&isodate&2015-02-19|975013&high&49.580|975013&volume&0|975013&date&02/19/2015|975013&success&1|975013&name&UNIONGELDMARKTF|975013&open&0.00|975013&low&49.520|975013&errormsg&Stock name 975013 not found|975013&p_change&0.04%
2015.02.20 07:41:51 4: STOCKQUOTES_QueryQuotesFinished
2015.02.20 07:41:51 4: STOCKQUOTES_QueueTimer: 150 seconds

last bekomme ich jetzt auch, aber es ist 0
...und nach einem Reboot und dem clearreadings ist es auch weg ... sehr komisch
_previous kommt dem aktuellen Wert am nächsten, stimmt aber nicht genau.

Mir ist auch aufgefallen, das bei weiteren Wertpapieren das last bei europe fehlt.


Mit attr Depot sources 975013:unionfunds funktioniert es jetzt aber super!

Was bedeutet denn _p_change_total und _value_diff? Die beiden kann ich mir nicht erklären.

Langsam ist dein Modul reif um ins SVN zu kommen  ;D

PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 754
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #33 am: 20 Februar 2015, 13:14:25 »
PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
Hallöle,

man findet hier ja immer neue Idee.
Das Modul wollte ich dann auch mal probieren.
Allerdings lebt mein FHEM nicht wirklich lange, nachdem ich ein define myQuotes STOCKQUOTES gemacht habe.
Die o.a. Meldung ist das letzte was ich im Log sehen und danach ist FHEM futsch.

Any Ideas?
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 754
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #34 am: 20 Februar 2015, 13:51:23 »
Ich habe mal verbose bei global auf 5 gestellt und dann kommt das hier:

2015.02.20 13:48:37 4: STOCKQUOTES: Start blocking query
2015.02.20 13:48:37 5: Triggering myQuotes (1 changes)
2015.02.20 13:48:37 5: Notify loop for myQuotes Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1437
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #35 am: 20 Februar 2015, 17:37:47 »
last bekomme ich jetzt auch, aber es ist 0
...und nach einem Reboot und dem clearreadings ist es auch weg ... sehr komisch
_previous kommt dem aktuellen Wert am nächsten, stimmt aber nicht genau.

Mir ist auch aufgefallen, das bei weiteren Wertpapieren das last bei europe fehlt.
Scheint an dem Perl-Modul bzw. an der Source zu liegen, welche Werte mitkommen. Hatte gestern auch den Fall, dass bei jeder zweiten Abfrage success=0 war. Ich denke, dass "previous" der Schlusskurs des vergangenen Tages ist.


Mit attr Depot sources 975013:unionfunds funktioniert es jetzt aber super!

Was bedeutet denn _p_change_total und _value_diff? Die beiden kann ich mir nicht erklären.
_p_change_total ist die gesamte prozentuale Änderungen aufs Depot bezogen. Also Aktie mal zu 100€ gekauft und steht nun bei 136€ -> 36 % p_change_total
_value_diff ist Wertänderungen *heute* (im Gegensatz zu _value_diff_total). Also Aktie steigt heute von 100€ auf 136€ und du hast zwei davon im Depot -> 72 € _d_value_diff

Langsam ist dein Modul reif um ins SVN zu kommen  ;D
Mal abwarten ^^

PS:
Mir ist noch eine Kleinigkeit aufgefallen:
PERL WARNING: Scalar value @sources{$targetSource} better written as $sources{$targetSource} at ./FHEM/98_STOCKQUOTES.pm line 284
Danke, hab ich behoben im Anhang.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1437
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #36 am: 20 Februar 2015, 17:39:37 »
Ich habe mal verbose bei global auf 5 gestellt und dann kommt das hier:

2015.02.20 13:48:37 4: STOCKQUOTES: Start blocking query
2015.02.20 13:48:37 5: Triggering myQuotes (1 changes)
2015.02.20 13:48:37 5: Notify loop for myQuotes Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 13:48:37 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating
Hm, blöde Frage: was heißt das? Werde aus eventTypes nicht schlau.

Kannst ja mal die letze Version von oben testen. Das ist zumindest die Warning weg.
« Letzte Änderung: 20 Februar 2015, 17:41:19 von vbs »

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 754
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #37 am: 20 Februar 2015, 17:48:52 »
Hm, blöde Frage: was heißt das? Werde aus eventTypes nicht schlau.

Kannst ja mal die letze Version von oben testen. Das ist zumindest die Warning weg.
Meine Hoffnung war, dass das bei der Problemsuche hilft  8)

Ich habe mal im Modul zwei Zeilen zum debuggen eingetragen.

Zitat
sub STOCKQUOTES_QueryQuotes($)
{
  my ($hash) = @_;
  my $name = $hash->{NAME};

  if (not exists($hash->{helper}{RUNNING_PID})) {
    Log3 $hash->{NAME}, 4, 'STOCKQUOTES: Start blocking query';
    readingsSingleUpdate($hash, "state", "Updating",1);
    Log3 $hash->{NAME}, 4, 'Starting test....';
    $hash->{helper}{RUNNING_PID} = BlockingCall("STOCKQUOTES_QueryQuotesBlocking",
                                                $hash,
                                                "STOCKQUOTES_QueryQuotesFinished",
                                                AttrVal($hash, "queryTimeout", 120),
                                                "STOCKQUOTES_QueryQuotesAbort",
                                                $hash);
    Log3 $hash->{NAME}, 4, 'test finish...';
  }
  else {
    Log3 $hash->{NAME}, 4, 'STOCKQUOTES_QueryQuotes: Blocking not started because still one running';
  }

  return undef;
}

Das erste Log wird noch ausgegeben.
Irgendwie scheint der BlockingCall bei mir gegen die Pumpe zu laufen.

Wie bekommen wir rudolf dazu hier mal zu schauen?
Ich denke er wäre hier der jenige, welcher helfen könnte.

2015.02.20 17:43:07 4: STOCKQUOTES: Start blocking query
2015.02.20 17:43:07 5: Triggering myQuotes (1 changes)
2015.02.20 17:43:07 5: Notify loop for myQuotes Updating
2015.02.20 17:43:07 4: eventTypes: STOCKQUOTES myQuotes Updating -> Updating
2015.02.20 17:43:07 4: eventTypes: STOCKQUOTES myQuotes state: Updating -> state: Updating
2015.02.20 17:43:07 4: Starting test....

/EDIT:

Auch mit der letzten Version schmiert mein FHEM ab.
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1437
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #38 am: 20 Februar 2015, 20:05:50 »
Hm, scheint evtl. ein grundlegendes Problem bei dir zu sein. Klappt BlockingCall bei anderen Modulen?

Könntest mal probieren, fhem auf der Konsole ohne Logfile zu starten ("logfile -"). Evtl. meldet fhem noch etwas auf der Konsole, bevor es das Zeitliche segnet.

@all:
also bei mir hängt, sich das Modul nach einer Zeit mit "Updating" weg :( Werd ich mir ansehen.

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 754
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #39 am: 20 Februar 2015, 20:35:23 »
Hm, scheint evtl. ein grundlegendes Problem bei dir zu sein. Klappt BlockingCall bei anderen Modulen?

Laut fhem Wiki bei Blocking_Call verwendet das Presence Modul dies auch.
Da habe ich testweise mal ein Testdevice erstellt.
Dabei läuft fhem fröhlich weiter.

Könntest mal probieren, fhem auf der Konsole ohne Logfile zu starten ("logfile -"). Evtl. meldet fhem noch etwas auf der Konsole, bevor es das Zeitliche segnet.

Ah ja. Da kommt die Meldung.

Undefined subroutine &main::BlockingCall called at ./FHEM/98_STOCKQUOTES.pm line 238.

Muss den Blocking.pm noch irgendwie anders eingebunden werden?

BTW:
Ich habe Rudolf mal angemailt mit der Bitte hier mal zu schauen.
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 16721
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #40 am: 20 Februar 2015, 20:37:09 »
Zitat
Wie bekommen wir rudolf dazu hier mal zu schauen?
Ich will kein Online-Depot zulegen, damit ich das Modul testen kann.
Wenn jemand mir zeigt, wie ich es ohne testen kann, dann probiere ich es.

Ich habe gerade BlockingCall getestet (und die fehlerhafte Doku im Blocking.pm ersetzt), und es tut bei mir.
Was habe ich gemacht:
Folgendes in 99_myUtils.pm definiert:
use Blocking;
sub TestBlocking($){ BlockingCall("DoSleep", shift, "SleepDone", 5, "AbortFn", "AbortArg"); }
sub DoSleep($)     { sleep(shift); return "I'm done"; }
sub SleepDone($)   { Log 1, "SleepDone: " . shift; }
sub AbortFn($)     { Log 1, "Aborted: " . shift; }
Dann vom FHEM-Prompt folgendes aufgerufen
{ TestBlocking(3) }
{ TestBlocking(6) }
und das FHEM-Log beobachtet.

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 754
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #41 am: 20 Februar 2015, 20:46:27 »
Also bei mir reicht es schon fhem mit der Demo Config starten, dann ein Device mit dem Modul hier zu definieren, dann 10 Sekunden zu warten und dann beendet sich fhem mit dieser Meldung:

Undefined subroutine &main::BlockingCall called at ./FHEM/98_STOCKQUOTES.pm line 238.
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1437
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #42 am: 20 Februar 2015, 21:04:48 »
Probier mal bitte vor dem Definieren des Depots:
{use Blocking}

Offline maxritti

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 754
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #43 am: 20 Februar 2015, 21:30:26 »
Schau mal einer an. Danke Dir.

Da hätte ich auch drauf kommen können. (http://www.smiliesuche.de/smileys/kopf-gegen-wand/kopf-gegen-wand-smilies-0005.gif)
FHEM auf Debian Linux (Wheezy) mit DbLog und configDB, HomeMatic LAN Adapter,
inzwischen zu viele Komponenten um diese hier zu nennen.

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1437
Antw:Neues Modul: 98_STOCKQUOTES
« Antwort #44 am: 27 Februar 2015, 11:15:19 »
Nochmal ein Update im ersten Post. Einerseits "use Blocking" hinzugefügt und andererseits die Depotberechnung so gebaut, dass nichts falsches herauskommt, wenn mal eine Anfrage in die Hose geht.

Bestehen jetzt noch Probleme bei euch? Das Hängen bei "Updating" trat bei mir jetzt nicht nochmal auf.