das meinte ich damitjmaus hat geschrieben:
Weiss zwar nicht was CloudMatic mit Mediola Creator im engeren Sinne zu tun haben soll. aber wenn bei dir Media Creator Neo auch nicht mit einer CCU2+FW 2.29.22 geht dann bin ich schon einmal etwas beruhigt, denn dann ist das kein RaspberryMatic-spezifisches Problem.
[GELÖST] Upgrade auf 20171007: kein Import Mediola Creator Neo mögl.
Moderatoren: jmaus, Co-Administratoren
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
jmaus hat geschrieben:Zeig doch mal bitte die Mediola Log-Datei auch hier nur um auszuschliessen das ich darin auch bereits ein Problem ausmachen kann.MiKKey hat geschrieben: Selbes Problem bei mir. Ich habe die Mediola Log-Datei an den Mediola Support geschickt. Mal schauen was dabei rauskommt.
Habe ich dir gerade per PM geschickt.
277 Kanäle in 102 Geräten
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
So, noch mal kurz ein Status von mir. Ich hatte vergangene Woche bei mir in der CCU2 die Logikschicht von „Standard“ auf „Community“ umgestellt.
Habe jetzt das ganze mal zurück geswitched und prompt werden mir alle Geräte in Mediola angezeigt und ich kann wieder problemlos importieren.
Ich hoffe das hilft Euch weiter!
Gruß Joerch
Habe jetzt das ganze mal zurück geswitched und prompt werden mir alle Geräte in Mediola angezeigt und ich kann wieder problemlos importieren.
Ich hoffe das hilft Euch weiter!
Gruß Joerch
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
Das hilft in der Tat sehr. Hast du ggf eine neuere ReGa beta manuell installiert oder ist das die standard community version die bei der 2.29.22 dabei ist? Kannst du auch mal bitte auf die Communityversion zurückgehen und schauen ob bei dir Fehlermeldungen im syslog der CCU2 kommen wenn du die mediola gerätesuche startest...
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 316
- Registriert: 26.11.2016, 12:52
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 11 Mal
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
Kann leider auch keine Geräte in Mediola mehr updaten; Fehlermeldung wie beschrieben; Im LOG der RaspiCCU sind keinerlei Einträge dazu
JoMass
~200 Geräte; ~70 Programme FW: 3.75.6.20240316 – Odroid N2+ 4GB 64GB-SSD , Homeassistant (latest), - HISTORIAN V3.6.0 auf QNAP; Mediola AIO Creator NEO - Node-RED (Current version: 17.0.10 (3.1.7))
~200 Geräte; ~70 Programme FW: 3.75.6.20240316 – Odroid N2+ 4GB 64GB-SSD , Homeassistant (latest), - HISTORIAN V3.6.0 auf QNAP; Mediola AIO Creator NEO - Node-RED (Current version: 17.0.10 (3.1.7))
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
Ich hatte keine manuell installierte ReGa-Beta sondern alles aus der Standard FW 2.29.22.jmaus hat geschrieben:Das hilft in der Tat sehr. Hast du ggf eine neuere ReGa beta manuell installiert oder ist das die standard community version die bei der 2.29.22 dabei ist? Kannst du auch mal bitte auf die Communityversion zurückgehen und schauen ob bei dir Fehlermeldungen im syslog der CCU2 kommen wenn du die mediola gerätesuche startest...
ReGa Umstellung muss ich morgen früh machen.
-
- Beiträge: 316
- Registriert: 26.11.2016, 12:52
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 11 Mal
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
Code: Alles auswählen
></xml>
16/10/2017 20:23:26.779 error: [FRONTEND] [DeviceManager.HomeMatic.listDevices] Backend returned null (no devices/programs/sysvars found).
16/10/2017 20:23:26.779 trace: [WebServer] POST:/api/logmanager/log body: [object Object]
16/10/2017 20:23:44.006 trace: [WebServer] POST:/api/data/config/tenants/1/remotes/4 body: [object Object]
16/10/2017 20:23:45.158 trace: [WebServer] POST:/api/logmanager/log body: [object Object]
16/10/2017 20:23:45.159 debug: [FRONTEND] [Remote.sendAfterSaveSignal] Backend processed saved pages.
16/10/2017 20:24:24.696 trace: [WebServer] PUT:/api/devicemanager/1/gateway/1 body: [object Object]
16/10/2017 20:24:24.713 all: [FRONTEND] [DeviceManager.update] Update successful: {"index":1,"name":"MassCCU","info":{"sys":"hm","ip":"CCU_IP_adresse","port":80,"uuid":"LEQ1013516","password":"","username":"","mac":"","tclport":0}}
16/10/2017 20:24:24.712 trace: [WebServer] POST:/api/logmanager/log body: [object Object]
16/10/2017 20:24:24.711 trace: [WebServer] GET:/api/devicemanager/1/gateway?_=1508177922825 body: [object Object]
16/10/2017 20:24:24.767 all: [FRONTEND] [DeviceManager._callbackReadGateways] Loaded gateways: 2 (1ms)
16/10/2017 20:24:24.766 trace: [WebServer] POST:/api/logmanager/log body: [object Object]
16/10/2017 20:24:24.767 debug: [FRONTEND] [DeviceManager.getGatewayList] Cached gateway list. (1ms)
16/10/2017 20:24:24.767 trace: [WebServer] POST:/api/logmanager/log body: [object Object]
16/10/2017 20:24:32.981 trace: [WebServer] POST:/api/logmanager/log body: [object Object]
16/10/2017 20:24:32.981 debug: [FRONTEND] [DeviceManager.getRoomDeviceList] Cached room-device list. (1ms)
16/10/2017 20:24:44.851 all: [FRONTEND] [DeviceManager.HomeMatic.listDevices] Searching for devices in the HomeMatic CCU with IP "CCU_IP_adresse:80" ...
16/10/2017 20:24:44.852 trace: [WebServer] POST:/module/hm/listdevices body: [object Object]
16/10/2017 20:24:44.851 trace: [WebServer] POST:/api/logmanager/log body: [object Object]
16/10/2017 20:24:44.853 debug: [xnm.aio.hm.MHMCCU] get device list from ccu:CCU_IP_adresse
16/10/2017 20:24:48.136 debug: [xnm.aio.hm.MHMCCU] <xml><exec>/tclrega.exe</exec><sessionId></sessionId><httpUserAgent>User-Agent: mediola</httpUserAgent><res>{"devices":{"4902":{"name":#[Bewegungsmelder_EG]#,"typename":&....
es folgen alle Geräte ende mit <xml>
JoMass
~200 Geräte; ~70 Programme FW: 3.75.6.20240316 – Odroid N2+ 4GB 64GB-SSD , Homeassistant (latest), - HISTORIAN V3.6.0 auf QNAP; Mediola AIO Creator NEO - Node-RED (Current version: 17.0.10 (3.1.7))
~200 Geräte; ~70 Programme FW: 3.75.6.20240316 – Odroid N2+ 4GB 64GB-SSD , Homeassistant (latest), - HISTORIAN V3.6.0 auf QNAP; Mediola AIO Creator NEO - Node-RED (Current version: 17.0.10 (3.1.7))
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
Hallo JoMass,
danke, das hilft wirklich sehr weiter denn ich denke das ist es:
Des Weiteren habe ich durch die Installation der Testversion (danke DrTob für den Tipp) herausgefunden das der von Mediola verwendete ReGa-Abfrageskript (der die oben genannte "res" Ergebnisvariable erzeugt) in der Tat auch noch ein Bug hat, der bei der Nutzung der Community-Version von ReGa korrekterweise zu einem ScriptRuntimeError führt. Der von Mediola entwickelte und verwendete Skript ist dieser hier:
Führt man dieses nun aus kommt es zu einem "ScriptRuntimeError" der durch folgende foreach() schleife innerhalb des Skriptes ausgelöst wird:
Die Zeile die diesen ScriptRuntimeError auslöst ist die mit der Nutzung der HssType() Methode. Da in dieser foreach() schleife alle Datenpunkte eines Kanals abgearbeitet werden fehlt hierbei der Check nach einem konkreten HSSDP Types da nur für den die HssType() Methode auch gilt. Die foreach() schleife muss daher wie folgt angepasst werden:
D.h. es muss ein TypeName() Check eingebaut werden bevor die HssType() Methode auf einen Datenpunkt angewendet werden darf.
Zusammenfassend muss also gesagt werden, dass hier wohl Bugfixes von Mediola Crestor Neo notwendig sind, diese allerdings recht überschaubar sind. Auf der einen Seite müsste in Mediola Creator wohl der als <res></res> empfangene Result-String durch eine url decoding Funktion geleitet werden der die &xxxx; strings in einen normalen string wandelt und auf der anderen Seite der ReGa-Abfrageskript um die reparierte foreach() Schleife erweitert werden.
Wenn also jemand direkten Kontakt zu Mediola hat und das gerne als Lösung des Problems melden möchte, dann bitte machen.
danke, das hilft wirklich sehr weiter denn ich denke das ist es:
Was man hier sieht ist die Antwort der CCU2 bzw. RaspberryMatic. Diese Antwortet mit einem <xml></xml> string und innerhalb des <xml></xml> wird die Antwort bzw. das Resultat zwischen <res></res> gepackt. Und was man darin vor allem sieht ist, das die neueren Versionen der ReGaHss hier korrekterweise nun Sonderzeichen (unter anderem Anführungszeichen) als &xxxx; Strings escapt. D.h. hier wird der String {"devices":{"4902".... als {"devices":{"4902"e;.... zurück gegeben. Und hier bin ich mir ziemlich sicher das hier Mediola eben durch diese neue Art des escapens von zurückgegebenen <xml></xml> Responses durcheinander kommt und erwartet das dies ausschliesslich in unescapter Form passiert. Hier muss also Mediola NEO von den Entwickler an diese neuen Gegebenheiten angepasst werden und vor weiterer Nutzung des xml-reponses der String durch einen URL-decoder geleitet werden der die &xxx; Sequenzen in entsprechende unescapte Strings wandelt.JoMass hat geschrieben:Code: Alles auswählen
16/10/2017 20:24:44.853 debug: [xnm.aio.hm.MHMCCU] get device list from ccu:CCU_IP_adresse 16/10/2017 20:24:48.136 debug: [xnm.aio.hm.MHMCCU] <xml><exec>/tclrega.exe</exec><sessionId></sessionId><httpUserAgent>User-Agent: mediola</httpUserAgent><res>{"devices":{"4902":{"name":#[Bewegungsmelder_EG]#,"typename":&.... es folgen alle Geräte ende mit <xml>
Des Weiteren habe ich durch die Installation der Testversion (danke DrTob für den Tipp) herausgefunden das der von Mediola verwendete ReGa-Abfrageskript (der die oben genannte "res" Ergebnisvariable erzeugt) in der Tat auch noch ein Bug hat, der bei der Nutzung der Community-Version von ReGa korrekterweise zu einem ScriptRuntimeError führt. Der von Mediola entwickelte und verwendete Skript ist dieser hier:
Code: Alles auswählen
!# Get the device list
string res = '{';
string sDevId;
string sChnId;
string sDptId;
string sRoomId;
string sFunctionId;
object oDevice;
object oChannel;
object oDatapoint;
object oRoom;
string sDevInterfaceId;
string sDevInterfaceName;
boolean dFirst = true;
boolean cFirst = true;
boolean dpFirst = true;
boolean hasRoom = true;
res = res # '"devices":{';
foreach(sDevId, root.Devices().EnumUsedIDs()) {
if (dFirst) {
dFirst=false;
} else {
res = res # ',';
}
oDevice = dom.GetObject(sDevId);
sDevInterfaceId = oDevice.Interface();
sDevInterfaceName = dom.GetObject(sDevInterfaceId).Name();
res = res # '"' # sDevId # '":{"name":#[' # oDevice.Name();
res = res # ']#,"typename":"' # oDevice.TypeName();
res = res # '","hsstype":"' # oDevice.HssType();
res = res # '","address":"' # oDevice.Address();
res = res # '","interface":"' # sDevInterfaceName;
res = res # '","channels":{';
cFirst = true;
foreach(sChnId, oDevice.Channels()) {
if (cFirst) {
cFirst=false;
} else {
res = res # ',';
}
res = res # '"' # sChnId# '":{';
oChannel = dom.GetObject(sChnId);
res = res # '"hsstype":"' # oChannel.HssType();
res = res # '","name":#[' # oChannel.Name();
sFunctionId = oChannel.ChnFunction();
res = res # ']#,"func":"' # dom.GetObject(sFunctionId);
res = res # '","room":[';
hasRoom = false;
foreach(sRoomId, oChannel.ChnRoom()) {
oRoom = dom.GetObject(sRoomId);
res = res # '#[' # oRoom.Name();
res = res # ']#,';
hasRoom = true;
}
if (hasRoom) {
res = res.Substr(0, res.Length()-1);
}
res = res # ']';
res = res # ',"address":"' # oChannel.Address() # '"';
!read datapoint for CUxD device
if (sDevInterfaceName == 'CUxD') {
res = res # ',"datapoints":[';
dpFirst = false;
foreach(sDptId, oChannel.DPs()) {
oDatapoint = dom.GetObject(sDptId);
res = res # '"' # oDatapoint.HssType() # '"';
res = res # ',';
dpFirst = true;
}
if (dpFirst) {
res = res.Substr(0, res.Length()-1);
}
res = res # ']';
}
!res = res # '","datapoints":{';
!dpFirst = true;
!foreach(sDptId, oChannel.DPs()) {
! if (dpFirst) {
! dpFirst=false;
! } else {
! res = res # ',';
! }
! res = res # '"' # sDptId# '":{';
! oDatapoint = dom.GetObject(sDptId);
! res = res # '"name":"' # oDatapoint.Name();
! res = res # '","typename":"' # oDatapoint.TypeName();
! res = res # '","valuetype":"' # oDatapoint.ValueType();
! res = res # '","operations":"' # oDatapoint.Operations() # '"}';
!}
!res = res # '}}';
res = res # '}';
}
res = res # '}}';
}
res = res # '},';
res = res # '"systemvars":{';
dFirst = true;
string sValue;
foreach(sDevId, dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedIDs()) {
if (dFirst) {
dFirst=false;
} else {
res = res # ',';
}
oDevice = dom.GetObject(sDevId);
res = res # '"' # sDevId # '":{"name":#[' # oDevice.Name();
res = res # ']#,"valuetype":"' # oDevice.ValueType();
!res = res # '","valuesubtype":"' # oDevice.ValueSubType();
!res = res # '","value":';
!if (oDevice.ValueType() == 20) {
! res = res # '"' # oDevice.Value() # '"';
!} else {
! sValue = oDevice.Value();
! if (oDevice.ValueType() == 2) {
! if (sValue) {
! res = res # "true";
! } else {
! res = res # "false";
! }
! } else {
! if (sValue == "") {
! res = res # "0";
! } else {
! res = res # sValue;
! }
! }
!}
res = res # '"}';
}
res = res # '},';
res = res # '"progs":{';
dFirst = true;
foreach(sDevId, dom.GetObject(ID_PROGRAMS).EnumUsedIDs()) {
if (dFirst) {
dFirst=false;
} else {
res = res # ',';
}
oDevice = dom.GetObject(sDevId);
res = res # '"' # sDevId # '":{"name":#[' # oDevice.Name();
res = res # ']#,"active":"' # oDevice.Active() # '"';
res = res # '}';
}
res = res # '}}';
sDevId="";
sChnId="";
sDptId="";
sRoomId="";
sFunctionId="";
oDevice="";
oChannel="";
oDatapoint="";
oRoom="";
sDevInterfaceId="";
sDevInterfaceName="";
dFirst="";
cFirst="";
dpFirst="";
sValue="";
Code: Alles auswählen
...
foreach(sDptId, oChannel.DPs()) {
oDatapoint = dom.GetObject(sDptId);
res = res # '"' # oDatapoint.HssType() # '"';
res = res # ',';
dpFirst = true;
}
...
Code: Alles auswählen
...
foreach(sDptId, oChannel.DPs()) {
oDatapoint = dom.GetObject(sDptId);
if (oDatapoint.TypeName() == "HSSDP") {
res = res # '"' # oDatapoint.HssType() # '"';
res = res # ',';
dpFirst = true;
}
}
...
Zusammenfassend muss also gesagt werden, dass hier wohl Bugfixes von Mediola Crestor Neo notwendig sind, diese allerdings recht überschaubar sind. Auf der einen Seite müsste in Mediola Creator wohl der als <res></res> empfangene Result-String durch eine url decoding Funktion geleitet werden der die &xxxx; strings in einen normalen string wandelt und auf der anderen Seite der ReGa-Abfrageskript um die reparierte foreach() Schleife erweitert werden.
Wenn also jemand direkten Kontakt zu Mediola hat und das gerne als Lösung des Problems melden möchte, dann bitte machen.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 316
- Registriert: 26.11.2016, 12:52
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 11 Mal
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
bin leider bis Samstag beruflich unterwegs und kann bis dahin nichts weiter unternehmen
JoMass
~200 Geräte; ~70 Programme FW: 3.75.6.20240316 – Odroid N2+ 4GB 64GB-SSD , Homeassistant (latest), - HISTORIAN V3.6.0 auf QNAP; Mediola AIO Creator NEO - Node-RED (Current version: 17.0.10 (3.1.7))
~200 Geräte; ~70 Programme FW: 3.75.6.20240316 – Odroid N2+ 4GB 64GB-SSD , Homeassistant (latest), - HISTORIAN V3.6.0 auf QNAP; Mediola AIO Creator NEO - Node-RED (Current version: 17.0.10 (3.1.7))
- Homematic-Fan
- Beiträge: 81
- Registriert: 22.08.2015, 13:07
- Hat sich bedankt: 18 Mal
- Danksagung erhalten: 2 Mal
Re: Upgrade auf 20171007: kein Import Mediola Creator Neo mö
Habe bei Mediola ein Ticket im Bugtracker eröffnet:
https://mantis.mediola.com/view.php?id=1461
Gruß Andi
https://mantis.mediola.com/view.php?id=1461
Gruß Andi
2x Raspberry-Matic auf Tinkerboard-S, 3x Raspberry Pi3B für diverse Aufgaben, 1x CCU-2, 2x Synology DS216/218play, 2x ioBroker auf Rasberry Pi4, Grafana, 1x Wiffi-WZ, >210 Geräte
Gardena R40Li mit Robonect und Steuerung komplett über HM
1x IPad Air2, 5x Android-Tab 7", alle mit Mediola Neo
Gardena R40Li mit Robonect und Steuerung komplett über HM
1x IPad Air2, 5x Android-Tab 7", alle mit Mediola Neo