MyUpway python integraatio

lema

Jäsen
Oli unohtunut yksi importti, joka vaaditaan <3.10 version pythoneille.. Sitten pätkivän netin takia ryssin tuon paketin latauksen niin uusi versio on 0.0.10.1
 

Soiski71

Jäsen
Virhe muuttui. Ajan Pyhton 3.8.10:lla (jos vaikutusta).
Mitä luulet pitäisikös päivittää 3.11. versioon.. en yleensä halua kauheesti päivittää jos ei ihan pakko... ( ties mitä muuta se hajoittaa....)

security@SAMONE:~$ /usr/bin/python3 /home/security/.local/lib/python3.8/site-packages/myupway.py
Traceback (most recent call last):
File "/home/security/.local/lib/python3.8/site-packages/myupway.py", line 1, in <module>
from pyupway import MyUpway, MyUpwayConfig, Variable, DataService
File "/home/security/.local/lib/python3.8/site-packages/pyupway/__init__.py", line 8, in <module>
from .services import MyUpwayService, MyUplinkService
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/__init__.py", line 1, in <module>
from .myuplinkservice import MyUplinkService
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/myuplinkservice.py", line 11, in <module>
class MyUplinkService:
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/myuplinkservice.py", line 35, in MyUplinkService
def get_current_values(self, variables: List[Variable] | None = None, force_login: bool = False) -> List[VariableValue]:
TypeError: unsupported operand type(s) for |: '_GenericAlias' and 'NoneType'
 
Viimeksi muokattu:

Soiski71

Jäsen
Asensisn 0.0.11 (oletin) ja tuli uusi virhe
security@SAMONE:~$ /usr/bin/python3 /home/security/.local/lib/python3.8/site-packages/myupway.py
Traceback (most recent call last):
File "/home/security/.local/lib/python3.8/site-packages/myupway.py", line 1, in <module>
from pyupway import MyUpway, MyUpwayConfig, Variable, DataService
File "/home/security/.local/lib/python3.8/site-packages/pyupway/__init__.py", line 8, in <module>
from .services import MyUpwayService, MyUplinkService
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/__init__.py", line 1, in <module>
from .myuplinkservice import MyUplinkService
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/myuplinkservice.py", line 3
from __future__ import annotations
^
SyntaxError: from __future__ imports must occur at the beginning of the file
 

Soiski71

Jäsen
Onko itua jos kokeilen päivittää oman Pythonin 3.11... vai haluatko että tehdään tolle <3.10 nyt loppuun saakka ? Ainahan koodaaja voi sanoa että minimuvaatimus on >3.10 ;)
 

lema

Jäsen
Ei tuo iso korjaus ollut, nyt se on siellä. Mutta ainahan se uudempi on kiiltävämpi ja parempi ;)
 

Soiski71

Jäsen
0.0.12 asennettu ja toimii osittain

Moi, Kiitos. Nyt tosiaan tuo yhden rivin pyyntö toimii
security@SAMONE:~$ /usr/bin/python3 /home/security/.local/lib/python3.8/site-packages/myupway.py
[VariableValue(Id=44699, Name='HIGH_PRESSURE_SENSOR', Enumerator=<Variable.HIGH_PRESSURE_SENSOR: 44699>, Value=14.8, Unit='bar')]
Mutta kun ajan pyynnön kokolistasta tällä

import paho.mqtt.client as mqtt #import the client1
broker_address="192.168.xx.xx"
client = mqtt.Client("VILP") #create new instance
client.connect(broker_address) #connect to broker

from pyupway import MyUpway, MyUpwayConfig, Variable, DataService

config = MyUpwayConfig(dataservice=DataService.MYUPLINK, client_id="xxxx", client_secret="xxxx")

myupway = MyUpway(config)

values = myupway.get_current_values()

for value in values:

client.publish("VILP/"f"{value.Name}",f"{value.Value}")#publish

Antaa seuraavan virheen.
security@SAMONE:~$ /usr/bin/python3 /home/security/.local/lib/python3.8/site-packages/myupway2.py
Traceback (most recent call last):
File "/home/security/.local/lib/python3.8/site-packages/myupway2.py", line 12, in <module>
values = myupway.get_current_values()
File "/home/security/.local/lib/python3.8/site-packages/pyupway/__init__.py", line 35, in get_current_values
return self._service.get_current_values(variables, force_login)
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/myuplinkservice.py", line 65, in get_current_values
variableEnum = Variable(int(result["parameterId"]))
File "/usr/lib/python3.8/enum.py", line 339, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python3.8/enum.py", line 663, in __new__
raise ve_exc
ValueError: 43109 is not a valid Variable
 

Soiski71

Jäsen
Hienoa. 0.0.13 versio toimii. Huomasin juuri että muutama muuttuja tosiaan vaihtanut nimeä myuplinkin ja myupwayn kohdalla kuten degree_minutes.

Muuten pelittää mutta en saa laitteesta energia kulutuksia oikein ulos. Syöttää vaan samaa tietoa eikä muutu (tuskin kuitenkaan ikiliikkujaa keksineet päivityksen myötä).

1709659505590.png

ja ikävä kyllä sama tilanne kun katsoon MyUplinkin kautta.... viimiset tiedot on ajalta kun oli vielä yhteydessä myUpwayihin
onkohan jokin bugi kaukoralla ...olis aika tärkeetä tietoa !
1709659883118.png

ja sitten ... ei mitään
1709659917949.png

Mites muilla ?
 

lema

Jäsen
Hienoa. 0.0.13 versio toimii. Huomasin juuri että muutama muuttuja tosiaan vaihtanut nimeä myuplinkin ja myupwayn kohdalla kuten degree_minutes.

Muuten pelittää mutta en saa laitteesta energia kulutuksia oikein ulos. Syöttää vaan samaa tietoa eikä muutu (tuskin kuitenkaan ikiliikkujaa keksineet päivityksen myötä).

katso liitettä 95885
ja ikävä kyllä sama tilanne kun katsoon MyUplinkin kautta.... viimiset tiedot on ajalta kun oli vielä yhteydessä myUpwayihin
onkohan jokin bugi kaukoralla ...olis aika tärkeetä tietoa !
katso liitettä 95886
ja sitten ... ei mitään
katso liitettä 95887
Mites muilla ?
Sulla pitäisi olla logeilla niitä error viestejä jossa on uusien muuttujien tiedot. Voitko toimittaa ne kaikki error viestit niin lisään ne tuonne enumeihin.
 

Soiski71

Jäsen
Onhan toi niin kökkö että pitää palauttaa tohon vanhaan myupwayihin kun toi energia ei toimi. Muutkin näköjään raportoivat samaa.

Miten tuolla uudella ajetaan vanhaa versiota. Eli minne laitetaan nuo vanhat tiedot ? Kokeilin ajaa vanhalla py login versiolla ja antaa erroria

security@SAMONE:~$ /usr/bin/python3 /home/security/.local/lib/python3.8/site-packages/myupway.py
Traceback (most recent call last):
File "/home/security/.local/lib/python3.8/site-packages/myupway.py", line 10, in <module>
myupway = MyUpway(config)
File "/home/security/.local/lib/python3.8/site-packages/pyupway/__init__.py", line 22, in __init__
self._service = MyUplinkService(self._config)
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/myuplinkservice.py", line 27, in __init__
self.login()
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/myuplinkservice.py", line 30, in login
self._get_token()
File "/home/security/.local/lib/python3.8/site-packages/pyupway/services/myuplinkservice.py", line 105, in _get_token
'client_id': self._config.client_id,
AttributeError: 'MyUpwayConfig' object has no attribute 'client_id'

Tällä scriptillä
import paho.mqtt.client as mqtt #import the client1
broker_address="192.168.11.51"
client = mqtt.Client("VILP") #create new instance
client.connect(broker_address) #connect to broker

from pyupway import MyUpway, MyUpwayConfig, Variable

config = MyUpwayConfig("xxxx", "xxxxx", xxxx)

myupway = MyUpway(config)

values = myupway.get_current_values()

for value in values:

client.publish("VILP/"f"{value.Name}",f"{value.Value}")#publish
 

lema

Jäsen
Kun oot päivittänyt laitteet ja siirtänyt ne MyUplink ei ole paluuta MyUpway puolelle. En tiedä auttaako se firmiksen downgrade asiaa.
 

lema

Jäsen
Se koko laite siis alkaa lähettää sitä dataa MyUplinkiin ja MyUpway ei saa enää uutta dataa. Mä testasin tän scenaarion.

Ainut siis mitä keksin olis tehdä firmiksen downgrade, mutta en tiedä auttaako.. ainakin MCU40 pitää vanhaa sovellus versiota myös muistissa, josta sen saa ajoon. Ehkä sitä kannattaa kokeilla?

Koodissa pitää määrittää edelleen datasource
Python:
config = MyUpwayConfig(dataservice=DataService.MYUPWAY, username="xxxx", password="xxxxx", heatpump_id=xxxx)
 

Soiski71

Jäsen
Palutin jo kikuspäissäni.... Kaukoralle
Downgradasin firmiksen ja sen sai palautettua takaisin myupway palveluun joten se kyllä tuli sinne näkyviin
Piti parittaa uudestaa uudella merkkijonolla
 

Soiski71

Jäsen
Se koko laite siis alkaa lähettää sitä dataa MyUplinkiin ja MyUpway ei saa enää uutta dataa. Mä testasin tän scenaarion.

Ainut siis mitä keksin olis tehdä firmiksen downgrade, mutta en tiedä auttaako.. ainakin MCU40 pitää vanhaa sovellus versiota myös muistissa, josta sen saa ajoon. Ehkä sitä kannattaa kokeilla?

Koodissa pitää määrittää edelleen datasource
Python:
config = MyUpwayConfig(datasource=DataSource.MYUPWAY, username="xxxx", password="xxxxx", heatpump_id=xxxx)
Kiitos, testiin
 

Soiski71

Jäsen
Jeps. lähti pelittämään kuten vanhastaan (ainakin näin nopeasti katsottuna).

Tosiaan firmiksen palautin ja uudestaan linkitin sen myupway sivustolla (toki uudella merkkijonolla joka piti pyytää että laite palautui sinne.

Nyt sun 0.0.013 ja tolla hieman muunnetulla koodilla tulee taas kaikki tiedot.

Kerro tietämättömälle mikä on stdout. Tarkoitatko sitä ihan outputtia kun ajaa python scriptin ja mitä se suoltaa ulos ruudulle ?
 

Soiski71

Jäsen
jos stdout oli toi mitä sanoin niin nää tuli errorina ulos kun olin MyUPLINKissä kiinni:
security@SAMONE:~$ /usr/bin/python3 /home/security/.local/lib/python3.8/site-packages/myupway2.py
ERROR: Missing Variable enum. Contact the maintainer (https://github.com/lemanjo/pyupway) to add it to the code with these details: {'category': 'JASPI Tehowatti Air', 'parameterId': '43109', 'parameterName': 'Current hot water mode', 'parameterUnit': '', 'writable': False, 'timestamp': '2024-03-03T23:58:23+00:00', 'value': 0.0, 'strVal': '0', 'smartHomeCategories': [], 'minValue': None, 'maxValue': None, 'stepValue': 1.0, 'enumValues': [], 'scaleValue': '1', 'zoneId': None}
ERROR: Missing Variable enum. Contact the maintainer (https://github.com/lemanjo/pyupway) to add it to the code with these details: {'category': 'JASPI Tehowatti Air', 'parameterId': '43115', 'parameterName': 'Hot water: charge set point value', 'parameterUnit': '°C', 'writable': False, 'timestamp': '2024-03-05T16:56:16+00:00', 'value': -32768.0, 'strVal': '-32768°C', 'smartHomeCategories': [], 'minValue': None, 'maxValue': None, 'stepValue': 1.0, 'enumValues': [], 'scaleValue': '0.1', 'zoneId': None}
ERROR: Missing Variable enum. Contact the maintainer (https://github.com/lemanjo/pyupway) to add it to the code with these details: {'category': 'JASPI Tehowatti Air', 'parameterId': '49992', 'parameterName': 'Pump: Heating medium (GP6)', 'parameterUnit': '', 'writable': False, 'timestamp': '2024-03-05T16:56:18+00:00', 'value': 0.0, 'strVal': 'Off', 'smartHomeCategories': [], 'minValue': None, 'maxValue': None, 'stepValue': 1.0, 'enumValues': [{'value': '0', 'text': 'Off', 'icon': ''}, {'value': '1', 'text': 'On', 'icon': ''}], 'scaleValue': '1', 'zoneId': None}
ERROR: Missing Variable enum. Contact the maintainer (https://github.com/lemanjo/pyupway) to add it to the code with these details: {'category': 'JASPI Tehowatti Air', 'parameterId': '49993', 'parameterName': 'Int elec add heat', 'parameterUnit': '', 'writable': False, 'timestamp': '2024-03-03T22:58:25+00:00', 'value': 5.0, 'strVal': 'Off', 'smartHomeCategories': [], 'minValue': None, 'maxValue': None, 'stepValue': 1.0, 'enumValues': [{'value': '0', 'text': 'Alarm', 'icon': ''}, {'value': '1', 'text': 'Alarm', 'icon': ''}, {'value': '2', 'text': 'Active', 'icon': ''}, {'value': '3', 'text': 'Off', 'icon': ''}, {'value': '4', 'text': 'Blocked', 'icon': ''}, {'value': '5', 'text': 'Off', 'icon': ''}, {'value': '6', 'text': 'Active', 'icon': ''}], 'scaleValue': '1', 'zoneId': None}
ERROR: Missing Variable enum. Contact the maintainer (https://github.com/lemanjo/pyupway) to add it to the code with these details: {'category': 'JASPI Tehowatti Air', 'parameterId': '49994', 'parameterName': 'Prior\xadity', 'parameterUnit': '', 'writable': False, 'timestamp': '2024-03-05T16:56:16+00:00', 'value': 30.0, 'strVal': 'Heating', 'smartHomeCategories': [], 'minValue': None, 'maxValue': None, 'stepValue': 1.0, 'enumValues': [{'value': '10', 'text': 'Off', 'icon': ''}, {'value': '20', 'text': 'Hot water', 'icon': ''}, {'value': '30', 'text': 'Heating', 'icon': ''}, {'value': '40', 'text': 'Pool', 'icon': ''}, {'value': '41', 'text': 'Pool 2', 'icon': ''}, {'value': '50', 'text': 'Trans\xadfer', 'icon': ''}, {'value': '60', 'text': 'Cooling', 'icon': ''}], 'scaleValue': '1', 'zoneId': None}
ERROR: Missing Variable enum. Contact the maintainer (https://github.com/lemanjo/pyupway) to add it to the code with these details: {'category': 'JASPI Tehowatti Air', 'parameterId': '49995', 'parameterName': 'Pump: Heating medium (GP1)', 'parameterUnit': '', 'writable': False, 'timestamp': '2024-03-03T08:39:02+00:00', 'value': 1.0, 'strVal': 'On', 'smartHomeCategories': [], 'minValue': None, 'maxValue': None, 'stepValue': 1.0, 'enumValues': [{'value': '0', 'text': 'Off', 'icon': ''}, {'value': '1', 'text': 'On', 'icon': ''}], 'scaleValue': '1', 'zoneId': None}
ERROR: Missing Variable enum. Contact the maintainer (https://github.com/lemanjo/pyupway) to add it to the code with these details: {'category': 'JASPI Tehowatti Air', 'parameterId': '50004', 'parameterName': 'Tempo\xadrary lux', 'parameterUnit': '', 'writable': True, 'timestamp': '2024-03-03T08:39:02+00:00', 'value': 0.0, 'strVal': 'off', 'smartHomeCategories': [], 'minValue': None, 'maxValue': None, 'stepValue': 1.0, 'enumValues': [{'value': '0', 'text': 'off', 'icon': ''}, {'value': '1', 'text': 'on', 'icon': ''}], 'scaleValue': '1', 'zoneId': None}
 

Trakker

Jäsen
Tuli kanssa päiviteltyä oma Jäspi Tehowatti Air Nordic päiviteltyä MyUplinkkiin ja aiemmin hyvin toiminut Jalle19 koodit hajosi integraatiossa Grafanaan. Onneksi eksyin tänne ja yhdistin eilen illalla lemanjon/pyupwayn koodit Jalle19 koodien sekaan omassa raspissa. Nyt toimii taas pääosin piirrot Grafanassa (influxdb:ssä data), mutta ainakin ADDITION_ELECTRICAL_ADDITION_POWER = 43084 taitaa puuttua vielä uudesta API:sta? Tuota olen käyttänyt Tehowatin sähkövastusten käytön seurantaan, kun saman keskuksen kWh mittarin takana on satunnaisesti muutakin isompaa kuormaa. Onko muilla vielä kokemusta saako tuon tiedon jostain pihalle?
 

lema

Jäsen
Tuli kanssa päiviteltyä oma Jäspi Tehowatti Air Nordic päiviteltyä MyUplinkkiin ja aiemmin hyvin toiminut Jalle19 koodit hajosi integraatiossa Grafanaan. Onneksi eksyin tänne ja yhdistin eilen illalla lemanjon/pyupwayn koodit Jalle19 koodien sekaan omassa raspissa. Nyt toimii taas pääosin piirrot Grafanassa (influxdb:ssä data), mutta ainakin ADDITION_ELECTRICAL_ADDITION_POWER = 43084 taitaa puuttua vielä uudesta API:sta? Tuota olen käyttänyt Tehowatin sähkövastusten käytön seurantaan, kun saman keskuksen kWh mittarin takana on satunnaisesti muutakin isompaa kuormaa. Onko muilla vielä kokemusta saako tuon tiedon jostain pihalle?
Antaako se logille virhettä tuolla nimellä ja koodilla?

Mä yritän ensi viikolla löytää aikaa lisätä näitä muutamia uusia mittapisteitä, jotka tuon uuden API:n mukana on tulleet.
 

Trakker

Jäsen
Antaako se logille virhettä tuolla nimellä ja koodilla?

Mä yritän ensi viikolla löytää aikaa lisätä näitä muutamia uusia mittapisteitä, jotka tuon uuden API:n mukana on tulleet.
Siis tuota ei mielestäni löydy myuplink API:sta ollenkaan. Täytyy ehkä katsoa vielä kunnolla tuoreilla silmillä huomenna. Swaggerin kautta kyselin kaikkia mittauspisteitä, niin siitä en sitä sähkövastusten sen hetkistä käyttöä löytänyt. Sitten taas jotkin arvot tulivat useampaan kertaan. Mm. "Degree minutes" taisi olla 8 kertaa putkeen.
 

Soiski71

Jäsen
Taas tuli seuraava kehoituskierros s-postilla siirtymisestä käyttämään myUPlink ohjelmaa. Kommentoi heille että korjatkaa nyt softa ennen kuin laitatte ihmiset siirtymään. Sama virsi taas että lupasivat viedä viestiä eteenpäin softan kehityspuolelle mutta... saas nähdä.
Onkohan kukaan saanut noita toimimaan uudess MyUPlinkissä ( Itselläni tehowatti Air )
1712334648930.png
 

lema

Jäsen
Home Assistant in 2024.2 versiossa julkaistiin virallinen integraatio MyUplink palveluun. Tässä on kaiketi joillekin malleille myös olemassa säätimiä, mutta MCU+Basic Split tuo vain sensori dataa.

Itse löin tuon rinnalle käyttöön jos sinne saadaan etäohjauksetkin myöhemmin.

 

dalobsta

Jäsen
Siis tuota ei mielestäni löydy myuplink API:sta ollenkaan. Täytyy ehkä katsoa vielä kunnolla tuoreilla silmillä huomenna. Swaggerin kautta kyselin kaikkia mittauspisteitä, niin siitä en sitä sähkövastusten sen hetkistä käyttöä löytänyt. Sitten taas jotkin arvot tulivat useampaan kertaan. Mm. "Degree minutes" taisi olla 8 kertaa putkeen.

Huomasin saman :-( Meillä siis Tehowatti Air + Inverter Nordic 16. Maanantaina päivitin ja muuten löytyy suunnilleen samat datat (vaikkakin osin eri formaateissa), mutta tämän hetken vastusarvot eivät näköjään ole saatavilla.

Otin kans swaggerilla kaikki saatavilla olevat arvot talteen ja kävin yksitellen läpi. Ei löytynyt mitään sinnepäinkään. Pitäisköhän laittaa viestiä niben suuntaan, että mikä homman nimi.

Taidan tässä jonain päivänä yrittää saada mun postgresql:ään viewn, joka laskee ne pidemmän ajan vastusarvot siitä time factorista. Sillä konstilla ei vain lyhyemmät vastusten käyttökerrat voi huomata, koska time factor kasvaa meidän 9kW:n maksimivastusarvolla 2 kW:n vastusten käytöstä tunnin ajan vain arvolla 0.2 . Eli jos tekee lämmintä käyttövettä ja laittaa hetkeksi vastukset päälle, niin ei tätä voi huomata kun ei time factor kasva. Talvella tästä voi ehkä olla hyötyä, vaikka antaakin vain pidempien aikajaksojen keskiarvot.
 
Back
Ylös Bottom