Can't get example to execute
thwerks opened this issue · 3 comments
When I put "import hass from 'homeassistant-ws';" into my NodeJS app i get
"SyntaxError: Cannot use import statement outside a module"
normally I experience something like with the home-assistant library, It looks like this:
HomeAssistant = require('homeassistant'),
hass = new HomeAssistant({
host: 'http://127.0.0.1', // Home Assistant IP address
port: 8123, // Home Assistant port number
token: 'my-token',
ignoreCert: true // above is Home Assistant long lived token
});
But your library have to use Import? why its like that? is there a way to just use require like in my example?
Anyway, i dont normally use "package.json" file for my project but I made this file and put this inside:
{
"type": "module"
}
Ok so now seems to be going a step further, but now getting errors like :
import hass from 'hass';
^^^^^^^^^^^
SyntaxError: Identifier 'hass' has already been declared
if i remove this line (import hass from 'hass';
) and keep only the line (import hass from 'homeassistant-ws';
) , then i get:
hass({
^
TypeError: hass is not a function
I used many libraries already including the NPM home-assistant library with no issues but I have no idea how to make this work. I love this minimalist approach and using websocket for HA.
Can you please provide a working example? And can you please share how to import the library using the "Const Require" way? So i dont have to use package.json file? I'd really appreciate it and I love to share the project I'm going to use this library for.
This is my example, is this incomplete? am i supposed to call function main()
? is it supposed to be import hass from 'homeassistant-ws';
or import hass from 'hass';
or both? I dont get it.
if i dont call main()
the app just ends immediately, but if i call main()
i get error: TypeError: hass is not a function
import hass from 'homeassistant-ws';
process.setMaxListeners(0);
main();
async function main() {
// Establishes a connection, and authenticates if necessary:
const client = await hass({
token: 'my-token',
host: '10.20.0.5',
port: 8123,
});
// Get a list of all available states, panels or services:
await client.getStates();
await client.getServices();
await client.getPanels();
// Get hass configuration:
await client.getConfig();
// Get a Buffer containing the current thumbnail for the given media player
await client.getMediaPlayerThumbnail('media_player.my_player');
// { content_type: 'image/jpeg', content: Buffer<...>}
// Get a Buffer containing a thumbnail for the given camera
await client.getCameraThumbnail('camera.front_yard');
// { content_type: 'image/jpeg', content: Buffer<...>}
// Call a service, by its domain and name. The third argument is optional.
await client.callService('lights', 'turn_on', {
entity_id: 'light.my_light',
});
// Listen for all HASS events - the 'message' event is a homeassistant-ws event triggered for
// all messages received through the websocket connection with HASS:
//
// See https://developers.home-assistant.io/docs/api/websocket/ for details on HASS events:
client.on('message', (rawMessageData) => {
console.log(rawMessageData);
});
// Listen only for state changes:
client.on('state_changed', (stateChangedEvent) => {
console.log(stateChangedEvent.data.new_state.state);
});
}
did you ever get this to work? I'm having the same issue.
did you ever get this to work? I'm having the same issue.
No, i think this is not a functioning api. Im using twocolors esphome-native-api and its working great.