Autor Thema: Neues Modul YAAHM - Yet Another Auto Home Module  (Gelesen 38500 mal)

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1673
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #150 am: 15 Dezember 2017, 15:55:28 »
Bei mir auch...

Fri Dec 15 15:52:06 2017

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7299
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #151 am: 15 Dezember 2017, 17:58:12 »
Und warum steht dieser Wert nicht im Hash, sondern das Objekt ? Schleierhaft.

LG

pah

Online herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5605
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #152 am: 15 Dezember 2017, 18:54:37 »
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1673
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #153 am: 16 Dezember 2017, 10:05:44 »
Ähm...ja... :-[

Online herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5605
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #154 am: 16 Dezember 2017, 10:59:00 »
Keine Ausreden ! ;)
Zitat
JSON::XS-compatible backend modules don't encode blessed objects by default (except for their boolean values, which are typically blessed JSON::PP::Boolean objects). If you need to encode a data structure that may contain objects, you usually need to look into the structure and replace objects with alternative non-blessed values, or enable convert_blessed and provide a TO_JSON method for each object's (base) class that may be found in the structure, in order to let the methods replace the objects with whatever scalar values the methods return.

fhem cmd line:
{JSON->new->backend()}
vg
joerg

aus RAMBO XII:
Zitat
JSON is a silly beast!
« Letzte Änderung: 16 Dezember 2017, 11:07:16 von herrmannj »
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1673
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #155 am: 16 Dezember 2017, 12:26:24 »
OOOOOkaayyyy...

JSON::XS

Interpretieren kann ich das nicht. Ist das jetzt gut oder schlecht?
Wobei: Auf einer Maschine funktioniert's, auf der anderen nicht und beide haben die gleiche JSON-Version.

Gruß
Uwe

Online herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5605
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #156 am: 16 Dezember 2017, 12:33:03 »
weder noch, das erklärt das Verhalten.

Ich kenne das modul (YAAHM) nicht, daher weiß ich nicht ob wie das object in den hash kommt. Wenn es "user code" ist müsst ihr aktiv werden, sonst pah.

Die Lösung ist es die Zeit als string reinzuschreiben, zb mit 'POSIX::strftime("%m/%d/%Y %H:%M:%S\n", localtime)'. Natürlich so formatiert das es beim lesen wieder stimmt.
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Online herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5605
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #157 am: 16 Dezember 2017, 12:34:27 »
Wobei: Auf einer Maschine funktioniert's, auf der anderen nicht und beide haben die gleiche JSON-Version.

eben nicht. Das BACKEND wird sich unterscheiden, (PP vs XS vs Tiny und/oder Version). Die Lösung (post darüber) beseitigt die Abhängigkeit.

insider: oder 10sec Festplattentausch :D
« Letzte Änderung: 16 Dezember 2017, 12:38:15 von herrmannj »
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1673
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #158 am: 16 Dezember 2017, 12:51:26 »
insider: oder 10sec Festplattentausch :D
Daran arbeite ich noch...  ;)

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7299
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #159 am: 16 Dezember 2017, 18:21:20 »
Der erste Knackpunkt ist hier: strftime ist auch betriebssystemabhängig, das will ich deshalb vermeiden.

Der zweite Knackpunkt: So wie das Modul geschrieben wurde, sollte dort nur ein String auftauchen. Leicht irre, dass dort offenbar das Objekt behalten wird.

Ich habe mal etwas ausprobiert, nämlich den Zeitstring vor der Eintragung in das Hash noch per sprintf explizit konvertiert.

Bitte mal austesten

sub YAAHM_save($) {
  my ($hash) = @_;
  $hash->{DATA}{"savedate"} = sprintf("%s",localtime(time));
  readingsSingleUpdate( $hash, "savedate", $hash->{DATA}{"savedate"}, 1 );
  my $json   = JSON->new->utf8;
  my $jhash0 = eval{ $json->encode( $hash->{DATA} ) };
  Log 1, "===========> hash data is ".Dumper($hash->{DATA});
  Log 1, "===========> JSON data is ".Dumper($jhash0);
  my $error  = FileWrite("YAAHMFILE",$jhash0);
  Log 1,"[YAAHM_save] error=$error";
  return;
}

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1673
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #160 am: 17 Dezember 2017, 09:24:47 »
Bitte mal austesten
Getestet. Funktioniert  :) :) :)


Danke und Gruß
Uwe

Offline LuBeDa

  • Full Member
  • ***
  • Beiträge: 156
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #161 am: 17 Dezember 2017, 10:51:40 »
Klasse,
damit ist mein Problem (Post vom 9 November 2017, 10:01:36) auch behoben. Endlich kann ich das Modul auch nutzen.

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7299
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #162 am: 17 Dezember 2017, 17:47:06 »
Ich verstehe es zwar immer noch nicht ganz, weil der Kontext von localtime immer ein String sein sollte. Aber gut. Habe das Ding jetzt mit dieser Korrektur eingecheckt.

LG

pah

Offline wkarl

  • Sr. Member
  • ****
  • Beiträge: 857
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #163 am: 26 Dezember 2017, 10:38:13 »
Hallo und ein Frohes Fest in die Runde,

nachdem ich mal wieder mir Zeit nehme an meinem fhem zu arbeiten, wollte ich mich in YAAHM einarbeiten. Ein Update heute morgen gezogen, Astro-device angelegt und parametrisiert (longitude, latidute, altidude). Aber jedes Mal, wenn ich ein 'define MyYAAHM YAAHM' durchführe stürzt fhem mit folgender Fehlermeldung im log ab:
2017.12.26 09:39:38.997 1: PERL WARNING: Subroutine YAAHM_restore redefined at ./FHEM/95_YAAHM.pm line 968.
2017.12.26 09:39:39.001 1: PERL WARNING: Subroutine YAAHM_sayWeeklyTime redefined at ./FHEM/95_YAAHM.pm line 1855.
2017.12.26 09:39:39.018 1: [YAAHM_Define] data hash restored from save file with date Tue Dec 26 09:39:39 2017
2017.12.26 09:39:39.018 1: [YAAHM] finds 1 Astro devices, module not loaded separately
Can't use an undefined value as an ARRAY reference at ./FHEM/95_YAAHM.pm line 934.

Versionen:
  • Astra 1.42
  • YAAHM 1.33

Habe den Thread schon mehrmals durchsucht ohne jedoch eine Idee zu bekommen, wie ich zu einer Lösung kommen kann.

Hat jemand auch dieses Problem? Vielleicht eine Idee von einer Lösung?

Ciao Walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

Offline ripper

  • Jr. Member
  • **
  • Beiträge: 63
Antw:Neues Modul YAAHM - Yet Another Auto Home Module
« Antwort #164 am: 18 Februar 2018, 12:00:23 »
Hallo,

ich habe eine Sub, die am Abend meine Rollos schließt. Den Aufruf der Sub hab ich jetzt von einem at umgestellt und in die Liste der Aktionen beim YAAHM Tagesprofil eingetragen. Soweit so gut, der Aufruf funktioniert und die Rollos werden geschlossen.
Zu meinem Problem: Die Sub erwartet als Parameter "$month", den ich natürlich beim Aufruf übergebe. Wenn ich dann auf "Start Daily Timer" klicke wird aus der Variable $month eine Zahl, nämlich die des aktuellen Monats und diese ändert sich leider beim Wechsel in den nächsten Monat auch nicht.
Gibt es eine Möglichkeit an dieser Stelle solche Variablen von FHEM an eine Sub zu übergeben?

Danke schon mal für die Aufklärung.
Viele Grüße
Flo