Neues Modul HMCCU für Homematic CCU

Begonnen von zap, 19 August 2015, 19:45:30

Vorheriges Thema - Nächstes Thema

EdgarM

#60
Hi zap,

danke für die Skripte. Leider kommt es bei mir zum regelmässigem Absturz mit folgender Meldung im Log:

Beim Starten von fhem kommt folgende Info:

Use of each() on hash after insertion without resetting hash iterator results in undefined behavior,
Perl interpreter: 0x162b010 at /usr/local/share/perl/5.20.2/File/Queue.pm line 19.


Beim Absturz das hier:

2015.11.26 23:10:17 1: PERL WARNING: Use of each() on hash after insertion without resetting hash iterator
results in undefined behavior, Perl interpreter: 0x9c3010 at /usr/local/share/perl/5.20.2/File/Queue.pm line 19.
at ./FHEM/88_HMCCU.pm line 1063.



Irgendeine Idee?

zap

#61
Hmm, scheint ein Problem im Paket File::Queue zu sein. Ich schau mal nach, welche Version ich nutze. Dann können wir das abgleichen. Bei mir tritt dieser Fehler nicht auf.

In Zeile 1063 in HMCCU wird die File-Queue geöffnet. Werden denn die Queue Files angelegt (per Default /tmp/ccuqueue.idx und /tmp/ccuqueue.dat) und wenn ja steht was drin (more /tmp/ccuqueue.dat).

Update: Das Problem scheint wirklich in Queue.pm zu liegen (Zeile 19), da hier ein Hash während einer Iteration verändert wird => Das ist sehr "uncool". Statt


# convert to lower case
while( my($key, $val) = each %params)
{
  delete $params{$key};
  $params{ lc($key) } = $val;
}


wäre besser (Vorsicht, nicht getestet):


# convert to lower case
my @keylist = keys %params;
for my $key (@keylist) {
  my $val = $params{$key};
  delete $params{$key};
  $params{lc($key)} = $val;
}


Warum das Problem bei mir nicht auftritt, weiß ich allerdings nicht. Eventuell habe ich eine andere Version von Queue.pm oder vom Perl Interpreter. In der Queue.pm 1.01 in CPAN ist der Fehler noch drin.
Mal sehen, vielleicht veröffentliche ich hier ein Update für Queue.pm oder ich integriere die notwendigen Funktionen direkt in HMCCU nach dem Motto "wenn es gut werden soll, mach es selbst" ;-). Sind nur ein paar Zeilen Code.

Falls also der Absturz von FHEM bei Dir dadurch verursacht wird (und das ist sehr wahrscheinlich), solltest Du den RPC-Server erst wieder nutzen, wenn der Fehler in Queue.pm behoben wurde. Die anderen Funktionen von HMCCU sind davon nicht betroffen. Das Warning beim Starten von FHEM kann dann ignoriert werden.

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

EdgarM

#62
Hab es eben mal testweise in die Queue.pm eingefügt, Fehler bleibt leider bestehen. Sehr seltsam ;)

grüße

PS: Sollte die neuen Dateien heute nicht schon per update geholt werden? Habe es gestern von Hand geholt, aber ein update (force) holt die neuen Files noch nicht ab.

zap

Wenn sich an der Fehlermeldung (Queue.pm Zeile 19) nichts ändert, sind Deine Änderungen auch nicht aktiv. Diese Fehlermeldung verweist ja eindeutig auf das "each" in Zeile 19 von Queue.pm. Das ist nach der Änderung ja weg. Hast Du FHEM neu gestartet?

Zum Update: Soweit ich weiß, funktioniert das automatische Abholen per Update Befehl nicht bei Modulen im contrib Verzeichnis.

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

EdgarM

Hi zap, der Hotfix funktioniert.

Ich habe es auf einem Raspberry neu aufgesetzt, und da ging es dann.

Jetzt versuche ich endlich mal, meine Umgebung aufzusetzen, bin froh, endlich von der CCU GUI wegzukommen.


EdgarM

Wenn ich ne Frage zur Konfiguration habe. soll ich nen neuen Thread aufmachen oder hier fragen?

Ich frag erstmal hier, wird wohl mehrere interessieren die es benutzen möchten.

Ich habe Jetzt mal ein Thermostat eingefügt als HMCCUDEV Device, die Werte werden auch abgefragt und dargestellt:
DEF MEQ0XXXXXX

IODev d_ccu
NAME BadHeizThermostat
NR 119
STATE Initialized
TYPE HMCCUDEV
ccuaddr MEQ0182028
ccuif BidCos-RF
ccuname HeizungBad
ccutype HM-CC-RT-DN
statevals devstate
Readings
TemperaturBad.ACTUAL_TEMPERATURE 23.500.000 27.11.2015 13:48:34
TemperaturBad.BATTERY_STATE 3.000.000 27.11.2015 13:48:34
TemperaturBad.BOOST_STATE 0 27.11.2015 13:48:34
TemperaturBad.CONTROL_MODE 0 27.11.2015 13:48:34
TemperaturBad.FAULT_REPORTING 0 27.11.2015 13:48:34
TemperaturBad.PARTY_START_DAY 1 27.11.2015 13:48:34
TemperaturBad.PARTY_START_MONTH 1 27.11.2015 13:48:37
TemperaturBad.PARTY_START_TIME 0 27.11.2015 13:48:34
TemperaturBad.PARTY_START_YEAR 0 27.11.2015 13:48:37
TemperaturBad.PARTY_STOP_DAY 1 27.11.2015 13:48:37
TemperaturBad.PARTY_STOP_MONTH 1 27.11.2015 13:48:37
TemperaturBad.PARTY_STOP_TIME 0 27.11.2015 13:48:37
TemperaturBad.PARTY_STOP_YEAR 0 27.11.2015 13:48:37
TemperaturBad.PARTY_TEMPERATURE 5.000.000 27.11.2015 13:48:34
TemperaturBad.SET_TEMPERATURE 17.000.000 27.11.2015 13:48:34
TemperaturBad.VALVE_STATE 0 27.11.2015 13:48:34
state Initialized 27.11.2015 13:35:26


allerdings ist mir nicht ganz klar, wie ich jetzt einen Wert ändern kann. Alles, was ich versucht habe, bringt eine Fehlermeldung.

Kann mir jemand einen Hinweis dazu geben bitte?

grüße
und Danke

zap

Die Frage kannst Du ruhig hier stellen. Aber zunächst  nochmal zum anderen Problem: Ich verwende Perl 5.14.2, also eine ältere Version als Du. Möglicherweise ist mein Perl bei dem Queue.pm Fehler etwas toleranter. Die Queue.pm Version ist die 1.01, also die mit dem Fehler. Ich werde einen Ersatz für die new() Funktion direkt in HMCCU bzw. ccurpcd.pl einbauen. Dann dürfte sich das erledigt haben.

Zu Deinem Problem mit dem Setzen von Werten: Bei dem Wandthermostat kann man nicht alle Datenpunkte setzen, einige können nur gelesen werden. Was auf jeden Fall gehen sollte ist die Einstellung der gewünschten Raumtemperatur. In Deinem Fall

set BadHeizThermostat datapoint 2.SET_TEMPERATURE 23

Bei einem HMCCUDEV Device ist die Geräteadresse ja schon durch die Definition bekannt. Du musst also nur noch die Kanalnummer und den Datenpunkt angeben. Und natürlich den Wert (hier 23 Grad). Die Angabe des Kanalnames ("TemperaturBad") ist hier nicht zulässig, da diese sowohl Geräteadresse als auch Kanalnummer enthält. Hier könnte ich dem Modul vielleicht noch etwas mehr Toleranz beibringen ;-)

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

EdgarM

Hi zap,

danke für die Antwort. Das ist aber kein Wandthermostat, sondern das am Heizkörper. Dein Befehl mit der 4 statt der 2 hat dann auch gleich funktioniert.

Danke dafür.

Jetzt kann ich endlich anfangen, das ganze sauber umzusetzen.

grüße

EdgarM

Hi zap,

und wieder ich :-D

Leider scheint der RPC Server ein Problem zu haben. Laut Logfile fliegt er auch die Schnauze, starten kann man ihn dennoch nicht, da er noch läuft, der Prozess wenigstens. Hier der gesamte logauszug:

29.11.2015 16:33:16 Shutdown RPC server
29.11.2015 16:33:16 RPC server terminated
29.11.2015 16:33:31 Creating file queue
29.11.2015 16:33:31 Initializing RPC server
29.11.2015 16:33:31 callback server created
29.11.2015 16:33:31 Adding callback for events
29.11.2015 16:33:31 Adding callback for new devices
29.11.2015 16:33:31 Adding callback for deleted devices
29.11.2015 16:33:31 Adding callback for modified devices
29.11.2015 16:33:31 Registering callback
29.11.2015 16:36:31 RPC callback with URL http://172.23.1.52:7401/fh initialized
29.11.2015 16:36:31 Entering server loop. Use kill -SIGINT 22030 to terminate program
29.11.2015 16:36:31 ListDevices
29.11.2015 16:36:32 NewDevice: received 91 device specifications
29.11.2015 23:30:13 Creating file queue
29.11.2015 23:30:13 Initializing RPC server
29.11.2015 23:30:14 Can't create RPC callback server on port 7401. Port in use?
29.11.2015 23:30:14 Error: Can't initialize RPC server
30.11.2015 09:57:54 Creating file queue


Vielleicht kannst du damit etwas anfangen.

PS: Mein System ist: Ubuntu VM 15.10, fhem snapshot.

grüße

zap

#69
Das sieht doch gar nicht so schlecht aus. Ich füge in das Logfile mal ein paar Kommentare ein. Dann wird vielleicht klarer was das passiert:


# RPC Server wird sauber gestoppt
29.11.2015 16:33:16 Shutdown RPC server
29.11.2015 16:33:16 RPC server terminated

# RPC Server wird gestartet, zunächst die File-Queue anlegen
29.11.2015 16:33:31 Creating file queue

# Der Server wird initialisiert
29.11.2015 16:33:31 Initializing RPC server
29.11.2015 16:33:31 callback server created

# Die Callback-Funktionen werden bei der CCU registriert
29.11.2015 16:33:31 Adding callback for events
29.11.2015 16:33:31 Adding callback for new devices
29.11.2015 16:33:31 Adding callback for deleted devices
29.11.2015 16:33:31 Adding callback for modified devices

# Die Callbacks werden initialisiert. Das dauert 3 Minuten
29.11.2015 16:33:31 Registering callback

# Callback Initialisierung war erfolgreich. Der RPC Server für FHEM wartet auf Calls von der CCU
29.11.2015 16:36:31 RPC callback with URL http://172.23.1.52:7401/fh initialized
29.11.2015 16:36:31 Entering server loop. Use kill -SIGINT 22030 to terminate program

# Die CCU hat die Methode "ListDevices" aufgerufen => Wird ignoriert
29.11.2015 16:36:31 ListDevices

# Die CCU hat Infos über 91 CCU Devices an den RPC Server geschickt => Da wird momentan nix mit gemacht
29.11.2015 16:36:32 NewDevice: received 91 device specifications

# Ab hier empfängt der RPC Server Events für CCU Devices. Das wird nicht separat geloggt.

# Hier wird jetzt versucht, bei einem vermutlich schon laufenden Server den Server nochmal zu starten. Das geht in Hose, weil der Port belegt ist
29.11.2015 23:30:13 Creating file queue
29.11.2015 23:30:13 Initializing RPC server
29.11.2015 23:30:14 Can't create RPC callback server on port 7401. Port in use?
29.11.2015 23:30:14 Error: Can't initialize RPC server
30.11.2015 09:57:54 Creating file queue


Du solltest mal prüfen, ob der Prozesse noch läuft:

ps -ef | grep ccurpcd

Du kannst den laufenden killen mit kill -SIGNIT Id. Dann wird er sauber gestoppt. Sehr zu empfehlen, sonst macht die CCU irgendwann mal die Grätsche.

Dann kannst Du noch prüfen, ob im Queue-File /tmp/ccuqueue.dat was drin steht. Das  ist ein Textfile. Hier sollten Updates von der CCU drin stehen (Events fangen mit "EV" an).

Wichtig: Es werden nur Datenpunkte von HMCCUCHN oder HMCCUDEV Devices aktualisiert.

Notiz an mich: Beim Starten vom RPC Server prüfen, ob schon einer läuft und ggf. Meldung ins Log schreiben.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

zap

#70
Ich habe ein Update für 88_HMCCU.pm und ccurpcd.pl auf Sourceforge bereitgestellt. Zusätzlich habe ich das Modul RPCQueue.pm hochgeladen. Dieses Modul ersetzt das CPAN Modul File::Queue, das leider einen Fehler hat, der mit Perl ab Version 5.20 zum Absturz von FHEM führt. RPCQueue.pm kommt ebenfalls in das FHEM Unterverzeichnis, in dem auch die 88_HMCCU-Module liegen. RPCQueue.pm ist nichts als eine Kopie von File::Queue ohne den Bug ;-)

Neuerungen:


  • File::Queue wird nicht mehr verwendet (zumindest bis der Autor von File::Queue den Bug behoben hat)
  • HMCCU und ccurpcd prüfen, ob noch ein RPC Server läuft und schreiben entsprechende Meldungen in die Logfiles
  • Bei aktivem RPC Server werden nun auch die vorhandenen Readings im IO Device (HMCCU) aktualisiert.
  • Der RPC Server schreibt immer nach 250 Events einen Eintrag in sein Logfile (als Lebenszeichen)

Links und weitere Infos wie immer im 1. Post in diesem Thread.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

MaSie

#71
Ich bitte um Hilfe.

Ich habe die "88_HMCCU* and the RPC daemon ccurpcd.pl" in das Verzeichnis FHEM kopiert und die "packages LWP::UserAgent, Time::HiRes and File::Queue. The RPC server ccurpcd.pl requires the packages File::Queue, RPC::XML::Server, RPC::XML::Client, XML::Simple and IO::Socket::INET" installiert.

Dennoch bringt das Define eine Fehlermeldung.

define CCU2 HMCCU 192.168.200.58
Cannot load module HMCCU

Im Logfile steht:
2015.12.01 09:38:49 1: reload: Error:Modul 88_HMCCU deactivated:
Can't locate RPC/XML/Client.pm in @INC (you may need to install the RPC::XML::Client module) (@INC contains: C:/FHEM/fhem-5.6/perl/site/lib C:/FHEM/fhem-5.6/perl/vendor/lib C:/FHEM/fhem-5.6/perl/lib . ./FHEM) at ./FHEM/88_HMCCU.pm line 48.
BEGIN failed--compilation aborted at ./FHEM/88_HMCCU.pm line 48.

Mein Versuch, in der "portableshell" mit "cpan install RPC::XML::Client" brachte eine Fehlermeldung nach einem umfangreichen Test-Durchlauf:
...
Stopping: 'install' failed for 'RPC::XML::Client'.

Jetzt komme ich nicht mehr weiter.

zap

#72
Ohne RPC::XML::Client läuft das nicht. Gibt cpan install irgendwelche anderen Fehlermeldungen aus? Auf welchem Betriebssystem installierst Du das?

BTW: Für die aktuelle Version in Sourceforge benötigst Du File::Queue nicht. Das hat einen Bug. Daher habe ich RPCQueue.pm bereitgestellt. Das kommt ins gleiche Verzeichnis wir die HMCCU Module.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

MaSie

Auf Windows.

Fehlermeldungen gabes eine lange Liste ..

MaSie

C:\FHEM\fhem-5.6>cpan install RPC::XML::Client
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 01 Dec 2015 08:06:32 GMT

Running install for module 'RPC::XML::Client'
CPAN: Digest::SHA loaded ok (v5.95)
CPAN: Compress::Zlib loaded ok (v2.068)
Checksum for C:\FHEM\fhem-5.6\cpan\sources\authors\id\R\RJ\RJRAY\RPC-XML-0.79.tar.gz ok
tmp-1204 for tmp-1204: No such file or directory at C:\FHEM\fhem-5.6\perl\lib/CPAN/Distribution.pm line 468.
CPAN: Archive::Tar loaded ok (v2.04)
CPAN: File::Temp loaded ok (v0.2304)
CPAN: YAML::XS loaded ok (v0.59)
CPAN: CPAN::Meta::Requirements loaded ok (v2.133)
CPAN: Parse::CPAN::Meta loaded ok (v1.4417)
CPAN: CPAN::Meta loaded ok (v2.150005)
CPAN: Module::CoreList loaded ok (v5.20150912)
Configuring R/RJ/RJRAY/RPC-XML-0.79.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for RPC::XML
Writing MYMETA.yml and MYMETA.json
  RJRAY/RPC-XML-0.79.tar.gz
  C:\FHEM\fhem-5.6\perl\bin\perl.exe Makefile.PL -- OK
Running make for R/RJ/RJRAY/RPC-XML-0.79.tar.gz
---- Unsatisfied dependencies detected during ----
----         RJRAY/RPC-XML-0.79.tar.gz        ----
    DateTime::Format::ISO8601 [requires,optional]
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=lib\Apache\RPC\status
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=methods\identity
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=methods\introspection
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=methods\listMethods
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=methods\methodHelp
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=methods\methodSignature
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=methods\multicall
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" etc\make_method --base=methods\status
cp lib/RPC/XML.pm blib\lib/RPC/XML.pm
cp methods\methodSignature.xpl blib\lib\RPC\XML\methodSignature.xpl
cp methods\identity.xpl blib\lib\RPC\XML\identity.xpl
cp lib/RPC/XML/Procedure.pm blib\lib/RPC/XML/Procedure.pm
cp lib/RPC/XML/Server.pm blib\lib/RPC/XML/Server.pm
cp lib/RPC/XML/Parser/XMLLibXML.pm blib\lib/RPC/XML/Parser/XMLLibXML.pm
cp methods\methodHelp.xpl blib\lib\RPC\XML\methodHelp.xpl
cp lib/Apache/RPC/Status.pm blib\lib/Apache/RPC/Status.pm
cp lib/RPC/XML/Parser.pm blib\lib/RPC/XML/Parser.pm
cp methods\multicall.xpl blib\lib\RPC\XML\multicall.xpl
cp methods\introspection.xpl blib\lib\RPC\XML\introspection.xpl
cp lib/RPC/XML/Client.pm blib\lib/RPC/XML/Client.pm
cp lib/RPC/XML/ParserFactory.pm blib\lib/RPC/XML/ParserFactory.pm
cp lib/Apache/RPC/status.xpl blib\lib/Apache/RPC/status.xpl
cp lib/Apache/RPC/Server.pm blib\lib/Apache/RPC/Server.pm
cp methods\status.xpl blib\lib\RPC\XML\status.xpl
cp methods\listMethods.xpl blib\lib\RPC\XML\listMethods.xpl
cp lib/RPC/XML/Parser/XMLParser.pm blib\lib/RPC/XML/Parser/XMLParser.pm
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" -MExtUtils::Command -e cp -- etc\make_method blib\script\make_method
pl2bat.bat blib\script\make_method
  RJRAY/RPC-XML-0.79.tar.gz
  C:\FHEM\fhem-5.6\c\bin\dmake.exe -- OK
Running make test
"C:\FHEM\fhem-5.6\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/00_load.t ..................... ok
t/10_data.t ..................... ok
t/11_base64_fh.t ................ ok
t/12_nil.t ...................... ok
t/13_no_deep_recursion.t ........ ok
t/14_datetime_iso8601.t ......... skipped: DateTime::Format::ISO8601 not available
t/15_serialize.t ................ ok
t/20_xml_parser.t ............... ok
t/21_xml_libxml.t ............... ok
t/25_parser_negative.t .......... ok
t/29_parserfactory.t ............ ok
t/30_procedure.t ................ ok
t/35_namespaces.t ............... ok
t/40_server.t ................... 24/91
t/40_server.t ................... 30/91 #   Failed test 'First live req: Check that $res is not an error'
#   at t/40_server.t line 245.

#   Failed test ''First live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server.t line 248.
#     'First live req: parsed $res' isn't a 'RPC::XML::response'
t/40_server.t ................... 35/91
t/40_server.t ................... 36/91 #   Failed test 'Second live req: Check that $res is not an error'
#   at t/40_server.t line 293.

#   Failed test ''Second live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server.t line 295.
#     'Second live req: parsed $res' isn't a 'RPC::XML::response'

t/40_server.t ................... 41/91 #   Failed test 'Third live req: Check that $res is not an error'
#   at t/40_server.t line 323.

#   Failed test ''Third live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server.t line 325.
#     'Third live req: parsed $res' isn't a 'RPC::XML::response'

t/40_server.t ................... 47/91 #   Failed test 'Fourth live req: Check that $res is not an error'
#   at t/40_server.t line 368.

#   Failed test ''Fourth live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server.t line 370.
#     'Fourth live req: parsed $res' isn't a 'RPC::XML::response'

t/40_server.t ................... 52/91 #   Failed test 'RT29351 live req: $res is not an error'
#   at t/40_server.t line 417.

#   Failed test ''RT29351 live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server.t line 419.
#     'RT29351 live req: parsed $res' isn't a 'RPC::XML::response'
t/40_server.t ................... 57/91
t/40_server.t ................... 59/91 #   Failed test ''system.listMethods response' isa 'RPC::XML::response''
#   at t/40_server.t line 475.
#     'system.listMethods response' isn't a 'RPC::XML::response'
t/40_server.t ................... 83/91
#   Failed test 'Arg-count testing of procedure types'
t/40_server.t ................... 84/91 #   at t/40_server.t line 1107.
#          got: 'parse-error,parse-error,parse-error'
#     expected: '0,1,0'
t/40_server.t ................... 89/91 # Looks like you planned 91 tests but ran 90.
# Looks like you failed 12 tests of 90 run.
t/40_server.t ................... Dubious, test returned 12 (wstat 3072, 0xc00)
Failed 13/91 subtests
        (less 43 skipped subtests: 35 okay)
t/40_server_xmllibxml.t ......... 1/62
t/40_server_xmllibxml.t ......... 14/62 #   Failed test 'First live req: Check that $res is not an error'
#   at t/40_server_xmllibxml.t line 142.

#   Failed test ''First live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server_xmllibxml.t line 145.
#     'First live req: parsed $res' isn't a 'RPC::XML::response'
t/40_server_xmllibxml.t ......... 19/62
t/40_server_xmllibxml.t ......... 20/62 #   Failed test 'Second live req: Check that $res is not an error'
#   at t/40_server_xmllibxml.t line 190.

#   Failed test ''Second live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server_xmllibxml.t line 192.
#     'Second live req: parsed $res' isn't a 'RPC::XML::response'

t/40_server_xmllibxml.t ......... 25/62 #   Failed test 'Third live req: Check that $res is not an error'
#   at t/40_server_xmllibxml.t line 220.

#   Failed test ''Third live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server_xmllibxml.t line 222.
#     'Third live req: parsed $res' isn't a 'RPC::XML::response'

t/40_server_xmllibxml.t ......... 31/62 #   Failed test 'RT29351 live req: $res is not an error'
#   at t/40_server_xmllibxml.t line 269.

#   Failed test ''RT29351 live req: parsed $res' isa 'RPC::XML::response''
#   at t/40_server_xmllibxml.t line 271.
#     'RT29351 live req: parsed $res' isn't a 'RPC::XML::response'
t/40_server_xmllibxml.t ......... 36/62
t/40_server_xmllibxml.t ......... 38/62 #   Failed test ''system.listMethods response' isa 'RPC::XML::response''
#   at t/40_server_xmllibxml.t line 323.
#     'system.listMethods response' isn't a 'RPC::XML::response'
t/40_server_xmllibxml.t ......... 62/62 # Looks like you failed 9 tests of 62.
t/40_server_xmllibxml.t ......... Dubious, test returned 9 (wstat 2304, 0x900)
Failed 9/62 subtests
        (less 33 skipped subtests: 20 okay)
t/41_server_hang.t .............. ok
t/50_client.t ................... 11/33
t/50_client.t ................... 16/33 #   Failed test 'simple_request/system.identity returns correct value'
#   at t/50_client.t line 102.
#          got: undef
#     expected: 'RPC::XML::Server/1.73'

#   Failed test 'simple_request/system.identity left $RPC::XML::ERROR empty'
#   at t/50_client.t line 104.

t/50_client.t ................... 18/33 #   Failed test ''system.identity response' isa 'RPC::XML::string''
#   at t/50_client.t line 109.
#     'system.identity response' isn't a 'RPC::XML::string'

t/50_client.t ................... 20/33 #   Failed test ''simple_request/system.bad response' isa 'HASH''
#   at t/50_client.t line 130.
#     'simple_request/system.bad response' isn't defined

t/50_client.t ................... 23/33 #   Failed test ''send_request/system.bad response' isa 'RPC::XML::fault''
#   at t/50_client.t line 153.
#     'send_request/system.bad response' isn't a 'RPC::XML::fault'

t/50_client.t ................... 25/33 #   Failed test 'fault_handler correctly set $flag'
#   at t/50_client.t line 187.

#   Failed test ''fault_handler returned value' isa 'RPC::XML::fault''
#   at t/50_client.t line 189.
#     'fault_handler returned value' isn't a 'RPC::XML::fault'
t/50_client.t ................... 28/33
t/50_client.t ................... 30/33 #   Failed test ''cmpImg return value' isa 'RPC::XML::boolean''
#   at t/50_client.t line 260.
#     'cmpImg return value' isn't a 'RPC::XML::boolean'

t/50_client.t ................... 32/33 #   Failed test ''cmpImg return value (compression)' isa 'RPC::XML::boolean''
#   at t/50_client.t line 276.
#     'cmpImg return value (compression)' isn't a 'RPC::XML::boolean'
# Looks like you failed 9 tests of 33.
t/50_client.t ................... Dubious, test returned 9 (wstat 2304, 0x900)
Failed 9/33 subtests
        (less 7 skipped subtests: 17 okay)
t/51_client_with_host_header.t .. ok
t/60_net_server.t ............... skipped: Net::Server tests not reliable on Windows platform
t/70_compression_detect.t ....... ok
t/90_rt50013_parser_bugs.t ...... ok
t/90_rt54183_sigpipe.t .......... skipped: Skipping *NIX signals-based test on Windows platform
t/90_rt54494_blessed_refs.t ..... ok
t/90_rt58065_allow_nil.t ........ ok
t/90_rt58323_push_parser.t ...... ok

Test Summary Report
-------------------
t/40_server.t                 (Wstat: 3072 Tests: 90 Failed: 12)
  Failed tests:  31-32, 37-38, 42-43, 48-49, 53-54, 59, 84
  Non-zero exit status: 12
  Parse errors: Bad plan.  You planned 91 tests but ran 90.
t/40_server_xmllibxml.t       (Wstat: 2304 Tests: 62 Failed: 9)
  Failed tests:  15-16, 21-22, 26-27, 32-33, 38
  Non-zero exit status: 9
t/50_client.t                 (Wstat: 2304 Tests: 33 Failed: 9)
  Failed tests:  16-18, 20, 23, 25-26, 30, 32
  Non-zero exit status: 9
Files=25, Tests=953, 173 wallclock secs ( 0.28 usr +  0.09 sys =  0.37 CPU)
Result: FAIL
Failed 3/25 test programs. 30/953 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'
  RJRAY/RPC-XML-0.79.tar.gz
  C:\FHEM\fhem-5.6\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports RJRAY/RPC-XML-0.79.tar.gz
Stopping: 'install' failed for 'RPC::XML::Client'.

C:\FHEM\fhem-5.6>