[Modul] Panasonic Comfort Cloud

Hallo!
Tolles Modul, funktionierte bei unseren -XKEW Anlagen sofort.
Eine Frage habe ich zu dem Nanoex-Modus. Weiß jemand was der „Modus G“ ist? Einstellen kann ich den nicht, die Selektion springt dann immer auf Aus zurück.

Philip

nein, keine Ahnung. ich habe das so in den diversen Implementierungen gesehen und nirgendwo im Internet eine wirklich Erklärung gefunden,

Danke für die flotte Antwort.
Eine Sache ist mir noch aufgefallen. Der Modus Lüften kann nicht eingestellt werden um zB nur nanoex einzuschalten ohne Klimatisierung. Mit der App geht das und wird auch korrekt von deinem Modul erkannt bei neuen Status-Abfragen.
Beim einstellen mit deinem Modul kommt im Debug diese Meldung:

SetOperateMode | mode 4(Lüften) is not allowed on this device/in this context

In den Options ist auch keine 1 beim FanMode:

UpdateStatus | options=Array( [autoMode] => 1 [coolMode] => 1 [dryMode] => 1 [fanMode] => [heatMode] => 1 [powerfulMode] => 1 [quietMode] => 1 [nanoe] => 1 [airSwingLR] => 1 [autoSwingUD] => 1 [fanDirectionMode] => [fanSpeedMode] => [nanoeStandAlone] => 1)

Wenn ich in deinem Modul in der Methode SetOperateMode den Check auf die gültigen Modi auskommentiere, dann frisst Panasonic den Befehl und stellt brav den Nanoex-Only-Modus ein.
Vielleicht diesen Modus einfach immer erlauben, wenn die Property with_nanoe aktiviert wurde oder in den Options nanoeStandAlone=1 kommt?

Viele Grüße
Philip

So ganz ist mir der Ablauf noch nicht klar: bei aktivieren von NanoeX (via Variable NanoeMode) wird doch nur SetNanoeMode() aufgerufen. Wie kommt da das Lüften ins Spiel?

Diese „Options“ kommen ja aus den empfangenen Daten und sind nach meinem Verständnis (ist ja alles ein Reverse Engineering) dafür da, zu sagen, was das Gerät gerade machen könnte.

Ändert sich der Wert von fanMode bei dem nächsten Datenempfang?

Was wäre, wenn Du eine Änderung in SetNanoeMode() anbringst (ich versehe das so, das die die Source nicht fremd sind?)

 $parameters = [
            'nanoe' => $value,
        ];

ersetzen durch

 $parameters = [
            'nanoe' => $value,
            'operationMode' => 'fanMode',
        ];

Hi,
ich habe nun noch mal ein wenig ausprobiert:

Den NanoeMode kann man immer ein und aus schalten, bei jeder Betriebsart. Eine eigene Betriebsart nur für Nanoe gibt es nicht.
Die Betriebsart Lüften allerdings, macht nur mit Nanoe-Modus=an sinn und ist in der App auch nur so möglich.

Daher würde ich das so ändern:

  • Wenn NanoeX verfügbar, dann auch Lüften erlauben (nanoeStandAlone=1)
  • Wenn OperationMode Lüften gesetzt wird, dann immer NanoeX mit einschalten.
  • Nanoe darf beim Lüften nicht mehr geschaltet werden.

Eine zweite Kleinigkeit habe ich noch gefunden:
Bei der vertikalen Ausrichtung gibt es noch den Wert 5 für ständige Lamellenbewegung hoch/runter. Im Gegensatz zu Automatik werden die Teile hier dauerhaft bewegt.

Für beides maile ich dir einen Patch zu.

Viele Grüße
Philip

What a wonderfull module! My Panasconic WH-MDC05J3E5 heatpump is easily recognized, device type is actually unknown - can I help to add this heatpump in the types?

domoticz example for heat pumps Heatpump/air conditioner as a Domoticz device - Page 2 - Domoticz

only a little bit information is different:

necessary Info:
Pump flow rate [L/min]
Compressor frequency [hz]
Inlet water temperature
Outlet water temperature

Settings:
Operation power [on/off]
Quite mode [off/1/2/3]
Pump flowrate Max duty [100/110/120/130/140/150]
Water temperature [target]

Hi @Noah:

I have no information on how to connect these devices. The link provided refers to a completely different type of communication.

In this respect, the most we can do is „play“ a bit:

Please open the IO instance from the Panasonic module, open the debug and set the limitation to large enough (> 2000 lines).
Then open the configurator instance. Some things should have happened in the debug of the IO instance. Please save this debug and send it to me via PN or mail (demel42@web.de).
I can have a look at it, if I can see anything here, so that it is worth to investigate further.

Hi, very cool offer!

I just send you the debug, now after some research I found that the heatpumps are not completely accessable by this API - Panasonic is using a little bit different API like here: homebridge-panasonic-heat-pump/panasonicApi.ts at master · Hernas/homebridge-panasonic-heat-pump · GitHub

Hmm,
this is a completely different cloud, even if it says Panasonic on it, it’s called „Aquarera Smart Cloud“ and not „Panasonic Comfort Cloud“.

On the other hand, the device can be seen in the overview, but it causes problems when retrieving the status (GetDeviceStatus()). - HTTP 403(FORBIDDEN).

Can you see / control the device via the Panasonic Comfort Cloud app?

I seem to remember that when I logged in the air conditioners in the Panasonic Cloud, I had to somehow „enable“ them for control … but it’s been a while.
Is there anything in the device documentation

Hi, this is enabled indeed. The Panasonic Comfort Cloud app is working perfect (I can see all data and control the device)

I have spent the last few hours on this topic and have exhausted my options for the time being.

To „Domoticz“:
Is the connection of Heishamon, that seems to be a hardware solution (based on ESP), which is connected directly to the data bus of the system. I didn’t pursue that either, because yes, that would require some tinkering.

About „Homebridge“:
which is apparently the attempt to connect to the
Aquarell Smart website (aquarea-smart.panasonic.com)
to read out data, i.e. to parse the web page.

About the „Panasonic comfort cloud“:
Here is the problem that the first data retrieval of Geräetdaten is already rejected as „FORBIDDEN“.
This can be a small thing, what is missing in the data in the API, but can also be that the API call for the heat pumps is completely different.
It could of course also be some setting (in the app/Papasonic cloud) that restricts access to the device - but is rather unlikely, because the API is also used by the mobile app …

On the Internet I have not found any information on how to address a heat pump via Panasonic cloud - probably no one with the appropriate ambition has yet analyzed the data; heat pumps are not yet so extremely widespread, otherwise there would certainly be someone.

The problem with the Panasonic cloud API is that it is not public and therefore there are no documents. And since this is encrypted accordingly, it is not so easy to eavesdrop on the data traffic (which would require that the person who reverse enegeneered both the device and access to the account).
Basically, you have to intercept and analyze the still unencrypted traffic on the hand where the app is running. This is easier to do on an Android, an iPhone needs to be jailbroken to be able to do this; both techniques I am not familiar with and have never used.

The only vague hope would be that if I had access to your account, I could try to play around a bit; would be more of a fluke though.

I have no better news unfortunately

Bei mir kommt gerade Zugangsdaten ungültig.

Auf der folgenden Seite von Panasonic kann ich mich aber damit anmelden.

https://csapl.pcpf.panasonic.com/Account/Menu

Mit der App kommt eine Meldung.

richimaint

danke für die info, bei mir bisher noch alles ok.

1 „Gefällt mir“

Moin zusammen,

beim öffnen eines Moduls bekomme ich seit neustem diese Fehlermeldung. Ansonsten läuft alles wie gewohnt.

Version 6.4. verwende ich.

Konnte Konfigurationsform nicht laden
Fatal error: Uncaught TypeError: strcmp() expects parameter 1 to be string, bool given in D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code:892
Stack trace:
#0 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(892): strcmp(false, 'PHP-Skript')
#1 [internal function]: PanasonicCloudDevice->cmp_refs(Array, Array)
#2 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(1188): usort(Array, Array)
#3 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(1399): PanasonicCloudDevice->ExplodeReferences(18428)
#4 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\PanasonicCloudDevice\module.php(348): PanasonicCloudDevice->GetReferencesFormAction()
#5 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(651): PanasonicCloudDevice->GetFormActions()
#6 C:\Windows\System32\-(3): PanasonicCloudDevice->GetConfigurationForm()
#7 {main}
 in D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code on line 892 (Code: -32603)

Da die Zeilennummern nicht zu den aktuellen Source passen, welche Version hast du im Einsatz?

(Instanz->Konfigurationsseite → Information)

Und welche IPS-Version?

Es gibt nach dem Trace auf jeden Fall ein Problem mit einem Objekt (oder Event), das von der Instanz referenziert wird bzw. das die Referenz referenziert.

Darf natürlich nicht zu einem Problem dieser Art führen, da muss ich bei.

Hi,

ich hab die Beta aus dem ModulStore. Neu installieren aus dem Store hat keine Änderung der Zeilennummern im Stack ergeben.
Da die vorhandenen Instanzen nicht aufgehen lässt sich die Versionsnummer nicht so einfach auslesen. Aber eine neue Instanz kann angelegt werden und zeigt dann an

image

Stack nach Neuinstallation des Moduls
Konnte Konfigurationsform nicht laden
Fatal error: Uncaught TypeError: strcmp() expects parameter 1 to be string, bool given in D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code:892
Stack trace:
#0 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(892): strcmp(false, 'PHP-Skript')
#1 [internal function]: PanasonicCloudDevice->cmp_refs(Array, Array)
#2 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(1188): usort(Array, Array)
#3 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(1399): PanasonicCloudDevice->ExplodeReferences(18428)
#4 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\PanasonicCloudDevice\module.php(348): PanasonicCloudDevice->GetReferencesFormAction()
#5 D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code(651): PanasonicCloudDevice->GetFormActions()
#6 C:\Windows\System32\-(3): PanasonicCloudDevice->GetConfigurationForm()
#7 {main}
 in D:\Symcon\modules\.store\demel42.panasonic.comfortcloud\libs\common.php(10) : eval()'d code on line 892 (Code: -32603)

ok, ich habe eine neue Version als Beta eingestellt.

die sollte nun ohne Fehler funktionieren (hoffentlich), aber da ich das Problem noch nicht verstehe, habe ich noch Debug eingebaut.
Also, wenn es klappt, dann

  • eine Panasonic-Instanz aufrufen
  • Debug-Fenster öffnen
  • Limitierung auf 10000 Zeilen erhöhen
  • dann das Instanz-Fenster schliessen, das Debug-Fenster bleibt offen
  • dann Instanz wieder öffnen

=> im Debug-Fenster müsste allerlei stehen. Das bitte Herunterladen und mit schicken (per PN oder Mail)

Die Instanz kann wieder geöffnet werden und ich hab dir den Log gesendet.
Vielen Dank

@paresy: es gibt hier ein Script-Objekt mit dem Script-Typ 2, das ist ein IPS View Workflow.

Den Typ gibt es bisher noch nicht offiziell, zumindestens nicht als Konstante SCRIPTTYPE_….

könnt ihr dafür auch eine Konstante anlegen? Ich habe zentral eine Stelle, wo ich die Typen verwende und würde das dann entsprechend abhandeln.

Ab welcher Version gibt es die Typen?

Gibt es noch weitere Script-Typen, die inzwischen dazu gekommen sind?

Hinweis: in der Doku IPS_GetScript — IP-Symcon :: Automatisierungssoftware ist auch nur 0=PHP angegeben.

Ich bekomme jetzt öfter folgende Meldung:

04.07.2023, 08:10:22 | PanasonicCloudDevice | has no active parent instance

richimaint